]> source.dussan.org Git - tigervnc.git/commitdiff
Added filename filters to file chooser dialogs
authorBrian P. Hinz <bphinz@users.sf.net>
Mon, 29 Aug 2016 01:15:17 +0000 (21:15 -0400)
committerBrian P. Hinz <bphinz@users.sf.net>
Mon, 29 Aug 2016 01:15:17 +0000 (21:15 -0400)
java/com/tigervnc/vncviewer/Dialog.java
java/com/tigervnc/vncviewer/F8Menu.java
java/com/tigervnc/vncviewer/OptionsDialog.java
java/com/tigervnc/vncviewer/ServerDialog.java

index 4419159ebace6f7ded9f47b1b1988598d17f0356..6204ba10ac884ddc73138cb08434bbbdc3339cb9 100644 (file)
@@ -34,6 +34,7 @@ import java.awt.event.*;
 import java.io.File;
 import javax.swing.*;
 import javax.swing.border.*;
+import javax.swing.filechooser.*;
 import javax.swing.text.*;
 
 class Dialog extends JDialog implements ActionListener,
@@ -137,17 +138,29 @@ class Dialog extends JDialog implements ActionListener,
     return width + gap;
   }
 
-  public static File showChooser(String title, File defFile, Container c) {
+  public static File showChooser(String title, File defFile,
+                                 Container c, FileNameExtensionFilter f) {
     JFileChooser fc = new JFileChooser(defFile);
     fc.setDialogTitle(title);
     fc.setApproveButtonText("OK  \u21B5");
     fc.setFileHidingEnabled(false);
+    if (f != null)
+      fc.setFileFilter(f);
     if (fc.showOpenDialog(c) == JFileChooser.APPROVE_OPTION)
       return fc.getSelectedFile();
     else
       return null;
   }
 
+  public static File showChooser(String title, File defFile, Container c) {
+    return showChooser(title, defFile, c, null);
+  }
+
+  protected File showChooser(String title, File defFile,
+                             FileNameExtensionFilter f) {
+    return showChooser(title, defFile, this, f);
+  }
+
   protected File showChooser(String title, File defFile) {
     return showChooser(title, defFile, this);
   }
index 6aadb2d3e9cd517cc49d2b3e3875bcb2954f9e1e..d7f9e482ceb6862742063ab248e59234e3bbc21e 100644 (file)
@@ -23,6 +23,7 @@ import java.awt.*;
 import java.awt.Cursor;
 import java.awt.event.*;
 import java.io.File;
+import javax.swing.filechooser.*;
 import javax.swing.JCheckBoxMenuItem;
 import javax.swing.JDialog;
 import javax.swing.JFrame;
@@ -139,7 +140,9 @@ public class F8Menu extends JPopupMenu implements ActionListener {
            File dflt = new File(FileUtils.getVncHomeDir().concat("default.tigervnc"));
            if (!dflt.exists() || !dflt.isFile())
              dflt = new File(FileUtils.getVncHomeDir());
-           File f = Dialog.showChooser(title, dflt, this);
+      FileNameExtensionFilter filter =
+        new FileNameExtensionFilter("TigerVNC configuration (*.tigervnc)", "tigervnc");
+           File f = Dialog.showChooser(title, dflt, this, filter);
            while (f != null && f.exists() && f.isFile()) {
              String msg = f.getAbsolutePath();
              msg = msg.concat(" already exists. Do you want to overwrite?");
@@ -154,7 +157,7 @@ public class F8Menu extends JPopupMenu implements ActionListener {
              if (op.getValue() == options[0])
                break;
              else
-               f = Dialog.showChooser(title, f, this);
+               f = Dialog.showChooser(title, f, this, filter);
            }
            if (f != null && (!f.exists() || f.canWrite()))
              saveViewerParameters(f.getAbsolutePath(), vncServerName.getValue());
index 8d49a2e358ddc344a02cb3623dd0fc6d2b4a4192..4bcb7d8ae603447e98c85f2794ee2d814ba9c7d0 100644 (file)
@@ -27,6 +27,7 @@ import java.text.Format;
 import java.text.NumberFormat;
 import javax.swing.*;
 import javax.swing.border.*;
+import javax.swing.filechooser.*;
 import javax.swing.UIManager.*;
 import javax.swing.text.*;
 import java.util.*;
@@ -779,7 +780,9 @@ class OptionsDialog extends Dialog {
       public void actionPerformed(ActionEvent e) {
         JComponent c = ((JButton)e.getSource()).getRootPane();
         File dflt = new File(CSecurityTLS.X509CA.getValueStr());
-        File f = showChooser("Path to X509 CA certificate", dflt, c);
+        FileNameExtensionFilter filter =
+          new FileNameExtensionFilter("X.509 certificate", "crt", "cer", "pem");
+        File f = showChooser("Path to X509 CA certificate", dflt, c, filter);
         if (f != null && f.exists() && f.canRead())
           caInput.setText(f.getAbsolutePath());
       }
@@ -791,7 +794,9 @@ class OptionsDialog extends Dialog {
       public void actionPerformed(ActionEvent e) {
         JComponent c = ((JButton)e.getSource()).getRootPane();
         File dflt = new File(CSecurityTLS.X509CRL.getValueStr());
-        File f = showChooser("Path to X509 CRL file", dflt, c);
+        FileNameExtensionFilter filter =
+          new FileNameExtensionFilter("X.509 CRL", "crl");
+        File f = showChooser("Path to X509 CRL file", dflt, c, filter);
         if (f != null && f.exists() && f.canRead())
           crlInput.setText(f.getAbsolutePath());
       }
index 338e6266a2d3f3f0f4aa2f6306c73ea007670d52..4b3f26bf3b1ca09fe55792eb14e53301cf024140 100644 (file)
@@ -24,6 +24,7 @@ import java.awt.event.*;
 import java.io.File;
 import javax.swing.*;
 import javax.swing.border.*;
+import javax.swing.filechooser.*;
 import javax.swing.WindowConstants.*;
 import java.util.*;
 
@@ -221,7 +222,9 @@ class ServerDialog extends Dialog implements Runnable {
   private void handleLoad() {
     String title = "Select a TigerVNC configuration file";
     File dflt = new File(FileUtils.getVncHomeDir().concat("default.tigervnc"));
-    File f = showChooser(title, dflt);
+    FileNameExtensionFilter filter =
+      new FileNameExtensionFilter("TigerVNC configuration (*.tigervnc)", "tigervnc");
+    File f = showChooser(title, dflt, filter);
     if (f != null && f.exists() && f.canRead())
       loadViewerParameters(f.getAbsolutePath());
   }
@@ -231,7 +234,9 @@ class ServerDialog extends Dialog implements Runnable {
     File dflt = new File(FileUtils.getVncHomeDir().concat("default.tigervnc"));
     if (!dflt.exists() || !dflt.isFile())
       dflt = new File(FileUtils.getVncHomeDir());
-    File f = showChooser(title, dflt);
+    FileNameExtensionFilter filter =
+      new FileNameExtensionFilter("TigerVNC configuration (*.tigervnc)", "tigervnc");
+    File f = showChooser(title, dflt, filter);
     while (f != null && f.exists() && f.isFile()) {
       String msg = f.getAbsolutePath();
       msg = msg.concat(" already exists. Do you want to overwrite?");
@@ -246,7 +251,7 @@ class ServerDialog extends Dialog implements Runnable {
       if (op.getValue() == options[0])
         break;
       else
-        f = showChooser(title, f);
+        f = showChooser(title, f, filter);
     }
     if (f != null && (!f.exists() || f.canWrite()))
       saveViewerParameters(f.getAbsolutePath(), (String)server.getSelectedItem());