Author: ruschein
Date: 2011-06-23 15:31:48 -0700 (Thu, 23 Jun 2011)
New Revision: 25905

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
   
core3/work-swing-impl/trunk/impl/src/main/java/org/cytoscape/work/internal/tunables/utils/SupportedFileTypesManager.java
   
core3/work-swing-impl/trunk/impl/src/main/resources/META-INF/spring/bundle-context-osgi.xml
Log:
Fixed Redmine Bug #71.

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-23 22:27:35 UTC (rev 25904)
+++ 
core3/work-swing-impl/trunk/impl/src/main/java/org/cytoscape/work/internal/tunables/FileHandler.java
        2011-06-23 22:31:48 UTC (rev 25905)
@@ -93,16 +93,16 @@
        }
 
        private void init(final SupportedFileTypesManager fileTypesManager) {
-               //Construction of GUI
                fileChooser = new JFileChooser();
                input = isInput();
+
+               final String fileCategory = getFileCategory();
+               filters = 
fileTypesManager.getSupportedFileTypes(DataCategory.valueOf(fileCategory.toUpperCase()),
+                                                                input);
+
                setGui();
                setLayout();
                panel.setLayout(layout);
-
-               final String fileCategory = getFileCategory();
-               filters = 
fileTypesManager.getSupportedFileTypes(DataCategory.valueOf(fileCategory),
-                                                                input);
        }
 
        /**
@@ -221,6 +221,16 @@
                                if (ret == JFileChooser.APPROVE_OPTION) {
                                        file = fileChooser.getSelectedFile();
                                        if (file != null) {
+                                               // Make sure the user-supplied 
file name has an extension:
+                                               final String fileName = 
file.getPath();
+                                               if (getFileExtension(fileName) 
== null) {
+                                                       final String extension =
+                                                               
filters.get(0).getExtensions()[0];
+                                                       final String 
nameWithExtension =
+                                                               
addFileExtension(fileName, extension);
+                                                       file = new 
File(nameWithExtension);
+                                               }
+
                                                if 
(ae.getActionCommand().equals("save") && file.exists()) {
                                                        if 
(JOptionPane.showConfirmDialog(
                                                                panel,

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-23 22:27:35 UTC (rev 25904)
+++ 
core3/work-swing-impl/trunk/impl/src/main/java/org/cytoscape/work/internal/tunables/utils/FileChooserFilter.java
    2011-06-23 22:31:48 UTC (rev 25905)
@@ -9,7 +9,7 @@
        private final String description;
        private String[] extensions;
 
-       public FileChooserFilter(final String description, final String 
extension){
+       public FileChooserFilter(final String description, final String 
extension) {
                super();
                this.description = description;
                this.extensions = new String[] { extension };
@@ -50,4 +50,14 @@
        public String[] getExtensions() {
                return extensions;
        }
+
+       static String toString(final String[] strings) {
+               final StringBuilder setAsString = new StringBuilder();
+               setAsString.append('{');
+               for (final String item : strings) {
+                       setAsString.append(item + " ");
+               }
+               setAsString.append('}');
+               return setAsString.toString();
+       }
 }
\ No newline at end of file

Modified: 
core3/work-swing-impl/trunk/impl/src/main/java/org/cytoscape/work/internal/tunables/utils/SupportedFileTypesManager.java
===================================================================
--- 
core3/work-swing-impl/trunk/impl/src/main/java/org/cytoscape/work/internal/tunables/utils/SupportedFileTypesManager.java
    2011-06-23 22:27:35 UTC (rev 25904)
+++ 
core3/work-swing-impl/trunk/impl/src/main/java/org/cytoscape/work/internal/tunables/utils/SupportedFileTypesManager.java
    2011-06-23 22:31:48 UTC (rev 25905)
@@ -37,11 +37,11 @@
                inputFactories.remove(factory);
        }
 
-       public void addOutputStreamTaskFactory(CyWriterFactory factory, 
Map<?,?> properties) {
+       public void addCyWriterTaskFactory(CyWriterFactory factory, Map<?,?> 
properties) {
                outputFactories.add(factory);
        }
 
-       public void removeOutputStreamTaskFactory(CyWriterFactory factory, 
Map<?,?> properties) {
+       public void removeCyWriterTaskFactory(CyWriterFactory factory, Map<?,?> 
properties) {
                outputFactories.remove(factory);
        }
 
@@ -52,7 +52,9 @@
                        return getSupportedFileTypes(category, outputFactories);
        }
 
-       private List<FileChooserFilter> getSupportedFileTypes(final 
DataCategory category, final Set<CyFileFilterProvider> factories) {
+       private List<FileChooserFilter> getSupportedFileTypes(final 
DataCategory category,
+                                                             final 
Set<CyFileFilterProvider> factories)
+       {
                List<FileChooserFilter> types = new 
ArrayList<FileChooserFilter>();
 
                Set<String> allExtensions = new HashSet<String>();
@@ -84,7 +86,8 @@
                });
 
                String description = String.format("All %1$s files", 
category.toString().toLowerCase());
-               types.add(new FileChooserFilter(description, new 
ArrayList<String>(allExtensions).toArray(new String[allExtensions.size()])));
+               types.add(new FileChooserFilter(description,
+                                               new 
ArrayList<String>(allExtensions).toArray(new String[allExtensions.size()])));
                return types;
        }
 }

Modified: 
core3/work-swing-impl/trunk/impl/src/main/resources/META-INF/spring/bundle-context-osgi.xml
===================================================================
--- 
core3/work-swing-impl/trunk/impl/src/main/resources/META-INF/spring/bundle-context-osgi.xml
 2011-06-23 22:27:35 UTC (rev 25904)
+++ 
core3/work-swing-impl/trunk/impl/src/main/resources/META-INF/spring/bundle-context-osgi.xml
 2011-06-23 22:31:48 UTC (rev 25905)
@@ -37,7 +37,7 @@
                filter="(cyPropertyName=bookmarks)" />
        <osgi:reference id="bookmarksUtilServiceRef"
                interface="org.cytoscape.property.bookmark.BookmarksUtil" />
-       
+
        <osgi:set id="supportedFileTypes" 
            interface="org.cytoscape.io.read.InputStreamTaskFactory"
            cardinality="0..N">
@@ -45,6 +45,14 @@
                               unbind-method="removeInputStreamTaskFactory" 
                               ref="supportedFileTypesManager" />
        </osgi:set>
+
+       <osgi:set id="supportedFileTypes2" 
+           interface="org.cytoscape.io.write.CyWriterFactory"
+           cardinality="0..N">
+               <osgi:listener bind-method="addCyWriterTaskFactory"
+                              unbind-method="removeCyWriterTaskFactory" 
+                              ref="supportedFileTypesManager" />
+       </osgi:set>
        
        <osgi:set id="externalTunableInterceptors" 
            interface="org.cytoscape.work.TunableInterceptor"

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