Squiz Matrix  4.12.2
 All Data Structures Namespaces Functions Variables Pages
OpenDialog.java
1 package ij.io;
2 import ij.*;
3 import ij.gui.*;
4 import ij.plugin.frame.Recorder;
5 import ij.util.Java2;
6 import java.awt.*;
7 import java.io.*;
8 import javax.swing.*;
9 import javax.swing.filechooser.*;
10 
13  public class OpenDialog {
14 
15  private String dir;
16  private String name;
17  private boolean recordPath;
18  private static String defaultDirectory;
19  private static Frame sharedFrame;
20  private String title;
21 
26  public OpenDialog(String title, String path) {
27  if (path==null || path.equals("")) {
28  jOpen(title, getDefaultDirectory(), null);
29  if (name!=null) defaultDirectory = dir;
30  this.title = title;
31  recordPath = true;
32  } else {
33  decodePath(path);
34  }
35  IJ.register(OpenDialog.class);
36  }
37 
40  public OpenDialog(String title, String defaultDir, String defaultName) {
41  String path = null;
42  if (path!=null)
43  decodePath(path);
44  else {
45  jOpen(title, defaultDir, defaultName);
46  this.title = title;
47  recordPath = true;
48  }
49  }
50 
51  // Uses the JFileChooser class to display the dialog box
52  void jOpen(String title, String path, String fileName) {
54  JFileChooser fc = new JFileChooser();
55  File fdir = null;
56  if (path!=null)
57  fdir = new File(path);
58  if (fdir!=null)
59  fc.setCurrentDirectory(fdir);
60  if (fileName!=null)
61  fc.setSelectedFile(new File(fileName));
62  int returnVal = fc.showOpenDialog(null);
63  if (returnVal!=JFileChooser.APPROVE_OPTION)
64  { return;}
65  File file = fc.getSelectedFile();
66  if (file==null)
67  { return;}
68  name = file.getName();
69  dir = fc.getCurrentDirectory().getPath()+File.separator;
70  }
71 
72 
73  void decodePath(String path) {
74  int i = path.lastIndexOf('/');
75  if (i==-1)
76  i = path.lastIndexOf('\\');
77  if (i>0) {
78  dir = path.substring(0, i+1);
79  name = path.substring(i+1);
80  } else {
81  dir = "";
82  name = path;
83  }
84  }
85 
87  public String getDirectory() {
88  return dir;
89  }
90 
92  public String getFileName() {
93  if (Recorder.record && recordPath)
94  Recorder.recordPath(title, dir+name);
95  return name;
96  }
97 
99  public static String getDefaultDirectory() {
100  if (defaultDirectory==null)
101  defaultDirectory = Prefs.getString(Prefs.DIR_IMAGE);
102  return defaultDirectory;
103  }
104 
105  public static void setDefaultDirectory(String defaultDir) {
106  defaultDirectory = defaultDir;
107  IJ.register(OpenDialog.class);
108  }
109 
110 }