KickJava   Java API By Example, From Geeks To Geeks.

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


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.GridBagConstraints JavaDoc;
7 import java.awt.GridBagLayout JavaDoc;
8 import java.awt.Insets JavaDoc;
9 import java.awt.Point JavaDoc;
10 import java.awt.Toolkit JavaDoc;
11 import java.awt.event.ActionEvent JavaDoc;
12 import java.awt.event.ActionListener JavaDoc;
13
14 import javax.swing.BorderFactory JavaDoc;
15 import javax.swing.BoxLayout JavaDoc;
16 import javax.swing.ImageIcon JavaDoc;
17 import javax.swing.JButton JavaDoc;
18 import javax.swing.JFrame JavaDoc;
19 import javax.swing.JPanel JavaDoc;
20 import javax.swing.JTextArea JavaDoc;
21 import javax.swing.JTextField JavaDoc;
22 import javax.swing.border.BevelBorder JavaDoc;
23 import javax.swing.border.TitledBorder JavaDoc;
24
25 import org.apache.tools.ant.BuildException;
26 import org.apache.tools.ant.input.InputHandler;
27 import org.apache.tools.ant.input.InputRequest;
28
29 import uk.ac.roe.antigen.utils.Config;
30 public abstract class AbstractFilePropertyInputHandler extends javax.swing.JDialog JavaDoc implements InputHandler {
31     JTextField JavaDoc propertyValueTxt;
32     private JPanel JavaDoc jPanel1;
33     private JButton JavaDoc browseBtn;
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     
42     public AbstractFilePropertyInputHandler(JFrame JavaDoc frame) {
43         super(frame);
44         initGUI();
45     }
46     
47     private void initGUI() {
48         try {
49             setUndecorated(true);
50             setSize(600, 180);
51             {
52                 jPanel2 = new JPanel JavaDoc();
53                 this.getContentPane().add(jPanel2, BorderLayout.CENTER);
54                 BorderLayout JavaDoc jPanel2Layout = new BorderLayout JavaDoc();
55                 jPanel2.setLayout(jPanel2Layout);
56                 {
57                     jPanel3 = new JPanel JavaDoc();
58                     jPanel2.add(jPanel3, BorderLayout.SOUTH);
59                     FlowLayout JavaDoc jPanel3Layout = new FlowLayout JavaDoc();
60                     jPanel3.setOpaque(false);
61                     jPanel3.setLayout(jPanel3Layout);
62                     {
63                         okBtn = new JButton JavaDoc();
64                         jPanel3.add(okBtn);
65                         okBtn.setText("Next");
66                         okBtn.setIcon(new ImageIcon JavaDoc(getClass().getClassLoader().getResource("img/rightarrow.png")));
67                         okBtn.addActionListener(new ActionListener JavaDoc() {
68                             public void actionPerformed(ActionEvent JavaDoc evt) {
69                                 okPressed = true;
70                             }
71                         });
72                     }
73                 }
74                 {
75                     jPanel4 = new JPanel JavaDoc();
76                     BoxLayout JavaDoc jPanel4Layout = new BoxLayout JavaDoc(jPanel4, BoxLayout.PAGE_AXIS);
77                     String JavaDoc borderTitle = Config.getProperty("antigen.dialog.bordertitle","antigen");
78                     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)));
79                     jPanel4.setLayout(jPanel4Layout);
80                     jPanel2.add(jPanel4, BorderLayout.CENTER);
81                     {
82                         propertyNameLbl = new JTextArea JavaDoc();
83                         jPanel4.add(propertyNameLbl);
84                         propertyNameLbl.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");
85                         propertyNameLbl.setFont(new java.awt.Font JavaDoc("Dialoginput",0,12));
86                         propertyNameLbl.setEditable(false);
87                         propertyNameLbl.setOpaque(false);
88                         propertyNameLbl.setLineWrap(true);
89                         propertyNameLbl.setWrapStyleWord(true);
90                     }
91                     {
92                         propertyValueTxt = new JTextField JavaDoc();
93
94                         propertyValueTxt.setText("");
95                         propertyValueTxt.setBorder(BorderFactory
96                             .createBevelBorder(
97                                 BevelBorder.LOWERED,
98                                 null,
99                                 null,
100                                 null,
101                                 null));
102                         propertyValueTxt
103                             .addActionListener(new ActionListener JavaDoc() {
104                                 public void actionPerformed(ActionEvent JavaDoc evt) {
105                                     okPressed = true;
106                                 }
107                             });
108
109                         browseBtn = new JButton JavaDoc();
110
111                         browseBtn.setText("Browse...");
112
113                         browseBtn.addActionListener(getBrowseButtonListener());
114                         
115                         jPanel1 = new JPanel JavaDoc();
116                         jPanel4.add(jPanel1);
117                         
118                         GridBagLayout JavaDoc gridbag = new GridBagLayout JavaDoc();
119                         GridBagConstraints JavaDoc c = new GridBagConstraints JavaDoc();
120                         
121                         jPanel1.setLayout(gridbag);
122
123                         c.insets = new Insets JavaDoc(2,2,2,2);
124                         c.fill = GridBagConstraints.HORIZONTAL;
125                         c.weightx = 1.0;
126                        // c.weighty = 1.0;
127
c.gridx = 0;
128                         c.gridwidth = 1;
129                         gridbag.setConstraints(propertyValueTxt,c);
130                         jPanel1.add(propertyValueTxt);
131                         
132                         c.fill = GridBagConstraints.NONE;
133                         c.weightx = 0.0;
134                         c.gridx = 1;
135                         c.gridwidth = 1;
136                         gridbag.setConstraints(browseBtn,c);
137                         jPanel1.add(browseBtn);
138                         
139                                                 
140                     }
141                 }
142             }
143         } catch (Exception JavaDoc e) {
144             e.printStackTrace();
145         }
146         this.setLocation(getDialogLocation().width, getDialogLocation().height);
147     }
148
149     /**
150      * @return
151      */

152     protected abstract ActionListener JavaDoc getBrowseButtonListener();
153
154     boolean okPressed = false;
155
156     /* (non-Javadoc)
157      * @see org.apache.tools.ant.input.InputHandler#handleInput(org.apache.tools.ant.input.InputRequest)
158      */

159     public void handleInput(InputRequest arg0) throws BuildException {
160         okPressed = false;
161         this.setVisible(true);
162         propertyNameLbl.setText(arg0.getPrompt().trim());
163         propertyValueTxt.setText(arg0.getDefault());
164         while (!okPressed) {
165             try {
166                 Thread.sleep(100);
167             } catch (InterruptedException JavaDoc ie) {}
168         }
169         arg0.setInput(propertyValueTxt.getText());
170         this.setVisible(false);
171         this.dispose(); //That's me done
172
}
173
174     /**
175      * Calculates the desired location of the dialog on the screen.
176      * By default it is in the center of the screen.
177      *
178      * @return the desired location of the dialog on the screen
179      */

180     private Dimension JavaDoc getDialogLocation() {
181         //@TODO refactor to a superclass?
182
Dimension JavaDoc screenDim = Toolkit.getDefaultToolkit().getScreenSize();
183         Dimension JavaDoc dlgInputDim = this.getSize();
184         Dimension JavaDoc splashDim = getOwner().getSize();
185         Point JavaDoc splashLoc = getOwner().getLocationOnScreen();
186         
187         int dlgInputX = (int)
188             ((screenDim.getWidth() - dlgInputDim.getWidth()) / 2);
189         int dlgInputY = (int)
190             splashLoc.y+splashDim.height;
191         return new Dimension JavaDoc(dlgInputX, dlgInputY);
192     }
193
194 }
195
Popular Tags