Mega Code Archive

 
Categories / Java / SWT Jface Eclipse
 

Dir File Selection

/******************************************************************************  * All Right Reserved.   * Copyright (c) 1998, 2004 Jackwind Li Guojie  *   * Created on Mar 16, 2004 10:18:50 PM by JACK  * $Id$  *   *****************************************************************************/ import org.eclipse.swt.SWT; import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.DirectoryDialog; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Event; import org.eclipse.swt.widgets.FileDialog; import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.Listener; import org.eclipse.swt.widgets.Shell; public class DirFileSelection {   Display display = new Display();   Shell shell = new Shell(display);      // the label used to display selected dir/file.   Label label;      Button buttonSelectDir;   Button buttonSelectFile;      String selectedDir;   String fileFilterPath = "F:/jdk1.5";   public DirFileSelection() {     label = new Label(shell, SWT.BORDER | SWT.WRAP);     label.setBackground(display.getSystemColor(SWT.COLOR_WHITE));     label.setText("Select a dir/file by clicking the buttons below.");          buttonSelectDir = new Button(shell, SWT.PUSH);     buttonSelectDir.setText("Select a directory");     buttonSelectDir.addListener(SWT.Selection, new Listener() {       public void handleEvent(Event event) {         DirectoryDialog directoryDialog = new DirectoryDialog(shell);                  directoryDialog.setFilterPath(selectedDir);         directoryDialog.setMessage("Please select a directory and click OK");                  String dir = directoryDialog.open();         if(dir != null) {           label.setText("Selected dir: " + dir);           selectedDir = dir;         }       }     });          buttonSelectFile = new Button(shell, SWT.PUSH);     buttonSelectFile.setText("Select a file/multiple files");     buttonSelectFile.addListener(SWT.Selection, new Listener() {       public void handleEvent(Event event) {         FileDialog fileDialog = new FileDialog(shell, SWT.MULTI);         fileDialog.setFilterPath(fileFilterPath);                  fileDialog.setFilterExtensions(new String[]{"*.rtf", "*.html", "*.*"});         fileDialog.setFilterNames(new String[]{ "Rich Text Format", "HTML Document", "Any"});                  String firstFile = fileDialog.open();         if(firstFile != null) {           fileFilterPath = fileDialog.getFilterPath();           String[] selectedFiles = fileDialog.getFileNames();           StringBuffer sb = new StringBuffer("Selected files under dir " + fileDialog.getFilterPath() +  ": \n");           for(int i=0; i<selectedFiles.length; i++) {             sb.append(selectedFiles[i] + "\n");           }           label.setText(sb.toString());         }       }     });          label.setBounds(0, 0, 400, 60);     buttonSelectDir.setBounds(0, 65, 200, 30);     buttonSelectFile.setBounds(200, 65, 200, 30);     shell.pack();     shell.open();     //textUser.forceFocus();     // Set up the event loop.     while (!shell.isDisposed()) {       if (!display.readAndDispatch()) {         // If no more entries in event queue         display.sleep();       }     }     display.dispose();   }   public static void main(String[] args) {     new DirFileSelection();   } }