You are viewing a plain text version of this content. The canonical link for it is here.
Posted to batik-commits@xmlgraphics.apache.org by ca...@apache.org on 2007/02/07 04:39:39 UTC

svn commit: r504426 - in /xmlgraphics/batik/trunk: resources/org/apache/batik/apps/svgbrowser/resources/GUI.properties sources/org/apache/batik/apps/svgbrowser/JSVGViewerFrame.java

Author: cam
Date: Tue Feb  6 19:39:38 2007
New Revision: 504426

URL: http://svn.apache.org/viewvc?view=rev&rev=504426
Log:
Use FileDialog instead of JFileChooser for Squiggle's Open dialog in OS X
(looks like the normal OS X open dialog).

Modified:
    xmlgraphics/batik/trunk/resources/org/apache/batik/apps/svgbrowser/resources/GUI.properties
    xmlgraphics/batik/trunk/sources/org/apache/batik/apps/svgbrowser/JSVGViewerFrame.java

Modified: xmlgraphics/batik/trunk/resources/org/apache/batik/apps/svgbrowser/resources/GUI.properties
URL: http://svn.apache.org/viewvc/xmlgraphics/batik/trunk/resources/org/apache/batik/apps/svgbrowser/resources/GUI.properties?view=diff&rev=504426&r1=504425&r2=504426
==============================================================================
--- xmlgraphics/batik/trunk/resources/org/apache/batik/apps/svgbrowser/resources/GUI.properties (original)
+++ xmlgraphics/batik/trunk/resources/org/apache/batik/apps/svgbrowser/resources/GUI.properties Tue Feb  6 19:39:38 2007
@@ -61,6 +61,7 @@
 #
 # Dialog Titles
 #
+Open.title = Open
 SaveAs.title  = Save as SVG
 ExportAsJPG.title  = Export as JPG
 ExportAsPNG.title  = Export as PNG

Modified: xmlgraphics/batik/trunk/sources/org/apache/batik/apps/svgbrowser/JSVGViewerFrame.java
URL: http://svn.apache.org/viewvc/xmlgraphics/batik/trunk/sources/org/apache/batik/apps/svgbrowser/JSVGViewerFrame.java?view=diff&rev=504426&r1=504425&r2=504426
==============================================================================
--- xmlgraphics/batik/trunk/sources/org/apache/batik/apps/svgbrowser/JSVGViewerFrame.java (original)
+++ xmlgraphics/batik/trunk/sources/org/apache/batik/apps/svgbrowser/JSVGViewerFrame.java Tue Feb  6 19:39:38 2007
@@ -24,6 +24,7 @@
 import java.awt.Dimension;
 import java.awt.Event;
 import java.awt.EventQueue;
+import java.awt.FileDialog;
 import java.awt.Font;
 import java.awt.Graphics2D;
 import java.awt.Rectangle;
@@ -44,6 +45,7 @@
 import java.awt.print.PrinterException;
 import java.io.BufferedOutputStream;
 import java.io.File;
+import java.io.FilenameFilter;
 import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
@@ -266,6 +268,11 @@
         = Resources.getString("JSVGViewerFrame.property.os.windows.prefix");
 
     /**
+     * Resource string name for the Open dialog.
+     */
+    protected static final String OPEN_TITLE = "Open.title";
+
+    /**
      * The input handlers
      */
     protected static Vector handlers;
@@ -1142,40 +1149,68 @@
         public OpenAction() {
         }
         public void actionPerformed(ActionEvent e) {
-            JFileChooser fileChooser = null;
-
-            // Apply work around Windows problem when security is enabled,
-            // and when prior to JDK 1.4.
-            String os = System.getProperty(PROPERTY_OS_NAME, PROPERTY_OS_NAME_DEFAULT);
-            SecurityManager sm = System.getSecurityManager();
-
-            if ( priorJDK1_4 && sm != null && os.indexOf(PROPERTY_OS_WINDOWS_PREFIX) != -1 ){
-                fileChooser = new JFileChooser(makeAbsolute(currentPath),
-                                               new WindowsAltFileSystemView());
+            File f = null;
+            if (Platform.isOSX) {
+                FileDialog fileDialog =
+                    new FileDialog(JSVGViewerFrame.this,
+                                   Resources.getString(OPEN_TITLE));
+                fileDialog.setFilenameFilter(new FilenameFilter() {
+                    public boolean accept(File dir, String name) {
+                        Iterator iter = getHandlers().iterator();
+                        while (iter.hasNext()) {
+                            SquiggleInputHandler handler
+                                = (SquiggleInputHandler)iter.next();
+                            if (handler.accept(new File(dir, name))) {
+                                return true;
+                            }
+                        }
+                        return false;
+                    }
+                });
+                fileDialog.setVisible(true);
+                String filename = fileDialog.getFile();
+                if (fileDialog != null) {
+                    String dirname = fileDialog.getDirectory();
+                    f = new File(dirname, filename);
+                }
             } else {
-                fileChooser = new JFileChooser(makeAbsolute(currentPath));
-            }
+                JFileChooser fileChooser = null;
 
-            fileChooser.setFileHidingEnabled(false);
-            fileChooser.setFileSelectionMode
-                (JFileChooser.FILES_ONLY);
-
-            //
-            // Add file filters from the handlers map
-            //
-            Iterator iter = getHandlers().iterator();
-            while (iter.hasNext()) {
-                SquiggleInputHandler handler
-                    = (SquiggleInputHandler)iter.next();
-                fileChooser.addChoosableFileFilter
-                    (new SquiggleInputHandlerFilter(handler));
-            }
+                // Apply work around Windows problem when security is enabled,
+                // and when prior to JDK 1.4.
+                String os = System.getProperty(PROPERTY_OS_NAME, PROPERTY_OS_NAME_DEFAULT);
+                SecurityManager sm = System.getSecurityManager();
+
+                if ( priorJDK1_4 && sm != null && os.indexOf(PROPERTY_OS_WINDOWS_PREFIX) != -1 ){
+                    fileChooser = new JFileChooser(makeAbsolute(currentPath),
+                                                   new WindowsAltFileSystemView());
+                } else {
+                    fileChooser = new JFileChooser(makeAbsolute(currentPath));
+                }
 
-            int choice = fileChooser.showOpenDialog(JSVGViewerFrame.this);
-            if (choice == JFileChooser.APPROVE_OPTION) {
-                File f = fileChooser.getSelectedFile();
+                fileChooser.setFileHidingEnabled(false);
+                fileChooser.setFileSelectionMode
+                    (JFileChooser.FILES_ONLY);
+
+                //
+                // Add file filters from the handlers map
+                //
+                Iterator iter = getHandlers().iterator();
+                while (iter.hasNext()) {
+                    SquiggleInputHandler handler
+                        = (SquiggleInputHandler)iter.next();
+                    fileChooser.addChoosableFileFilter
+                        (new SquiggleInputHandlerFilter(handler));
+                }
+
+                int choice = fileChooser.showOpenDialog(JSVGViewerFrame.this);
+                if (choice == JFileChooser.APPROVE_OPTION) {
+                    f = fileChooser.getSelectedFile();
+                    currentPath = f;
+                }
+            }
 
-                currentPath = f;
+            if (f != null) {
                 try {
                     String furl = f.toURL().toString();
                     showSVGDocument(furl);