]> git.proxmox.com Git - mirror_edk2.git/blame - Tools/Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/packaging/ui/SpdHeader.java
Make opening dialogs re-gain focus when user switch back to main UI from other window...
[mirror_edk2.git] / Tools / Java / Source / FrameworkWizard / src / org / tianocore / frameworkwizard / packaging / ui / SpdHeader.java
CommitLineData
a13899c5 1/** @file\r
2 \r
3 The file is used to create, update spdHeader of Spd file\r
4 \r
5 Copyright (c) 2006, Intel Corporation\r
6 All rights reserved. This program and the accompanying materials\r
7 are licensed and made available under the terms and conditions of the BSD License\r
8 which accompanies this distribution. The full text of the license may be found at\r
9 http://opensource.org/licenses/bsd-license.php\r
10 \r
11 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
12 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
13 \r
14 **/\r
15\r
16package org.tianocore.frameworkwizard.packaging.ui;\r
17\r
a13899c5 18import java.awt.event.ActionEvent;\r
19import java.awt.event.ComponentEvent;\r
20import java.awt.event.FocusAdapter;\r
21import java.awt.event.FocusEvent;\r
22\r
23import javax.swing.JButton;\r
24import javax.swing.JLabel;\r
ce73a791 25import javax.swing.JOptionPane;\r
a13899c5 26import javax.swing.JPanel;\r
27import javax.swing.JScrollPane;\r
28import javax.swing.JTextArea;\r
29import javax.swing.JTextField;\r
30\r
31import org.tianocore.PackageSurfaceAreaDocument;\r
32import org.tianocore.frameworkwizard.common.DataValidation;\r
a13899c5 33import org.tianocore.frameworkwizard.common.Tools;\r
d6d24759 34import org.tianocore.frameworkwizard.common.Identifications.OpeningPackageType;\r
a13899c5 35import org.tianocore.frameworkwizard.common.ui.IInternalFrame;\r
36import org.tianocore.frameworkwizard.common.ui.StarLabel;\r
3c0192d4 37import javax.swing.JCheckBox;\r
e4f1ff6c 38import javax.swing.event.DocumentEvent;\r
39import javax.swing.event.DocumentListener;\r
a13899c5 40\r
41/**\r
42 The class is used to create, update spdHeader of Spd file\r
43 It extends IInternalFrame\r
44 \r
45 @since PackageEditor 1.0\r
46\r
47 **/\r
e4f1ff6c 48public class SpdHeader extends IInternalFrame implements DocumentListener{\r
a13899c5 49\r
07e741e0 50 private int dialogWidth = 560;\r
51\r
52 private int labelColumn = 12;\r
53\r
54 private int labelWidth = 155;\r
55\r
56 private int buttonWidth = 60;\r
57\r
58 private final int valueColumn = 168;\r
59\r
60 private final int valueWidth = 320;\r
61 \r
62 private final int specWidth = 420;\r
63 \r
64 private int shortValueWidth = valueWidth - (buttonWidth + 5);\r
65\r
66 private final int oneRowHeight = 20;\r
67\r
68 private final int threeRowHeight = 60;\r
69\r
70 private final int fourRowHeight = 80;\r
71\r
72 private final int rowSep = 5;\r
73\r
74 private final int rowOne = 12;\r
75\r
76 private final int rowTwo = rowOne + oneRowHeight + rowSep;\r
77\r
78 private final int rowThree = rowTwo + oneRowHeight + rowSep;\r
79\r
80 private final int rowFour = rowThree + oneRowHeight + rowSep;\r
81\r
82 private final int rowFive = rowFour + threeRowHeight + rowSep;\r
83\r
84 private final int rowSix = rowFive + fourRowHeight + rowSep;\r
85\r
86 private final int rowSeven = rowSix + oneRowHeight + rowSep;\r
87\r
88 private final int rowEight = rowSeven + oneRowHeight + rowSep;\r
89\r
90 private final int rowNine = rowEight + fourRowHeight + rowSep;\r
91\r
92 private final int rowTen = rowNine + oneRowHeight + rowSep;\r
93\r
94 private int dialogHeight = rowTen + threeRowHeight;\r
95\r
a13899c5 96 ///\r
97 /// Define class Serial Version UID\r
98 ///\r
99 private static final long serialVersionUID = -8152099582923006900L;\r
100\r
101 //\r
102 //Define class members\r
103 //\r
82484861 104 private IInternalFrame topFrame;\r
07e741e0 105\r
a13899c5 106 private JPanel jContentPane = null;\r
107\r
07e741e0 108 private JLabel jPackageNameLabel = null;\r
a13899c5 109\r
07e741e0 110 private JTextField jPackageNameTextField = null;\r
a13899c5 111\r
07e741e0 112 private JLabel jGuidLabel = null;\r
a13899c5 113\r
07e741e0 114 private JTextField jGuidTextField = null;\r
a13899c5 115\r
07e741e0 116 private JLabel jVersionLabel = null;\r
a13899c5 117\r
07e741e0 118 private JTextField jVersionTextField = null;\r
a13899c5 119\r
07e741e0 120 private JButton jGenerateGuidButton = null;\r
a13899c5 121\r
07e741e0 122 private JLabel jLicenseLabel = null;\r
a13899c5 123\r
07e741e0 124 private JTextArea jLicenseTextArea = null;\r
a13899c5 125\r
126 private JLabel jLabelCopyright = null;\r
127\r
07e741e0 128 private JLabel jDescriptionLabel = null;\r
a13899c5 129\r
07e741e0 130 private JTextArea jDescriptionTextArea = null;\r
a13899c5 131\r
07e741e0 132 private JTextField jSpecificationTextField = null;\r
a13899c5 133\r
07e741e0 134 private JScrollPane jLicenseScrollPane = null;\r
a13899c5 135\r
07e741e0 136 private JScrollPane jDescriptionScrollPane = null;\r
137 \r
138 private JScrollPane jCopyrightScrollPane = null;\r
a13899c5 139\r
07e741e0 140 private JLabel jAbstractLabel = null;\r
a13899c5 141\r
07e741e0 142 private JTextField jAbstractTextField = null;\r
a13899c5 143\r
144 private StarLabel jStarLabel1 = null;\r
145\r
146 private StarLabel jStarLabel2 = null;\r
147\r
148 private StarLabel jStarLabel3 = null;\r
149\r
150 private StarLabel jStarLabel4 = null;\r
151\r
152 private StarLabel jStarLabel5 = null;\r
153\r
154 private StarLabel jStarLabel6 = null;\r
155\r
156 private StarLabel jStarLabel7 = null;\r
07e741e0 157 \r
158 private StarLabel jStarLabel8 = null;\r
a13899c5 159\r
160 private StarLabel jStarLabel9 = null;\r
07e741e0 161\r
a13899c5 162 private SpdFileContents sfc = null;\r
163\r
07e741e0 164 private OpeningPackageType docConsole = null;\r
a13899c5 165\r
07e741e0 166 private JTextArea jCopyrightTextArea = null;\r
a13899c5 167\r
07e741e0 168 private JScrollPane topScrollPane = null;\r
a13899c5 169\r
07e741e0 170 private JLabel jUrlLabel = null;\r
3c0192d4 171\r
07e741e0 172 private JTextField jUrlTextField = null;\r
3c0192d4 173\r
174 private JCheckBox jCheckBoxRdOnly = null;\r
175\r
176 private JCheckBox jCheckBoxRePkg = null;\r
177\r
a13899c5 178 /**\r
07e741e0 179 This method initializes jPackageNameTextField \r
a13899c5 180 \r
07e741e0 181 @return javax.swing.JTextField jPackageNameTextField\r
a13899c5 182 \r
183 **/\r
07e741e0 184 private JTextField getJPackageNameTextField() {\r
185 if (jPackageNameTextField == null) {\r
186 jPackageNameTextField = new JTextField();\r
187 jPackageNameTextField.setBounds(new java.awt.Rectangle(valueColumn, rowOne, valueWidth, oneRowHeight));\r
188 jPackageNameTextField.setPreferredSize(new java.awt.Dimension(valueWidth, oneRowHeight));\r
e4f1ff6c 189 jPackageNameTextField.getDocument().addDocumentListener(this);\r
07e741e0 190 jPackageNameTextField.addFocusListener(new FocusAdapter() {\r
191 public void focusLost(FocusEvent e) {\r
192 if (!DataValidation.isUiNameType(jPackageNameTextField.getText())) {\r
82484861 193 JOptionPane.showMessageDialog(topFrame, "Package Name must start with a letter.");\r
ce73a791 194 return;\r
195 }\r
07e741e0 196 if (jPackageNameTextField.getText().equals(sfc.getSpdHdrPkgName())) {\r
a490bca8 197 return;\r
198 }\r
07e741e0 199 sfc.setSpdHdrPkgName(jPackageNameTextField.getText());\r
a13899c5 200 }\r
201 });\r
202 }\r
07e741e0 203 return jPackageNameTextField;\r
a13899c5 204 }\r
205\r
206 /**\r
07e741e0 207 This method initializes jGuidTextField \r
a13899c5 208 \r
07e741e0 209 @return javax.swing.JTextField jGuidTextField\r
a13899c5 210 \r
211 **/\r
07e741e0 212 private JTextField getJGuidTextField() {\r
213 if (jGuidTextField == null) {\r
214 jGuidTextField = new JTextField();\r
215 jGuidTextField.setBounds(new java.awt.Rectangle(valueColumn, rowTwo, shortValueWidth, oneRowHeight));\r
216 jGuidTextField.setPreferredSize(new java.awt.Dimension(shortValueWidth, oneRowHeight));\r
e4f1ff6c 217 jGuidTextField.getDocument().addDocumentListener(this);\r
07e741e0 218 jGuidTextField.addFocusListener(new FocusAdapter() {\r
219 public void focusLost(FocusEvent e) {\r
220 if (!DataValidation.isGuid(jGuidTextField.getText())) {\r
82484861 221 JOptionPane.showMessageDialog(topFrame, "Guid must be in registry (8-4-4-4-12) format.");\r
ce73a791 222 return;\r
223 }\r
07e741e0 224 if (jGuidTextField.getText().equals(sfc.getSpdHdrGuidValue())) {\r
a490bca8 225 return;\r
226 }\r
07e741e0 227 sfc.setSpdHdrGuidValue(jGuidTextField.getText());\r
a13899c5 228 }\r
229 });\r
230 }\r
07e741e0 231 return jGuidTextField;\r
a13899c5 232 }\r
233\r
234 /**\r
07e741e0 235 This method initializes jVersionTextField \r
a13899c5 236 \r
07e741e0 237 @return javax.swing.JTextField jVersionTextField\r
a13899c5 238 \r
239 **/\r
07e741e0 240 private JTextField getJVersionTextField() {\r
241 if (jVersionTextField == null) {\r
242 jVersionTextField = new JTextField();\r
243 jVersionTextField.setBounds(new java.awt.Rectangle(valueColumn, rowThree, valueWidth, oneRowHeight));\r
244 jVersionTextField.setPreferredSize(new java.awt.Dimension(valueWidth, oneRowHeight));\r
e4f1ff6c 245 jVersionTextField.getDocument().addDocumentListener(this);\r
07e741e0 246 jVersionTextField.addFocusListener(new FocusAdapter() {\r
247 public void focusLost(FocusEvent e) {\r
248 if (!DataValidation.isVersion(jVersionTextField.getText())) {\r
82484861 249 JOptionPane.showMessageDialog(topFrame, "Version must start with a number.");\r
07e741e0 250 return;\r
251 }\r
252 if (jVersionTextField.getText().equals(sfc.getSpdHdrVer())) {\r
253 return;\r
254 }\r
07e741e0 255 sfc.setSpdHdrVer(jVersionTextField.getText());\r
256 }\r
a13899c5 257 });\r
258 }\r
07e741e0 259 return jVersionTextField;\r
a13899c5 260 }\r
261\r
262 /**\r
07e741e0 263 This method initializes jGenerateGuidButton \r
a13899c5 264 \r
07e741e0 265 @return javax.swing.JButton jGenerateGuidButton\r
a13899c5 266 \r
267 **/\r
07e741e0 268 private JButton getJGenerateGuidButton() {\r
269 if (jGenerateGuidButton == null) {\r
270 jGenerateGuidButton = new JButton();\r
271 jGenerateGuidButton.setBounds(new java.awt.Rectangle(valueColumn + shortValueWidth + 5, rowTwo, buttonWidth, oneRowHeight));\r
272 jGenerateGuidButton.setText("GEN");\r
273 jGenerateGuidButton.addActionListener(this);\r
a13899c5 274 }\r
07e741e0 275 return jGenerateGuidButton;\r
a13899c5 276 }\r
277\r
278 /**\r
07e741e0 279 This method initializes jLicenseTextArea \r
a13899c5 280 \r
07e741e0 281 @return javax.swing.JTextArea jLicenseTextArea\r
a13899c5 282 \r
283 **/\r
07e741e0 284 private JTextArea getJLicenseTextArea() {\r
285 if (jLicenseTextArea == null) {\r
286 jLicenseTextArea = new JTextArea();\r
07e741e0 287 jLicenseTextArea.setLineWrap(true);\r
e4f1ff6c 288 jLicenseTextArea.getDocument().addDocumentListener(this);\r
07e741e0 289 jLicenseTextArea.addFocusListener(new FocusAdapter() {\r
290 public void focusLost(FocusEvent e) {\r
291 if (jLicenseTextArea.getText().length() == 0) {\r
82484861 292 JOptionPane.showMessageDialog(topFrame, "License is a required field.");\r
ce73a791 293 return;\r
294 }\r
07e741e0 295 if (jLicenseTextArea.getText().equals(sfc.getSpdHdrLicense())) {\r
a490bca8 296 return;\r
297 }\r
07e741e0 298 sfc.setSpdHdrLicense(jLicenseTextArea.getText());\r
a13899c5 299 }\r
300 });\r
301 }\r
07e741e0 302 return jLicenseTextArea;\r
a13899c5 303 }\r
304\r
305 /**\r
07e741e0 306 This method initializes jDescriptionTextArea \r
a13899c5 307 \r
07e741e0 308 @return javax.swing.JTextArea jDescriptionTextArea\r
a13899c5 309 \r
310 **/\r
07e741e0 311 private JTextArea getJDescriptionTextArea() {\r
312 if (jDescriptionTextArea == null) {\r
313 jDescriptionTextArea = new JTextArea();\r
314 jDescriptionTextArea.setLineWrap(true);\r
e4f1ff6c 315 jDescriptionTextArea.getDocument().addDocumentListener(this);\r
07e741e0 316 jDescriptionTextArea.addFocusListener(new FocusAdapter() {\r
317 public void focusLost(FocusEvent e) {\r
318 if (jDescriptionTextArea.getText().length() == 0) {\r
319 JOptionPane\r
82484861 320 .showMessageDialog(topFrame,\r
07e741e0 321 "Description is a required field, and should reflect the contents of the package.");\r
ce73a791 322 return;\r
323 }\r
07e741e0 324 if (jDescriptionTextArea.getText().equals(sfc.getSpdHdrDescription())) {\r
a490bca8 325 return;\r
326 }\r
07e741e0 327 sfc.setSpdHdrDescription(jDescriptionTextArea.getText());\r
a13899c5 328 }\r
329 });\r
330 }\r
07e741e0 331 return jDescriptionTextArea;\r
a13899c5 332 }\r
333\r
334 /**\r
07e741e0 335 This method initializes jSpecificationTextField \r
a13899c5 336 \r
07e741e0 337 @return javax.swing.JTextField jSpecificationTextField\r
a13899c5 338 \r
339 **/\r
07e741e0 340 private JTextField getJSpecificationTextField() {\r
341 if (jSpecificationTextField == null) {\r
342 jSpecificationTextField = new JTextField();\r
343 jSpecificationTextField.setBounds(new java.awt.Rectangle(labelColumn, dialogHeight - 40, specWidth, oneRowHeight));\r
344 jSpecificationTextField.setEditable(false);\r
345 jSpecificationTextField.setPreferredSize(new java.awt.Dimension(specWidth, oneRowHeight));\r
346 jSpecificationTextField.setLocation(new java.awt.Point(2, dialogHeight - oneRowHeight));\r
347 jSpecificationTextField.setBorder(null);\r
348\r
349 // jSpecificationTextField.addFocusListener(new FocusAdapter(){\r
350 // public void focusLost(FocusEvent e){\r
351 // sfc.setSpdHdrSpec(jSpecificationTextField.getText());\r
352 // }\r
353 // });\r
a13899c5 354 }\r
07e741e0 355 return jSpecificationTextField;\r
a13899c5 356 }\r
357\r
a13899c5 358 /**\r
07e741e0 359 This method initializes jLicenseScrollPane \r
a13899c5 360 \r
07e741e0 361 @return javax.swing.JScrollPane jLicenseScrollPane\r
a13899c5 362 \r
363 **/\r
07e741e0 364 private JScrollPane getJLicenseScrollPane() {\r
365 if (jLicenseScrollPane == null) {\r
366 jLicenseScrollPane = new JScrollPane();\r
367 jLicenseScrollPane.setBounds(new java.awt.Rectangle(valueColumn, rowFive, valueWidth, fourRowHeight));\r
368 jLicenseScrollPane.setHorizontalScrollBarPolicy(javax.swing.JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);\r
369 jLicenseScrollPane.setPreferredSize(new java.awt.Dimension(valueWidth, fourRowHeight));\r
370 jLicenseScrollPane.setViewportView(getJLicenseTextArea());\r
a13899c5 371 }\r
07e741e0 372 return jLicenseScrollPane;\r
a13899c5 373 }\r
374\r
375 /**\r
07e741e0 376 This method initializes jDescriptionScrollPane \r
a13899c5 377 \r
07e741e0 378 @return javax.swing.JScrollPane jDescriptionScrollPane\r
a13899c5 379 \r
380 **/\r
07e741e0 381 private JScrollPane getJDescriptionScrollPane() {\r
382 if (jDescriptionScrollPane == null) {\r
383 jDescriptionScrollPane = new JScrollPane();\r
384 jDescriptionScrollPane.setBounds(new java.awt.Rectangle(valueColumn, rowEight, valueWidth, fourRowHeight));\r
385 jDescriptionScrollPane.setHorizontalScrollBarPolicy(javax.swing.JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);\r
386 jDescriptionScrollPane.setPreferredSize(new java.awt.Dimension(valueWidth, fourRowHeight));\r
387 jDescriptionScrollPane.setViewportView(getJDescriptionTextArea());\r
a13899c5 388 }\r
07e741e0 389 return jDescriptionScrollPane;\r
a13899c5 390 }\r
391\r
392 /**\r
07e741e0 393 This method initializes jAbstractTextField \r
a13899c5 394 \r
07e741e0 395 @return javax.swing.JTextField jAbstractTextField\r
a13899c5 396 \r
397 **/\r
07e741e0 398 private JTextField getJAbstractTextField() {\r
399 if (jAbstractTextField == null) {\r
400 jAbstractTextField = new JTextField();\r
401 jAbstractTextField.setBounds(new java.awt.Rectangle(valueColumn, rowSeven, valueWidth, oneRowHeight));\r
402 jAbstractTextField.setPreferredSize(new java.awt.Dimension(valueWidth, oneRowHeight));\r
e4f1ff6c 403 jAbstractTextField.getDocument().addDocumentListener(this);\r
07e741e0 404 jAbstractTextField.addFocusListener(new FocusAdapter() {\r
405 public void focusLost(FocusEvent e) {\r
406 if (!DataValidation.isAbstract(jAbstractTextField.getText())) {\r
82484861 407 JOptionPane.showMessageDialog(topFrame, "Abstract could NOT be empty.");\r
ce73a791 408 return;\r
409 }\r
07e741e0 410 if (jAbstractTextField.getText().equals(sfc.getSpdHdrAbs())) {\r
a490bca8 411 return;\r
412 }\r
07e741e0 413 sfc.setSpdHdrAbs(jAbstractTextField.getText());\r
a13899c5 414 }\r
415 });\r
416 }\r
07e741e0 417 return jAbstractTextField;\r
a13899c5 418 }\r
419\r
07e741e0 420 private JScrollPane getCopyrightScrollPane() {\r
421 if (jCopyrightScrollPane == null) {\r
422 jCopyrightScrollPane = new JScrollPane();\r
423 jCopyrightScrollPane.setBounds(new java.awt.Rectangle(valueColumn, rowFour, valueWidth, threeRowHeight));\r
424 jCopyrightScrollPane.setHorizontalScrollBarPolicy(javax.swing.JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);\r
425 jCopyrightScrollPane.setPreferredSize(new java.awt.Dimension(valueWidth, threeRowHeight));\r
426 jCopyrightScrollPane.setViewportView(getJCopyrightTextArea());\r
427 }\r
428 return jCopyrightScrollPane;\r
429 }\r
a13899c5 430 /**\r
07e741e0 431 This method initializes jTextFieldCopyright \r
432 \r
433 @return javax.swing.JTextField jTextFieldCopyright\r
a13899c5 434 \r
435 **/\r
07e741e0 436 private JTextArea getJCopyrightTextArea() {\r
437 if (jCopyrightTextArea == null) {\r
438 jCopyrightTextArea = new JTextArea();\r
439 jCopyrightTextArea.setWrapStyleWord(true);\r
50d4c727 440 jCopyrightTextArea.setLineWrap(true);\r
e4f1ff6c 441 jCopyrightTextArea.getDocument().addDocumentListener(this);\r
07e741e0 442 jCopyrightTextArea.addFocusListener(new FocusAdapter() {\r
443 public void focusLost(FocusEvent e) {\r
444 if (!DataValidation.isCopyright(jCopyrightTextArea.getText())) {\r
82484861 445 JOptionPane.showMessageDialog(topFrame, "Copyright must be entered.");\r
07e741e0 446 return;\r
447 }\r
448 if (jCopyrightTextArea.getText().equals(sfc.getSpdHdrCopyright())) {\r
449 return;\r
450 }\r
07e741e0 451 sfc.setSpdHdrCopyright(jCopyrightTextArea.getText());\r
452 }\r
a13899c5 453 });\r
454 }\r
07e741e0 455 return jCopyrightTextArea;\r
a13899c5 456 }\r
457\r
458 /**\r
459 * This method initializes jTextField \r
460 * \r
461 * @return javax.swing.JTextField \r
462 */\r
07e741e0 463 private JTextField getJUrlTextField() {\r
464 if (jUrlTextField == null) {\r
465 jUrlTextField = new JTextField();\r
466 jUrlTextField.setBounds(new java.awt.Rectangle(valueColumn, rowSix, valueWidth, oneRowHeight));\r
467 jUrlTextField.setPreferredSize(new java.awt.Dimension(valueWidth, oneRowHeight));\r
e4f1ff6c 468 jUrlTextField.getDocument().addDocumentListener(this);\r
07e741e0 469 jUrlTextField.addFocusListener(new FocusAdapter() {\r
470 public void focusLost(FocusEvent e) {\r
471 if (jUrlTextField.getText().length() == 0 && sfc.getSpdHdrUrl() == null) {\r
472 return;\r
473 }\r
474 if (jUrlTextField.getText().equals(sfc.getSpdHdrUrl())) {\r
475 return;\r
476 }\r
477 sfc.setSpdHdrLicense(jLicenseTextArea.getText());\r
478 sfc.setSpdHdrUrl(jUrlTextField.getText());\r
07e741e0 479 }\r
a13899c5 480 });\r
481 }\r
07e741e0 482 return jUrlTextField;\r
a13899c5 483 }\r
484\r
3c0192d4 485 /**\r
486 * This method initializes jCheckBoxRdOnly \r
487 * \r
488 * @return javax.swing.JCheckBox \r
489 */\r
490 private JCheckBox getJCheckBoxRdOnly() {\r
491 if (jCheckBoxRdOnly == null) {\r
492 jCheckBoxRdOnly = new JCheckBox();\r
493 jCheckBoxRdOnly.setText("Read Only");\r
07e741e0 494 jCheckBoxRdOnly.setLocation(new java.awt.Point(labelColumn, rowNine));\r
495 jCheckBoxRdOnly.setSize(new java.awt.Dimension(labelWidth, oneRowHeight));\r
3c0192d4 496 jCheckBoxRdOnly.addItemListener(new java.awt.event.ItemListener() {\r
497 public void itemStateChanged(java.awt.event.ItemEvent e) {\r
498 if (docConsole != null) {\r
499 docConsole.setSaved(false);\r
500 }\r
62df8efa 501 sfc.setSpdPkgDefsRdOnly(jCheckBoxRdOnly.isSelected()+"");\r
502 initFrame();\r
3c0192d4 503 }\r
504 });\r
505 }\r
506 return jCheckBoxRdOnly;\r
507 }\r
508\r
509 /**\r
510 * This method initializes jCheckBoxRePkg \r
511 * \r
512 * @return javax.swing.JCheckBox \r
513 */\r
514 private JCheckBox getJCheckBoxRePkg() {\r
515 if (jCheckBoxRePkg == null) {\r
516 jCheckBoxRePkg = new JCheckBox();\r
07e741e0 517 jCheckBoxRePkg.setLocation(new java.awt.Point(labelColumn, rowTen));\r
3c0192d4 518 jCheckBoxRePkg.setText("RePackagable");\r
07e741e0 519 jCheckBoxRePkg.setSize(new java.awt.Dimension(labelWidth, oneRowHeight));\r
3c0192d4 520 jCheckBoxRePkg.addItemListener(new java.awt.event.ItemListener() {\r
521 public void itemStateChanged(java.awt.event.ItemEvent e) {\r
522 if (docConsole != null) {\r
523 docConsole.setSaved(false);\r
524 }\r
62df8efa 525 sfc.setSpdPkgDefsRePkg(jCheckBoxRePkg.isSelected()+"");\r
3c0192d4 526 }\r
527 });\r
528 }\r
529 return jCheckBoxRePkg;\r
530 }\r
531\r
a13899c5 532 public static void main(String[] args) {\r
533 new SpdHeader().setVisible(true);\r
534 }\r
535\r
536 /**\r
537 This is the default constructor\r
538 \r
539 **/\r
540 public SpdHeader() {\r
541 super();\r
542 init();\r
543 this.setVisible(true);\r
544 }\r
545\r
546 /**\r
547 This is the override edit constructor\r
548 \r
549 @param inspdHeader The input data of spdHeaderDocument.spdHeader\r
550 \r
551 **/\r
552 public SpdHeader(PackageSurfaceAreaDocument.PackageSurfaceArea inPsa) {\r
553 this();\r
554 sfc = new SpdFileContents(inPsa);\r
555 init(sfc);\r
556 }\r
07e741e0 557\r
558 public SpdHeader(OpeningPackageType opt) {\r
d6d24759 559 this(opt.getXmlSpd());\r
560 docConsole = opt;\r
62df8efa 561 initFrame();\r
82484861 562 topFrame = this;\r
d6d24759 563 }\r
07e741e0 564\r
a13899c5 565 /**\r
566 This method initializes this\r
567 \r
568 **/\r
569 private void init() {\r
570 this.setContentPane(getTopScrollPane());\r
571 this.setTitle("Package Surface Area Header");\r
a13899c5 572 }\r
573\r
574 /**\r
575 This method initializes this\r
576 Fill values to all fields if these values are not empty\r
577 \r
578 @param inspdHeader The input data of spdHeaderDocument.spdHeader\r
579 \r
580 **/\r
581 private void init(SpdFileContents sfc) {\r
07e741e0 582 if (sfc.getSpdHdrPkgName() != null) {\r
583 jPackageNameTextField.setText(sfc.getSpdHdrPkgName());\r
584 }\r
585 if (sfc.getSpdHdrGuidValue() != null) {\r
586 jGuidTextField.setText(sfc.getSpdHdrGuidValue());\r
587 }\r
588 if (sfc.getSpdHdrVer() != null) {\r
589 jVersionTextField.setText(sfc.getSpdHdrVer());\r
590 }\r
591 if (sfc.getSpdHdrLicense() != null) {\r
592 jLicenseTextArea.setText(sfc.getSpdHdrLicense());\r
593 }\r
594 if (sfc.getSpdHdrUrl() != null) {\r
595 jUrlTextField.setText(sfc.getSpdHdrUrl());\r
596 }\r
597 if (sfc.getSpdHdrCopyright() != null) {\r
598 jCopyrightTextArea.setText(sfc.getSpdHdrCopyright());\r
599 }\r
600 if (sfc.getSpdHdrAbs() != null) {\r
601 jAbstractTextField.setText(sfc.getSpdHdrAbs());\r
602 }\r
603 if (sfc.getSpdHdrDescription() != null) {\r
604 jDescriptionTextArea.setText(sfc.getSpdHdrDescription());\r
605 }\r
606 if (sfc.getSpdHdrSpec() != null) {\r
607 jSpecificationTextField.setText(sfc.getSpdHdrSpec());\r
608 }\r
609 sfc.setSpdHdrSpec(jSpecificationTextField.getText());\r
610\r
611 if (!sfc.getSpdPkgDefsRdOnly().equals("true")) {\r
612 sfc.setSpdPkgDefsRdOnly("false");\r
613 jCheckBoxRdOnly.setSelected(false);\r
614 } else {\r
615 jCheckBoxRdOnly.setSelected(true);\r
616 }\r
617 if (!sfc.getSpdPkgDefsRePkg().equals("true")) {\r
618 sfc.setSpdPkgDefsRePkg("false");\r
619 jCheckBoxRePkg.setSelected(false);\r
620 } else {\r
621 jCheckBoxRePkg.setSelected(true);\r
622 }\r
623\r
a13899c5 624 }\r
625\r
626 /**\r
627 This method initializes jContentPane\r
628 \r
629 @return javax.swing.JPanel jContentPane\r
630 \r
631 **/\r
632 private JPanel getJContentPane() {\r
633 if (jContentPane == null) {\r
a13899c5 634 jStarLabel1 = new StarLabel();\r
07e741e0 635 jStarLabel1.setLocation(new java.awt.Point(2, rowOne));\r
a13899c5 636 jStarLabel2 = new StarLabel();\r
07e741e0 637 jStarLabel2.setLocation(new java.awt.Point(2, rowTwo));\r
a13899c5 638 jStarLabel3 = new StarLabel();\r
07e741e0 639 jStarLabel3.setLocation(new java.awt.Point(2, rowThree));\r
a13899c5 640 jStarLabel4 = new StarLabel();\r
07e741e0 641 jStarLabel4.setLocation(new java.awt.Point(2, rowFour));\r
a13899c5 642 jStarLabel5 = new StarLabel();\r
07e741e0 643 jStarLabel5.setLocation(new java.awt.Point(2, rowFive));\r
a13899c5 644 jStarLabel6 = new StarLabel();\r
07e741e0 645 jStarLabel6.setLocation(new java.awt.Point(2, rowSeven));\r
a13899c5 646 jStarLabel7 = new StarLabel();\r
07e741e0 647 jStarLabel7.setLocation(new java.awt.Point(2, rowEight));\r
648 jStarLabel8 = new StarLabel();\r
649 jStarLabel8.setLocation(new java.awt.Point(2, rowNine));\r
62df8efa 650 jStarLabel8.setVisible(false);\r
a13899c5 651 jStarLabel9 = new StarLabel();\r
07e741e0 652 jStarLabel9.setLocation(new java.awt.Point(2, rowTen));\r
653\r
62df8efa 654 jStarLabel9.setVisible(false);\r
07e741e0 655 jPackageNameLabel = new JLabel();\r
656 jPackageNameLabel.setText("Package Name");\r
657 jPackageNameLabel.setBounds(new java.awt.Rectangle(labelColumn, rowOne, labelWidth, oneRowHeight));\r
658 jGuidLabel = new JLabel();\r
659 jGuidLabel.setBounds(new java.awt.Rectangle(labelColumn, rowTwo, labelWidth, oneRowHeight));\r
660 jGuidLabel.setText("Guid");\r
661 jVersionLabel = new JLabel();\r
662 jVersionLabel.setText("Version");\r
663 jVersionLabel.setBounds(new java.awt.Rectangle(labelColumn, rowThree, labelWidth, oneRowHeight));\r
664 jLabelCopyright = new JLabel();\r
665 jLabelCopyright.setText("Copyright");\r
666 jLabelCopyright.setBounds(new java.awt.Rectangle(labelColumn, rowFour, labelWidth, oneRowHeight));\r
667 jLicenseLabel = new JLabel();\r
668 jLicenseLabel.setText("License");\r
669 jLicenseLabel.setBounds(new java.awt.Rectangle(labelColumn, rowFive, labelWidth, oneRowHeight));\r
670 jUrlLabel = new JLabel();\r
671 jUrlLabel.setBounds(new java.awt.Rectangle(labelColumn, rowSix, labelWidth, oneRowHeight));\r
672 jUrlLabel.setText("URL");\r
673 jAbstractLabel = new JLabel();\r
674 jAbstractLabel.setBounds(new java.awt.Rectangle(labelColumn, rowSeven, labelWidth, oneRowHeight));\r
675 jAbstractLabel.setText("Abstract");\r
676 jDescriptionLabel = new JLabel();\r
677 jDescriptionLabel.setText("Description");\r
678 jDescriptionLabel.setBounds(new java.awt.Rectangle(labelColumn, rowEight, labelWidth, oneRowHeight));\r
679\r
680 jContentPane = new JPanel();\r
681 jContentPane.setLayout(null);\r
682 jContentPane.setLocation(new java.awt.Point(0, 0));\r
683 jContentPane.setPreferredSize(new java.awt.Dimension(dialogWidth - 20, dialogHeight - 20));\r
684\r
a13899c5 685 jContentPane.add(jStarLabel1, null);\r
686 jContentPane.add(jStarLabel2, null);\r
687 jContentPane.add(jStarLabel3, null);\r
688 jContentPane.add(jStarLabel4, null);\r
689 jContentPane.add(jStarLabel5, null);\r
690 jContentPane.add(jStarLabel6, null);\r
691 jContentPane.add(jStarLabel7, null);\r
07e741e0 692 jContentPane.add(jStarLabel8, null);\r
a13899c5 693 jContentPane.add(jStarLabel9, null);\r
a13899c5 694\r
07e741e0 695 jContentPane.add(jPackageNameLabel, null);\r
696 jContentPane.add(getJPackageNameTextField(), null);\r
697 jContentPane.add(jGuidLabel, null);\r
698 jContentPane.add(getJGuidTextField(), null);\r
699 jContentPane.add(jVersionLabel, null);\r
700 jContentPane.add(getJVersionTextField(), null);\r
701 jContentPane.add(getJGenerateGuidButton(), null);\r
702 jContentPane.add(jLabelCopyright, null);\r
703 jContentPane.add(getCopyrightScrollPane(), null);\r
704 jContentPane.add(jLicenseLabel, null);\r
705 jContentPane.add(getJLicenseScrollPane(), null);\r
706 jContentPane.add(jUrlLabel, null);\r
707 jContentPane.add(getJUrlTextField(), null);\r
708 jContentPane.add(jAbstractLabel, null);\r
709 jContentPane.add(getJAbstractTextField(), null);\r
710 jContentPane.add(jDescriptionLabel, null);\r
711 jContentPane.add(getJDescriptionScrollPane(), null);\r
712\r
713// jContentPane.add(getJButtonOk(), null);\r
714// jContentPane.add(getJButtonCancel(), null);\r
715\r
3c0192d4 716 jContentPane.add(getJCheckBoxRdOnly(), null);\r
717 jContentPane.add(getJCheckBoxRePkg(), null);\r
07e741e0 718 jContentPane.add(getJSpecificationTextField(), null);\r
719\r
a13899c5 720 }\r
721 return jContentPane;\r
722 }\r
723\r
724 /* (non-Javadoc)\r
725 * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)\r
726 *\r
727 * Override actionPerformed to listen all actions\r
728 *\r
729 */\r
730 public void actionPerformed(ActionEvent arg0) {\r
07e741e0 731\r
732 if (arg0.getSource() == jGenerateGuidButton) {\r
a13899c5 733 //ToDo: invoke GuidValueEditor\r
07e741e0 734 jGuidTextField.setText(Tools.generateUuidString());\r
07e741e0 735 sfc.setSpdHdrGuidValue(jGuidTextField.getText());\r
a13899c5 736 }\r
737 }\r
07e741e0 738\r
a13899c5 739 /**\r
740 This method initializes Package type and Compontent type\r
741 \r
742 **/\r
743 private void initFrame() {\r
62df8efa 744 boolean editable = true;\r
745 if (sfc.getSpdPkgDefsRdOnly().equals("true")) {\r
746 editable = false;\r
747 }\r
748 jPackageNameTextField.setEditable(editable);\r
749 jGuidTextField.setEditable(editable);\r
750 jGenerateGuidButton.setEnabled(editable);\r
751 jVersionTextField.setEditable(editable);\r
752 jCopyrightTextArea.setEditable(editable);\r
753 jLicenseTextArea.setEditable(editable);\r
754 jUrlTextField.setEditable(editable);\r
755 jAbstractTextField.setEditable(editable);\r
756 jDescriptionTextArea.setEditable(editable);\r
757 jCheckBoxRePkg.setEnabled(editable);\r
a13899c5 758 }\r
759\r
07e741e0 760 /* (non-Javadoc)\r
761 * @see java.awt.event.ComponentListener#componentResized(java.awt.event.ComponentEvent)\r
762 * \r
763 * Override componentResized to resize all components when frame's size is changed\r
764 */\r
765 public void componentResized(ComponentEvent arg0) {\r
766 int intPreferredWidth = dialogWidth;\r
a13899c5 767 int intCurrentWidth = this.getJContentPane().getWidth();\r
07e741e0 768\r
769// Tools.resizeComponentWidth(this.jPackageNameTextField, intCurrentWidth, intPreferredWidth);\r
770// Tools.resizeComponentWidth(this.jGuidTextField, intCurrentWidth, intPreferredWidth);\r
771// Tools.resizeComponentWidth(this.jVersionTextField, intCurrentWidth, intPreferredWidth);\r
772 Tools.resizeComponentWidth(this.jUrlTextField, intCurrentWidth, intPreferredWidth);\r
773 Tools.resizeComponentWidth(this.jLicenseScrollPane, intCurrentWidth, intPreferredWidth);\r
774 Tools.resizeComponentWidth(this.jCopyrightTextArea, intCurrentWidth, intPreferredWidth);\r
775 Tools.resizeComponentWidth(this.jDescriptionScrollPane, intCurrentWidth, intPreferredWidth);\r
776 // Tools.resizeComponentWidth(this.jSpecificationTextField, intCurrentWidth,intPreferredWidth);\r
777 Tools.resizeComponentWidth(this.jAbstractTextField, intCurrentWidth, intPreferredWidth);\r
778// Tools.relocateComponentX(this.jGenerateGuidButton, intCurrentWidth, jGenerateGuidButton.getWidth(), 30);\r
779 }\r
a13899c5 780\r
781 private JScrollPane getTopScrollPane() {\r
07e741e0 782 if (topScrollPane == null) {\r
a13899c5 783 topScrollPane = new JScrollPane();\r
784 topScrollPane.setViewportView(getJContentPane());\r
785 }\r
786 return topScrollPane;\r
787 }\r
e4f1ff6c 788\r
789 /* (non-Javadoc)\r
790 * @see javax.swing.event.DocumentListener#changedUpdate(javax.swing.event.DocumentEvent)\r
791 */\r
792 public void changedUpdate(DocumentEvent arg0) {\r
793 // TODO Auto-generated method stub\r
794 \r
795 }\r
796\r
797 /* (non-Javadoc)\r
798 * @see javax.swing.event.DocumentListener#insertUpdate(javax.swing.event.DocumentEvent)\r
799 */\r
800 public void insertUpdate(DocumentEvent arg0) {\r
801 // TODO Auto-generated method stub\r
802 if (docConsole != null) {\r
803 docConsole.setSaved(false);\r
804 }\r
805 }\r
806\r
807 /* (non-Javadoc)\r
808 * @see javax.swing.event.DocumentListener#removeUpdate(javax.swing.event.DocumentEvent)\r
809 */\r
810 public void removeUpdate(DocumentEvent arg0) {\r
811 // TODO Auto-generated method stub\r
812 if (docConsole != null) {\r
813 docConsole.setSaved(false); \r
814 }\r
815 }\r
a13899c5 816}\r