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 |