]>
Commit | Line | Data |
---|---|---|
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 | |
16 | package org.tianocore.frameworkwizard.packaging.ui;\r | |
17 | \r | |
a13899c5 | 18 | import java.awt.event.ActionEvent;\r |
19 | import java.awt.event.ComponentEvent;\r | |
20 | import java.awt.event.FocusAdapter;\r | |
21 | import java.awt.event.FocusEvent;\r | |
22 | \r | |
23 | import javax.swing.JButton;\r | |
24 | import javax.swing.JLabel;\r | |
ce73a791 | 25 | import javax.swing.JOptionPane;\r |
a13899c5 | 26 | import javax.swing.JPanel;\r |
27 | import javax.swing.JScrollPane;\r | |
28 | import javax.swing.JTextArea;\r | |
29 | import javax.swing.JTextField;\r | |
30 | \r | |
31 | import org.tianocore.PackageSurfaceAreaDocument;\r | |
32 | import org.tianocore.frameworkwizard.common.DataValidation;\r | |
a13899c5 | 33 | import org.tianocore.frameworkwizard.common.Tools;\r |
d6d24759 | 34 | import org.tianocore.frameworkwizard.common.Identifications.OpeningPackageType;\r |
a13899c5 | 35 | import org.tianocore.frameworkwizard.common.ui.IInternalFrame;\r |
36 | import org.tianocore.frameworkwizard.common.ui.StarLabel;\r | |
3c0192d4 | 37 | import javax.swing.JCheckBox;\r |
e4f1ff6c | 38 | import javax.swing.event.DocumentEvent;\r |
39 | import 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 | 48 | public 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 |