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.