Author: kono
Date: 2011-07-26 15:27:40 -0700 (Tue, 26 Jul 2011)
New Revision: 26278
Modified:
core3/swing-util-api/trunk/src/main/java/org/cytoscape/util/swing/internal/FileUtilImpl.java
core3/work-swing-impl/trunk/impl/src/main/java/org/cytoscape/work/internal/tunables/FileHandler.java
Log:
fixes #283 Mac uses FileDialog instead of JFileChooser.
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-26 22:21:00 UTC (rev 26277)
+++
core3/swing-util-api/trunk/src/main/java/org/cytoscape/util/swing/internal/FileUtilImpl.java
2011-07-26 22:27:40 UTC (rev 26278)
@@ -41,7 +41,6 @@
import javax.swing.JFileChooser;
import javax.swing.JOptionPane;
-import javax.swing.filechooser.FileFilter;
import org.cytoscape.property.CyProperty;
import org.cytoscape.util.swing.FileChooserFilter;
@@ -108,56 +107,50 @@
* {@inheritDoc}
*/
@Override
- 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)
- {
+ 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!");
if (start_dir == null)
- start_dir =
coreProperties.getProperty(FileUtil.LAST_DIRECTORY,
-
System.getProperty("user.dir"));
+ start_dir =
coreProperties.getProperty(FileUtil.LAST_DIRECTORY,
System.getProperty("user.dir"));
- String osName = System.getProperty("os.name");
-
+ final String osName = System.getProperty("os.name");
+
if (osName.startsWith("Mac")) {
// This is a Macintosh, use the AWT style file dialog
- String fileDialogForDirectories =
System.getProperty("apple.awt.fileDialogForDirectories");
+ final 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;
- }
+ 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.setModal(true);
+ 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
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-07-26 22:21:00 UTC (rev 26277)
+++
core3/work-swing-impl/trunk/impl/src/main/java/org/cytoscape/work/internal/tunables/FileHandler.java
2011-07-26 22:27:40 UTC (rev 26278)
@@ -1,9 +1,7 @@
package org.cytoscape.work.internal.tunables;
-import java.awt.FileDialog;
import java.awt.Font;
-import java.awt.Frame;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
@@ -12,16 +10,14 @@
import java.io.File;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
-import java.util.List;
import java.util.ArrayList;
-import java.util.Properties;
+import java.util.List;
import javax.swing.GroupLayout;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JLabel;
-import javax.swing.JOptionPane;
import javax.swing.JSeparator;
import javax.swing.JTextField;
import javax.swing.LayoutStyle;
@@ -33,6 +29,8 @@
import org.cytoscape.work.Tunable;
import org.cytoscape.work.internal.tunables.utils.SupportedFileTypesManager;
import org.cytoscape.work.swing.AbstractGUITunableHandler;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
/**
@@ -41,6 +39,11 @@
* @author pasteur
*/
public class FileHandler extends AbstractGUITunableHandler {
+
+ private static final Logger logger =
LoggerFactory.getLogger(FileHandler.class);
+
+ private static final Font FILE_NAME_FONT = new Font("SansSerif",
Font.PLAIN, 10);
+
private final FileUtil fileUtil;
private JButton chooseButton;
@@ -68,20 +71,16 @@
* @param fileTypesManager
*/
public FileHandler(final Field field, final Object obj, final Tunable t,
- final SupportedFileTypesManager fileTypesManager,
- final FileUtil fileUtil)
- {
+ final SupportedFileTypesManager fileTypesManager, final
FileUtil fileUtil) {
super(field, obj, t);
this.fileTypesManager = fileTypesManager;
this.fileUtil = fileUtil;
init(fileTypesManager);
}
- public FileHandler(final Method getter, final Method setter, final
Object instance,
- final Tunable tunable,
- final SupportedFileTypesManager fileTypesManager,
- final FileUtil fileUtil)
- {
+
+ public FileHandler(final Method getter, final Method setter, final
Object instance, final Tunable tunable,
+ final SupportedFileTypesManager fileTypesManager, final
FileUtil fileUtil) {
super(getter, setter, instance, tunable);
this.fileTypesManager = fileTypesManager;
this.fileUtil = fileUtil;
@@ -197,20 +196,19 @@
//"All network files" when export image
or network
FileChooserFilter filter = null;
for (int i=0; i<filters.size(); i++){
- filter =
(FileChooserFilter)filters.get(i);
+ filter = filters.get(i);
if
(filter.getDescription().trim().equalsIgnoreCase("All image files") ||
filter.getDescription().trim().equalsIgnoreCase("All network files")){
- filters = new
ArrayList();
+ filters = new
ArrayList<FileChooserFilter>();
filters.add(filter);
break;
}
}
}
- final File file =
fileUtil.getFile(SwingUtilities.getWindowAncestor(panel),
- titleLabel.getText(),
load_or_save, filters);
+ final File file =
fileUtil.getFile(SwingUtilities.getWindowAncestor(panel), titleLabel.getText(),
load_or_save, filters);
if (file != null) {
- fileTextField.setFont(new Font(null,
Font.PLAIN, 10));
+ fileTextField.setFont(FILE_NAME_FONT);
fileTextField.setText(file.getAbsolutePath());
fileTextField.removeMouseListener(mouseClick);
}
@@ -218,23 +216,6 @@
}
}
- private static String getFileExtension(final String fileName) {
- final int lastDotPos = fileName.lastIndexOf('.');
- if (lastDotPos == -1 || lastDotPos == fileName.length() - 1)
- return null;
-
- return fileName.substring(lastDotPos + 1);
- }
-
- private static String addFileExtension(final String fileName, final
String extension) {
- if (fileName.isEmpty())
- throw new IllegalArgumentException("\"fileName\" must
not be empty!");
- if (fileName.endsWith("."))
- return fileName + extension;
- else
- return fileName + "." + extension;
- }
-
//click on the field : removes its initial text
private class MouseClick extends MouseAdapter implements MouseListener{
JComponent component;
--
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.