jdk/src/solaris/classes/sun/awt/X11/XFileDialogPeer.java
changeset 4913 9b3caa50afcf
parent 3938 ef327bd847c0
child 5506 202f599c92aa
equal deleted inserted replaced
4837:8c4c2196ce14 4913:9b3caa50afcf
    35 import com.sun.java.swing.plaf.motif.*;
    35 import com.sun.java.swing.plaf.motif.*;
    36 import javax.swing.plaf.ComponentUI;
    36 import javax.swing.plaf.ComponentUI;
    37 import java.security.AccessController;
    37 import java.security.AccessController;
    38 import java.security.PrivilegedAction;
    38 import java.security.PrivilegedAction;
    39 import sun.util.logging.PlatformLogger;
    39 import sun.util.logging.PlatformLogger;
       
    40 import sun.awt.AWTAccessor;
    40 
    41 
    41 class XFileDialogPeer extends XDialogPeer implements FileDialogPeer, ActionListener, ItemListener, KeyEventDispatcher, XChoicePeerListener {
    42 class XFileDialogPeer extends XDialogPeer implements FileDialogPeer, ActionListener, ItemListener, KeyEventDispatcher, XChoicePeerListener {
    42     private static final PlatformLogger log = PlatformLogger.getLogger("sun.awt.X11.XFileDialogPeer");
    43     private static final PlatformLogger log = PlatformLogger.getLogger("sun.awt.X11.XFileDialogPeer");
    43 
    44 
    44     FileDialog  target;
    45     FileDialog  target;
   168         cancelButton = new Button(cancelButtonText);
   169         cancelButton = new Button(cancelButtonText);
   169         directoryList = new List();
   170         directoryList = new List();
   170         fileList = new List();
   171         fileList = new List();
   171         filterField = new TextField();
   172         filterField = new TextField();
   172         selectionField = new TextField();
   173         selectionField = new TextField();
       
   174 
       
   175         boolean isMultipleMode =
       
   176             AWTAccessor.getFileDialogAccessor().isMultipleMode(target);
       
   177         fileList.setMultipleMode(isMultipleMode);
   173 
   178 
   174         // the insets used by the components in the fileDialog
   179         // the insets used by the components in the fileDialog
   175         Insets noInset = new Insets(0, 0, 0, 0);
   180         Insets noInset = new Insets(0, 0, 0, 0);
   176         Insets textFieldInset = new Insets(0, 8, 0, 8);
   181         Insets textFieldInset = new Insets(0, 8, 0, 8);
   177         Insets leftListInset = new Insets(0, 8, 0, 4);
   182         Insets leftListInset = new Insets(0, 8, 0, 4);
   378 
   383 
   379     /**
   384     /**
   380      * handle the selection event
   385      * handle the selection event
   381      */
   386      */
   382     void handleSelection(String file) {
   387     void handleSelection(String file) {
   383         int index = file.lastIndexOf('/');
   388 
       
   389         int index = file.lastIndexOf(java.io.File.separatorChar);
   384 
   390 
   385         if (index == -1) {
   391         if (index == -1) {
   386             savedDir = this.dir;
   392             savedDir = this.dir;
   387             savedFile = file;
   393             savedFile = file;
   388         } else {
   394         } else {
   389             savedDir = file.substring(0, index+1);
   395             savedDir = file.substring(0, index+1);
   390             savedFile = file.substring(index+1);
   396             savedFile = file.substring(index+1);
   391         }
   397         }
   392         target.setDirectory(savedDir);
   398 
   393         target.setFile(savedFile);
   399         AWTAccessor.FileDialogAccessor fileDialogAccessor = AWTAccessor.getFileDialogAccessor();
       
   400 
       
   401         fileDialogAccessor.setDirectory(target, savedDir);
       
   402         fileDialogAccessor.setFile(target, savedFile);
       
   403         fileDialogAccessor.setFiles(target, savedDir, fileList.getSelectedItems());
   394     }
   404     }
   395 
   405 
   396     /**
   406     /**
   397      * handle the cancel event
   407      * handle the cancel event
   398      */
   408      */
   402 
   412 
   403         setSelectionField(null);
   413         setSelectionField(null);
   404         setFilterField(null);
   414         setFilterField(null);
   405         directoryList.clear();
   415         directoryList.clear();
   406         fileList.clear();
   416         fileList.clear();
   407         target.setFile(null);
   417 
   408         target.setDirectory(null);
   418         AWTAccessor.FileDialogAccessor fileDialogAccessor = AWTAccessor.getFileDialogAccessor();
       
   419 
       
   420         fileDialogAccessor.setDirectory(target, null);
       
   421         fileDialogAccessor.setFile(target, null);
       
   422         fileDialogAccessor.setFiles(target, null, null);
       
   423 
   409         handleQuitButton();
   424         handleQuitButton();
   410     }
   425     }
   411 
   426 
   412     /**
   427     /**
   413      * handle the quit event
   428      * handle the quit event