KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > uk > ac > roe > antigen > dialogs > TextPropertyInputHandler


1 package uk.ac.roe.antigen.dialogs;
2
3 import java.awt.BorderLayout JavaDoc;
4 import java.awt.Dimension JavaDoc;
5 import java.awt.FlowLayout JavaDoc;
6 import java.awt.GridLayout JavaDoc;
7 import java.awt.Point JavaDoc;
8 import java.awt.Toolkit JavaDoc;
9 import java.awt.event.ActionEvent JavaDoc;
10 import java.awt.event.ActionListener JavaDoc;
11
12 import javax.swing.BorderFactory JavaDoc;
13 import javax.swing.BoxLayout JavaDoc;
14 import javax.swing.ImageIcon JavaDoc;
15 import javax.swing.JButton JavaDoc;
16 import javax.swing.JFrame JavaDoc;
17 import javax.swing.JPanel JavaDoc;
18 import javax.swing.JTextArea JavaDoc;
19 import javax.swing.JTextField JavaDoc;
20 import javax.swing.border.BevelBorder JavaDoc;
21 import javax.swing.border.TitledBorder JavaDoc;
22
23 import org.apache.tools.ant.BuildException;
24 import org.apache.tools.ant.input.InputHandler;
25 import org.apache.tools.ant.input.InputRequest;
26 import org.apache.tools.ant.taskdefs.optional.net.SetProxy;
27
28 import uk.ac.roe.antigen.utils.Config;
29
30
31 public class TextPropertyInputHandler extends javax.swing.JDialog JavaDoc implements InputHandler {
32     private JTextField JavaDoc propertyValueTxt;
33     private JPanel JavaDoc jPanel1;
34     private JPanel JavaDoc jPanel4;
35     private JTextArea JavaDoc propertyNameLbl;
36     private JPanel JavaDoc jPanel3;
37     private JButton JavaDoc okBtn;
38     private JPanel JavaDoc jPanel2;
39
40     /**
41     * Auto-generated main method to display this JDialog
42     */

43     public static void main(String JavaDoc[] args) {
44         JFrame JavaDoc frame = new JFrame JavaDoc();
45         frame.setVisible(true);
46         TextPropertyInputHandler inst = new TextPropertyInputHandler(frame);
47         inst.setVisible(true);
48     }
49     
50     public TextPropertyInputHandler(JFrame JavaDoc frame) {
51         super(frame);
52         initGUI();
53     }
54     
55     private void initGUI() {
56         try {
57             setSize(600, 150);
58             setUndecorated(true);
59             {
60                 jPanel2 = new JPanel JavaDoc();
61                 this.getContentPane().add(jPanel2, BorderLayout.CENTER);
62                 BorderLayout JavaDoc jPanel2Layout = new BorderLayout JavaDoc();
63                 jPanel2.setLayout(jPanel2Layout);
64                 {
65                     jPanel3 = new JPanel JavaDoc();
66                     jPanel2.add(jPanel3, BorderLayout.SOUTH);
67                     FlowLayout JavaDoc jPanel3Layout = new FlowLayout JavaDoc();
68                     jPanel3.setOpaque(false);
69                     jPanel3.setLayout(jPanel3Layout);
70                     {
71                         okBtn = new JButton JavaDoc();
72                         jPanel3.add(okBtn);
73                         okBtn.setText("Next");
74                         okBtn.setIcon(new ImageIcon JavaDoc(getClass().getClassLoader().getResource("img/rightarrow.png")));
75                         okBtn.addActionListener(new ActionListener JavaDoc() {
76                             public void actionPerformed(ActionEvent JavaDoc evt) {
77                                 okPressed = true;
78                             }
79                         });
80                     }
81                 }
82                 {
83                     jPanel4 = new JPanel JavaDoc();
84                     BoxLayout JavaDoc jPanel4Layout = new BoxLayout JavaDoc(jPanel4,BoxLayout.PAGE_AXIS);
85                     String JavaDoc borderTitle = Config.getProperty("antigen.dialog.bordertitle","antigen");
86                     jPanel4.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(BevelBorder.RAISED, null, null), borderTitle, TitledBorder.LEADING, TitledBorder.TOP, new java.awt.Font JavaDoc("Eurostile",0,12), new java.awt.Color JavaDoc(0,0,255)));
87                     jPanel4.setLayout(jPanel4Layout);
88                     jPanel2.add(jPanel4, BorderLayout.CENTER);
89                     {
90                         propertyNameLbl = new JTextArea JavaDoc();
91                         jPanel4.add(propertyNameLbl);
92                         propertyNameLbl.setLineWrap(true);
93                         propertyNameLbl.setWrapStyleWord(true);
94                         propertyNameLbl
95                             .setText("message very long very long very long very long very long very long very long very long very long very long very long very long very long very long very long very long very long");
96                         propertyNameLbl.setFont(new java.awt.Font JavaDoc(
97                             "Dialoginput",
98                             0,
99                             12));
100                         propertyNameLbl.setOpaque(false);
101                         propertyNameLbl.setEditable(false);
102                         propertyNameLbl.setAutoscrolls(true);
103                     }
104                     {
105                         jPanel1 = new JPanel JavaDoc();
106                         GridLayout JavaDoc jPanel1Layout = new GridLayout JavaDoc(1, 1);
107                         jPanel1.setLayout(jPanel1Layout);
108                         jPanel4.add(jPanel1);
109                         {
110                             propertyValueTxt = new JTextField JavaDoc();
111                             jPanel1.add(propertyValueTxt);
112                             propertyValueTxt
113                                 .setText("01234567890123456789012345678901234567890123401234567890123456890123456789");
114                             propertyValueTxt.setBorder(BorderFactory
115                                 .createBevelBorder(
116                                     BevelBorder.LOWERED,
117                                     null,
118                                     null,
119                                     null,
120                                     null));
121                             propertyValueTxt
122                                 .addActionListener(new ActionListener JavaDoc() {
123                                     public void actionPerformed(ActionEvent JavaDoc evt) {
124                                         okPressed = true;
125                                     }
126                                 });
127                         }
128                     }
129                 }
130             }
131         } catch (Exception JavaDoc e) {
132             e.printStackTrace();
133         }
134         this.setLocation(getDialogLocation().width, getDialogLocation().height);
135     }
136
137     boolean okPressed = false;
138     /* (non-Javadoc)
139      * @see org.apache.tools.ant.input.InputHandler#handleInput(org.apache.tools.ant.input.InputRequest)
140      */

141     public void handleInput(InputRequest arg0) throws BuildException {
142         okPressed = false;
143         this.setVisible(true);
144         propertyNameLbl.setText(arg0.getPrompt().trim());
145         propertyValueTxt.setText(arg0.getDefault());
146         while (!okPressed) {
147             try {
148                 Thread.sleep(100);
149             } catch (InterruptedException JavaDoc ie) {}
150         }
151         arg0.setInput(propertyValueTxt.getText());
152         this.setVisible(false);
153         this.dispose(); //That's me done
154
}
155
156     /**
157      * Calculates the desired location of the dialog on the screen.
158      * By default it is in the center of the screen.
159      *
160      * @return the desired location of the dialog on the screen
161      */

162     private Dimension JavaDoc getDialogLocation() {
163         //@TODO refactor to a superclass?
164
Dimension JavaDoc screenDim = Toolkit.getDefaultToolkit().getScreenSize();
165         Dimension JavaDoc dlgInputDim = this.getSize();
166         Dimension JavaDoc splashDim = getOwner().getSize();
167         Point JavaDoc splashLoc = getOwner().getLocationOnScreen();
168         
169         int dlgInputX = (int)
170             ((screenDim.getWidth() - dlgInputDim.getWidth()) / 2);
171         int dlgInputY = (int)
172             splashLoc.y+splashDim.height;
173         return new Dimension JavaDoc(dlgInputX, dlgInputY);
174     }
175
176 }
177
Popular Tags