]>
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 | |
ce73a791 | 24 | import javax.swing.JFrame;\r |
a13899c5 | 25 | import javax.swing.JLabel;\r |
ce73a791 | 26 | import javax.swing.JOptionPane;\r |
a13899c5 | 27 | import javax.swing.JPanel;\r |
28 | import javax.swing.JScrollPane;\r | |
29 | import javax.swing.JTextArea;\r | |
30 | import javax.swing.JTextField;\r | |
31 | \r | |
32 | import org.tianocore.PackageSurfaceAreaDocument;\r | |
33 | import org.tianocore.frameworkwizard.common.DataValidation;\r | |
a13899c5 | 34 | import org.tianocore.frameworkwizard.common.Tools;\r |
d6d24759 | 35 | import org.tianocore.frameworkwizard.common.Identifications.OpeningPackageType;\r |
a13899c5 | 36 | import org.tianocore.frameworkwizard.common.ui.IInternalFrame;\r |
37 | import org.tianocore.frameworkwizard.common.ui.StarLabel;\r | |
3c0192d4 | 38 | import javax.swing.JCheckBox;\r |
e4f1ff6c | 39 | import javax.swing.event.DocumentEvent;\r |
40 | import 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 | 49 | public 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 |