Author: kono
Date: 2011-08-02 14:20:25 -0700 (Tue, 02 Aug 2011)
New Revision: 26355

Modified:
   
core3/swing-util-api/trunk/src/main/java/org/cytoscape/util/swing/FileUtil.java
   
core3/swing-util-api/trunk/src/main/java/org/cytoscape/util/swing/internal/FileUtilImpl.java
Log:
fixes #343 extension will be added if missing.

Modified: 
core3/swing-util-api/trunk/src/main/java/org/cytoscape/util/swing/FileUtil.java
===================================================================
--- 
core3/swing-util-api/trunk/src/main/java/org/cytoscape/util/swing/FileUtil.java 
    2011-08-02 19:18:48 UTC (rev 26354)
+++ 
core3/swing-util-api/trunk/src/main/java/org/cytoscape/util/swing/FileUtil.java 
    2011-08-02 21:20:25 UTC (rev 26355)
@@ -33,8 +33,6 @@
 import java.awt.Component;
 import java.awt.FileDialog;
 import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
 import java.util.Collection;
 
 

Modified: 
core3/swing-util-api/trunk/src/main/java/org/cytoscape/util/swing/internal/FileUtilImpl.java
===================================================================
--- 
core3/swing-util-api/trunk/src/main/java/org/cytoscape/util/swing/internal/FileUtilImpl.java
        2011-08-02 19:18:48 UTC (rev 26354)
+++ 
core3/swing-util-api/trunk/src/main/java/org/cytoscape/util/swing/internal/FileUtilImpl.java
        2011-08-02 21:20:25 UTC (rev 26355)
@@ -37,7 +37,9 @@
 import java.io.File;
 import java.io.FilenameFilter;
 import java.util.Collection;
+import java.util.HashSet;
 import java.util.Properties;
+import java.util.Set;
 
 import javax.swing.JFileChooser;
 import javax.swing.JOptionPane;
@@ -136,11 +138,18 @@
                                
                                chooser.setModal(true);
                                chooser.setFilenameFilter(new 
CombinedFilenameFilter(filters));
+                               chooser.setLocationRelativeTo(parent);
                                chooser.setVisible(true);
 
                                if (chooser.getFile() != null) {
-                                       File[] results = new File[1];
-                                       results[0] = new 
File(chooser.getDirectory() + File.separator + chooser.getFile());
+                                       //TODO: how can we select multiple 
files on Mac?
+                                       final File[] results = new File[1];
+                                       String newFileName = chooser.getFile();
+                                       
+                                       if (load_save_custom == SAVE)
+                                               newFileName = 
addFileExt(filters, newFileName);
+                                       
+                                       results[0] = new 
File(chooser.getDirectory() + File.separator + newFileName);
 
                                        if (chooser.getDirectory() != null)
                                                
coreProperties.setProperty(FileUtil.LAST_DIRECTORY, chooser.getDirectory());
@@ -162,7 +171,6 @@
 
                        // set the dialog title
                        chooser.setDialogTitle(title);
-
                        chooser.setAcceptAllFileFilterUsed(load_save_custom == 
LOAD);
 
                        int i = 0;
@@ -177,8 +185,6 @@
                                // with "All ", make it the default.
                                else if (defaultFilter == null && 
filter.getDescription().startsWith("All "))
                                        defaultFilter = filter;
-
-
                                chooser.addChoosableFileFilter(filter);
                        }
 
@@ -240,6 +246,25 @@
                        return results;
                }
        }
+       
+       private String addFileExt(final Collection<FileChooserFilter> filters, 
final String fileName) {
+               final Set<String> extSet = new HashSet<String>();
+               for(final FileChooserFilter filter: filters) {
+                       final String[] exts = filter.getExtensions();
+                       for(String ext:exts)
+                               extSet.add(ext);
+               }
+               
+               // Check file name has  
+               final String upperName = fileName.toUpperCase();
+               for(String ext: extSet) {
+                       if(upperName.endsWith("." + ext.toUpperCase()))
+                               return fileName;
+               }
+               
+               // Need to add ext
+               return fileName + "." + extSet.iterator().next();
+       }
 
        private static final class CombinedFilenameFilter implements 
FilenameFilter {
                private final Collection<FileChooserFilter> filters;

-- 
You received this message because you are subscribed to the Google Groups 
"cytoscape-cvs" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/cytoscape-cvs?hl=en.

Reply via email to