Author: clopes
Date: 2011-07-13 13:32:54 -0700 (Wed, 13 Jul 2011)
New Revision: 26168
Modified:
core3/swing-util-api/trunk/src/main/java/org/cytoscape/util/swing/internal/FileUtilImpl.java
Log:
fixes #320 (Cannot select files when opening a session on Mac)
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-07-13 17:00:39 UTC (rev 26167)
+++
core3/swing-util-api/trunk/src/main/java/org/cytoscape/util/swing/internal/FileUtilImpl.java
2011-07-13 20:32:54 UTC (rev 26168)
@@ -31,22 +31,17 @@
import java.awt.Component;
+import java.awt.Dialog;
import java.awt.FileDialog;
-import java.awt.Dialog;
import java.awt.Frame;
-import java.io.BufferedReader;
import java.io.File;
-import java.io.FileInputStream;
import java.io.FilenameFilter;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.net.URL;
import java.util.Collection;
import java.util.Properties;
import javax.swing.JFileChooser;
import javax.swing.JOptionPane;
+import javax.swing.filechooser.FileFilter;
import org.cytoscape.property.CyProperty;
import org.cytoscape.util.swing.FileChooserFilter;
@@ -113,50 +108,60 @@
* {@inheritDoc}
*/
@Override
- public File[] getFiles(final Component parent, final String title,
- final int load_save_custom, final String
start_dir,
- final String custom_approve_text, final boolean
multiselect,
- final Collection<FileChooserFilter> filters)
+ public File[] getFiles(final Component parent,
+ final String title,
+ final int load_save_custom,
+ String start_dir,
+ final String
custom_approve_text,
+ final boolean multiselect,
+ final
Collection<FileChooserFilter> filters)
{
if (parent == null)
throw new NullPointerException("\"parent\" must not be
null!");
- File start = null;
-
if (start_dir == null)
- start = new
File(coreProperties.getProperty(FileUtil.LAST_DIRECTORY,
-
System.getProperty("user.dir")));
- else
- start = new File(start_dir);
-
+ start_dir =
coreProperties.getProperty(FileUtil.LAST_DIRECTORY,
+
System.getProperty("user.dir"));
+
String osName = System.getProperty("os.name");
if (osName.startsWith("Mac")) {
// This is a Macintosh, use the AWT style file dialog
- FileDialog chooser;
- if (parent instanceof Frame)
- chooser = new FileDialog((Frame) parent, title,
load_save_custom);
- else
- chooser = new FileDialog((Dialog) parent,
title, load_save_custom);
-
- chooser.setFilenameFilter(new
CombinedFilenameFilter(filters));
- chooser.setVisible(true);
-
- if (chooser.getFile() != null) {
- File[] results = new File[1];
- results[0] = new File(chooser.getDirectory() +
File.separator
- + chooser.getFile());
-
- if (chooser.getDirectory() != null)
-
coreProperties.setProperty(FileUtil.LAST_DIRECTORY,
-
chooser.getDirectory());
-
- return results;
+
+ String fileDialogForDirectories =
System.getProperty("apple.awt.fileDialogForDirectories");
+
System.setProperty("apple.awt.fileDialogForDirectories", "false");
+
+ try {
+ final FileDialog chooser;
+
+ if (parent instanceof Frame)
+ chooser = new FileDialog((Frame) parent, title,
load_save_custom);
+ else
+ chooser = new FileDialog((Dialog) parent,
title, load_save_custom);
+
+ if (start_dir != null)
+ chooser.setDirectory(start_dir);
+
+ chooser.setFilenameFilter(new
CombinedFilenameFilter(filters));
+ chooser.setVisible(true);
+
+ if (chooser.getFile() != null) {
+ File[] results = new File[1];
+ results[0] = new File(chooser.getDirectory() +
File.separator + chooser.getFile());
+
+ if (chooser.getDirectory() != null)
+
coreProperties.setProperty(FileUtil.LAST_DIRECTORY, chooser.getDirectory());
+
+ return results;
+ }
+ } finally {
+
System.setProperty("apple.awt.fileDialogForDirectories",
fileDialogForDirectories);
}
-
+
return null;
} else {
// this is not a Mac, use the Swing based file dialog
+ final File start = new File(start_dir);
final JFileChooser chooser = new JFileChooser(start);
// set multiple selection, if applicable
--
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.