]> git.proxmox.com Git - mirror_edk2.git/blame - Tools/Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/ui/MsaHeader.java
1. Fix EDKT433 help context triggered by mouse movement is not displayed properly
[mirror_edk2.git] / Tools / Java / Source / FrameworkWizard / src / org / tianocore / frameworkwizard / module / ui / MsaHeader.java
CommitLineData
a13899c5 1/** @file\r
2 \r
3 The file is used to create, update MsaHeader of MSA file\r
4 \r
5 Copyright (c) 2006, Intel Corporation\r
6 All rights reserved. This program and the accompanying materials\r
7 are licensed and made available under the terms and conditions of the BSD License\r
8 which accompanies this distribution. The full text of the license may be found at\r
9 http://opensource.org/licenses/bsd-license.php\r
10 \r
11 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
12 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
13 \r
14 **/\r
15\r
16package org.tianocore.frameworkwizard.module.ui;\r
17\r
18import java.awt.event.ActionEvent;\r
19import java.awt.event.ComponentEvent;\r
20import java.awt.event.FocusEvent;\r
6173283b 21import java.awt.event.ItemEvent;\r
739c6b04 22import java.util.Vector;\r
a13899c5 23\r
b63cc1b6 24import javax.swing.ButtonGroup;\r
a13899c5 25import javax.swing.JButton;\r
739c6b04 26import javax.swing.JCheckBox;\r
a13899c5 27import javax.swing.JComboBox;\r
28import javax.swing.JLabel;\r
29import javax.swing.JPanel;\r
30import javax.swing.JScrollPane;\r
31import javax.swing.JTextArea;\r
32import javax.swing.JTextField;\r
33\r
3b7a9058 34import org.tianocore.ExternsDocument;\r
9a8d6d9f 35import org.tianocore.ModuleDefinitionsDocument;\r
a13899c5 36import org.tianocore.ModuleSurfaceAreaDocument;\r
37import org.tianocore.ModuleTypeDef;\r
38import org.tianocore.MsaHeaderDocument;\r
3b7a9058 39import org.tianocore.PcdDriverTypes;\r
a13899c5 40import org.tianocore.LicenseDocument.License;\r
41import org.tianocore.frameworkwizard.common.DataType;\r
42import org.tianocore.frameworkwizard.common.DataValidation;\r
43import org.tianocore.frameworkwizard.common.EnumerationData;\r
44import org.tianocore.frameworkwizard.common.Log;\r
a13899c5 45import org.tianocore.frameworkwizard.common.Tools;\r
79cb6fdb 46import org.tianocore.frameworkwizard.common.Identifications.OpeningModuleType;\r
a13899c5 47import org.tianocore.frameworkwizard.common.ui.IInternalFrame;\r
48import org.tianocore.frameworkwizard.common.ui.StarLabel;\r
b63cc1b6 49import javax.swing.JRadioButton;\r
cc95b47b 50import javax.swing.event.DocumentEvent;\r
51import javax.swing.event.DocumentListener;\r
a13899c5 52\r
53/**\r
54 The class is used to create, update MsaHeader of MSA file\r
55 It extends IInternalFrame\r
56 \r
57\r
58\r
59 **/\r
cc95b47b 60public class MsaHeader extends IInternalFrame implements DocumentListener {\r
a13899c5 61\r
62 ///\r
63 /// Define class Serial Version UID\r
64 ///\r
65 private static final long serialVersionUID = -8152099582923006900L;\r
66\r
9d0ac02b 67 private int dialogWidth = 500;\r
3b7a9058 68\r
9d0ac02b 69 private int dialogHeight = 630;\r
3b7a9058 70\r
0f6a6511 71 private final int labelWidth = 155;\r
6173283b 72\r
0f6a6511 73 private int valueWidth = 320;\r
6173283b 74\r
0f6a6511 75 private final int labelCol = 12;\r
6173283b 76\r
0f6a6511 77 private final int valueCol = 168;\r
6173283b 78\r
a13899c5 79 //\r
80 //Define class members\r
81 //\r
82 private JPanel jContentPane = null;\r
83\r
84 private JLabel jLabelBaseName = null;\r
85\r
86 private JTextField jTextFieldBaseName = null;\r
87\r
88 private JLabel jLabelGuid = null;\r
89\r
90 private JTextField jTextFieldGuid = null;\r
91\r
92 private JLabel jLabelVersion = null;\r
93\r
94 private JTextField jTextFieldVersion = null;\r
95\r
96 private JButton jButtonGenerateGuid = null;\r
97\r
98 private JLabel jLabelLicense = null;\r
99\r
100 private JTextArea jTextAreaLicense = null;\r
101\r
102 private JLabel jLabelCopyright = null;\r
103\r
104 private JLabel jLabelDescription = null;\r
105\r
106 private JTextArea jTextAreaDescription = null;\r
107\r
108 private JLabel jLabelSpecification = null;\r
109\r
110 private JTextField jTextFieldSpecification = null;\r
111\r
112 private JButton jButtonOk = null;\r
113\r
114 private JButton jButtonCancel = null;\r
115\r
116 private JScrollPane jScrollPaneLicense = null;\r
117\r
118 private JScrollPane jScrollPaneDescription = null;\r
119\r
120 private JLabel jLabelAbstract = null;\r
121\r
122 private JTextField jTextFieldAbstract = null;\r
123\r
124 private JLabel jLabelModuleType = null;\r
125\r
126 private JComboBox jComboBoxModuleType = null;\r
127\r
739c6b04 128 private JLabel jLabelArch = null;\r
129\r
130 private JLabel jLabelBinaryModule = null;\r
131\r
739c6b04 132 private JLabel jLabelOutputFileBasename = null;\r
133\r
134 private JTextField jTextFieldOutputFileBasename = null;\r
135\r
136 private JScrollPane jScrollPaneCopyright = null;\r
137\r
138 private JTextArea jTextAreaCopyright = null;\r
139\r
140 private JLabel jLabelURL = null;\r
141\r
142 private JTextField jTextFieldURL = null;\r
143\r
144 private JScrollPane jScrollPane = null;\r
145\r
a13899c5 146 private StarLabel jStarLabel1 = null;\r
147\r
148 private StarLabel jStarLabel2 = null;\r
149\r
150 private StarLabel jStarLabel4 = null;\r
151\r
152 private StarLabel jStarLabel5 = null;\r
153\r
154 private StarLabel jStarLabel6 = null;\r
155\r
156 private StarLabel jStarLabel7 = null;\r
157\r
158 private StarLabel jStarLabel8 = null;\r
159\r
160 private StarLabel jStarLabel10 = null;\r
161\r
162 private StarLabel jStarLabel12 = null;\r
163\r
739c6b04 164 private StarLabel jStarLabel13 = null;\r
a13899c5 165\r
739c6b04 166 private StarLabel jStarLabel14 = null;\r
a13899c5 167\r
739c6b04 168 private JCheckBox jCheckBoxIa32 = null;\r
a13899c5 169\r
739c6b04 170 private JCheckBox jCheckBoxX64 = null;\r
a13899c5 171\r
739c6b04 172 private JCheckBox jCheckBoxIpf = null;\r
173\r
174 private JCheckBox jCheckBoxEbc = null;\r
175\r
176 private JCheckBox jCheckBoxArm = null;\r
177\r
178 private JCheckBox jCheckBoxPpc = null;\r
3b7a9058 179\r
6173283b 180 private JTextField jComboBoxPcdIsDriver = null;\r
3b7a9058 181\r
182 private JCheckBox jCheckBoxPcd = null;\r
183\r
184 private JCheckBox jCheckBoxFlashMap = null;\r
185\r
739c6b04 186 //\r
187 // Not used for UI\r
188 //\r
189 private MsaHeaderDocument.MsaHeader msaHeader = null;\r
190\r
191 private ModuleDefinitionsDocument.ModuleDefinitions md = null;\r
192\r
193 private ModuleSurfaceAreaDocument.ModuleSurfaceArea msa = null;\r
a13899c5 194\r
3b7a9058 195 private ExternsDocument.Externs ex = null;\r
196\r
a13899c5 197 private OpeningModuleType omt = null;\r
2003a22e 198\r
9a8d6d9f 199 private EnumerationData ed = new EnumerationData();\r
a13899c5 200\r
b63cc1b6 201 private JRadioButton jRadioButtonBinaryModuleTrue = null;\r
202\r
203 private JRadioButton jRadioButtonBinaryModuleFalse = null;\r
204\r
739c6b04 205 /**\r
206 * This method initializes jCheckBoxIa32 \r
207 * \r
208 * @return javax.swing.JCheckBox \r
209 */\r
210 private JCheckBox getJCheckBoxIa32() {\r
211 if (jCheckBoxIa32 == null) {\r
212 jCheckBoxIa32 = new JCheckBox();\r
0f6a6511 213 jCheckBoxIa32.setBounds(new java.awt.Rectangle(valueCol, 505, 55, 20));\r
739c6b04 214 jCheckBoxIa32.setText("IA32");\r
215 jCheckBoxIa32.setToolTipText(DataType.SUP_ARCH_LIST_HELP_TEXT);\r
739c6b04 216 }\r
217 return jCheckBoxIa32;\r
218 }\r
219\r
220 /**\r
221 * This method initializes jCheckBoxX64 \r
222 * \r
223 * @return javax.swing.JCheckBox \r
224 */\r
225 private JCheckBox getJCheckBoxX64() {\r
226 if (jCheckBoxX64 == null) {\r
227 jCheckBoxX64 = new JCheckBox();\r
0f6a6511 228 jCheckBoxX64.setBounds(new java.awt.Rectangle(valueCol + 55, 505, 53, 20));\r
739c6b04 229 jCheckBoxX64.setText("X64");\r
230 jCheckBoxX64.setToolTipText(DataType.SUP_ARCH_LIST_HELP_TEXT);\r
739c6b04 231 }\r
232 return jCheckBoxX64;\r
233 }\r
234\r
235 /**\r
236 * This method initializes jCheckBoxIpf \r
237 * \r
238 * @return javax.swing.JCheckBox \r
239 */\r
240 private JCheckBox getJCheckBoxIpf() {\r
241 if (jCheckBoxIpf == null) {\r
242 jCheckBoxIpf = new JCheckBox();\r
0f6a6511 243 jCheckBoxIpf.setBounds(new java.awt.Rectangle(valueCol + 110, 505, 52, 20));\r
739c6b04 244 jCheckBoxIpf.setText("IPF");\r
245 jCheckBoxIpf.setToolTipText(DataType.SUP_ARCH_LIST_HELP_TEXT);\r
739c6b04 246 }\r
247 return jCheckBoxIpf;\r
248 }\r
249\r
250 /**\r
251 * This method initializes jCheckBoxEbc \r
252 * \r
253 * @return javax.swing.JCheckBox \r
254 */\r
255 private JCheckBox getJCheckBoxEbc() {\r
256 if (jCheckBoxEbc == null) {\r
257 jCheckBoxEbc = new JCheckBox();\r
0f6a6511 258 jCheckBoxEbc.setBounds(new java.awt.Rectangle(valueCol + 165, 505, 53, 20));\r
739c6b04 259 jCheckBoxEbc.setText("EBC");\r
260 jCheckBoxEbc.setToolTipText(DataType.SUP_ARCH_LIST_HELP_TEXT);\r
739c6b04 261 }\r
262 return jCheckBoxEbc;\r
263 }\r
264\r
265 /**\r
266 * This method initializes jCheckBoxArm \r
267 * \r
268 * @return javax.swing.JCheckBox \r
269 */\r
270 private JCheckBox getJCheckBoxArm() {\r
271 if (jCheckBoxArm == null) {\r
272 jCheckBoxArm = new JCheckBox();\r
0f6a6511 273 jCheckBoxArm.setBounds(new java.awt.Rectangle(valueCol + 220, 505, 54, 20));\r
739c6b04 274 jCheckBoxArm.setText("ARM");\r
275 jCheckBoxArm.setToolTipText(DataType.SUP_ARCH_LIST_HELP_TEXT);\r
739c6b04 276 }\r
277 return jCheckBoxArm;\r
278 }\r
279\r
280 /**\r
281 * This method initializes jCheckBoxPpc \r
282 * \r
283 * @return javax.swing.JCheckBox \r
284 */\r
285 private JCheckBox getJCheckBoxPpc() {\r
286 if (jCheckBoxPpc == null) {\r
287 jCheckBoxPpc = new JCheckBox();\r
0f6a6511 288 jCheckBoxPpc.setBounds(new java.awt.Rectangle(valueCol + 285, 505, 53, 20));\r
739c6b04 289 jCheckBoxPpc.setText("PPC");\r
290 jCheckBoxPpc.setToolTipText(DataType.SUP_ARCH_LIST_HELP_TEXT);\r
739c6b04 291 }\r
292 return jCheckBoxPpc;\r
293 }\r
294\r
a13899c5 295 /**\r
296 This method initializes jTextFieldBaseName \r
297 \r
298 @return javax.swing.JTextField jTextFieldBaseName\r
299 \r
300 **/\r
301 private JTextField getJTextFieldBaseName() {\r
302 if (jTextFieldBaseName == null) {\r
303 jTextFieldBaseName = new JTextField();\r
0f6a6511 304 jTextFieldBaseName.setBounds(new java.awt.Rectangle(valueCol, 10, valueWidth, 20));\r
a13899c5 305 jTextFieldBaseName.setPreferredSize(new java.awt.Dimension(320, 20));\r
306 jTextFieldBaseName.addFocusListener(this);\r
f51ee52b 307 jTextFieldBaseName.setToolTipText("A brief Identifier, such as USB I/O Library, of the module");\r
a13899c5 308 }\r
309 return jTextFieldBaseName;\r
310 }\r
311\r
312 /**\r
313 This method initializes jTextFieldGuid \r
314 \r
315 @return javax.swing.JTextField jTextFieldGuid\r
316 \r
317 **/\r
318 private JTextField getJTextFieldGuid() {\r
319 if (jTextFieldGuid == null) {\r
320 jTextFieldGuid = new JTextField();\r
321 jTextFieldGuid.setPreferredSize(new java.awt.Dimension(250, 20));\r
0f6a6511 322 jTextFieldGuid.setLocation(new java.awt.Point(valueCol, 60));\r
a13899c5 323 jTextFieldGuid.setSize(new java.awt.Dimension(250, 20));\r
324 jTextFieldGuid.addFocusListener(this);\r
f51ee52b 325 jTextFieldGuid.setToolTipText("Guaranteed Unique Identification Number, Registry Format (8-4-4-4-12)");\r
a13899c5 326 }\r
327 return jTextFieldGuid;\r
328 }\r
329\r
330 /**\r
331 This method initializes jTextFieldVersion \r
332 \r
333 @return javax.swing.JTextField jTextFieldVersion\r
334 \r
335 **/\r
336 private JTextField getJTextFieldVersion() {\r
337 if (jTextFieldVersion == null) {\r
338 jTextFieldVersion = new JTextField();\r
0f6a6511 339 jTextFieldVersion.setPreferredSize(new java.awt.Dimension(valueWidth, 20));\r
340 jTextFieldVersion.setLocation(new java.awt.Point(valueCol, 85));\r
341 jTextFieldVersion.setSize(new java.awt.Dimension(valueWidth, 20));\r
a13899c5 342 jTextFieldVersion.addFocusListener(this);\r
f51ee52b 343 jTextFieldVersion.setToolTipText("A Version Number, 1.0, 1, 1.01, 1.0.1");\r
a13899c5 344 }\r
345 return jTextFieldVersion;\r
346 }\r
347\r
348 /**\r
349 This method initializes jButtonGenerateGuid \r
350 \r
351 @return javax.swing.JButton jButtonGenerateGuid\r
352 \r
353 **/\r
354 private JButton getJButtonGenerateGuid() {\r
355 if (jButtonGenerateGuid == null) {\r
0f6a6511 356 int genGuidCol = valueCol + 285;\r
a13899c5 357 jButtonGenerateGuid = new JButton();\r
358 jButtonGenerateGuid.setPreferredSize(new java.awt.Dimension(65, 20));\r
359 jButtonGenerateGuid.setSize(new java.awt.Dimension(65, 20));\r
0f6a6511 360 jButtonGenerateGuid.setLocation(new java.awt.Point(genGuidCol, 60));\r
a13899c5 361 jButtonGenerateGuid.setText("GEN");\r
362 jButtonGenerateGuid.addActionListener(this);\r
363 }\r
364 return jButtonGenerateGuid;\r
365 }\r
366\r
367 /**\r
368 This method initializes jTextAreaLicense \r
369 \r
370 @return javax.swing.JTextArea jTextAreaLicense\r
371 \r
372 **/\r
373 private JTextArea getJTextAreaLicense() {\r
374 if (jTextAreaLicense == null) {\r
375 jTextAreaLicense = new JTextArea();\r
376 jTextAreaLicense.setText("");\r
377 jTextAreaLicense.setLineWrap(true);\r
378 jTextAreaLicense.addFocusListener(this);\r
2003a22e 379 jTextAreaLicense.setWrapStyleWord(true);\r
380 jTextAreaLicense.setSelectionStart(0);\r
381 jTextAreaLicense.setSelectionEnd(0);\r
f51ee52b 382 jTextAreaLicense.setToolTipText("The License for this Module.");\r
a13899c5 383 }\r
384 return jTextAreaLicense;\r
385 }\r
386\r
387 /**\r
388 This method initializes jTextAreaDescription \r
389 \r
390 @return javax.swing.JTextArea jTextAreaDescription\r
391 \r
392 **/\r
393 private JTextArea getJTextAreaDescription() {\r
394 if (jTextAreaDescription == null) {\r
395 jTextAreaDescription = new JTextArea();\r
396 jTextAreaDescription.setLineWrap(true);\r
397 jTextAreaDescription.addFocusListener(this);\r
623db5ca 398 jTextAreaDescription.setToolTipText("A verbose description of the module.");\r
2003a22e 399 jTextAreaDescription.setWrapStyleWord(true);\r
9a8d6d9f 400 jTextAreaDescription.setSelectionStart(0);\r
401 jTextAreaDescription.setSelectionEnd(0);\r
a13899c5 402 }\r
403 return jTextAreaDescription;\r
404 }\r
405\r
406 /**\r
407 This method initializes jTextFieldSpecification \r
408 \r
409 @return javax.swing.JTextField jTextFieldSpecification\r
410 \r
411 **/\r
412 private JTextField getJTextFieldSpecification() {\r
413 if (jTextFieldSpecification == null) {\r
0f6a6511 414 int specWidth = valueWidth + 50;\r
a13899c5 415 jTextFieldSpecification = new JTextField();\r
3b7a9058 416\r
0f6a6511 417 jTextFieldSpecification.setPreferredSize(new java.awt.Dimension(specWidth, 20));\r
c06e8657 418 jTextFieldSpecification.setText("FRAMEWORK_BUILD_PACKAGING_SPECIFICATION 0x00000052");\r
9d0ac02b 419 jTextFieldSpecification.setBorder(null);\r
3b7a9058 420\r
0f6a6511 421 jTextFieldSpecification.setSize(new java.awt.Dimension(specWidth, 20));\r
422 jTextFieldSpecification.setLocation(new java.awt.Point(labelCol, dialogHeight - 30));\r
a13899c5 423 jTextFieldSpecification.setEditable(false);\r
424 jTextFieldSpecification.addFocusListener(this);\r
a13899c5 425 }\r
426 return jTextFieldSpecification;\r
427 }\r
428\r
429 /**\r
430 This method initializes jButtonOk \r
431 \r
432 @return javax.swing.JButton jButtonOk\r
433 \r
434 **/\r
435 private JButton getJButtonOk() {\r
436 if (jButtonOk == null) {\r
437 jButtonOk = new JButton();\r
438 jButtonOk.setText("OK");\r
439 jButtonOk.setPreferredSize(new java.awt.Dimension(90, 20));\r
440 jButtonOk.setBounds(new java.awt.Rectangle(390, 455, 90, 20));\r
441 jButtonOk.addActionListener(this);\r
442 jButtonOk.setVisible(false);\r
443 }\r
444 return jButtonOk;\r
445 }\r
446\r
447 /**\r
448 This method initializes jButtonCancel \r
449 \r
450 @return javax.swing.JButton jButtonCancel\r
451 \r
452 **/\r
453 private JButton getJButtonCancel() {\r
454 if (jButtonCancel == null) {\r
455 jButtonCancel = new JButton();\r
456 jButtonCancel.setText("Cancel");\r
457 jButtonCancel.setBounds(new java.awt.Rectangle(390, 445, 90, 20));\r
458 jButtonCancel.addActionListener(this);\r
459 jButtonCancel.setPreferredSize(new java.awt.Dimension(90, 20));\r
460 jButtonCancel.setVisible(false);\r
461 }\r
462 return jButtonCancel;\r
463 }\r
464\r
465 /**\r
466 This method initializes jScrollPaneLicense \r
467 \r
468 @return javax.swing.JScrollPane jScrollPaneLicense\r
469 \r
470 **/\r
471 private JScrollPane getJScrollPaneLicense() {\r
472 if (jScrollPaneLicense == null) {\r
473 jScrollPaneLicense = new JScrollPane();\r
474 jScrollPaneLicense.setHorizontalScrollBarPolicy(javax.swing.JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);\r
0f6a6511 475 jScrollPaneLicense.setSize(new java.awt.Dimension(valueWidth, 120));\r
476 jScrollPaneLicense.setLocation(new java.awt.Point(valueCol, 305));\r
a13899c5 477 jScrollPaneLicense.setViewportView(getJTextAreaLicense());\r
0f6a6511 478 jScrollPaneLicense.setPreferredSize(new java.awt.Dimension(valueWidth, 120));\r
a13899c5 479 }\r
480 return jScrollPaneLicense;\r
481 }\r
482\r
483 /**\r
484 This method initializes jScrollPaneDescription \r
485 \r
486 @return javax.swing.JScrollPane jScrollPaneDescription\r
487 \r
488 **/\r
489 private JScrollPane getJScrollPaneDescription() {\r
490 if (jScrollPaneDescription == null) {\r
491 jScrollPaneDescription = new JScrollPane();\r
492 jScrollPaneDescription.setHorizontalScrollBarPolicy(javax.swing.JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);\r
0f6a6511 493 jScrollPaneDescription.setSize(new java.awt.Dimension(valueWidth, 120));\r
494 jScrollPaneDescription.setLocation(new java.awt.Point(valueCol, 135));\r
a13899c5 495 jScrollPaneDescription.setViewportView(getJTextAreaDescription());\r
0f6a6511 496 jScrollPaneDescription.setPreferredSize(new java.awt.Dimension(valueWidth, 120));\r
a13899c5 497 }\r
498 return jScrollPaneDescription;\r
499 }\r
500\r
501 /**\r
502 This method initializes jTextFieldAbstract \r
503 \r
504 @return javax.swing.JTextField jTextFieldAbstract\r
505 \r
506 **/\r
507 private JTextField getJTextFieldAbstract() {\r
508 if (jTextFieldAbstract == null) {\r
509 jTextFieldAbstract = new JTextField();\r
0f6a6511 510 jTextFieldAbstract.setPreferredSize(new java.awt.Dimension(valueWidth, 20));\r
511 jTextFieldAbstract.setLocation(new java.awt.Point(valueCol, 110));\r
512 jTextFieldAbstract.setSize(new java.awt.Dimension(valueWidth, 20));\r
a13899c5 513 jTextFieldAbstract.addFocusListener(this);\r
623db5ca 514 jTextFieldAbstract.setToolTipText("A one sentence description of this module.");\r
a13899c5 515 }\r
516 return jTextFieldAbstract;\r
517 }\r
518\r
519 /**\r
520 This method initializes jComboBoxModuleType \r
521 \r
522 @return javax.swing.JComboBox jComboBoxModuleType\r
523 \r
524 **/\r
525 private JComboBox getJComboBoxModuleType() {\r
526 if (jComboBoxModuleType == null) {\r
527 jComboBoxModuleType = new JComboBox();\r
0f6a6511 528 jComboBoxModuleType.setBounds(new java.awt.Rectangle(valueCol, 35, valueWidth, 20));\r
529 jComboBoxModuleType.setPreferredSize(new java.awt.Dimension(valueWidth, 20));\r
a13899c5 530 }\r
531 return jComboBoxModuleType;\r
532 }\r
533\r
534 /**\r
739c6b04 535 This method initializes jTextFieldURL \r
a13899c5 536 \r
739c6b04 537 @return javax.swing.JTextField \r
a13899c5 538 \r
539 **/\r
a13899c5 540 private JTextField getJTextFieldURL() {\r
541 if (jTextFieldURL == null) {\r
542 jTextFieldURL = new JTextField();\r
0f6a6511 543 jTextFieldURL.setPreferredSize(new java.awt.Dimension(valueWidth, 20));\r
544 jTextFieldURL.setLocation(new java.awt.Point(valueCol, 430));\r
545 jTextFieldURL.setSize(new java.awt.Dimension(valueWidth, 20));\r
a13899c5 546 jTextFieldURL.addFocusListener(this);\r
623db5ca 547 jTextFieldURL.setToolTipText("A URL for the latest version of the license.");\r
a13899c5 548 }\r
549 return jTextFieldURL;\r
550 }\r
551\r
552 /**\r
739c6b04 553 This method initializes jScrollPane \r
554 \r
555 @return javax.swing.JScrollPane \r
556 \r
557 **/\r
a13899c5 558 private JScrollPane getJScrollPane() {\r
559 if (jScrollPane == null) {\r
560 jScrollPane = new JScrollPane();\r
561 jScrollPane.setViewportView(getJContentPane());\r
562 }\r
563 return jScrollPane;\r
564 }\r
565\r
739c6b04 566 /**\r
567 This method initializes jScrollPaneCopyright \r
568 \r
569 @return javax.swing.JScrollPane \r
570 \r
571 **/\r
572 private JScrollPane getJScrollPaneCopyright() {\r
573 if (jScrollPaneCopyright == null) {\r
574 jScrollPaneCopyright = new JScrollPane();\r
0f6a6511 575 jScrollPaneCopyright.setBounds(new java.awt.Rectangle(valueCol, 260, valueWidth, 40));\r
576 jScrollPaneCopyright.setPreferredSize(new java.awt.Dimension(valueWidth, 40));\r
739c6b04 577 jScrollPaneCopyright.setViewportView(getJTextAreaCopyright());\r
0f6a6511 578 jScrollPaneCopyright.setSize(new java.awt.Dimension(valueWidth, 40));\r
739c6b04 579 }\r
580 return jScrollPaneCopyright;\r
581 }\r
a13899c5 582\r
739c6b04 583 /**\r
584 This method initializes jTextAreaCopyright \r
585 \r
586 @return javax.swing.JTextArea \r
587 \r
588 **/\r
589 private JTextArea getJTextAreaCopyright() {\r
590 if (jTextAreaCopyright == null) {\r
591 jTextAreaCopyright = new JTextArea();\r
592 jTextAreaCopyright.setLineWrap(true);\r
593 jTextAreaCopyright.addFocusListener(this);\r
594 jTextAreaCopyright.setWrapStyleWord(true);\r
595 jTextAreaCopyright.setSelectionStart(0);\r
596 jTextAreaCopyright.setSelectionEnd(0);\r
0f6a6511 597 jTextAreaCopyright.setBounds(new java.awt.Rectangle(0, 0, valueWidth, 40));\r
623db5ca 598 jTextAreaCopyright.setToolTipText("One or more copyright lines.");\r
739c6b04 599 }\r
600 return jTextAreaCopyright;\r
601 }\r
602\r
739c6b04 603 /**\r
604 * This method initializes jTextFieldOutputFileBasename \r
605 * \r
606 * @return javax.swing.JTextField \r
607 */\r
608 private JTextField getJTextFieldOutputFileBasename() {\r
609 if (jTextFieldOutputFileBasename == null) {\r
610 jTextFieldOutputFileBasename = new JTextField();\r
0f6a6511 611 jTextFieldOutputFileBasename.setBounds(new java.awt.Rectangle(valueCol, 455, valueWidth, 20));\r
612 jTextFieldOutputFileBasename.setPreferredSize(new java.awt.Dimension(valueWidth, 20));\r
739c6b04 613 jTextFieldOutputFileBasename.addFocusListener(this);\r
623db5ca 614 jTextFieldOutputFileBasename.setToolTipText("Enter a single word for generated output file names.");\r
739c6b04 615 }\r
616 return jTextFieldOutputFileBasename;\r
a13899c5 617 }\r
618\r
3b7a9058 619 /**\r
620 * This method initializes jComboBoxPcdIsDriver \r
621 * \r
622 * @return javax.swing.JComboBox \r
623 */\r
6173283b 624 private JTextField getJComboBoxPcdIsDriver() {\r
3b7a9058 625 if (jComboBoxPcdIsDriver == null) {\r
6173283b 626 jComboBoxPcdIsDriver = new JTextField();\r
0f6a6511 627 jComboBoxPcdIsDriver.setPreferredSize(new java.awt.Dimension(valueWidth, 20));\r
628 jComboBoxPcdIsDriver.setBounds(new java.awt.Rectangle(valueCol, 530, valueWidth, 20));\r
3b7a9058 629 jComboBoxPcdIsDriver.setEnabled(false);\r
0f6a6511 630 jComboBoxPcdIsDriver.setVisible(false);\r
3b7a9058 631 }\r
632 return jComboBoxPcdIsDriver;\r
633 }\r
634\r
a13899c5 635 /**\r
636 This is the default constructor\r
637 \r
638 **/\r
639 public MsaHeader() {\r
640 super();\r
641 init();\r
642 this.setVisible(true);\r
643 }\r
644\r
645 /**\r
646 This is the override edit constructor\r
647 \r
648 @param inMsaHeader The input data of MsaHeaderDocument.MsaHeader\r
649 \r
650 **/\r
651 public MsaHeader(OpeningModuleType inMsa) {\r
652 super();\r
653 this.omt = inMsa;\r
654 this.msa = omt.getXmlMsa();\r
2003a22e 655\r
9a8d6d9f 656 // \r
657 // Set module definitions default value\r
658 //\r
659 if (msa.getModuleDefinitions() == null) {\r
2003a22e 660 ModuleDefinitionsDocument.ModuleDefinitions md = ModuleDefinitionsDocument.ModuleDefinitions.Factory\r
661 .newInstance();\r
9a8d6d9f 662 md.setOutputFileBasename(msa.getMsaHeader().getModuleName());\r
663 md.setBinaryModule(false);\r
664 md.setSupportedArchitectures(ed.getVSupportedArchitectures());\r
665 msa.setModuleDefinitions(md);\r
666 }\r
3b7a9058 667\r
668 //\r
669 // Init items of Header, Definitions and Externs\r
670 //\r
a13899c5 671 init(msa.getMsaHeader());\r
739c6b04 672 init(msa.getModuleDefinitions());\r
3b7a9058 673 init(msa.getExterns());\r
cc95b47b 674 this.addListeners();\r
3b7a9058 675\r
a13899c5 676 this.setVisible(true);\r
677 this.setViewMode(false);\r
678 }\r
679\r
680 /**\r
681 Disable all components when the mode is view\r
682 \r
683 @param isView true - The view mode; false - The non-view mode\r
684 \r
685 **/\r
686 public void setViewMode(boolean isView) {\r
a13899c5 687 if (isView) {\r
688 this.jTextFieldBaseName.setEnabled(!isView);\r
689 this.jTextFieldGuid.setEnabled(!isView);\r
690 this.jTextFieldVersion.setEnabled(!isView);\r
691 this.jTextAreaLicense.setEnabled(!isView);\r
739c6b04 692 this.jTextAreaCopyright.setEnabled(!isView);\r
a13899c5 693 this.jTextAreaDescription.setEnabled(!isView);\r
694 this.jTextFieldSpecification.setEnabled(!isView);\r
695 this.jTextFieldAbstract.setEnabled(!isView);\r
696 this.jComboBoxModuleType.setEnabled(!isView);\r
697 this.jButtonCancel.setEnabled(!isView);\r
698 this.jButtonGenerateGuid.setEnabled(!isView);\r
699 this.jButtonOk.setEnabled(!isView);\r
700 }\r
701 }\r
702\r
703 /**\r
704 This method initializes this\r
705 \r
706 **/\r
707 private void init() {\r
9d0ac02b 708 this.setSize(dialogWidth, dialogHeight);\r
709 this.setPreferredSize(new java.awt.Dimension(dialogWidth, dialogHeight));\r
a13899c5 710 this.setContentPane(getJScrollPane());\r
711 this.setTitle("Module Surface Area Header");\r
712 initFrame();\r
713 }\r
714\r
715 /**\r
716 This method initializes this\r
717 Fill values to all fields if these values are not empty\r
718 \r
719 @param inMsaHeader The input data of MsaHeaderDocument.MsaHeader\r
720 \r
721 **/\r
722 private void init(MsaHeaderDocument.MsaHeader inMsaHeader) {\r
723 init();\r
724 if (inMsaHeader != null) {\r
725 setMsaHeader(inMsaHeader);\r
726 if (this.msaHeader.getModuleName() != null) {\r
727 this.jTextFieldBaseName.setText(this.msaHeader.getModuleName());\r
728 }\r
729 if (this.msaHeader.getModuleType() != null) {\r
730 this.jComboBoxModuleType.setSelectedItem(this.msaHeader.getModuleType().toString());\r
731 }\r
732 if (this.msaHeader.getGuidValue() != null) {\r
733 this.jTextFieldGuid.setText(this.msaHeader.getGuidValue());\r
734 }\r
735 if (this.msaHeader.getVersion() != null) {\r
736 this.jTextFieldVersion.setText(this.msaHeader.getVersion());\r
737 }\r
738 if (this.msaHeader.getAbstract() != null) {\r
739 this.jTextFieldAbstract.setText(this.msaHeader.getAbstract());\r
740 }\r
741 if (this.msaHeader.getDescription() != null) {\r
742 this.jTextAreaDescription.setText(this.msaHeader.getDescription());\r
9a8d6d9f 743 jTextAreaDescription.setSelectionStart(0);\r
744 jTextAreaDescription.setSelectionEnd(0);\r
a13899c5 745 }\r
746 if (this.msaHeader.getCopyright() != null) {\r
739c6b04 747 this.jTextAreaCopyright.setText(this.msaHeader.getCopyright());\r
a13899c5 748 }\r
749 if (this.msaHeader.getLicense() != null) {\r
750 this.jTextAreaLicense.setText(this.msaHeader.getLicense().getStringValue());\r
9a8d6d9f 751 jTextAreaLicense.setSelectionStart(0);\r
752 jTextAreaLicense.setSelectionEnd(0);\r
a13899c5 753 }\r
754 if (this.msaHeader.getLicense() != null && this.msaHeader.getLicense().getURL() != null) {\r
755 this.jTextFieldURL.setText(this.msaHeader.getLicense().getURL());\r
756 }\r
757 if (this.msaHeader.getSpecification() != null) {\r
758 this.jTextFieldSpecification.setText(this.msaHeader.getSpecification());\r
759 }\r
760 }\r
761 }\r
762\r
739c6b04 763 /**\r
764 This method initializes this\r
765 Fill values to all fields if these values are not empty\r
766 \r
767 @param inMsaHeader The input data of MsaHeaderDocument.MsaHeader\r
768 \r
769 **/\r
770 private void init(ModuleDefinitionsDocument.ModuleDefinitions inMd) {\r
739c6b04 771 if (inMd != null) {\r
772 this.md = inMd;\r
773 if (md.getSupportedArchitectures() != null) {\r
774 this.setSelectedItems(Tools.convertListToVector(md.getSupportedArchitectures()));\r
775 }\r
776 if (md.getBinaryModule()) {\r
b63cc1b6 777 this.jRadioButtonBinaryModuleTrue.setSelected(true);\r
739c6b04 778 } else {\r
b63cc1b6 779 this.jRadioButtonBinaryModuleFalse.setSelected(true);\r
739c6b04 780 }\r
781 if (md.getOutputFileBasename() != null) {\r
782 this.jTextFieldOutputFileBasename.setText(md.getOutputFileBasename());\r
783 }\r
784 }\r
785 }\r
786\r
3b7a9058 787 /**\r
788 This method initializes this\r
789 Fill values to all fields if these values are not empty\r
790 \r
791 @param inEx The input data of ExternsDocument.Externs\r
792 \r
793 **/\r
794 private void init(ExternsDocument.Externs inEx) {\r
795 if (inEx != null) {\r
796 this.ex = inEx;\r
797 if (ex.getPcdIsDriver() != null) {\r
798 this.jCheckBoxPcd.setSelected(true);\r
6173283b 799 this.jCheckBoxPcd.setEnabled(true);\r
3b7a9058 800 }\r
801 this.jCheckBoxFlashMap.setSelected(ex.getTianoR8FlashMapH());\r
802 }\r
803 }\r
804\r
a13899c5 805 /**\r
806 This method initializes jContentPane\r
807 \r
808 @return javax.swing.JPanel jContentPane\r
809 \r
810 **/\r
811 private JPanel getJContentPane() {\r
812 if (jContentPane == null) {\r
813\r
814 jLabelURL = new JLabel();\r
815 jLabelURL.setText("License URL");\r
0f6a6511 816 jLabelURL.setLocation(new java.awt.Point(labelCol, 430));\r
817 jLabelURL.setSize(new java.awt.Dimension(labelWidth, 20));\r
a13899c5 818 jLabelBaseName = new JLabel();\r
819 jLabelBaseName.setText("Module Name");\r
0f6a6511 820 jLabelBaseName.setBounds(new java.awt.Rectangle(labelCol, 10, labelWidth, 20));\r
a13899c5 821 jLabelModuleType = new JLabel();\r
0f6a6511 822 jLabelModuleType.setBounds(new java.awt.Rectangle(labelCol, 35, labelWidth, 20));\r
a13899c5 823 jLabelModuleType.setText("Module Type");\r
824 jLabelGuid = new JLabel();\r
825 jLabelGuid.setText("Guid Value");\r
0f6a6511 826 jLabelGuid.setLocation(new java.awt.Point(labelCol, 60));\r
827 jLabelGuid.setSize(new java.awt.Dimension(labelWidth, 20));\r
a13899c5 828 jLabelVersion = new JLabel();\r
829 jLabelVersion.setText("Version");\r
0f6a6511 830 jLabelVersion.setLocation(new java.awt.Point(labelCol, 85));\r
831 jLabelVersion.setSize(new java.awt.Dimension(labelWidth, 20));\r
a13899c5 832 jLabelAbstract = new JLabel();\r
833 jLabelAbstract.setText("Abstract");\r
0f6a6511 834 jLabelAbstract.setLocation(new java.awt.Point(labelCol, 110));\r
835 jLabelAbstract.setSize(new java.awt.Dimension(labelWidth, 20));\r
a13899c5 836 jLabelDescription = new JLabel();\r
837 jLabelDescription.setText("Description");\r
0f6a6511 838 jLabelDescription.setLocation(new java.awt.Point(labelCol, 135));\r
839 jLabelDescription.setSize(new java.awt.Dimension(labelWidth, 20));\r
a13899c5 840 jLabelCopyright = new JLabel();\r
841 jLabelCopyright.setText("Copyright");\r
0f6a6511 842 jLabelCopyright.setLocation(new java.awt.Point(labelCol, 260));\r
843 jLabelCopyright.setSize(new java.awt.Dimension(labelWidth, 20));\r
a13899c5 844 jLabelLicense = new JLabel();\r
845 jLabelLicense.setText("License");\r
0f6a6511 846 jLabelLicense.setLocation(new java.awt.Point(labelCol, 305));\r
847 jLabelLicense.setSize(new java.awt.Dimension(labelWidth, 20));\r
739c6b04 848 jLabelOutputFileBasename = new JLabel();\r
0f6a6511 849 jLabelOutputFileBasename.setBounds(new java.awt.Rectangle(labelCol, 455, labelWidth, 20));\r
739c6b04 850 jLabelOutputFileBasename.setText("Output File Basename");\r
851 jLabelBinaryModule = new JLabel();\r
0f6a6511 852 jLabelBinaryModule.setBounds(new java.awt.Rectangle(labelCol, 480, labelWidth, 20));\r
739c6b04 853 jLabelBinaryModule.setText("Binary Module");\r
854 jLabelArch = new JLabel();\r
0f6a6511 855 jLabelArch.setBounds(new java.awt.Rectangle(labelCol, 505, labelWidth, 20));\r
739c6b04 856 jLabelArch.setText("Supported Architectures");\r
a13899c5 857 jLabelSpecification = new JLabel();\r
858 jLabelSpecification.setText("Specification");\r
0f6a6511 859 jLabelSpecification.setLocation(new java.awt.Point(labelCol, 530));\r
860 jLabelSpecification.setSize(new java.awt.Dimension(labelWidth, 20));\r
a13899c5 861\r
862 jContentPane = new JPanel();\r
863 jContentPane.setLayout(null);\r
9d0ac02b 864 jContentPane.setPreferredSize(new java.awt.Dimension(dialogWidth - 10, dialogHeight - 10));\r
3b7a9058 865\r
739c6b04 866 jContentPane.addFocusListener(this);\r
a13899c5 867\r
868 jContentPane.add(jLabelBaseName, null);\r
869 jContentPane.add(getJTextFieldBaseName(), null);\r
870 jContentPane.add(jLabelGuid, null);\r
871 jContentPane.add(getJTextFieldGuid(), null);\r
872 jContentPane.add(jLabelVersion, null);\r
873 jContentPane.add(getJTextFieldVersion(), null);\r
874 jContentPane.add(getJButtonGenerateGuid(), null);\r
875 jContentPane.add(jLabelLicense, null);\r
876 jContentPane.add(jLabelCopyright, null);\r
877 jContentPane.add(jLabelDescription, null);\r
a13899c5 878 jContentPane.add(getJTextFieldSpecification(), null);\r
879 jContentPane.add(getJButtonOk(), null);\r
880 jContentPane.add(getJButtonCancel(), null);\r
881 jContentPane.add(getJScrollPaneLicense(), null);\r
882 jContentPane.add(getJScrollPaneDescription(), null);\r
883 jContentPane.add(jLabelAbstract, null);\r
884 jContentPane.add(getJTextFieldAbstract(), null);\r
885 jContentPane.add(jLabelModuleType, null);\r
886 jContentPane.add(getJComboBoxModuleType(), null);\r
887 jContentPane.add(jLabelURL, null);\r
888 jContentPane.add(getJTextFieldURL(), null);\r
739c6b04 889 jContentPane.add(jLabelOutputFileBasename, null);\r
890 jContentPane.add(getJTextFieldOutputFileBasename(), null);\r
891 jContentPane.add(jLabelBinaryModule, null);\r
739c6b04 892 jContentPane.add(jLabelArch, null);\r
893\r
a13899c5 894 jStarLabel1 = new StarLabel();\r
895 jStarLabel1.setLocation(new java.awt.Point(0, 10));\r
896 jStarLabel2 = new StarLabel();\r
897 jStarLabel2.setLocation(new java.awt.Point(0, 35));\r
898 jStarLabel4 = new StarLabel();\r
899 jStarLabel4.setLocation(new java.awt.Point(0, 60));\r
900 jStarLabel5 = new StarLabel();\r
901 jStarLabel5.setLocation(new java.awt.Point(0, 85));\r
902 jStarLabel6 = new StarLabel();\r
903 jStarLabel6.setLocation(new java.awt.Point(0, 135));\r
904 jStarLabel7 = new StarLabel();\r
905 jStarLabel7.setLocation(new java.awt.Point(0, 260));\r
906 jStarLabel8 = new StarLabel();\r
739c6b04 907 jStarLabel8.setLocation(new java.awt.Point(0, 305));\r
a13899c5 908 jStarLabel10 = new StarLabel();\r
909 jStarLabel10.setLocation(new java.awt.Point(0, 110));\r
910 jStarLabel12 = new StarLabel();\r
739c6b04 911 jStarLabel12.setLocation(new java.awt.Point(0, 455));\r
912 jStarLabel13 = new StarLabel();\r
913 jStarLabel13.setLocation(new java.awt.Point(0, 480));\r
914 jStarLabel14 = new StarLabel();\r
915 jStarLabel14.setLocation(new java.awt.Point(0, 505));\r
a13899c5 916\r
917 jContentPane.add(jStarLabel1, null);\r
918 jContentPane.add(jStarLabel2, null);\r
919 jContentPane.add(jStarLabel4, null);\r
920 jContentPane.add(jStarLabel5, null);\r
921 jContentPane.add(jStarLabel6, null);\r
922 jContentPane.add(jStarLabel7, null);\r
923 jContentPane.add(jStarLabel8, null);\r
924 jContentPane.add(jStarLabel10, null);\r
925 jContentPane.add(jStarLabel12, null);\r
739c6b04 926 jContentPane.add(jStarLabel13, null);\r
927 jContentPane.add(jStarLabel14, null);\r
739c6b04 928 jContentPane.add(getJScrollPaneCopyright(), null);\r
929\r
930 jContentPane.add(getJCheckBoxIa32(), null);\r
931 jContentPane.add(getJCheckBoxX64(), null);\r
932 jContentPane.add(getJCheckBoxIpf(), null);\r
933 jContentPane.add(getJCheckBoxEbc(), null);\r
934 jContentPane.add(getJCheckBoxArm(), null);\r
935 jContentPane.add(getJCheckBoxPpc(), null);\r
3b7a9058 936\r
937 jContentPane.add(getJCheckBoxPcd(), null);\r
938 jContentPane.add(getJComboBoxPcdIsDriver(), null);\r
939 jContentPane.add(getJCheckBoxFlashMap(), null);\r
b63cc1b6 940\r
941 ButtonGroup bg = new ButtonGroup();\r
942 jContentPane.add(getJRadioButtonBinaryModuleTrue(), null);\r
943 jContentPane.add(getJRadioButtonBinaryModuleFalse(), null);\r
944 bg.add(getJRadioButtonBinaryModuleTrue());\r
945 bg.add(getJRadioButtonBinaryModuleFalse());\r
a13899c5 946 }\r
947 return jContentPane;\r
948 }\r
949\r
950 /* (non-Javadoc)\r
951 * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)\r
952 *\r
953 * Override actionPerformed to listen all actions\r
954 *\r
955 */\r
956 public void actionPerformed(ActionEvent arg0) {\r
a13899c5 957 if (arg0.getSource() == jButtonGenerateGuid) {\r
958 jTextFieldGuid.setText(Tools.generateUuidString());\r
d1760183 959 jTextFieldGuid.requestFocus();\r
960 jButtonGenerateGuid.requestFocus();\r
a13899c5 961 }\r
962 }\r
963\r
964 /**\r
965 Data validation for all fields\r
966 \r
967 @retval true - All datas are valid\r
968 @retval false - At least one data is invalid\r
969 \r
970 **/\r
971 public boolean check() {\r
972 //\r
973 // Check if all required fields are not empty\r
974 // and check if all data fields values are valid\r
975 //\r
976\r
977 //\r
978 // Check Base Name\r
979 //\r
980 if (isEmpty(this.jTextFieldBaseName.getText())) {\r
623db5ca 981 Log.wrn("Update Msa Header", "Name must be entered!");\r
a13899c5 982 //this.jTextFieldBaseName.requestFocus();\r
983 return false;\r
984 }\r
985 if (!DataValidation.isBaseName(this.jTextFieldBaseName.getText())) {\r
623db5ca 986 Log.wrn("Update Msa Header", "Incorrect data type for Name, it must start with an alpha character!");\r
a13899c5 987 //this.jTextFieldBaseName.requestFocus();\r
988 return false;\r
989 }\r
990\r
991 //\r
992 // Check Guid\r
993 //\r
994 if (isEmpty(this.jTextFieldGuid.getText())) {\r
623db5ca 995 Log.wrn("Update Msa Header", "The Guid Value must be entered!");\r
a13899c5 996 //this.jTextFieldGuid.requestFocus();\r
997 return false;\r
998 }\r
999 if (!DataValidation.isGuid((this.jTextFieldGuid).getText())) {\r
623db5ca 1000 Log.wrn("Update Msa Header", "Incorrect data type for Guid, it must be registry format, 8-4-4-4-12");\r
a13899c5 1001 //this.jTextFieldGuid.requestFocus();\r
1002 return false;\r
1003 }\r
1004\r
1005 //\r
1006 // Check Version\r
1007 //\r
1008 if (isEmpty(this.jTextFieldVersion.getText())) {\r
623db5ca 1009 Log.wrn("Update Msa Header", "Version must be entered!");\r
a13899c5 1010 //this.jTextFieldVersion.requestFocus();\r
1011 return false;\r
1012 }\r
1013 if (!DataValidation.isVersion(this.jTextFieldVersion.getText())) {\r
623db5ca 1014 Log.wrn("Update Msa Header", "Incorrect data type for Version, it must start with a digit.");\r
a13899c5 1015 //this.jTextFieldVersion.requestFocus();\r
1016 return false;\r
1017 }\r
1018\r
1019 //\r
1020 // Check Abstact\r
1021 //\r
1022 if (isEmpty(this.jTextFieldAbstract.getText())) {\r
623db5ca 1023 Log.wrn("Update Msa Header", "Abstract must be entered!");\r
a13899c5 1024 //this.jTextFieldAbstract.requestFocus();\r
1025 return false;\r
1026 }\r
1027 if (!DataValidation.isAbstract(this.jTextFieldAbstract.getText())) {\r
3b7a9058 1028 Log.wrn("Update Msa Header",\r
1029 "Incorrect data type for Abstract, is should be a sentence describing the module.");\r
a13899c5 1030 //this.jTextFieldAbstract.requestFocus();\r
1031 return false;\r
1032 }\r
1033\r
1034 //\r
1035 // Check Description\r
1036 //\r
1037 if (isEmpty(this.jTextAreaDescription.getText())) {\r
623db5ca 1038 Log.wrn("Update Msa Header", "Description must be entered!");\r
a13899c5 1039 //this.jTextAreaDescription.requestFocus();\r
1040 return false;\r
1041 }\r
1042\r
1043 //\r
1044 // Check Copyright\r
1045 //\r
739c6b04 1046 if (isEmpty(this.jTextAreaCopyright.getText())) {\r
623db5ca 1047 Log.wrn("Update Msa Header", "Copyright must be entered!");\r
a13899c5 1048 //this.jTextFieldCopyright.requestFocus();\r
1049 return false;\r
1050 }\r
1051\r
1052 //\r
1053 // Check License\r
1054 //\r
1055 if (isEmpty(this.jTextAreaLicense.getText())) {\r
623db5ca 1056 Log.wrn("Update Msa Header", "License must be entered!");\r
a13899c5 1057 //this.jTextAreaLicense.requestFocus();\r
1058 return false;\r
1059 }\r
1060\r
1061 //\r
1062 // Check Specification\r
1063 //\r
1064 if (isEmpty(this.jTextFieldSpecification.getText())) {\r
623db5ca 1065 Log.wrn("Update Msa Header", "Specification must exist.");\r
a13899c5 1066 //this.jTextFieldSpecification.requestFocus();\r
1067 return false;\r
1068 }\r
1069 if (!DataValidation.isSpecification(this.jTextFieldSpecification.getText())) {\r
9d0ac02b 1070 // TODO Add code to check the specification number.\r
1071 // Future releases of Schema may require that we process these files\r
1072 // differently.\r
ed1665f2 1073 Log.wrn("Update Msa Header", "Incorrect data type for Specification");\r
a13899c5 1074 //this.jTextFieldSpecification.requestFocus();\r
1075 return false;\r
1076 }\r
1077\r
1078 return true;\r
1079 }\r
1080\r
1081 /**\r
1082 Save all components of Msa Header\r
1083 if exists msaHeader, set the value directly\r
1084 if not exists msaHeader, new an instance first\r
1085 \r
1086 **/\r
1087 public void save() {\r
1088 try {\r
55a2762d 1089 msaHeader.setSpecification(this.jTextFieldSpecification.getText());\r
a13899c5 1090 msa.setMsaHeader(msaHeader);\r
739c6b04 1091 msa.setModuleDefinitions(md);\r
a13899c5 1092 this.omt.setSaved(false);\r
1093 } catch (Exception e) {\r
ed1665f2 1094 Log.wrn("Save Module", e.getMessage());\r
a13899c5 1095 Log.err("Save Module", e.getMessage());\r
1096 }\r
1097 }\r
1098\r
1099 /**\r
1100 This method initializes Module type and Compontent type\r
1101 \r
1102 **/\r
1103 private void initFrame() {\r
1104 EnumerationData ed = new EnumerationData();\r
1105 Tools.generateComboBoxByVector(jComboBoxModuleType, ed.getVModuleType());\r
739c6b04 1106 this.setSelectedItems(ed.getVSupportedArchitectures());\r
a13899c5 1107 }\r
1108\r
1109 /**\r
1110 Get MsaHeaderDocument.MsaHeader\r
1111 \r
1112 @return MsaHeaderDocument.MsaHeader\r
1113 \r
1114 **/\r
1115 public MsaHeaderDocument.MsaHeader getMsaHeader() {\r
1116 return msaHeader;\r
1117 }\r
1118\r
1119 /**\r
1120 Set MsaHeaderDocument.MsaHeader\r
1121 \r
1122 @param msaHeader The input data of MsaHeaderDocument.MsaHeader\r
1123 \r
1124 **/\r
1125 public void setMsaHeader(MsaHeaderDocument.MsaHeader msaHeader) {\r
1126 this.msaHeader = msaHeader;\r
1127 }\r
1128\r
1129 /* (non-Javadoc)\r
1130 * @see java.awt.event.ComponentListener#componentResized(java.awt.event.ComponentEvent)\r
1131 * \r
1132 * Override componentResized to resize all components when frame's size is changed\r
1133 */\r
1134 public void componentResized(ComponentEvent arg0) {\r
1135 int intCurrentWidth = this.getJContentPane().getWidth();\r
1136 int intPreferredWidth = this.getJContentPane().getPreferredSize().width;\r
1137\r
8792f60f 1138 Tools.resizeComponentWidth(this.jTextFieldBaseName, intCurrentWidth, intPreferredWidth);\r
9a362ae7 1139 Tools.resizeComponentWidth(this.jTextFieldGuid, intCurrentWidth, intPreferredWidth + 7);\r
8792f60f 1140 Tools.resizeComponentWidth(this.jTextFieldVersion, intCurrentWidth, intPreferredWidth);\r
1141 Tools.resizeComponentWidth(this.jScrollPaneLicense, intCurrentWidth, intPreferredWidth);\r
1142 Tools.resizeComponentWidth(this.jTextFieldURL, intCurrentWidth, intPreferredWidth);\r
1143 Tools.resizeComponentWidth(this.jScrollPaneCopyright, intCurrentWidth, intPreferredWidth);\r
1144 Tools.resizeComponentWidth(this.jScrollPaneDescription, intCurrentWidth, intPreferredWidth);\r
b63cc1b6 1145 Tools.resizeComponentWidth(this.jTextFieldSpecification, intCurrentWidth, intPreferredWidth);\r
8792f60f 1146 Tools.resizeComponentWidth(this.jTextFieldAbstract, intCurrentWidth, intPreferredWidth);\r
b63cc1b6 1147 Tools.resizeComponentWidth(this.jComboBoxModuleType, intCurrentWidth, intPreferredWidth);\r
8792f60f 1148 Tools.resizeComponentWidth(this.jTextFieldOutputFileBasename, intCurrentWidth, intPreferredWidth);\r
b63cc1b6 1149 Tools.resizeComponentWidth(this.jComboBoxPcdIsDriver, intCurrentWidth, intPreferredWidth);\r
8792f60f 1150\r
1151 Tools.relocateComponentX(this.jButtonGenerateGuid, intCurrentWidth, intPreferredWidth,\r
b63cc1b6 1152 DataType.SPACE_TO_RIGHT_FOR_GENERATE_BUTTON);\r
a13899c5 1153 }\r
1154\r
1155 public void focusLost(FocusEvent arg0) {\r
1156 if (this.msaHeader == null) {\r
1157 msaHeader = MsaHeaderDocument.MsaHeader.Factory.newInstance();\r
1158 }\r
2003a22e 1159\r
a13899c5 1160 //\r
1161 // Check BaseName\r
1162 //\r
1163 if (arg0.getSource() == this.jTextFieldBaseName) {\r
1164 if (isEmpty(this.jTextFieldBaseName.getText())) {\r
623db5ca 1165 Log.wrn("Update Msa Header", "The Name must be entered!");\r
a13899c5 1166 //this.jTextFieldBaseName.requestFocus();\r
1167 return;\r
1168 }\r
1169 if (!DataValidation.isBaseName(this.jTextFieldBaseName.getText())) {\r
623db5ca 1170 Log.wrn("Update Msa Header", "Incorrect data type for Name, it must begin with an alpha character.");\r
a13899c5 1171 //this.jTextFieldBaseName.requestFocus();\r
1172 return;\r
1173 }\r
2003a22e 1174 if (!this.jTextFieldBaseName.getText().equals(msaHeader.getModuleName())) {\r
1175 this.msaHeader.setModuleName(this.jTextFieldBaseName.getText());\r
1176 } else {\r
1177 return;\r
1178 }\r
a13899c5 1179 }\r
1180\r
a13899c5 1181 //\r
1182 // Check Guid\r
1183 //\r
1184 if (arg0.getSource() == this.jTextFieldGuid) {\r
1185 if (isEmpty(this.jTextFieldGuid.getText())) {\r
623db5ca 1186 Log.wrn("Update Msa Header", "Guid must be entered!");\r
a13899c5 1187 //this.jTextFieldGuid.requestFocus();\r
1188 return;\r
1189 }\r
1190 if (!DataValidation.isGuid((this.jTextFieldGuid).getText())) {\r
623db5ca 1191 Log.wrn("Update Msa Header", "Incorrect data type for Guid, it must be registry format. (8-4-4-4-12)");\r
a13899c5 1192 //this.jTextFieldGuid.requestFocus();\r
1193 return;\r
1194 }\r
2003a22e 1195 if (!this.jTextFieldGuid.getText().equals(msaHeader.getGuidValue())) {\r
1196 this.msaHeader.setGuidValue(this.jTextFieldGuid.getText());\r
1197 } else {\r
1198 return;\r
1199 }\r
a13899c5 1200 }\r
1201\r
1202 //\r
1203 // Check Version\r
1204 //\r
1205 if (arg0.getSource() == this.jTextFieldVersion) {\r
a13899c5 1206 if (isEmpty(this.jTextFieldVersion.getText())) {\r
623db5ca 1207 Log.wrn("Update Msa Header", "Version must be entered!");\r
a13899c5 1208 //this.jTextFieldVersion.requestFocus();\r
1209 return;\r
1210 }\r
1211 if (!DataValidation.isVersion(this.jTextFieldVersion.getText())) {\r
623db5ca 1212 Log.wrn("Update Msa Header", "Incorrect data type for Version, it must start with a digit.");\r
a13899c5 1213 //this.jTextFieldVersion.requestFocus();\r
1214 return;\r
1215 }\r
2003a22e 1216 if (!this.jTextFieldVersion.getText().equals(msaHeader.getVersion())) {\r
1217 this.msaHeader.setVersion(this.jTextFieldVersion.getText());\r
1218 } else {\r
1219 return;\r
1220 }\r
a13899c5 1221 }\r
1222\r
1223 //\r
1224 // Check Abstact\r
1225 //\r
1226 if (arg0.getSource() == this.jTextFieldAbstract) {\r
1227 if (isEmpty(this.jTextFieldAbstract.getText())) {\r
623db5ca 1228 Log.wrn("Update Msa Header", "Abstract must be entered!");\r
a13899c5 1229 //this.jTextFieldAbstract.requestFocus();\r
1230 return;\r
1231 }\r
1232 if (!DataValidation.isAbstract(this.jTextFieldAbstract.getText())) {\r
623db5ca 1233 Log.wrn("Update Msa Header", "Incorrect data type for Abstract, it must be sentence.");\r
a13899c5 1234 //this.jTextFieldAbstract.requestFocus();\r
1235 return;\r
1236 }\r
2003a22e 1237 if (!this.jTextFieldAbstract.getText().equals(msaHeader.getAbstract())) {\r
1238 this.msaHeader.setAbstract(this.jTextFieldAbstract.getText());\r
1239 } else {\r
1240 return;\r
1241 }\r
a13899c5 1242 }\r
1243\r
1244 //\r
1245 // Check Description\r
1246 //\r
1247 if (arg0.getSource() == this.jTextAreaDescription) {\r
1248 if (isEmpty(this.jTextAreaDescription.getText())) {\r
623db5ca 1249 Log.wrn("Update Msa Header", "Description must be entered!");\r
a13899c5 1250 //this.jTextAreaDescription.requestFocus();\r
1251 return;\r
1252 }\r
2003a22e 1253 if (!this.jTextAreaDescription.getText().equals(msaHeader.getDescription())) {\r
1254 this.msaHeader.setDescription(this.jTextAreaDescription.getText());\r
1255 } else {\r
1256 return;\r
1257 }\r
a13899c5 1258 }\r
1259\r
1260 //\r
1261 // Check Copyright\r
1262 //\r
739c6b04 1263 if (arg0.getSource() == this.jTextAreaCopyright) {\r
1264 if (isEmpty(this.jTextAreaCopyright.getText())) {\r
623db5ca 1265 Log.wrn("Update Msa Header", "Copyright must be entered!");\r
a13899c5 1266 //this.jTextFieldCopyright.requestFocus();\r
1267 return;\r
1268 }\r
739c6b04 1269 if (!this.jTextAreaCopyright.getText().equals(msaHeader.getCopyright())) {\r
1270 this.msaHeader.setCopyright(this.jTextAreaCopyright.getText());\r
2003a22e 1271 } else {\r
1272 return;\r
1273 }\r
a13899c5 1274 }\r
1275\r
1276 //\r
1277 // Check License\r
1278 //\r
1279 if (arg0.getSource() == this.jTextAreaLicense) {\r
1280 if (isEmpty(this.jTextAreaLicense.getText())) {\r
623db5ca 1281 Log.wrn("Update Msa Header", "License must be entered!");\r
a13899c5 1282 //this.jTextAreaLicense.requestFocus();\r
1283 return;\r
1284 }\r
1285 if (this.msaHeader.getLicense() != null) {\r
2003a22e 1286 if (!this.jTextAreaLicense.getText().equals(msaHeader.getLicense().getStringValue())) {\r
1287 this.msaHeader.getLicense().setStringValue(this.jTextAreaLicense.getText());\r
1288 } else {\r
1289 return;\r
1290 }\r
a13899c5 1291 } else {\r
1292 License mLicense = License.Factory.newInstance();\r
1293 mLicense.setStringValue(this.jTextAreaLicense.getText());\r
1294 this.msaHeader.setLicense(mLicense);\r
1295 }\r
1296 }\r
1297\r
1298 //\r
1299 // Check License URL\r
1300 //\r
1301 if (arg0.getSource() == this.jTextFieldURL) {\r
1302 if (!isEmpty(this.jTextFieldURL.getText())) {\r
1303 if (this.msaHeader.getLicense() == null) {\r
1304 License mLicense = License.Factory.newInstance();\r
1305 mLicense.setURL(this.jTextFieldURL.getText());\r
1306 this.msaHeader.setLicense(mLicense);\r
1307 } else {\r
2003a22e 1308 if (!this.jTextFieldURL.getText().equals(msaHeader.getLicense().getURL())) {\r
1309 this.msaHeader.getLicense().setURL(this.jTextFieldURL.getText());\r
1310 } else {\r
1311 return;\r
1312 }\r
a13899c5 1313 }\r
1314 }\r
1315 }\r
a929458e 1316\r
739c6b04 1317 //\r
1318 // Check Output File Basename\r
1319 //\r
1320 if (arg0.getSource() == this.jTextFieldOutputFileBasename) {\r
1321 if (isEmpty(this.jTextFieldOutputFileBasename.getText())) {\r
623db5ca 1322 Log.wrn("Update Msa Header", "Output File Basename must be entered!");\r
739c6b04 1323 // jTextFieldOutputFileBasename.removeFocusListener(this);\r
1324 // jTextFieldOutputFileBasename.requestFocus();\r
1325 // jTextFieldOutputFileBasename.addFocusListener(this);\r
1326 return;\r
1327 }\r
6173283b 1328\r
f436f728 1329 if (!DataValidation.isOutputFileBasename(this.jTextFieldOutputFileBasename.getText())) {\r
6173283b 1330 Log.wrn("Update Msa Header",\r
1331 "Incorrect data type for Output File Basename, it must be a valid file name");\r
f436f728 1332 return;\r
1333 }\r
6173283b 1334\r
739c6b04 1335 if (!this.jTextFieldOutputFileBasename.getText().equals(md.getOutputFileBasename())) {\r
1336 this.md.setOutputFileBasename(this.jTextFieldOutputFileBasename.getText());\r
1337 } else {\r
1338 return;\r
1339 }\r
1340 }\r
1341\r
1342 //\r
1343 // Check Binary Module Type\r
1344 //\r
b63cc1b6 1345 if (arg0.getSource() == this.jRadioButtonBinaryModuleTrue) {\r
1346 if (jRadioButtonBinaryModuleTrue.isSelected()) {\r
739c6b04 1347 if (md.getBinaryModule()) {\r
1348 return;\r
1349 } else {\r
1350 md.setBinaryModule(true);\r
1351 }\r
b63cc1b6 1352 }\r
1353 }\r
1354\r
1355 //\r
1356 // Check Binary Module Type\r
1357 //\r
1358 if (arg0.getSource() == this.jRadioButtonBinaryModuleFalse) {\r
1359 if (jRadioButtonBinaryModuleFalse.isSelected()) {\r
739c6b04 1360 if (md.getBinaryModule()) {\r
1361 md.setBinaryModule(false);\r
1362 } else {\r
1363 return;\r
1364 }\r
1365 }\r
1366 }\r
1367\r
a13899c5 1368 this.save();\r
1369 }\r
739c6b04 1370\r
1371 private Vector<String> getSelectedItemsVector() {\r
1372 Vector<String> v = new Vector<String>();\r
1373 if (this.jCheckBoxIa32.isSelected()) {\r
1374 v.addElement(jCheckBoxIa32.getText());\r
1375 }\r
1376 if (this.jCheckBoxX64.isSelected()) {\r
1377 v.addElement(jCheckBoxX64.getText());\r
1378 }\r
1379 if (this.jCheckBoxIpf.isSelected()) {\r
1380 v.addElement(jCheckBoxIpf.getText());\r
1381 }\r
1382 if (this.jCheckBoxEbc.isSelected()) {\r
1383 v.addElement(jCheckBoxEbc.getText());\r
1384 }\r
1385 if (this.jCheckBoxArm.isSelected()) {\r
1386 v.addElement(jCheckBoxArm.getText());\r
1387 }\r
1388 if (this.jCheckBoxPpc.isSelected()) {\r
1389 v.addElement(jCheckBoxPpc.getText());\r
1390 }\r
1391 return v;\r
1392 }\r
1393\r
1394 private String getSelectedItemsString() {\r
1395 String s = "";\r
1396 if (this.jCheckBoxIa32.isSelected()) {\r
1397 s = s + jCheckBoxIa32.getText() + " ";\r
1398 }\r
1399 if (this.jCheckBoxX64.isSelected()) {\r
1400 s = s + jCheckBoxX64.getText() + " ";\r
1401 }\r
1402 if (this.jCheckBoxIpf.isSelected()) {\r
1403 s = s + jCheckBoxIpf.getText() + " ";\r
1404 }\r
1405 if (this.jCheckBoxEbc.isSelected()) {\r
1406 s = s + jCheckBoxEbc.getText() + " ";\r
1407 }\r
1408 if (this.jCheckBoxArm.isSelected()) {\r
1409 s = s + jCheckBoxArm.getText() + " ";\r
1410 }\r
1411 if (this.jCheckBoxPpc.isSelected()) {\r
1412 s = s + jCheckBoxPpc.getText() + " ";\r
1413 }\r
1414 return s.trim();\r
1415 }\r
1416\r
1417 private void setAllItemsSelected(boolean isSelected) {\r
6173283b 1418 this.jCheckBoxIa32.setSelected(true);\r
739c6b04 1419 this.jCheckBoxX64.setSelected(isSelected);\r
1420 this.jCheckBoxIpf.setSelected(isSelected);\r
1421 this.jCheckBoxEbc.setSelected(isSelected);\r
1422 this.jCheckBoxArm.setSelected(isSelected);\r
1423 this.jCheckBoxPpc.setSelected(isSelected);\r
1424 }\r
1425\r
1426 private void setSelectedItems(Vector<String> v) {\r
1427 setAllItemsSelected(false);\r
6173283b 1428 boolean isIA32Selected = false;\r
739c6b04 1429 if (v != null) {\r
1430 for (int index = 0; index < v.size(); index++) {\r
1431 if (v.get(index).equals(this.jCheckBoxIa32.getText())) {\r
1432 this.jCheckBoxIa32.setSelected(true);\r
6173283b 1433 isIA32Selected = true;\r
739c6b04 1434 continue;\r
1435 }\r
1436 if (v.get(index).equals(this.jCheckBoxIpf.getText())) {\r
1437 this.jCheckBoxIpf.setSelected(true);\r
1438 continue;\r
1439 }\r
1440 if (v.get(index).equals(this.jCheckBoxX64.getText())) {\r
1441 this.jCheckBoxX64.setSelected(true);\r
1442 continue;\r
1443 }\r
1444 if (v.get(index).equals(this.jCheckBoxEbc.getText())) {\r
1445 this.jCheckBoxEbc.setSelected(true);\r
1446 continue;\r
1447 }\r
1448 if (v.get(index).equals(this.jCheckBoxArm.getText())) {\r
1449 this.jCheckBoxArm.setSelected(true);\r
1450 continue;\r
1451 }\r
1452 if (v.get(index).equals(this.jCheckBoxPpc.getText())) {\r
1453 this.jCheckBoxPpc.setSelected(true);\r
1454 continue;\r
1455 }\r
1456 }\r
6173283b 1457 if (!isIA32Selected) {\r
1458 this.jCheckBoxIa32.setSelected(false);\r
1459 }\r
739c6b04 1460 }\r
1461 }\r
3b7a9058 1462\r
1463 /**\r
1464 * This method initializes jCheckBoxPcd \r
1465 * \r
1466 * @return javax.swing.JCheckBox \r
1467 */\r
1468 private JCheckBox getJCheckBoxPcd() {\r
1469 if (jCheckBoxPcd == null) {\r
1470 jCheckBoxPcd = new JCheckBox();\r
0f6a6511 1471 jCheckBoxPcd.setBounds(new java.awt.Rectangle(labelCol, 530, labelWidth, 20));\r
3b7a9058 1472 jCheckBoxPcd.setText("Is this a PCD Driver?");\r
1473 jCheckBoxPcd.addFocusListener(this);\r
1474 jCheckBoxPcd.addActionListener(this);\r
6173283b 1475 jCheckBoxPcd.setEnabled(false);\r
3b7a9058 1476 }\r
1477 return jCheckBoxPcd;\r
1478 }\r
1479\r
1480 /**\r
1481 * This method initializes jCheckBoxFlashMap \r
1482 * \r
1483 * @return javax.swing.JCheckBox \r
1484 */\r
1485 private JCheckBox getJCheckBoxFlashMap() {\r
1486 if (jCheckBoxFlashMap == null) {\r
1487 jCheckBoxFlashMap = new JCheckBox();\r
0f6a6511 1488 jCheckBoxFlashMap.setBounds(new java.awt.Rectangle(labelCol, 555, 480, 20));\r
8de0094c 1489 jCheckBoxFlashMap.setText("Does this module require a legacy FlashMap header file?");\r
3b7a9058 1490 }\r
1491 return jCheckBoxFlashMap;\r
1492 }\r
b63cc1b6 1493\r
1494 /**\r
1495 * This method initializes jRadioButtonBinaryModuleTrue \r
1496 * \r
1497 * @return javax.swing.JRadioButton \r
1498 */\r
1499 private JRadioButton getJRadioButtonBinaryModuleTrue() {\r
1500 if (jRadioButtonBinaryModuleTrue == null) {\r
1501 jRadioButtonBinaryModuleTrue = new JRadioButton();\r
1502 jRadioButtonBinaryModuleTrue.setBounds(new java.awt.Rectangle(valueCol, 480, 140, 20));\r
1503 jRadioButtonBinaryModuleTrue.setText("True");\r
1504 jRadioButtonBinaryModuleTrue.setSelected(true);\r
1505 jRadioButtonBinaryModuleTrue.addFocusListener(this);\r
888f61aa 1506 jRadioButtonBinaryModuleTrue\r
1507 .setToolTipText("<html>Modules are either source modules which can be compiled or binary <br>"\r
1508 + "modules which are linked. A module cannot contain both. <br>"\r
1509 + "The GUID numbers should be identical for a binary and source MSA, <br>"\r
1510 + "however the BINARY MSA should have a higher version number.</html>");\r
b63cc1b6 1511 }\r
1512 return jRadioButtonBinaryModuleTrue;\r
1513 }\r
1514\r
1515 /**\r
1516 * This method initializes jRadioButtonBinaryModuleFalse \r
1517 * \r
1518 * @return javax.swing.JRadioButton \r
1519 */\r
1520 private JRadioButton getJRadioButtonBinaryModuleFalse() {\r
1521 if (jRadioButtonBinaryModuleFalse == null) {\r
1522 jRadioButtonBinaryModuleFalse = new JRadioButton();\r
1523 jRadioButtonBinaryModuleFalse.setBounds(new java.awt.Rectangle(valueCol + 140, 480, 140, 20));\r
1524 jRadioButtonBinaryModuleFalse.setText("False");\r
1525 jRadioButtonBinaryModuleFalse.addFocusListener(this);\r
888f61aa 1526 jRadioButtonBinaryModuleFalse\r
1527 .setToolTipText("<html>Modules are either source modules which can be compiled or binary <br>"\r
14a32a70 1528 + "modules which are linked. A module cannot contain both. <br>"\r
1529 + "The GUID numbers should be identical for a binary and source MSA, <br>"\r
1530 + "however the BINARY MSA should have a higher version number.</html>");\r
b63cc1b6 1531 }\r
1532 return jRadioButtonBinaryModuleFalse;\r
1533 }\r
6173283b 1534\r
1535 public void itemStateChanged(ItemEvent arg0) {\r
ef908641 1536 //\r
1537 // Check Supported Arch\r
1538 //\r
6173283b 1539 if (arg0.getSource() == this.jCheckBoxIa32 || arg0.getSource() == this.jCheckBoxIpf\r
1540 || arg0.getSource() == this.jCheckBoxX64 || arg0.getSource() == this.jCheckBoxEbc\r
1541 || arg0.getSource() == this.jCheckBoxArm || arg0.getSource() == this.jCheckBoxPpc) {\r
1542 if (!this.jCheckBoxIa32.isSelected() && !this.jCheckBoxX64.isSelected() && !this.jCheckBoxIpf.isSelected()\r
1543 && !this.jCheckBoxEbc.isSelected() && !this.jCheckBoxPpc.isSelected()\r
1544 && !this.jCheckBoxArm.isSelected()) {\r
1545 Log\r
1546 .wrn("At lease one Supportted Architecture should be selected! IA32 is selected as default value!");\r
1547 this.jCheckBoxIa32.setSelected(true);\r
1548 }\r
ef908641 1549\r
1550 if (!this.getSelectedItemsString().equals(md.getSupportedArchitectures().toString())) {\r
1551 md.setSupportedArchitectures(this.getSelectedItemsVector());\r
1552 this.save();\r
1553 }\r
6173283b 1554 }\r
1555\r
1556 if (arg0.getSource() == this.jComboBoxModuleType) {\r
1557 if (this.jComboBoxModuleType.getSelectedItem().equals("PEIM")\r
1558 || this.jComboBoxModuleType.getSelectedItem().equals("DXE_DRIVER")) {\r
1559 this.jCheckBoxPcd.setEnabled(true);\r
1560 if (this.jCheckBoxPcd.isSelected()) {\r
1561 this.jCheckBoxPcd.setSelected(false);\r
1562 this.jCheckBoxPcd.setSelected(true);\r
1563 }\r
1564 } else {\r
1565 this.jCheckBoxPcd.setEnabled(false);\r
1566 this.jCheckBoxPcd.setSelected(false);\r
1567 }\r
ef908641 1568 if (!jComboBoxModuleType.getSelectedItem().toString().equals(msaHeader.getModuleType().toString())) {\r
1569 msaHeader.setModuleType(ModuleTypeDef.Enum.forString(jComboBoxModuleType.getSelectedItem().toString()));\r
1570 this.save();\r
1571 }\r
6173283b 1572 }\r
1573\r
1574 //\r
1575 // Check Pcd is Driver\r
1576 //\r
1577 if (arg0.getSource() == this.jCheckBoxPcd) {\r
1578 if (this.jCheckBoxPcd.isSelected()) {\r
1579 if (this.jComboBoxModuleType.getSelectedItem().toString().equals("DXE_DRIVER")) {\r
1580 this.jComboBoxPcdIsDriver.setText("DXE_PCD_DRIVER");\r
1581 this.jComboBoxPcdIsDriver.setEnabled(true);\r
1582 } else if (this.jComboBoxModuleType.getSelectedItem().toString().equals("PEIM")) {\r
1583 this.jComboBoxPcdIsDriver.setText("PEI_PCD_DRIVER");\r
1584 this.jComboBoxPcdIsDriver.setEnabled(true);\r
1585 }\r
1586 }\r
1587\r
1588 if ((this.ex == null) && this.jCheckBoxPcd.isSelected()) {\r
1589 this.ex = ExternsDocument.Externs.Factory.newInstance();\r
1590 this.ex.setPcdIsDriver(PcdDriverTypes.Enum.forString(this.jComboBoxPcdIsDriver.getText()));\r
1591 this.msa.setExterns(this.ex);\r
1592 } else if ((this.ex != null) && (this.ex.getPcdIsDriver() == null) && this.jCheckBoxPcd.isSelected()) {\r
1593 this.ex.setPcdIsDriver(PcdDriverTypes.Enum.forString(this.jComboBoxPcdIsDriver.getText()));\r
1594 this.msa.setExterns(this.ex);\r
1595 } else if ((this.ex != null) && (this.ex.getPcdIsDriver() != null)) {\r
1596 if (this.jCheckBoxPcd.isSelected()\r
1597 && !this.jComboBoxPcdIsDriver.getText().toString().equals(this.ex.getPcdIsDriver().toString())) {\r
1598 this.ex.setPcdIsDriver(PcdDriverTypes.Enum.forString(this.jComboBoxPcdIsDriver.getText()));\r
1599 this.msa.setExterns(this.ex);\r
1600 }\r
1601 if (!this.jCheckBoxPcd.isSelected()) {\r
1602 ExternsDocument.Externs newEx = ExternsDocument.Externs.Factory.newInstance();\r
1603 if (this.ex.getExternList() != null) {\r
1604 for (int index = 0; index < this.ex.getExternList().size(); index++) {\r
1605 newEx.addNewExtern();\r
1606 newEx.setExternArray(index, this.ex.getExternArray(index));\r
1607 }\r
1608 }\r
1609 if (this.ex.getSpecificationList() != null) {\r
1610 for (int index = 0; index < this.ex.getSpecificationList().size(); index++) {\r
1611 newEx.addNewSpecification();\r
1612 newEx.setSpecificationArray(index, this.ex.getSpecificationArray(index));\r
1613 }\r
1614 }\r
1615 if (this.ex.getTianoR8FlashMapH()) {\r
1616 newEx.setTianoR8FlashMapH(this.ex.getTianoR8FlashMapH());\r
1617 }\r
1618 this.ex = newEx;\r
1619 this.msa.setExterns(this.ex);\r
1620 }\r
1621 }\r
1622 this.save();\r
1623 }\r
ef908641 1624 //\r
1625 // Check Flash Map\r
1626 //\r
1627 if (arg0.getSource() == this.jCheckBoxFlashMap) {\r
1628 if ((this.ex == null) && this.jCheckBoxFlashMap.isSelected()) {\r
1629 this.ex = ExternsDocument.Externs.Factory.newInstance();\r
1630 this.ex.setTianoR8FlashMapH(this.jCheckBoxFlashMap.isSelected());\r
1631 this.msa.setExterns(this.ex);\r
1632 } else if ((this.ex != null) && this.jCheckBoxFlashMap.isSelected()) {\r
1633 this.ex.setTianoR8FlashMapH(this.jCheckBoxFlashMap.isSelected());\r
1634 this.msa.setExterns(this.ex);\r
1635 } else if ((this.ex != null) && !this.jCheckBoxFlashMap.isSelected()) {\r
1636 ExternsDocument.Externs newEx = ExternsDocument.Externs.Factory.newInstance();\r
1637 if (this.ex.getExternList() != null) {\r
1638 for (int index = 0; index < this.ex.getExternList().size(); index++) {\r
1639 newEx.addNewExtern();\r
1640 newEx.setExternArray(index, this.ex.getExternArray(index));\r
1641 }\r
1642 }\r
1643 if (this.ex.getSpecificationList() != null) {\r
1644 for (int index = 0; index < this.ex.getSpecificationList().size(); index++) {\r
1645 newEx.addNewSpecification();\r
1646 newEx.setSpecificationArray(index, this.ex.getSpecificationArray(index));\r
1647 }\r
1648 }\r
1649 if (this.ex.getPcdIsDriver() != null) {\r
1650 newEx.setPcdIsDriver(this.ex.getPcdIsDriver());\r
1651 }\r
1652 this.ex = newEx;\r
1653 this.msa.setExterns(this.ex);\r
1654 }\r
1655 this.save();\r
1656 }\r
cc95b47b 1657 }\r
ef908641 1658\r
cc95b47b 1659 private void addListeners() {\r
1660 this.jTextFieldBaseName.getDocument().addDocumentListener(this);\r
1661 this.jTextFieldGuid.getDocument().addDocumentListener(this);\r
1662 this.jTextFieldAbstract.getDocument().addDocumentListener(this);\r
1663 this.jTextAreaCopyright.getDocument().addDocumentListener(this);\r
1664 this.jTextAreaDescription.getDocument().addDocumentListener(this);\r
1665 this.jTextAreaLicense.getDocument().addDocumentListener(this);\r
1666 this.jTextFieldOutputFileBasename.getDocument().addDocumentListener(this);\r
1667 this.jTextFieldSpecification.getDocument().addDocumentListener(this);\r
1668 this.jTextFieldURL.getDocument().addDocumentListener(this);\r
1669 this.jTextFieldVersion.getDocument().addDocumentListener(this);\r
ef908641 1670\r
cc95b47b 1671 this.jComboBoxModuleType.addItemListener(this);\r
ef908641 1672\r
cc95b47b 1673 this.jCheckBoxIa32.addItemListener(this);\r
1674 this.jCheckBoxX64.addItemListener(this);\r
1675 this.jCheckBoxIpf.addItemListener(this);\r
1676 this.jCheckBoxEbc.addItemListener(this);\r
1677 this.jCheckBoxArm.addItemListener(this);\r
1678 this.jCheckBoxPpc.addItemListener(this);\r
ef908641 1679\r
cc95b47b 1680 this.jCheckBoxPcd.addItemListener(this);\r
ef908641 1681\r
cc95b47b 1682 this.jCheckBoxFlashMap.addItemListener(this);\r
1683 }\r
1684\r
1685 public void insertUpdate(DocumentEvent e) {\r
ef908641 1686 this.omt.setSaved(false);\r
cc95b47b 1687 }\r
1688\r
1689 public void removeUpdate(DocumentEvent e) {\r
1690 this.omt.setSaved(false);\r
1691 }\r
1692\r
1693 public void changedUpdate(DocumentEvent e) {\r
1694 // Do nothing\r
6173283b 1695 }\r
a13899c5 1696}\r