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