KickJava   Java API By Example, From Geeks To Geeks.

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


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 import java.util.Iterator JavaDoc;
12 import java.util.Vector JavaDoc;
13
14 import javax.swing.BorderFactory JavaDoc;
15 import javax.swing.BoxLayout JavaDoc;
16 import javax.swing.ButtonGroup JavaDoc;
17 import javax.swing.ImageIcon JavaDoc;
18 import javax.swing.JButton JavaDoc;
19 import javax.swing.JFrame JavaDoc;
20 import javax.swing.JPanel JavaDoc;
21 import javax.swing.JRadioButton JavaDoc;
22 import javax.swing.JTextArea JavaDoc;
23 import javax.swing.SwingConstants JavaDoc;
24 import javax.swing.border.BevelBorder JavaDoc;
25 import javax.swing.border.TitledBorder JavaDoc;
26
27 import org.apache.tools.ant.BuildException;
28 import org.apache.tools.ant.input.InputHandler;
29 import org.apache.tools.ant.input.InputRequest;
30 import org.apache.tools.ant.input.MultipleChoiceInputRequest;
31
32 import uk.ac.roe.antigen.utils.Config;
33
34  
35 public class RadioPropertyInputHandler extends javax.swing.JDialog JavaDoc implements
36         InputHandler {
37     private JRadioButton JavaDoc propertyValue2;
38
39     private JRadioButton JavaDoc propertyValue1;
40
41     private JPanel JavaDoc propertyValuesPnl;
42
43     private JPanel JavaDoc jPanel3;
44
45     private JButton JavaDoc okBtn;
46
47     private JTextArea JavaDoc propertyNameLbl;
48
49     private JPanel JavaDoc jPanel2;
50
51     private String JavaDoc chosen;
52     private JPanel JavaDoc jPanel1;
53
54     /**
55      * Auto-generated main method to display this JDialog
56      */

57     public static void main(String JavaDoc[] args) {
58         Config.load("/config.properties");
59         JFrame JavaDoc frame = new JFrame JavaDoc();
60         frame.setVisible(true);
61         RadioPropertyInputHandler inst = new RadioPropertyInputHandler(frame);
62         inst.setVisible(true);
63     }
64
65     public RadioPropertyInputHandler(JFrame JavaDoc frame) {
66         super(frame);
67         initGUI();
68     }
69
70     private void initGUI() {
71         try {
72             setSize(600, 250);
73             setUndecorated(true);
74             {
75                 jPanel2 = new JPanel JavaDoc();
76                 this.getContentPane().add(jPanel2, BorderLayout.CENTER);
77                 BorderLayout JavaDoc jPanel2Layout = new BorderLayout JavaDoc();
78                 jPanel2.setOpaque(false);
79                 jPanel2.setLayout(jPanel2Layout);
80                 {
81                     jPanel3 = new JPanel JavaDoc();
82                     jPanel2.add(jPanel3, BorderLayout.SOUTH);
83                     FlowLayout JavaDoc jPanel3Layout = new FlowLayout JavaDoc();
84                     jPanel3.setOpaque(false);
85                     jPanel3.setLayout(jPanel3Layout);
86                     {
87                         okBtn = new JButton JavaDoc();
88                         jPanel3.add(okBtn);
89                         okBtn.setText("Next");
90                         okBtn.setIcon(new ImageIcon JavaDoc(getClass().getClassLoader().getResource("img/rightarrow.png")));
91                         okBtn.addActionListener(new ActionListener JavaDoc() {
92                             public void actionPerformed(ActionEvent JavaDoc evt) {
93                                 okPressed = true;
94                             }
95                         });
96                     }
97                 }
98                 {
99                     jPanel1 = new JPanel JavaDoc();
100                     jPanel2.add(jPanel1, BorderLayout.CENTER);
101                     BoxLayout JavaDoc jPanel1Layout = new BoxLayout JavaDoc(jPanel1, BoxLayout.PAGE_AXIS);
102                     String JavaDoc borderTitle = Config.getProperty("antigen.dialog.bordertitle","antigen");
103                     jPanel1.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)));
104                     jPanel1.setLayout(jPanel1Layout);
105                     {
106                         propertyNameLbl = new JTextArea JavaDoc();
107                         propertyNameLbl.setWrapStyleWord(true);
108                         propertyNameLbl.setLineWrap(true);
109                         jPanel1.add(propertyNameLbl);
110                         propertyNameLbl.setText("property name very long very long very long very long very longvery long very long very long very long very long");
111                         propertyNameLbl.setFont(new java.awt.Font JavaDoc(
112                             "Dialoginput",
113                             0,
114                             12));
115                         propertyNameLbl.setOpaque(false);
116                         propertyNameLbl.setSize(580, 2);
117                         propertyNameLbl.setEditable(false);
118                     }
119                     {
120                         propertyValuesPnl = new JPanel JavaDoc();
121                         jPanel1.add(propertyValuesPnl);
122                         GridLayout JavaDoc jPanel4Layout = new GridLayout JavaDoc(2, 1);
123                         propertyValuesPnl.setOpaque(false);
124                         jPanel4Layout.setColumns(1);
125                         jPanel4Layout.setRows(2);
126                         propertyValuesPnl.setLayout(jPanel4Layout);
127                         {
128                             propertyValue1 = new JRadioButton JavaDoc();
129                             propertyValuesPnl.add(propertyValue1);
130                             propertyValue1
131                                 .setText("value1 very long very long very long");
132                             propertyValue1.setBounds(155, 10, 60, 30);
133                             propertyValue1.setOpaque(false);
134                             propertyValue1.setSelected(true);
135                         }
136                         {
137                             propertyValue2 = new JRadioButton JavaDoc();
138                             propertyValuesPnl.add(propertyValue2);
139                             propertyValue2.setText("value2");
140                             propertyValue2.setOpaque(false);
141                             propertyValue2
142                                 .setHorizontalAlignment(SwingConstants.CENTER);
143                             propertyValue2
144                                 .setHorizontalTextPosition(SwingConstants.LEADING);
145                         }
146                     }
147                 }
148             }
149         } catch (Exception JavaDoc e) {
150             e.printStackTrace();
151         }
152         this.setLocation(getDialogLocation().width, getDialogLocation().height);
153     }
154
155     boolean okPressed = false;
156
157     /*
158      * (non-Javadoc)
159      *
160      * @see org.apache.tools.ant.input.InputHandler#handleInput(org.apache.tools.ant.input.InputRequest)
161      */

162     public void handleInput(InputRequest requestIn) throws BuildException {
163
164         MultipleChoiceInputRequest request = (MultipleChoiceInputRequest) requestIn; //should
165
// be
166
// true
167

168         okPressed = false;
169
170         Vector JavaDoc choices = request.getChoices();
171         String JavaDoc def = request.getDefault();
172
173         propertyValuesPnl.removeAll();
174         propertyValuesPnl.setLayout(new GridLayout JavaDoc(choices.size(), 1));
175         ButtonGroup JavaDoc buttonGroup1 = new ButtonGroup JavaDoc();
176         Iterator JavaDoc it = choices.iterator();
177         while (it.hasNext()) {
178             final String JavaDoc choice = (String JavaDoc) it.next();
179             JRadioButton JavaDoc button = new JRadioButton JavaDoc();
180             button.addActionListener(new ActionListener JavaDoc() {
181                 public void actionPerformed(ActionEvent JavaDoc evt) {
182                     chosen = choice;
183                 }
184             });
185             button.setLabel(choice);
186
187             if (choice.equals(def)) {
188                 button.setSelected(true);
189             }
190             buttonGroup1.add(button);
191             propertyValuesPnl.add(button);
192         }
193
194         //this.pack();
195
this.setVisible(true);
196         propertyNameLbl.setText(request.getPrompt());
197         while (!okPressed) {
198             try {
199                 Thread.sleep(100);
200             } catch (InterruptedException JavaDoc ie) {
201             }
202         }
203
204         requestIn.setInput(chosen);
205         this.setVisible(false);
206     }
207     private Dimension JavaDoc getDialogLocation() {
208         //@TODO refactor to a superclass?
209
Dimension JavaDoc screenDim = Toolkit.getDefaultToolkit().getScreenSize();
210         Dimension JavaDoc dlgInputDim = this.getSize();
211         Dimension JavaDoc splashDim = getOwner().getSize();
212         Point JavaDoc splashLoc = getOwner().getLocationOnScreen();
213         
214         int dlgInputX = (int)
215             ((screenDim.getWidth() - dlgInputDim.getWidth()) / 2);
216         int dlgInputY = (int)
217             splashLoc.y+splashDim.height;
218         return new Dimension JavaDoc(dlgInputX, dlgInputY);
219     }
220  }
Popular Tags