Author: ruschein
Date: 2011-06-24 14:42:56 -0700 (Fri, 24 Jun 2011)
New Revision: 25927

Modified:
   
core3/work-swing-impl/trunk/impl/src/main/java/org/cytoscape/work/internal/tunables/FileHandler.java
   
core3/work-swing-impl/trunk/impl/src/main/java/org/cytoscape/work/internal/tunables/utils/FileChooserFilter.java
Log:
Fixed Redmine Bug #95.

Modified: 
core3/work-swing-impl/trunk/impl/src/main/java/org/cytoscape/work/internal/tunables/FileHandler.java
===================================================================
--- 
core3/work-swing-impl/trunk/impl/src/main/java/org/cytoscape/work/internal/tunables/FileHandler.java
        2011-06-24 21:24:23 UTC (rev 25926)
+++ 
core3/work-swing-impl/trunk/impl/src/main/java/org/cytoscape/work/internal/tunables/FileHandler.java
        2011-06-24 21:42:56 UTC (rev 25927)
@@ -142,26 +142,23 @@
                fileTextField.setText("Please select a " + 
fileCategory.toLowerCase() + " file...");
                titleLabel.setText((input ? "Load " : "Save ") + 
initialCaps(fileCategory) + " File");
 
+               fileChooser.setAcceptAllFileFilterUsed(false);
+
                int i = 0;
-               boolean selectedDefault = false;
+               FileChooserFilter defaultFilter = null;
                for (FileChooserFilter filter : filters) {
                        // If we're down to the last filter and we haven't yet 
selected a default,
                        // do it now!
-                       if (++i == filters.size() && !selectedDefault)
-                               fileChooser.setFileFilter(filter);
-
+                       if (++i == filters.size() && defaultFilter == null)
+                               defaultFilter = filter;
                        // If we haven't yet selected a default and our 
filter's description starts
                        // with "All ", make it the default.
-                       else if (!selectedDefault && 
filter.getDescription().startsWith("All ")) {
-                               fileChooser.setFileFilter(filter);
-                               selectedDefault = true;
-                       }
+                       else if (defaultFilter == null && 
filter.getDescription().startsWith("All "))
+                               defaultFilter = filter;
 
-                       // Not a "special" filter, just add it to the list.
-                       else 
-                               fileChooser.addChoosableFileFilter(filter);
+                       fileChooser.addChoosableFileFilter(filter);
                }
-               fileChooser.setAcceptAllFileFilterUsed(false);
+               fileChooser.setFileFilter(defaultFilter);
        }
 
        private String getFileCategory() {

Modified: 
core3/work-swing-impl/trunk/impl/src/main/java/org/cytoscape/work/internal/tunables/utils/FileChooserFilter.java
===================================================================
--- 
core3/work-swing-impl/trunk/impl/src/main/java/org/cytoscape/work/internal/tunables/utils/FileChooserFilter.java
    2011-06-24 21:24:23 UTC (rev 25926)
+++ 
core3/work-swing-impl/trunk/impl/src/main/java/org/cytoscape/work/internal/tunables/utils/FileChooserFilter.java
    2011-06-24 21:42:56 UTC (rev 25927)
@@ -2,12 +2,13 @@
 
 
 import java.io.File;
+import java.util.Arrays;
 import javax.swing.filechooser.FileFilter;
 
 
 public class FileChooserFilter extends FileFilter {
        private final String description;
-       private String[] extensions;
+       private final String[] extensions;
 
        public FileChooserFilter(final String description, final String 
extension) {
                super();
@@ -52,6 +53,29 @@
                return extensions;
        }
 
+       @Override
+       public boolean equals(final Object other) {
+               if (!(other instanceof FileChooserFilter))
+                       return false;
+
+               final FileChooserFilter otherFilter = (FileChooserFilter)other;
+               if (!otherFilter.description.equals(description))
+                       return false;
+
+               if (otherFilter.extensions.length != extensions.length)
+                       return false;
+
+               Arrays.sort(otherFilter.extensions);
+               Arrays.sort(extensions);
+
+               for (int i = 0; i < extensions.length; ++i) {
+                       if (!extensions[i].equals(otherFilter.extensions[i]))
+                               return false;
+               }
+
+               return true;
+       }
+
        static String toString(final String[] strings) {
                final StringBuilder setAsString = new StringBuilder();
                setAsString.append('{');

-- 
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