]> git.proxmox.com Git - mirror_edk2.git/blame - Tools/Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/packaging/ui/SpdHeader.java
Modify FrameworkModules editor for FPD files to meet the new PCD type adjust operatio...
[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
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
e4f1ff6c 39import javax.swing.event.DocumentEvent;\r
40import javax.swing.event.DocumentListener;\r
a13899c5 41\r
42/**\r
43 The class is used to create, update spdHeader of Spd file\r
44 It extends IInternalFrame\r
45 \r
46 @since PackageEditor 1.0\r
47\r
48 **/\r
e4f1ff6c 49public class SpdHeader extends IInternalFrame implements DocumentListener{\r
a13899c5 50\r
07e741e0 51 private int dialogWidth = 560;\r
52\r
53 private int labelColumn = 12;\r
54\r
55 private int labelWidth = 155;\r
56\r
57 private int buttonWidth = 60;\r
58\r
59 private final int valueColumn = 168;\r
60\r
61 private final int valueWidth = 320;\r
62 \r
63 private final int specWidth = 420;\r
64 \r
65 private int shortValueWidth = valueWidth - (buttonWidth + 5);\r
66\r
67 private final int oneRowHeight = 20;\r
68\r
69 private final int threeRowHeight = 60;\r
70\r
71 private final int fourRowHeight = 80;\r
72\r
73 private final int rowSep = 5;\r
74\r
75 private final int rowOne = 12;\r
76\r
77 private final int rowTwo = rowOne + oneRowHeight + rowSep;\r
78\r
79 private final int rowThree = rowTwo + oneRowHeight + rowSep;\r
80\r
81 private final int rowFour = rowThree + oneRowHeight + rowSep;\r
82\r
83 private final int rowFive = rowFour + threeRowHeight + rowSep;\r
84\r
85 private final int rowSix = rowFive + fourRowHeight + rowSep;\r
86\r
87 private final int rowSeven = rowSix + oneRowHeight + rowSep;\r
88\r
89 private final int rowEight = rowSeven + oneRowHeight + rowSep;\r
90\r
91 private final int rowNine = rowEight + fourRowHeight + rowSep;\r
92\r
93 private final int rowTen = rowNine + oneRowHeight + rowSep;\r
94\r
95 private int dialogHeight = rowTen + threeRowHeight;\r
96\r
a13899c5 97 ///\r
98 /// Define class Serial Version UID\r
99 ///\r
100 private static final long serialVersionUID = -8152099582923006900L;\r
101\r
102 //\r
103 //Define class members\r
104 //\r
ce73a791 105 static JFrame frame;\r
07e741e0 106\r
a13899c5 107 private JPanel jContentPane = null;\r
108\r
07e741e0 109 private JLabel jPackageNameLabel = null;\r
a13899c5 110\r
07e741e0 111 private JTextField jPackageNameTextField = null;\r
a13899c5 112\r
07e741e0 113 private JLabel jGuidLabel = null;\r
a13899c5 114\r
07e741e0 115 private JTextField jGuidTextField = null;\r
a13899c5 116\r
07e741e0 117 private JLabel jVersionLabel = null;\r
a13899c5 118\r
07e741e0 119 private JTextField jVersionTextField = null;\r
a13899c5 120\r
07e741e0 121 private JButton jGenerateGuidButton = null;\r
a13899c5 122\r
07e741e0 123 private JLabel jLicenseLabel = null;\r
a13899c5 124\r
07e741e0 125 private JTextArea jLicenseTextArea = null;\r
a13899c5 126\r
127 private JLabel jLabelCopyright = null;\r
128\r
07e741e0 129 private JLabel jDescriptionLabel = null;\r
a13899c5 130\r
07e741e0 131 private JTextArea jDescriptionTextArea = null;\r
a13899c5 132\r
07e741e0 133 private JTextField jSpecificationTextField = null;\r
a13899c5 134\r
07e741e0 135 private JScrollPane jLicenseScrollPane = null;\r
a13899c5 136\r
07e741e0 137 private JScrollPane jDescriptionScrollPane = null;\r
138 \r
139 private JScrollPane jCopyrightScrollPane = null;\r
a13899c5 140\r
07e741e0 141 private JLabel jAbstractLabel = null;\r
a13899c5 142\r
07e741e0 143 private JTextField jAbstractTextField = null;\r
a13899c5 144\r
145 private StarLabel jStarLabel1 = null;\r
146\r
147 private StarLabel jStarLabel2 = null;\r
148\r
149 private StarLabel jStarLabel3 = null;\r
150\r
151 private StarLabel jStarLabel4 = null;\r
152\r
153 private StarLabel jStarLabel5 = null;\r
154\r
155 private StarLabel jStarLabel6 = null;\r
156\r
157 private StarLabel jStarLabel7 = null;\r
07e741e0 158 \r
159 private StarLabel jStarLabel8 = null;\r
a13899c5 160\r
161 private StarLabel jStarLabel9 = null;\r
07e741e0 162\r
a13899c5 163 private SpdFileContents sfc = null;\r
164\r
07e741e0 165 private OpeningPackageType docConsole = null;\r
a13899c5 166\r
07e741e0 167 private JTextArea jCopyrightTextArea = null;\r
a13899c5 168\r
07e741e0 169 private JScrollPane topScrollPane = null;\r
a13899c5 170\r
07e741e0 171 private JLabel jUrlLabel = null;\r
3c0192d4 172\r
07e741e0 173 private JTextField jUrlTextField = null;\r
3c0192d4 174\r
175 private JCheckBox jCheckBoxRdOnly = null;\r
176\r
177 private JCheckBox jCheckBoxRePkg = null;\r
178\r
a13899c5 179 /**\r
07e741e0 180 This method initializes jPackageNameTextField \r
a13899c5 181 \r
07e741e0 182 @return javax.swing.JTextField jPackageNameTextField\r
a13899c5 183 \r
184 **/\r
07e741e0 185 private JTextField getJPackageNameTextField() {\r
186 if (jPackageNameTextField == null) {\r
187 jPackageNameTextField = new JTextField();\r
188 jPackageNameTextField.setBounds(new java.awt.Rectangle(valueColumn, rowOne, valueWidth, oneRowHeight));\r
189 jPackageNameTextField.setPreferredSize(new java.awt.Dimension(valueWidth, oneRowHeight));\r
e4f1ff6c 190 jPackageNameTextField.getDocument().addDocumentListener(this);\r
07e741e0 191 jPackageNameTextField.addFocusListener(new FocusAdapter() {\r
192 public void focusLost(FocusEvent e) {\r
193 if (!DataValidation.isUiNameType(jPackageNameTextField.getText())) {\r
194 JOptionPane.showMessageDialog(frame, "Package Name must start with a letter.");\r
ce73a791 195 return;\r
196 }\r
07e741e0 197 if (jPackageNameTextField.getText().equals(sfc.getSpdHdrPkgName())) {\r
a490bca8 198 return;\r
199 }\r
07e741e0 200 sfc.setSpdHdrPkgName(jPackageNameTextField.getText());\r
a13899c5 201 }\r
202 });\r
203 }\r
07e741e0 204 return jPackageNameTextField;\r
a13899c5 205 }\r
206\r
207 /**\r
07e741e0 208 This method initializes jGuidTextField \r
a13899c5 209 \r
07e741e0 210 @return javax.swing.JTextField jGuidTextField\r
a13899c5 211 \r
212 **/\r
07e741e0 213 private JTextField getJGuidTextField() {\r
214 if (jGuidTextField == null) {\r
215 jGuidTextField = new JTextField();\r
216 jGuidTextField.setBounds(new java.awt.Rectangle(valueColumn, rowTwo, shortValueWidth, oneRowHeight));\r
217 jGuidTextField.setPreferredSize(new java.awt.Dimension(shortValueWidth, oneRowHeight));\r
e4f1ff6c 218 jGuidTextField.getDocument().addDocumentListener(this);\r
07e741e0 219 jGuidTextField.addFocusListener(new FocusAdapter() {\r
220 public void focusLost(FocusEvent e) {\r
221 if (!DataValidation.isGuid(jGuidTextField.getText())) {\r
222 JOptionPane.showMessageDialog(frame, "Guid must be in registry (8-4-4-4-12) format.");\r
ce73a791 223 return;\r
224 }\r
07e741e0 225 if (jGuidTextField.getText().equals(sfc.getSpdHdrGuidValue())) {\r
a490bca8 226 return;\r
227 }\r
07e741e0 228 sfc.setSpdHdrGuidValue(jGuidTextField.getText());\r
a13899c5 229 }\r
230 });\r
231 }\r
07e741e0 232 return jGuidTextField;\r
a13899c5 233 }\r
234\r
235 /**\r
07e741e0 236 This method initializes jVersionTextField \r
a13899c5 237 \r
07e741e0 238 @return javax.swing.JTextField jVersionTextField\r
a13899c5 239 \r
240 **/\r
07e741e0 241 private JTextField getJVersionTextField() {\r
242 if (jVersionTextField == null) {\r
243 jVersionTextField = new JTextField();\r
244 jVersionTextField.setBounds(new java.awt.Rectangle(valueColumn, rowThree, valueWidth, oneRowHeight));\r
245 jVersionTextField.setPreferredSize(new java.awt.Dimension(valueWidth, oneRowHeight));\r
e4f1ff6c 246 jVersionTextField.getDocument().addDocumentListener(this);\r
07e741e0 247 jVersionTextField.addFocusListener(new FocusAdapter() {\r
248 public void focusLost(FocusEvent e) {\r
249 if (!DataValidation.isVersion(jVersionTextField.getText())) {\r
250 JOptionPane.showMessageDialog(frame, "Version must start with a number.");\r
251 return;\r
252 }\r
253 if (jVersionTextField.getText().equals(sfc.getSpdHdrVer())) {\r
254 return;\r
255 }\r
07e741e0 256 sfc.setSpdHdrVer(jVersionTextField.getText());\r
257 }\r
a13899c5 258 });\r
259 }\r
07e741e0 260 return jVersionTextField;\r
a13899c5 261 }\r
262\r
263 /**\r
07e741e0 264 This method initializes jGenerateGuidButton \r
a13899c5 265 \r
07e741e0 266 @return javax.swing.JButton jGenerateGuidButton\r
a13899c5 267 \r
268 **/\r
07e741e0 269 private JButton getJGenerateGuidButton() {\r
270 if (jGenerateGuidButton == null) {\r
271 jGenerateGuidButton = new JButton();\r
272 jGenerateGuidButton.setBounds(new java.awt.Rectangle(valueColumn + shortValueWidth + 5, rowTwo, buttonWidth, oneRowHeight));\r
273 jGenerateGuidButton.setText("GEN");\r
274 jGenerateGuidButton.addActionListener(this);\r
a13899c5 275 }\r
07e741e0 276 return jGenerateGuidButton;\r
a13899c5 277 }\r
278\r
279 /**\r
07e741e0 280 This method initializes jLicenseTextArea \r
a13899c5 281 \r
07e741e0 282 @return javax.swing.JTextArea jLicenseTextArea\r
a13899c5 283 \r
284 **/\r
07e741e0 285 private JTextArea getJLicenseTextArea() {\r
286 if (jLicenseTextArea == null) {\r
287 jLicenseTextArea = new JTextArea();\r
07e741e0 288 jLicenseTextArea.setLineWrap(true);\r
e4f1ff6c 289 jLicenseTextArea.getDocument().addDocumentListener(this);\r
07e741e0 290 jLicenseTextArea.addFocusListener(new FocusAdapter() {\r
291 public void focusLost(FocusEvent e) {\r
292 if (jLicenseTextArea.getText().length() == 0) {\r
293 JOptionPane.showMessageDialog(frame, "License is a required field.");\r
ce73a791 294 return;\r
295 }\r
07e741e0 296 if (jLicenseTextArea.getText().equals(sfc.getSpdHdrLicense())) {\r
a490bca8 297 return;\r
298 }\r
07e741e0 299 sfc.setSpdHdrLicense(jLicenseTextArea.getText());\r
a13899c5 300 }\r
301 });\r
302 }\r
07e741e0 303 return jLicenseTextArea;\r
a13899c5 304 }\r
305\r
306 /**\r
07e741e0 307 This method initializes jDescriptionTextArea \r
a13899c5 308 \r
07e741e0 309 @return javax.swing.JTextArea jDescriptionTextArea\r
a13899c5 310 \r
311 **/\r
07e741e0 312 private JTextArea getJDescriptionTextArea() {\r
313 if (jDescriptionTextArea == null) {\r
314 jDescriptionTextArea = new JTextArea();\r
315 jDescriptionTextArea.setLineWrap(true);\r
e4f1ff6c 316 jDescriptionTextArea.getDocument().addDocumentListener(this);\r
07e741e0 317 jDescriptionTextArea.addFocusListener(new FocusAdapter() {\r
318 public void focusLost(FocusEvent e) {\r
319 if (jDescriptionTextArea.getText().length() == 0) {\r
320 JOptionPane\r
321 .showMessageDialog(frame,\r
322 "Description is a required field, and should reflect the contents of the package.");\r
ce73a791 323 return;\r
324 }\r
07e741e0 325 if (jDescriptionTextArea.getText().equals(sfc.getSpdHdrDescription())) {\r
a490bca8 326 return;\r
327 }\r
07e741e0 328 sfc.setSpdHdrDescription(jDescriptionTextArea.getText());\r
a13899c5 329 }\r
330 });\r
331 }\r
07e741e0 332 return jDescriptionTextArea;\r
a13899c5 333 }\r
334\r
335 /**\r
07e741e0 336 This method initializes jSpecificationTextField \r
a13899c5 337 \r
07e741e0 338 @return javax.swing.JTextField jSpecificationTextField\r
a13899c5 339 \r
340 **/\r
07e741e0 341 private JTextField getJSpecificationTextField() {\r
342 if (jSpecificationTextField == null) {\r
343 jSpecificationTextField = new JTextField();\r
344 jSpecificationTextField.setBounds(new java.awt.Rectangle(labelColumn, dialogHeight - 40, specWidth, oneRowHeight));\r
345 jSpecificationTextField.setEditable(false);\r
346 jSpecificationTextField.setPreferredSize(new java.awt.Dimension(specWidth, oneRowHeight));\r
347 jSpecificationTextField.setLocation(new java.awt.Point(2, dialogHeight - oneRowHeight));\r
348 jSpecificationTextField.setBorder(null);\r
349\r
350 // jSpecificationTextField.addFocusListener(new FocusAdapter(){\r
351 // public void focusLost(FocusEvent e){\r
352 // sfc.setSpdHdrSpec(jSpecificationTextField.getText());\r
353 // }\r
354 // });\r
a13899c5 355 }\r
07e741e0 356 return jSpecificationTextField;\r
a13899c5 357 }\r
358\r
a13899c5 359 /**\r
07e741e0 360 This method initializes jLicenseScrollPane \r
a13899c5 361 \r
07e741e0 362 @return javax.swing.JScrollPane jLicenseScrollPane\r
a13899c5 363 \r
364 **/\r
07e741e0 365 private JScrollPane getJLicenseScrollPane() {\r
366 if (jLicenseScrollPane == null) {\r
367 jLicenseScrollPane = new JScrollPane();\r
368 jLicenseScrollPane.setBounds(new java.awt.Rectangle(valueColumn, rowFive, valueWidth, fourRowHeight));\r
369 jLicenseScrollPane.setHorizontalScrollBarPolicy(javax.swing.JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);\r
370 jLicenseScrollPane.setPreferredSize(new java.awt.Dimension(valueWidth, fourRowHeight));\r
371 jLicenseScrollPane.setViewportView(getJLicenseTextArea());\r
a13899c5 372 }\r
07e741e0 373 return jLicenseScrollPane;\r
a13899c5 374 }\r
375\r
376 /**\r
07e741e0 377 This method initializes jDescriptionScrollPane \r
a13899c5 378 \r
07e741e0 379 @return javax.swing.JScrollPane jDescriptionScrollPane\r
a13899c5 380 \r
381 **/\r
07e741e0 382 private JScrollPane getJDescriptionScrollPane() {\r
383 if (jDescriptionScrollPane == null) {\r
384 jDescriptionScrollPane = new JScrollPane();\r
385 jDescriptionScrollPane.setBounds(new java.awt.Rectangle(valueColumn, rowEight, valueWidth, fourRowHeight));\r
386 jDescriptionScrollPane.setHorizontalScrollBarPolicy(javax.swing.JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);\r
387 jDescriptionScrollPane.setPreferredSize(new java.awt.Dimension(valueWidth, fourRowHeight));\r
388 jDescriptionScrollPane.setViewportView(getJDescriptionTextArea());\r
a13899c5 389 }\r
07e741e0 390 return jDescriptionScrollPane;\r
a13899c5 391 }\r
392\r
393 /**\r
07e741e0 394 This method initializes jAbstractTextField \r
a13899c5 395 \r
07e741e0 396 @return javax.swing.JTextField jAbstractTextField\r
a13899c5 397 \r
398 **/\r
07e741e0 399 private JTextField getJAbstractTextField() {\r
400 if (jAbstractTextField == null) {\r
401 jAbstractTextField = new JTextField();\r
402 jAbstractTextField.setBounds(new java.awt.Rectangle(valueColumn, rowSeven, valueWidth, oneRowHeight));\r
403 jAbstractTextField.setPreferredSize(new java.awt.Dimension(valueWidth, oneRowHeight));\r
e4f1ff6c 404 jAbstractTextField.getDocument().addDocumentListener(this);\r
07e741e0 405 jAbstractTextField.addFocusListener(new FocusAdapter() {\r
406 public void focusLost(FocusEvent e) {\r
407 if (!DataValidation.isAbstract(jAbstractTextField.getText())) {\r
ce73a791 408 JOptionPane.showMessageDialog(frame, "Abstract could NOT be empty.");\r
409 return;\r
410 }\r
07e741e0 411 if (jAbstractTextField.getText().equals(sfc.getSpdHdrAbs())) {\r
a490bca8 412 return;\r
413 }\r
07e741e0 414 sfc.setSpdHdrAbs(jAbstractTextField.getText());\r
a13899c5 415 }\r
416 });\r
417 }\r
07e741e0 418 return jAbstractTextField;\r
a13899c5 419 }\r
420\r
07e741e0 421 private JScrollPane getCopyrightScrollPane() {\r
422 if (jCopyrightScrollPane == null) {\r
423 jCopyrightScrollPane = new JScrollPane();\r
424 jCopyrightScrollPane.setBounds(new java.awt.Rectangle(valueColumn, rowFour, valueWidth, threeRowHeight));\r
425 jCopyrightScrollPane.setHorizontalScrollBarPolicy(javax.swing.JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);\r
426 jCopyrightScrollPane.setPreferredSize(new java.awt.Dimension(valueWidth, threeRowHeight));\r
427 jCopyrightScrollPane.setViewportView(getJCopyrightTextArea());\r
428 }\r
429 return jCopyrightScrollPane;\r
430 }\r
a13899c5 431 /**\r
07e741e0 432 This method initializes jTextFieldCopyright \r
433 \r
434 @return javax.swing.JTextField jTextFieldCopyright\r
a13899c5 435 \r
436 **/\r
07e741e0 437 private JTextArea getJCopyrightTextArea() {\r
438 if (jCopyrightTextArea == null) {\r
439 jCopyrightTextArea = new JTextArea();\r
440 jCopyrightTextArea.setWrapStyleWord(true);\r
50d4c727 441 jCopyrightTextArea.setLineWrap(true);\r
e4f1ff6c 442 jCopyrightTextArea.getDocument().addDocumentListener(this);\r
07e741e0 443 jCopyrightTextArea.addFocusListener(new FocusAdapter() {\r
444 public void focusLost(FocusEvent e) {\r
445 if (!DataValidation.isCopyright(jCopyrightTextArea.getText())) {\r
446 JOptionPane.showMessageDialog(frame, "Copyright must be entered.");\r
447 return;\r
448 }\r
449 if (jCopyrightTextArea.getText().equals(sfc.getSpdHdrCopyright())) {\r
450 return;\r
451 }\r
07e741e0 452 sfc.setSpdHdrCopyright(jCopyrightTextArea.getText());\r
453 }\r
a13899c5 454 });\r
455 }\r
07e741e0 456 return jCopyrightTextArea;\r
a13899c5 457 }\r
458\r
459 /**\r
460 * This method initializes jTextField \r
461 * \r
462 * @return javax.swing.JTextField \r
463 */\r
07e741e0 464 private JTextField getJUrlTextField() {\r
465 if (jUrlTextField == null) {\r
466 jUrlTextField = new JTextField();\r
467 jUrlTextField.setBounds(new java.awt.Rectangle(valueColumn, rowSix, valueWidth, oneRowHeight));\r
468 jUrlTextField.setPreferredSize(new java.awt.Dimension(valueWidth, oneRowHeight));\r
e4f1ff6c 469 jUrlTextField.getDocument().addDocumentListener(this);\r
07e741e0 470 jUrlTextField.addFocusListener(new FocusAdapter() {\r
471 public void focusLost(FocusEvent e) {\r
472 if (jUrlTextField.getText().length() == 0 && sfc.getSpdHdrUrl() == null) {\r
473 return;\r
474 }\r
475 if (jUrlTextField.getText().equals(sfc.getSpdHdrUrl())) {\r
476 return;\r
477 }\r
478 sfc.setSpdHdrLicense(jLicenseTextArea.getText());\r
479 sfc.setSpdHdrUrl(jUrlTextField.getText());\r
07e741e0 480 }\r
a13899c5 481 });\r
482 }\r
07e741e0 483 return jUrlTextField;\r
a13899c5 484 }\r
485\r
3c0192d4 486 /**\r
487 * This method initializes jCheckBoxRdOnly \r
488 * \r
489 * @return javax.swing.JCheckBox \r
490 */\r
491 private JCheckBox getJCheckBoxRdOnly() {\r
492 if (jCheckBoxRdOnly == null) {\r
493 jCheckBoxRdOnly = new JCheckBox();\r
494 jCheckBoxRdOnly.setText("Read Only");\r
07e741e0 495 jCheckBoxRdOnly.setLocation(new java.awt.Point(labelColumn, rowNine));\r
496 jCheckBoxRdOnly.setSize(new java.awt.Dimension(labelWidth, oneRowHeight));\r
3c0192d4 497 jCheckBoxRdOnly.addItemListener(new java.awt.event.ItemListener() {\r
498 public void itemStateChanged(java.awt.event.ItemEvent e) {\r
499 if (docConsole != null) {\r
500 docConsole.setSaved(false);\r
501 }\r
62df8efa 502 sfc.setSpdPkgDefsRdOnly(jCheckBoxRdOnly.isSelected()+"");\r
503 initFrame();\r
3c0192d4 504 }\r
505 });\r
506 }\r
507 return jCheckBoxRdOnly;\r
508 }\r
509\r
510 /**\r
511 * This method initializes jCheckBoxRePkg \r
512 * \r
513 * @return javax.swing.JCheckBox \r
514 */\r
515 private JCheckBox getJCheckBoxRePkg() {\r
516 if (jCheckBoxRePkg == null) {\r
517 jCheckBoxRePkg = new JCheckBox();\r
07e741e0 518 jCheckBoxRePkg.setLocation(new java.awt.Point(labelColumn, rowTen));\r
3c0192d4 519 jCheckBoxRePkg.setText("RePackagable");\r
07e741e0 520 jCheckBoxRePkg.setSize(new java.awt.Dimension(labelWidth, oneRowHeight));\r
3c0192d4 521 jCheckBoxRePkg.addItemListener(new java.awt.event.ItemListener() {\r
522 public void itemStateChanged(java.awt.event.ItemEvent e) {\r
523 if (docConsole != null) {\r
524 docConsole.setSaved(false);\r
525 }\r
62df8efa 526 sfc.setSpdPkgDefsRePkg(jCheckBoxRePkg.isSelected()+"");\r
3c0192d4 527 }\r
528 });\r
529 }\r
530 return jCheckBoxRePkg;\r
531 }\r
532\r
a13899c5 533 public static void main(String[] args) {\r
534 new SpdHeader().setVisible(true);\r
535 }\r
536\r
537 /**\r
538 This is the default constructor\r
539 \r
540 **/\r
541 public SpdHeader() {\r
542 super();\r
543 init();\r
544 this.setVisible(true);\r
545 }\r
546\r
547 /**\r
548 This is the override edit constructor\r
549 \r
550 @param inspdHeader The input data of spdHeaderDocument.spdHeader\r
551 \r
552 **/\r
553 public SpdHeader(PackageSurfaceAreaDocument.PackageSurfaceArea inPsa) {\r
554 this();\r
555 sfc = new SpdFileContents(inPsa);\r
556 init(sfc);\r
557 }\r
07e741e0 558\r
559 public SpdHeader(OpeningPackageType opt) {\r
d6d24759 560 this(opt.getXmlSpd());\r
561 docConsole = opt;\r
62df8efa 562 initFrame();\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