]> git.proxmox.com Git - mirror_edk2.git/blame_incremental - Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/packaging/ui/GenGuidDialog.java
changed variable names from textfieldsomething to somethingtextfield
[mirror_edk2.git] / Tools / Source / FrameworkWizard / src / org / tianocore / frameworkwizard / packaging / ui / GenGuidDialog.java
... / ...
CommitLineData
1/** @file\r
2 Java class GenGuidDialog.\r
3 \r
4Copyright (c) 2006, Intel Corporation\r
5All rights reserved. This program and the accompanying materials\r
6are licensed and made available under the terms and conditions of the BSD License\r
7which accompanies this distribution. The full text of the license may be found at\r
8http://opensource.org/licenses/bsd-license.php\r
9\r
10THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
11WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
12**/\r
13package org.tianocore.frameworkwizard.packaging.ui;\r
14\r
15import java.awt.BorderLayout;\r
16import java.awt.Dimension;\r
17import java.awt.Toolkit;\r
18\r
19import javax.swing.JPanel;\r
20import javax.swing.JDialog;\r
21import java.awt.GridLayout;\r
22\r
23import javax.swing.JFrame;\r
24import javax.swing.JOptionPane;\r
25import javax.swing.JTextField;\r
26import javax.swing.JLabel;\r
27import javax.swing.JRadioButton;\r
28import javax.swing.ButtonGroup;\r
29import javax.swing.JButton;\r
30\r
31import org.tianocore.frameworkwizard.common.Tools;\r
32\r
33import java.awt.FlowLayout;\r
34import java.awt.event.ActionEvent;\r
35import java.awt.event.ActionListener;\r
36import java.awt.event.WindowAdapter;\r
37import java.awt.event.WindowEvent;\r
38\r
39/**\r
40 Dialog for GUID generation. \r
41 @since PackageEditor 1.0\r
42**/\r
43public class GenGuidDialog extends JDialog implements ActionListener{\r
44\r
45 /**\r
46 * \r
47 */\r
48 private static final long serialVersionUID = 1L;\r
49\r
50 public static final String guidArrayPat = "0x[a-fA-F0-9]{1,8},( )*0x[a-fA-F0-9]{1,4},( )*0x[a-fA-F0-9]{1,4}(,( )*\\{)?(,?( )*0x[a-fA-F0-9]{1,2}){8}( )*(\\})?";\r
51 \r
52 public static final String guidRegistryPat = "[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}";\r
53 \r
54 static private JFrame frame;\r
55 private JPanel jContentPane = null;\r
56 private JPanel jPanelEast = null;\r
57 private JPanel jPanelCenter = null;\r
58 private JTextField jTextField = null;\r
59 private JLabel jLabel = null;\r
60 private JRadioButton jRadioButton = null;\r
61 private JRadioButton jRadioButtonReg = null;\r
62 private JButton jButtonCancel = null;\r
63 private JButton jButtonNew = null;\r
64 private JButton jButtonOk = null;\r
65 \r
66// private String guid = null;\r
67\r
68 public void actionPerformed(ActionEvent arg0) {\r
69 // TODO Auto-generated method stub\r
70 if (arg0.getSource() == jButtonNew){\r
71 String uuid = Tools.generateUuidString();\r
72 if (jRadioButtonReg.isSelected()) {\r
73 jTextField.setText(uuid);\r
74 }\r
75 else {\r
76 //ToDo: transform to comma-sep guid\r
77 String s = GenGuidDialog.formatGuidString(uuid);\r
78 if (s.equals("0")) {\r
79 JOptionPane.showMessageDialog(frame, "Check GUID Value, it don't conform to the schema.");\r
80 return;\r
81 }\r
82 jTextField.setText(s);\r
83 }\r
84 }\r
85 \r
86 if (arg0.getSource() == jRadioButtonReg){\r
87 \r
88 //ToDo: check text field value against RegExp and transform if needed\r
89 if (jTextField.getText().matches(GenGuidDialog.guidRegistryPat)){\r
90 return;\r
91 }\r
92 if (jTextField.getText().matches(GenGuidDialog.guidArrayPat)) {\r
93 jTextField.setText(GenGuidDialog.formatGuidString(jTextField.getText()));\r
94 return;\r
95 }\r
96 if (jTextField.getText().length()>0)\r
97 JOptionPane.showMessageDialog(frame, "Check GUID Value, it don't conform to the schema.");\r
98 \r
99 }\r
100 \r
101 if (arg0.getSource() == jRadioButton){\r
102 \r
103 //ToDo: check text field value against RegExp and transform if needed\r
104 if (jTextField.getText().matches(GenGuidDialog.guidArrayPat)){\r
105 return;\r
106 }\r
107 if (jTextField.getText().matches(GenGuidDialog.guidRegistryPat)) {\r
108 jTextField.setText(GenGuidDialog.formatGuidString(jTextField.getText()));\r
109 return;\r
110 }\r
111 if (jTextField.getText().length()>0)\r
112 JOptionPane.showMessageDialog(frame, "Check GUID Value, it don't conform to the schema.");\r
113 \r
114 }\r
115 \r
116 if (arg0.getSource() == jButtonOk){\r
117// if (jTextField.getText().matches(Tools.guidArrayPat) \r
118// || jTextField.getText().matches(Tools.guidRegistryPat)){\r
119// this.setVisible(false);\r
120// }\r
121// else {\r
122// JOptionPane.showMessageDialog(frame, "Incorrect GUID Value Format.");\r
123// }\r
124 this.dispose();\r
125 }\r
126 \r
127 if (arg0.getSource() == jButtonCancel){\r
128 this.dispose();\r
129 }\r
130 }\r
131\r
132 /**\r
133 * This method initializes jPanel \r
134 * \r
135 * @return javax.swing.JPanel \r
136 */\r
137 private JPanel getJPanelEast() {\r
138 if (jPanelEast == null) {\r
139 FlowLayout flowLayout = new FlowLayout();\r
140 flowLayout.setVgap(10);\r
141 jPanelEast = new JPanel();\r
142 jPanelEast.setLayout(flowLayout);\r
143 jPanelEast.setPreferredSize(new java.awt.Dimension(100,30));\r
144 jPanelEast.add(getJButtonNew(), null);\r
145 jPanelEast.add(getJButtonOk(), null);\r
146 jPanelEast.add(getJButtonCancel(), null);\r
147 }\r
148 return jPanelEast;\r
149 }\r
150\r
151 /**\r
152 * This method initializes jPanel4 \r
153 * \r
154 * @return javax.swing.JPanel \r
155 */\r
156 private JPanel getJPanelCenter() {\r
157 if (jPanelCenter == null) {\r
158 jLabel = new JLabel();\r
159 jLabel.setText("GUID Value");\r
160 GridLayout gridLayout = new GridLayout();\r
161 gridLayout.setRows(4);\r
162 jPanelCenter = new JPanel();\r
163 jPanelCenter.setLayout(gridLayout);\r
164 jPanelCenter.add(getJRadioButtonReg(), null);\r
165 jPanelCenter.add(getJRadioButton(), null);\r
166 jPanelCenter.add(jLabel, null);\r
167 jPanelCenter.add(getJTextField(), null);\r
168 ButtonGroup bg = new ButtonGroup();\r
169 bg.add(jRadioButtonReg);\r
170 bg.add(jRadioButton);\r
171 }\r
172 return jPanelCenter;\r
173 }\r
174\r
175 /**\r
176 * This method initializes jTextField \r
177 * \r
178 * @return javax.swing.JTextField \r
179 */\r
180 private JTextField getJTextField() {\r
181 if (jTextField == null) {\r
182 jTextField = new JTextField();\r
183 jTextField.setHorizontalAlignment(JTextField.LEADING);\r
184 jTextField.setPreferredSize(new java.awt.Dimension(100,20));\r
185 }\r
186 return jTextField;\r
187 }\r
188\r
189 /**\r
190 * This method initializes jRadioButton \r
191 * \r
192 * @return javax.swing.JRadioButton \r
193 */\r
194 private JRadioButton getJRadioButton() {\r
195 if (jRadioButton == null) {\r
196 jRadioButton = new JRadioButton();\r
197 jRadioButton.setText("Comma-Seperated Format");\r
198 jRadioButton.setEnabled(false);\r
199 jRadioButton.addActionListener(this);\r
200 }\r
201 return jRadioButton;\r
202 }\r
203\r
204 /**\r
205 * This method initializes jRadioButton1 \r
206 * \r
207 * @return javax.swing.JRadioButton \r
208 */\r
209 private JRadioButton getJRadioButtonReg() {\r
210 if (jRadioButtonReg == null) {\r
211 jRadioButtonReg = new JRadioButton();\r
212 jRadioButtonReg.setText("Registry Format");\r
213 jRadioButtonReg.setSelected(true);\r
214 jRadioButtonReg.addActionListener(this);\r
215 }\r
216 return jRadioButtonReg;\r
217 }\r
218\r
219 /**\r
220 * This method initializes jButton \r
221 * \r
222 * @return javax.swing.JButton \r
223 */\r
224 private JButton getJButtonCancel() {\r
225 if (jButtonCancel == null) {\r
226 jButtonCancel = new JButton();\r
227 jButtonCancel.setPreferredSize(new java.awt.Dimension(80,20));\r
228 jButtonCancel.setText("Cancel");\r
229 jButtonCancel.addActionListener(this);\r
230 }\r
231 return jButtonCancel;\r
232 }\r
233\r
234 /**\r
235 * This method initializes jButton1 \r
236 * \r
237 * @return javax.swing.JButton \r
238 */\r
239 private JButton getJButtonNew() {\r
240 if (jButtonNew == null) {\r
241 jButtonNew = new JButton();\r
242 jButtonNew.setPreferredSize(new java.awt.Dimension(80,20));\r
243 jButtonNew.setHorizontalTextPosition(javax.swing.SwingConstants.LEADING);\r
244 jButtonNew.setText("New");\r
245 jButtonNew.addActionListener(this);\r
246 }\r
247 return jButtonNew;\r
248 }\r
249\r
250 /**\r
251 * This method initializes jButton2 \r
252 * \r
253 * @return javax.swing.JButton \r
254 */\r
255 private JButton getJButtonOk() {\r
256 if (jButtonOk == null) {\r
257 jButtonOk = new JButton();\r
258 jButtonOk.setPreferredSize(new java.awt.Dimension(80,20));\r
259 jButtonOk.setText("Ok");\r
260 jButtonOk.setActionCommand("GenGuidValue");\r
261 jButtonOk.addActionListener(this);\r
262 }\r
263 return jButtonOk;\r
264 }\r
265\r
266 /**\r
267 \r
268 @param args\r
269 **/\r
270 public static void main(String[] args) {\r
271 // TODO Auto-generated method stub\r
272 new GenGuidDialog().setVisible(true);\r
273 }\r
274\r
275 public String getGuid(){\r
276 return jTextField.getText();\r
277 }\r
278 \r
279 public void setGuid(String s){\r
280 jTextField.setText(s);\r
281 }\r
282 /**\r
283 * This is the default constructor\r
284 */\r
285 public GenGuidDialog() {\r
286 super();\r
287 initialize();\r
288 }\r
289 \r
290 public GenGuidDialog(ActionListener i){\r
291 super();\r
292 initialize();\r
293 jButtonOk.addActionListener(i);\r
294 this.addWindowListener(new WindowAdapter(){\r
295\r
296 @Override\r
297 public void windowActivated(WindowEvent arg0) {\r
298 // TODO Auto-generated method stub\r
299 super.windowActivated(arg0);\r
300 if ((jRadioButtonReg.isSelected() && jTextField.getText().matches(GenGuidDialog.guidArrayPat))\r
301 || (jRadioButton.isSelected() && jTextField.getText().matches(GenGuidDialog.guidRegistryPat))) {\r
302 jTextField.setText(GenGuidDialog.formatGuidString(jTextField.getText()));\r
303 }\r
304 \r
305// if (!jTextField.getText().matches(Tools.guidArrayPat) || !jTextField.getText().matches(Tools.guidRegistryPat)) {\r
306// JOptionPane.showMessageDialog(frame, "InitVal: Incorrect GUID Value Format.");\r
307// return;\r
308// }\r
309 }\r
310 \r
311 });\r
312 }\r
313\r
314 /**\r
315 * This method initializes this\r
316 * \r
317 * @return void\r
318 */\r
319 private void initialize() {\r
320 this.setSize(466, 157);\r
321 this.setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);\r
322 this.setModal(true);\r
323 this.setTitle("Editing GUID Value");\r
324 this.setContentPane(getJContentPane());\r
325 this.centerWindow();\r
326 }\r
327\r
328 /**\r
329 * This method initializes jContentPane\r
330 * \r
331 * @return javax.swing.JPanel\r
332 */\r
333 private JPanel getJContentPane() {\r
334 if (jContentPane == null) {\r
335 jContentPane = new JPanel();\r
336 jContentPane.setLayout(new BorderLayout());\r
337 jContentPane.add(getJPanelEast(), java.awt.BorderLayout.EAST);\r
338 jContentPane.add(getJPanelCenter(), java.awt.BorderLayout.CENTER);\r
339 }\r
340 return jContentPane;\r
341 }\r
342\r
343 /**\r
344 Start the window at the center of screen\r
345 \r
346 **/\r
347 protected void centerWindow(int intWidth, int intHeight) {\r
348 Dimension d = Toolkit.getDefaultToolkit().getScreenSize();\r
349 this.setLocation((d.width - intWidth) / 2, (d.height - intHeight) / 2);\r
350 }\r
351\r
352 /**\r
353 Start the window at the center of screen\r
354 \r
355 **/\r
356 protected void centerWindow() {\r
357 centerWindow(this.getSize().width, this.getSize().height);\r
358 }\r
359 \r
360 public static String formatGuidString (String guidNameConv) {\r
361 String[] strList;\r
362 String guid = "";\r
363 int index = 0;\r
364 if (guidNameConv\r
365 .matches(GenGuidDialog.guidRegistryPat)) {\r
366 strList = guidNameConv.split("-");\r
367 guid = "0x" + strList[0] + ", ";\r
368 guid = guid + "0x" + strList[1] + ", ";\r
369 guid = guid + "0x" + strList[2] + ", ";\r
370\r
371 guid = guid + "0x" + strList[3].substring(0, 2) + ", ";\r
372 guid = guid + "0x" + strList[3].substring(2, 4);\r
373\r
374 while (index < strList[4].length()) {\r
375 guid = guid + ", ";\r
376 guid = guid + "0x" + strList[4].substring(index, index + 2);\r
377 index = index + 2;\r
378 }\r
379\r
380 return guid;\r
381 }\r
382 else if (guidNameConv\r
383 .matches(GenGuidDialog.guidArrayPat)) {\r
384 strList = guidNameConv.split(",");\r
385 \r
386 //\r
387 // chang ANSI c form to registry form\r
388 //\r
389 for (int i = 0; i < strList.length; i++){\r
390 strList[i] = strList[i].substring(strList[i].lastIndexOf("x") + 1);\r
391 }\r
392 if (strList[strList.length - 1].endsWith("}")) {\r
393 strList[strList.length -1] = strList[strList.length-1].substring(0, strList[strList.length-1].length()-1); \r
394 }\r
395 //\r
396 //inserting necessary leading zeros\r
397 //\r
398 \r
399 int segLen = strList[0].length();\r
400 if (segLen < 8){\r
401 for (int i = 0; i < 8 - segLen; ++i){\r
402 strList[0] = "0" + strList[0];\r
403 }\r
404 }\r
405 \r
406 segLen = strList[1].length();\r
407 if (segLen < 4){\r
408 for (int i = 0; i < 4 - segLen; ++i){\r
409 strList[1] = "0" + strList[1];\r
410 }\r
411 }\r
412 segLen = strList[2].length();\r
413 if (segLen < 4){\r
414 for (int i = 0; i < 4 - segLen; ++i){\r
415 strList[2] = "0" + strList[2];\r
416 }\r
417 }\r
418 for (int i = 3; i < 11; ++i) {\r
419 segLen = strList[i].length();\r
420 if (segLen < 2){\r
421 strList[i] = "0" + strList[i];\r
422 }\r
423 }\r
424 \r
425 for (int i = 0; i < 3; i++){\r
426 guid += strList[i] + "-";\r
427 }\r
428 \r
429 guid += strList[3];\r
430 guid += strList[4] + "-";\r
431 \r
432 for (int i = 5; i < strList.length; ++i){\r
433 guid += strList[i];\r
434 }\r
435 \r
436 \r
437 return guid;\r
438 } else {\r
439 \r
440 return "0";\r
441\r
442 }\r
443 }\r
444 \r
445} // @jve:decl-index=0:visual-constraint="10,10"\r