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.

Reply via email to