KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > jimm > datavision > gui > AskStringDialog


1 package jimm.datavision.gui;
2 import jimm.util.I18N;
3 import java.awt.BorderLayout JavaDoc;
4 import java.awt.event.ActionListener JavaDoc;
5 import java.awt.event.ActionEvent JavaDoc;
6 import java.awt.event.WindowAdapter JavaDoc;
7 import java.awt.event.WindowEvent JavaDoc;
8 import javax.swing.*;
9
10 /**
11  * A modal dialog used to ask the user for a simple string like a
12  * formula or parameter name.
13  *
14  * @author Jim Menard, <a HREF="mailto:jimm@io.com">jimm@io.com</a>
15  */

16 public class AskStringDialog extends JDialog implements ActionListener JavaDoc {
17
18 protected static final int TEXT_FIELD_COLUMNS = 24;
19
20 protected String JavaDoc string;
21 protected JTextField stringField;
22
23 /**
24  * Constructor.
25  *
26  * @param frame parent frame
27  * @param title window title
28  * @param label string field label
29  */

30 public AskStringDialog(java.awt.Frame JavaDoc frame, String JavaDoc title, String JavaDoc label) {
31     this(frame, title, label, "");
32 }
33
34 /**
35  * Constructor.
36  *
37  * @param frame parent frame
38  * @param title window title
39  * @param label string field label
40  * @param initialString initial string value
41  */

42 public AskStringDialog(java.awt.Frame JavaDoc frame, String JavaDoc title, String JavaDoc label,
43                String JavaDoc initialString) {
44     super((java.awt.Frame JavaDoc)null, title, true); // Modal
45
buildWindow(title, label, initialString);
46     pack();
47     setVisible(true);
48 }
49
50 /**
51  * Returns string (or <code>null</code> if user hit Cancel).
52  *
53  * @return string (or <code>null</code> if user cancelled)
54  */

55 public String JavaDoc getString() { return string; }
56
57 /**
58  * Builds window GUI.
59  *
60  * @param title window title
61  * @param labelString string field label
62  * @param initialString initial value of string
63  */

64 protected void buildWindow(String JavaDoc title, String JavaDoc labelString,
65                String JavaDoc initialString)
66 {
67     getContentPane().setLayout(new BorderLayout JavaDoc());
68
69     EditFieldLayout efl = new EditFieldLayout();
70     stringField =
71     efl.addTextField(labelString, initialString, TEXT_FIELD_COLUMNS);
72
73     // OK and Cancel buttons
74
JPanel buttonPanel = new JPanel();
75     JButton button;
76
77     buttonPanel.add(button = new JButton(I18N.get("GUI.ok")));
78     button.addActionListener(this);
79     button.setDefaultCapable(true);
80     getRootPane().setDefaultButton(button);
81
82     buttonPanel.add(button = new JButton(I18N.get("GUI.cancel")));
83     button.addActionListener(this);
84
85     getContentPane().add(efl.getPanel(), BorderLayout.CENTER);
86     getContentPane().add(buttonPanel, BorderLayout.SOUTH);
87
88     addWindowListener(new WindowAdapter JavaDoc() {
89     public void windowClosing(WindowEvent JavaDoc e) {
90         dispose();
91     }
92     });
93
94     new FocusSetter(stringField);
95 }
96
97 /**
98  * Handles the buttons.
99  *
100  * @param e action event
101  */

102 public void actionPerformed(ActionEvent JavaDoc e) {
103     String JavaDoc cmd = e.getActionCommand();
104     if (I18N.get("GUI.ok").equals(cmd)) {
105     string = new String JavaDoc(stringField.getText());
106     dispose();
107     }
108     else if (I18N.get("GUI.cancel").equals(cmd)) {
109     dispose();
110     }
111 }
112
113 }
114
Popular Tags