]> git.proxmox.com Git - mirror_edk2.git/blame - Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/packaging/ui/SpdHeader.java
1. Fix EDKT214 "Framework Wizard is not synchronized with FrameworkDatabase.db when...
[mirror_edk2.git] / Tools / 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
ce73a791 24import javax.swing.JFrame;\r
a13899c5 25import javax.swing.JLabel;\r
ce73a791 26import javax.swing.JOptionPane;\r
a13899c5 27import javax.swing.JPanel;\r
28import javax.swing.JScrollPane;\r
29import javax.swing.JTextArea;\r
30import javax.swing.JTextField;\r
31\r
32import org.tianocore.PackageSurfaceAreaDocument;\r
33import org.tianocore.frameworkwizard.common.DataValidation;\r
a13899c5 34import org.tianocore.frameworkwizard.common.Tools;\r
d6d24759 35import org.tianocore.frameworkwizard.common.Identifications.OpeningPackageType;\r
a13899c5 36import org.tianocore.frameworkwizard.common.ui.IInternalFrame;\r
37import org.tianocore.frameworkwizard.common.ui.StarLabel;\r
3c0192d4 38import javax.swing.JCheckBox;\r
a13899c5 39\r
40/**\r
41 The class is used to create, update spdHeader of Spd file\r
42 It extends IInternalFrame\r
43 \r
44 @since PackageEditor 1.0\r
45\r
46 **/\r
47public class SpdHeader extends IInternalFrame {\r
48\r
07e741e0 49 private int dialogWidth = 560;\r
50\r
51 private int labelColumn = 12;\r
52\r
53 private int labelWidth = 155;\r
54\r
55 private int buttonWidth = 60;\r
56\r
57 private final int valueColumn = 168;\r
58\r
59 private final int valueWidth = 320;\r
60 \r
61 private final int specWidth = 420;\r
62 \r
63 private int shortValueWidth = valueWidth - (buttonWidth + 5);\r
64\r
65 private final int oneRowHeight = 20;\r
66\r
67 private final int threeRowHeight = 60;\r
68\r
69 private final int fourRowHeight = 80;\r
70\r
71 private final int rowSep = 5;\r
72\r
73 private final int rowOne = 12;\r
74\r
75 private final int rowTwo = rowOne + oneRowHeight + rowSep;\r
76\r
77 private final int rowThree = rowTwo + oneRowHeight + rowSep;\r
78\r
79 private final int rowFour = rowThree + oneRowHeight + rowSep;\r
80\r
81 private final int rowFive = rowFour + threeRowHeight + rowSep;\r
82\r
83 private final int rowSix = rowFive + fourRowHeight + rowSep;\r
84\r
85 private final int rowSeven = rowSix + oneRowHeight + rowSep;\r
86\r
87 private final int rowEight = rowSeven + oneRowHeight + rowSep;\r
88\r
89 private final int rowNine = rowEight + fourRowHeight + rowSep;\r
90\r
91 private final int rowTen = rowNine + oneRowHeight + rowSep;\r
92\r
93 private int dialogHeight = rowTen + threeRowHeight;\r
94\r
a13899c5 95 ///\r
96 /// Define class Serial Version UID\r
97 ///\r
98 private static final long serialVersionUID = -8152099582923006900L;\r
99\r
100 //\r
101 //Define class members\r
102 //\r
ce73a791 103 static JFrame frame;\r
07e741e0 104\r
a13899c5 105 private JPanel jContentPane = null;\r
106\r
07e741e0 107 private JLabel jPackageNameLabel = null;\r
a13899c5 108\r
07e741e0 109 private JTextField jPackageNameTextField = null;\r
a13899c5 110\r
07e741e0 111 private JLabel jGuidLabel = null;\r
a13899c5 112\r
07e741e0 113 private JTextField jGuidTextField = null;\r
a13899c5 114\r
07e741e0 115 private JLabel jVersionLabel = null;\r
a13899c5 116\r
07e741e0 117 private JTextField jVersionTextField = null;\r
a13899c5 118\r
07e741e0 119 private JButton jGenerateGuidButton = null;\r
a13899c5 120\r
07e741e0 121 private JLabel jLicenseLabel = null;\r
a13899c5 122\r
07e741e0 123 private JTextArea jLicenseTextArea = null;\r
a13899c5 124\r
125 private JLabel jLabelCopyright = null;\r
126\r
07e741e0 127 private JLabel jDescriptionLabel = null;\r
a13899c5 128\r
07e741e0 129 private JTextArea jDescriptionTextArea = null;\r
a13899c5 130\r
07e741e0 131 private JTextField jSpecificationTextField = null;\r
a13899c5 132\r
07e741e0 133 private JScrollPane jLicenseScrollPane = null;\r
a13899c5 134\r
07e741e0 135 private JScrollPane jDescriptionScrollPane = null;\r
136 \r
137 private JScrollPane jCopyrightScrollPane = null;\r
a13899c5 138\r
07e741e0 139 private JLabel jAbstractLabel = null;\r
a13899c5 140\r
07e741e0 141 private JTextField jAbstractTextField = null;\r
a13899c5 142\r
143 private StarLabel jStarLabel1 = null;\r
144\r
145 private StarLabel jStarLabel2 = null;\r
146\r
147 private StarLabel jStarLabel3 = null;\r
148\r
149 private StarLabel jStarLabel4 = null;\r
150\r
151 private StarLabel jStarLabel5 = null;\r
152\r
153 private StarLabel jStarLabel6 = null;\r
154\r
155 private StarLabel jStarLabel7 = null;\r
07e741e0 156 \r
157 private StarLabel jStarLabel8 = null;\r
a13899c5 158\r
159 private StarLabel jStarLabel9 = null;\r
07e741e0 160\r
a13899c5 161 private SpdFileContents sfc = null;\r
162\r
07e741e0 163 private OpeningPackageType docConsole = null;\r
a13899c5 164\r
07e741e0 165 private JTextArea jCopyrightTextArea = null;\r
a13899c5 166\r
07e741e0 167 private JScrollPane topScrollPane = null;\r
a13899c5 168\r
07e741e0 169 private JLabel jUrlLabel = null;\r
3c0192d4 170\r
07e741e0 171 private JTextField jUrlTextField = null;\r
3c0192d4 172\r
173 private JCheckBox jCheckBoxRdOnly = null;\r
174\r
175 private JCheckBox jCheckBoxRePkg = null;\r
176\r
a13899c5 177 /**\r
07e741e0 178 This method initializes jPackageNameTextField \r
a13899c5 179 \r
07e741e0 180 @return javax.swing.JTextField jPackageNameTextField\r
a13899c5 181 \r
182 **/\r
07e741e0 183 private JTextField getJPackageNameTextField() {\r
184 if (jPackageNameTextField == null) {\r
185 jPackageNameTextField = new JTextField();\r
186 jPackageNameTextField.setBounds(new java.awt.Rectangle(valueColumn, rowOne, valueWidth, oneRowHeight));\r
187 jPackageNameTextField.setPreferredSize(new java.awt.Dimension(valueWidth, oneRowHeight));\r
188 jPackageNameTextField.addFocusListener(new FocusAdapter() {\r
189 public void focusLost(FocusEvent e) {\r
190 if (!DataValidation.isUiNameType(jPackageNameTextField.getText())) {\r
191 JOptionPane.showMessageDialog(frame, "Package Name must start with a letter.");\r
ce73a791 192 return;\r
193 }\r
07e741e0 194 if (jPackageNameTextField.getText().equals(sfc.getSpdHdrPkgName())) {\r
a490bca8 195 return;\r
196 }\r
d6d24759 197 docConsole.setSaved(false);\r
07e741e0 198 sfc.setSpdHdrPkgName(jPackageNameTextField.getText());\r
a13899c5 199 }\r
200 });\r
201 }\r
07e741e0 202 return jPackageNameTextField;\r
a13899c5 203 }\r
204\r
205 /**\r
07e741e0 206 This method initializes jGuidTextField \r
a13899c5 207 \r
07e741e0 208 @return javax.swing.JTextField jGuidTextField\r
a13899c5 209 \r
210 **/\r
07e741e0 211 private JTextField getJGuidTextField() {\r
212 if (jGuidTextField == null) {\r
213 jGuidTextField = new JTextField();\r
214 jGuidTextField.setBounds(new java.awt.Rectangle(valueColumn, rowTwo, shortValueWidth, oneRowHeight));\r
215 jGuidTextField.setPreferredSize(new java.awt.Dimension(shortValueWidth, oneRowHeight));\r
216 jGuidTextField.addFocusListener(new FocusAdapter() {\r
217 public void focusLost(FocusEvent e) {\r
218 if (!DataValidation.isGuid(jGuidTextField.getText())) {\r
219 JOptionPane.showMessageDialog(frame, "Guid must be in registry (8-4-4-4-12) format.");\r
ce73a791 220 return;\r
221 }\r
07e741e0 222 if (jGuidTextField.getText().equals(sfc.getSpdHdrGuidValue())) {\r
a490bca8 223 return;\r
224 }\r
d6d24759 225 docConsole.setSaved(false);\r
07e741e0 226 sfc.setSpdHdrGuidValue(jGuidTextField.getText());\r
a13899c5 227 }\r
228 });\r
229 }\r
07e741e0 230 return jGuidTextField;\r
a13899c5 231 }\r
232\r
233 /**\r
07e741e0 234 This method initializes jVersionTextField \r
a13899c5 235 \r
07e741e0 236 @return javax.swing.JTextField jVersionTextField\r
a13899c5 237 \r
238 **/\r
07e741e0 239 private JTextField getJVersionTextField() {\r
240 if (jVersionTextField == null) {\r
241 jVersionTextField = new JTextField();\r
242 jVersionTextField.setBounds(new java.awt.Rectangle(valueColumn, rowThree, valueWidth, oneRowHeight));\r
243 jVersionTextField.setPreferredSize(new java.awt.Dimension(valueWidth, oneRowHeight));\r
244 jVersionTextField.addFocusListener(new FocusAdapter() {\r
245 public void focusLost(FocusEvent e) {\r
246 if (!DataValidation.isVersion(jVersionTextField.getText())) {\r
247 JOptionPane.showMessageDialog(frame, "Version must start with a number.");\r
248 return;\r
249 }\r
250 if (jVersionTextField.getText().equals(sfc.getSpdHdrVer())) {\r
251 return;\r
252 }\r
253 docConsole.setSaved(false);\r
254 sfc.setSpdHdrVer(jVersionTextField.getText());\r
255 }\r
a13899c5 256 });\r
257 }\r
07e741e0 258 return jVersionTextField;\r
a13899c5 259 }\r
260\r
261 /**\r
07e741e0 262 This method initializes jGenerateGuidButton \r
a13899c5 263 \r
07e741e0 264 @return javax.swing.JButton jGenerateGuidButton\r
a13899c5 265 \r
266 **/\r
07e741e0 267 private JButton getJGenerateGuidButton() {\r
268 if (jGenerateGuidButton == null) {\r
269 jGenerateGuidButton = new JButton();\r
270 jGenerateGuidButton.setBounds(new java.awt.Rectangle(valueColumn + shortValueWidth + 5, rowTwo, buttonWidth, oneRowHeight));\r
271 jGenerateGuidButton.setText("GEN");\r
272 jGenerateGuidButton.addActionListener(this);\r
a13899c5 273 }\r
07e741e0 274 return jGenerateGuidButton;\r
a13899c5 275 }\r
276\r
277 /**\r
07e741e0 278 This method initializes jLicenseTextArea \r
a13899c5 279 \r
07e741e0 280 @return javax.swing.JTextArea jLicenseTextArea\r
a13899c5 281 \r
282 **/\r
07e741e0 283 private JTextArea getJLicenseTextArea() {\r
284 if (jLicenseTextArea == null) {\r
285 jLicenseTextArea = new JTextArea();\r
286 // jLicenseTextArea.setText("");\r
287 jLicenseTextArea.setLineWrap(true);\r
288 jLicenseTextArea.addFocusListener(new FocusAdapter() {\r
289 public void focusLost(FocusEvent e) {\r
290 if (jLicenseTextArea.getText().length() == 0) {\r
291 JOptionPane.showMessageDialog(frame, "License is a required field.");\r
ce73a791 292 return;\r
293 }\r
07e741e0 294 if (jLicenseTextArea.getText().equals(sfc.getSpdHdrLicense())) {\r
a490bca8 295 return;\r
296 }\r
d6d24759 297 docConsole.setSaved(false);\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
315 jDescriptionTextArea.addFocusListener(new FocusAdapter() {\r
316 public void focusLost(FocusEvent e) {\r
317 if (jDescriptionTextArea.getText().length() == 0) {\r
318 JOptionPane\r
319 .showMessageDialog(frame,\r
320 "Description is a required field, and should reflect the contents of the package.");\r
ce73a791 321 return;\r
322 }\r
07e741e0 323 if (jDescriptionTextArea.getText().equals(sfc.getSpdHdrDescription())) {\r
a490bca8 324 return;\r
325 }\r
d6d24759 326 docConsole.setSaved(false);\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
403 jAbstractTextField.addFocusListener(new FocusAdapter() {\r
404 public void focusLost(FocusEvent e) {\r
405 if (!DataValidation.isAbstract(jAbstractTextField.getText())) {\r
ce73a791 406 JOptionPane.showMessageDialog(frame, "Abstract could NOT be empty.");\r
407 return;\r
408 }\r
07e741e0 409 if (jAbstractTextField.getText().equals(sfc.getSpdHdrAbs())) {\r
a490bca8 410 return;\r
411 }\r
d6d24759 412 docConsole.setSaved(false);\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
440 jCopyrightTextArea.addFocusListener(new FocusAdapter() {\r
441 public void focusLost(FocusEvent e) {\r
442 if (!DataValidation.isCopyright(jCopyrightTextArea.getText())) {\r
443 JOptionPane.showMessageDialog(frame, "Copyright must be entered.");\r
444 return;\r
445 }\r
446 if (jCopyrightTextArea.getText().equals(sfc.getSpdHdrCopyright())) {\r
447 return;\r
448 }\r
449 docConsole.setSaved(false);\r
450 sfc.setSpdHdrCopyright(jCopyrightTextArea.getText());\r
451 }\r
a13899c5 452 });\r
453 }\r
07e741e0 454 return jCopyrightTextArea;\r
a13899c5 455 }\r
456\r
457 /**\r
458 * This method initializes jTextField \r
459 * \r
460 * @return javax.swing.JTextField \r
461 */\r
07e741e0 462 private JTextField getJUrlTextField() {\r
463 if (jUrlTextField == null) {\r
464 jUrlTextField = new JTextField();\r
465 jUrlTextField.setBounds(new java.awt.Rectangle(valueColumn, rowSix, valueWidth, oneRowHeight));\r
466 jUrlTextField.setPreferredSize(new java.awt.Dimension(valueWidth, oneRowHeight));\r
467 jUrlTextField.addFocusListener(new FocusAdapter() {\r
468 public void focusLost(FocusEvent e) {\r
469 if (jUrlTextField.getText().length() == 0 && sfc.getSpdHdrUrl() == null) {\r
470 return;\r
471 }\r
472 if (jUrlTextField.getText().equals(sfc.getSpdHdrUrl())) {\r
473 return;\r
474 }\r
475 sfc.setSpdHdrLicense(jLicenseTextArea.getText());\r
476 sfc.setSpdHdrUrl(jUrlTextField.getText());\r
477 docConsole.setSaved(false);\r
478 }\r
a13899c5 479 });\r
480 }\r
07e741e0 481 return jUrlTextField;\r
a13899c5 482 }\r
483\r
3c0192d4 484 /**\r
485 * This method initializes jCheckBoxRdOnly \r
486 * \r
487 * @return javax.swing.JCheckBox \r
488 */\r
489 private JCheckBox getJCheckBoxRdOnly() {\r
490 if (jCheckBoxRdOnly == null) {\r
491 jCheckBoxRdOnly = new JCheckBox();\r
492 jCheckBoxRdOnly.setText("Read Only");\r
07e741e0 493 jCheckBoxRdOnly.setLocation(new java.awt.Point(labelColumn, rowNine));\r
494 jCheckBoxRdOnly.setSize(new java.awt.Dimension(labelWidth, oneRowHeight));\r
495 // jCheckBoxRdOnly.setPreferredSize(new java.awt.Dimension(150, 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
07e741e0 501 sfc.setSpdPkgDefsRdOnly(jCheckBoxRdOnly.isSelected() + "");\r
3c0192d4 502 }\r
503 });\r
504 }\r
505 return jCheckBoxRdOnly;\r
506 }\r
507\r
508 /**\r
509 * This method initializes jCheckBoxRePkg \r
510 * \r
511 * @return javax.swing.JCheckBox \r
512 */\r
513 private JCheckBox getJCheckBoxRePkg() {\r
514 if (jCheckBoxRePkg == null) {\r
515 jCheckBoxRePkg = new JCheckBox();\r
07e741e0 516 jCheckBoxRePkg.setLocation(new java.awt.Point(labelColumn, rowTen));\r
3c0192d4 517 jCheckBoxRePkg.setText("RePackagable");\r
07e741e0 518 jCheckBoxRePkg.setSize(new java.awt.Dimension(labelWidth, oneRowHeight));\r
3c0192d4 519 jCheckBoxRePkg.addItemListener(new java.awt.event.ItemListener() {\r
520 public void itemStateChanged(java.awt.event.ItemEvent e) {\r
521 if (docConsole != null) {\r
522 docConsole.setSaved(false);\r
523 }\r
07e741e0 524 sfc.setSpdPkgDefsRePkg(jCheckBoxRePkg.isSelected() + "");\r
3c0192d4 525 }\r
526 });\r
527 }\r
528 return jCheckBoxRePkg;\r
529 }\r
530\r
a13899c5 531 public static void main(String[] args) {\r
532 new SpdHeader().setVisible(true);\r
533 }\r
534\r
535 /**\r
536 This is the default constructor\r
537 \r
538 **/\r
539 public SpdHeader() {\r
540 super();\r
541 init();\r
542 this.setVisible(true);\r
543 }\r
544\r
545 /**\r
546 This is the override edit constructor\r
547 \r
548 @param inspdHeader The input data of spdHeaderDocument.spdHeader\r
549 \r
550 **/\r
551 public SpdHeader(PackageSurfaceAreaDocument.PackageSurfaceArea inPsa) {\r
552 this();\r
553 sfc = new SpdFileContents(inPsa);\r
554 init(sfc);\r
555 }\r
07e741e0 556\r
557 public SpdHeader(OpeningPackageType opt) {\r
d6d24759 558 this(opt.getXmlSpd());\r
559 docConsole = opt;\r
560 }\r
07e741e0 561\r
a13899c5 562 /**\r
563 This method initializes this\r
564 \r
565 **/\r
566 private void init() {\r
567 this.setContentPane(getTopScrollPane());\r
568 this.setTitle("Package Surface Area Header");\r
569 initFrame();\r
570 }\r
571\r
572 /**\r
573 This method initializes this\r
574 Fill values to all fields if these values are not empty\r
575 \r
576 @param inspdHeader The input data of spdHeaderDocument.spdHeader\r
577 \r
578 **/\r
579 private void init(SpdFileContents sfc) {\r
07e741e0 580 if (sfc.getSpdHdrPkgName() != null) {\r
581 jPackageNameTextField.setText(sfc.getSpdHdrPkgName());\r
582 }\r
583 if (sfc.getSpdHdrGuidValue() != null) {\r
584 jGuidTextField.setText(sfc.getSpdHdrGuidValue());\r
585 }\r
586 if (sfc.getSpdHdrVer() != null) {\r
587 jVersionTextField.setText(sfc.getSpdHdrVer());\r
588 }\r
589 if (sfc.getSpdHdrLicense() != null) {\r
590 jLicenseTextArea.setText(sfc.getSpdHdrLicense());\r
591 }\r
592 if (sfc.getSpdHdrUrl() != null) {\r
593 jUrlTextField.setText(sfc.getSpdHdrUrl());\r
594 }\r
595 if (sfc.getSpdHdrCopyright() != null) {\r
596 jCopyrightTextArea.setText(sfc.getSpdHdrCopyright());\r
597 }\r
598 if (sfc.getSpdHdrAbs() != null) {\r
599 jAbstractTextField.setText(sfc.getSpdHdrAbs());\r
600 }\r
601 if (sfc.getSpdHdrDescription() != null) {\r
602 jDescriptionTextArea.setText(sfc.getSpdHdrDescription());\r
603 }\r
604 if (sfc.getSpdHdrSpec() != null) {\r
605 jSpecificationTextField.setText(sfc.getSpdHdrSpec());\r
606 }\r
607 sfc.setSpdHdrSpec(jSpecificationTextField.getText());\r
608\r
609 if (!sfc.getSpdPkgDefsRdOnly().equals("true")) {\r
610 sfc.setSpdPkgDefsRdOnly("false");\r
611 jCheckBoxRdOnly.setSelected(false);\r
612 } else {\r
613 jCheckBoxRdOnly.setSelected(true);\r
614 }\r
615 if (!sfc.getSpdPkgDefsRePkg().equals("true")) {\r
616 sfc.setSpdPkgDefsRePkg("false");\r
617 jCheckBoxRePkg.setSelected(false);\r
618 } else {\r
619 jCheckBoxRePkg.setSelected(true);\r
620 }\r
621\r
a13899c5 622 }\r
623\r
624 /**\r
625 This method initializes jContentPane\r
626 \r
627 @return javax.swing.JPanel jContentPane\r
628 \r
629 **/\r
630 private JPanel getJContentPane() {\r
631 if (jContentPane == null) {\r
a13899c5 632 jStarLabel1 = new StarLabel();\r
07e741e0 633 jStarLabel1.setLocation(new java.awt.Point(2, rowOne));\r
a13899c5 634 jStarLabel2 = new StarLabel();\r
07e741e0 635 jStarLabel2.setLocation(new java.awt.Point(2, rowTwo));\r
a13899c5 636 jStarLabel3 = new StarLabel();\r
07e741e0 637 jStarLabel3.setLocation(new java.awt.Point(2, rowThree));\r
a13899c5 638 jStarLabel4 = new StarLabel();\r
07e741e0 639 jStarLabel4.setLocation(new java.awt.Point(2, rowFour));\r
a13899c5 640 jStarLabel5 = new StarLabel();\r
07e741e0 641 jStarLabel5.setLocation(new java.awt.Point(2, rowFive));\r
a13899c5 642 jStarLabel6 = new StarLabel();\r
07e741e0 643 jStarLabel6.setLocation(new java.awt.Point(2, rowSeven));\r
a13899c5 644 jStarLabel7 = new StarLabel();\r
07e741e0 645 jStarLabel7.setLocation(new java.awt.Point(2, rowEight));\r
646 jStarLabel8 = new StarLabel();\r
647 jStarLabel8.setLocation(new java.awt.Point(2, rowNine));\r
a13899c5 648 jStarLabel9 = new StarLabel();\r
07e741e0 649 jStarLabel9.setLocation(new java.awt.Point(2, rowTen));\r
650\r
651 jPackageNameLabel = new JLabel();\r
652 jPackageNameLabel.setText("Package Name");\r
653 jPackageNameLabel.setBounds(new java.awt.Rectangle(labelColumn, rowOne, labelWidth, oneRowHeight));\r
654 jGuidLabel = new JLabel();\r
655 jGuidLabel.setBounds(new java.awt.Rectangle(labelColumn, rowTwo, labelWidth, oneRowHeight));\r
656 jGuidLabel.setText("Guid");\r
657 jVersionLabel = new JLabel();\r
658 jVersionLabel.setText("Version");\r
659 jVersionLabel.setBounds(new java.awt.Rectangle(labelColumn, rowThree, labelWidth, oneRowHeight));\r
660 jLabelCopyright = new JLabel();\r
661 jLabelCopyright.setText("Copyright");\r
662 jLabelCopyright.setBounds(new java.awt.Rectangle(labelColumn, rowFour, labelWidth, oneRowHeight));\r
663 jLicenseLabel = new JLabel();\r
664 jLicenseLabel.setText("License");\r
665 jLicenseLabel.setBounds(new java.awt.Rectangle(labelColumn, rowFive, labelWidth, oneRowHeight));\r
666 jUrlLabel = new JLabel();\r
667 jUrlLabel.setBounds(new java.awt.Rectangle(labelColumn, rowSix, labelWidth, oneRowHeight));\r
668 jUrlLabel.setText("URL");\r
669 jAbstractLabel = new JLabel();\r
670 jAbstractLabel.setBounds(new java.awt.Rectangle(labelColumn, rowSeven, labelWidth, oneRowHeight));\r
671 jAbstractLabel.setText("Abstract");\r
672 jDescriptionLabel = new JLabel();\r
673 jDescriptionLabel.setText("Description");\r
674 jDescriptionLabel.setBounds(new java.awt.Rectangle(labelColumn, rowEight, labelWidth, oneRowHeight));\r
675\r
676 jContentPane = new JPanel();\r
677 jContentPane.setLayout(null);\r
678 jContentPane.setLocation(new java.awt.Point(0, 0));\r
679 jContentPane.setPreferredSize(new java.awt.Dimension(dialogWidth - 20, dialogHeight - 20));\r
680\r
a13899c5 681 jContentPane.add(jStarLabel1, null);\r
682 jContentPane.add(jStarLabel2, null);\r
683 jContentPane.add(jStarLabel3, null);\r
684 jContentPane.add(jStarLabel4, null);\r
685 jContentPane.add(jStarLabel5, null);\r
686 jContentPane.add(jStarLabel6, null);\r
687 jContentPane.add(jStarLabel7, null);\r
07e741e0 688 jContentPane.add(jStarLabel8, null);\r
a13899c5 689 jContentPane.add(jStarLabel9, null);\r
a13899c5 690\r
07e741e0 691 jContentPane.add(jPackageNameLabel, null);\r
692 jContentPane.add(getJPackageNameTextField(), null);\r
693 jContentPane.add(jGuidLabel, null);\r
694 jContentPane.add(getJGuidTextField(), null);\r
695 jContentPane.add(jVersionLabel, null);\r
696 jContentPane.add(getJVersionTextField(), null);\r
697 jContentPane.add(getJGenerateGuidButton(), null);\r
698 jContentPane.add(jLabelCopyright, null);\r
699 jContentPane.add(getCopyrightScrollPane(), null);\r
700 jContentPane.add(jLicenseLabel, null);\r
701 jContentPane.add(getJLicenseScrollPane(), null);\r
702 jContentPane.add(jUrlLabel, null);\r
703 jContentPane.add(getJUrlTextField(), null);\r
704 jContentPane.add(jAbstractLabel, null);\r
705 jContentPane.add(getJAbstractTextField(), null);\r
706 jContentPane.add(jDescriptionLabel, null);\r
707 jContentPane.add(getJDescriptionScrollPane(), null);\r
708\r
709// jContentPane.add(getJButtonOk(), null);\r
710// jContentPane.add(getJButtonCancel(), null);\r
711\r
3c0192d4 712 jContentPane.add(getJCheckBoxRdOnly(), null);\r
713 jContentPane.add(getJCheckBoxRePkg(), null);\r
07e741e0 714 jContentPane.add(getJSpecificationTextField(), null);\r
715\r
a13899c5 716 }\r
717 return jContentPane;\r
718 }\r
719\r
720 /* (non-Javadoc)\r
721 * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)\r
722 *\r
723 * Override actionPerformed to listen all actions\r
724 *\r
725 */\r
726 public void actionPerformed(ActionEvent arg0) {\r
07e741e0 727\r
728 if (arg0.getSource() == jGenerateGuidButton) {\r
a13899c5 729 //ToDo: invoke GuidValueEditor\r
07e741e0 730 jGuidTextField.setText(Tools.generateUuidString());\r
a490bca8 731 docConsole.setSaved(false);\r
07e741e0 732 sfc.setSpdHdrGuidValue(jGuidTextField.getText());\r
a13899c5 733 }\r
734 }\r
07e741e0 735\r
a13899c5 736 /**\r
737 This method initializes Package type and Compontent type\r
738 \r
739 **/\r
740 private void initFrame() {\r
07e741e0 741\r
a13899c5 742 }\r
743\r
07e741e0 744 /* (non-Javadoc)\r
745 * @see java.awt.event.ComponentListener#componentResized(java.awt.event.ComponentEvent)\r
746 * \r
747 * Override componentResized to resize all components when frame's size is changed\r
748 */\r
749 public void componentResized(ComponentEvent arg0) {\r
750 int intPreferredWidth = dialogWidth;\r
a13899c5 751 int intCurrentWidth = this.getJContentPane().getWidth();\r
07e741e0 752\r
753// Tools.resizeComponentWidth(this.jPackageNameTextField, intCurrentWidth, intPreferredWidth);\r
754// Tools.resizeComponentWidth(this.jGuidTextField, intCurrentWidth, intPreferredWidth);\r
755// Tools.resizeComponentWidth(this.jVersionTextField, intCurrentWidth, intPreferredWidth);\r
756 Tools.resizeComponentWidth(this.jUrlTextField, intCurrentWidth, intPreferredWidth);\r
757 Tools.resizeComponentWidth(this.jLicenseScrollPane, intCurrentWidth, intPreferredWidth);\r
758 Tools.resizeComponentWidth(this.jCopyrightTextArea, intCurrentWidth, intPreferredWidth);\r
759 Tools.resizeComponentWidth(this.jDescriptionScrollPane, intCurrentWidth, intPreferredWidth);\r
760 // Tools.resizeComponentWidth(this.jSpecificationTextField, intCurrentWidth,intPreferredWidth);\r
761 Tools.resizeComponentWidth(this.jAbstractTextField, intCurrentWidth, intPreferredWidth);\r
762// Tools.relocateComponentX(this.jGenerateGuidButton, intCurrentWidth, jGenerateGuidButton.getWidth(), 30);\r
763 }\r
a13899c5 764\r
765 private JScrollPane getTopScrollPane() {\r
07e741e0 766 if (topScrollPane == null) {\r
a13899c5 767 topScrollPane = new JScrollPane();\r
768 topScrollPane.setViewportView(getJContentPane());\r
769 }\r
770 return topScrollPane;\r
771 }\r
772}\r