3 This file is used to create, update MbdHeader of a MBD file
5 Copyright (c) 2006, Intel Corporation
6 All rights reserved. This program and the accompanying materials
7 are licensed and made available under the terms and conditions of the BSD License
8 which accompanies this distribution. The full text of the license may be found at
9 http://opensource.org/licenses/bsd-license.php
11 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
12 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
16 package org
.tianocore
.packaging
.module
.ui
;
18 import java
.awt
.event
.ActionEvent
;
20 import javax
.swing
.JButton
;
21 import javax
.swing
.JLabel
;
22 import javax
.swing
.JPanel
;
23 import javax
.swing
.JScrollPane
;
24 import javax
.swing
.JTextArea
;
25 import javax
.swing
.JTextField
;
27 import org
.tianocore
.BaseNameDocument
;
28 import org
.tianocore
.GuidDocument
;
29 import org
.tianocore
.LicenseDocument
;
30 import org
.tianocore
.MbdHeaderDocument
;
31 import org
.tianocore
.common
.DataValidation
;
32 import org
.tianocore
.common
.Log
;
33 import org
.tianocore
.common
.Tools
;
34 import org
.tianocore
.packaging
.common
.ui
.IInternalFrame
;
35 import org
.tianocore
.packaging
.common
.ui
.StarLabel
;
38 This class is used to create, update MbdHeader of a MBD file
39 It extends IInternalFrame
41 @since ModuleEditor 1.0
44 public class MbdHeader
extends IInternalFrame
{
46 /// Define class Serial Version UID
48 private static final long serialVersionUID
= -2015726615436197378L;
51 // Define class members
53 private JPanel jContentPane
= null;
55 private JLabel jLabelBaseName
= null;
57 private JTextField jTextFieldBaseName
= null;
59 private JLabel jLabelGuid
= null;
61 private JTextField jTextFieldGuid
= null;
63 private JLabel jLabelVersion
= null;
65 private JTextField jTextFieldVersion
= null;
67 private JButton jButtonGenerateGuid
= null;
69 private JLabel jLabelLicense
= null;
71 private JTextArea jTextAreaLicense
= null;
73 private JLabel jLabelCopyright
= null;
75 private JLabel jLabelDescription
= null;
77 private JTextArea jTextAreaDescription
= null;
79 private JButton jButtonOk
= null;
81 private JButton jButtonCancel
= null;
83 private JScrollPane jScrollPaneLicense
= null;
85 private JScrollPane jScrollPaneDescription
= null;
87 private StarLabel jStarLabel1
= null;
89 private StarLabel jStarLabel2
= null;
91 private StarLabel jStarLabel3
= null;
93 private StarLabel jStarLabel4
= null;
95 private StarLabel jStarLabel5
= null;
97 private StarLabel jStarLabel6
= null;
99 private MbdHeaderDocument
.MbdHeader mbdHeader
= null;
101 private JTextField jTextFieldCopyright
= null;
104 This method initializes jTextFieldBaseName
106 @return javax.swing.JTextField jTextFieldBaseName
109 private JTextField
getJTextFieldBaseName() {
110 if (jTextFieldBaseName
== null) {
111 jTextFieldBaseName
= new JTextField();
112 jTextFieldBaseName
.setBounds(new java
.awt
.Rectangle(160, 10, 320, 20));
114 return jTextFieldBaseName
;
118 This method initializes jTextFieldGuid
120 @return javax.swing.JTextField jTextFieldGuid
123 private JTextField
getJTextFieldGuid() {
124 if (jTextFieldGuid
== null) {
125 jTextFieldGuid
= new JTextField();
126 jTextFieldGuid
.setBounds(new java
.awt
.Rectangle(160, 35, 250, 20));
128 return jTextFieldGuid
;
132 This method initializes jTextFieldVersion
134 @return javax.swing.JTextField jTextFieldVersion
137 private JTextField
getJTextFieldVersion() {
138 if (jTextFieldVersion
== null) {
139 jTextFieldVersion
= new JTextField();
140 jTextFieldVersion
.setBounds(new java
.awt
.Rectangle(160, 60, 320, 20));
142 return jTextFieldVersion
;
146 This method initializes jButtonGenerateGuid
148 @return javax.swing.JButton jButtonGenerateGuid
151 private JButton
getJButtonGenerateGuid() {
152 if (jButtonGenerateGuid
== null) {
153 jButtonGenerateGuid
= new JButton();
154 jButtonGenerateGuid
.setBounds(new java
.awt
.Rectangle(415, 35, 65, 20));
155 jButtonGenerateGuid
.setText("GEN");
156 jButtonGenerateGuid
.addActionListener(this);
158 return jButtonGenerateGuid
;
162 This method initializes jTextAreaLicense
164 @return javax.swing.JTextArea jTextAreaLicense
167 private JTextArea
getJTextAreaLicense() {
168 if (jTextAreaLicense
== null) {
169 jTextAreaLicense
= new JTextArea();
170 jTextAreaLicense
.setText("");
171 jTextAreaLicense
.setLineWrap(true);
173 return jTextAreaLicense
;
177 This method initializes jTextAreaDescription
179 @return javax.swing.JTextArea jTextAreaDescription
182 private JTextArea
getJTextAreaDescription() {
183 if (jTextAreaDescription
== null) {
184 jTextAreaDescription
= new JTextArea();
185 jTextAreaDescription
.setLineWrap(true);
187 return jTextAreaDescription
;
191 This method initializes jButtonOk
193 @return javax.swing.JButton jButtonOk
196 private JButton
getJButtonOk() {
197 if (jButtonOk
== null) {
198 jButtonOk
= new JButton();
199 jButtonOk
.setText("OK");
200 jButtonOk
.setBounds(new java
.awt
.Rectangle(290, 345, 90, 20));
201 jButtonOk
.addActionListener(this);
207 This method initializes jButtonCancel
209 @return javax.swing.JButton jButtonCancel
212 private JButton
getJButtonCancel() {
213 if (jButtonCancel
== null) {
214 jButtonCancel
= new JButton();
215 jButtonCancel
.setText("Cancel");
216 jButtonCancel
.setBounds(new java
.awt
.Rectangle(390, 345, 90, 20));
217 jButtonCancel
.addActionListener(this);
219 return jButtonCancel
;
223 This method initializes jScrollPaneLicense
225 @return javax.swing.JScrollPane jScrollPaneLicense
228 private JScrollPane
getJScrollPaneLicense() {
229 if (jScrollPaneLicense
== null) {
230 jScrollPaneLicense
= new JScrollPane();
231 jScrollPaneLicense
.setBounds(new java
.awt
.Rectangle(160, 85, 320, 80));
232 jScrollPaneLicense
.setHorizontalScrollBarPolicy(javax
.swing
.JScrollPane
.HORIZONTAL_SCROLLBAR_NEVER
);
233 jScrollPaneLicense
.setViewportView(getJTextAreaLicense());
235 return jScrollPaneLicense
;
239 This method initializes jScrollPaneDescription
241 @return javax.swing.JScrollPane jScrollPaneDescription
244 private JScrollPane
getJScrollPaneDescription() {
245 if (jScrollPaneDescription
== null) {
246 jScrollPaneDescription
= new JScrollPane();
247 jScrollPaneDescription
.setBounds(new java
.awt
.Rectangle(160, 195, 320, 80));
248 jScrollPaneDescription
.setHorizontalScrollBarPolicy(javax
.swing
.JScrollPane
.HORIZONTAL_SCROLLBAR_NEVER
);
249 jScrollPaneDescription
.setViewportView(getJTextAreaDescription());
251 return jScrollPaneDescription
;
255 * This method initializes jTextFieldCopyright
257 * @return javax.swing.JTextField
259 private JTextField
getJTextFieldCopyright() {
260 if (jTextFieldCopyright
== null) {
261 jTextFieldCopyright
= new JTextField();
262 jTextFieldCopyright
.setBounds(new java
.awt
.Rectangle(160,170,320,20));
264 return jTextFieldCopyright
;
267 public static void main(String
[] args
) {
272 This is the default constructor
278 this.setVisible(true);
282 This is the override edit constructor
285 public MbdHeader(MbdHeaderDocument
.MbdHeader inMbdHeader
) {
288 this.setVisible(true);
289 this.setViewMode(false);
293 This method initializes this
296 private void init() {
297 this.setSize(500, 515);
298 this.setContentPane(getJContentPane());
299 this.setTitle("Module Build Description Header");
304 This method initializes this
305 Fill values to all fields if these values are not empty
307 @param inMbdHeader The input MbdHeaderDocument.MbdHeader
310 private void init(MbdHeaderDocument
.MbdHeader inMbdHeader
) {
312 setMbdHeader(inMbdHeader
);
313 if (inMbdHeader
!= null) {
314 if (this.mbdHeader
.getBaseName() != null) {
315 this.jTextFieldBaseName
.setText(this.mbdHeader
.getBaseName().getStringValue());
317 if (this.mbdHeader
.getGuid() != null) {
318 this.jTextFieldGuid
.setText(this.mbdHeader
.getGuid().getStringValue());
320 if (this.mbdHeader
.getVersion() != null) {
321 this.jTextFieldVersion
.setText(this.mbdHeader
.getVersion());
323 if (this.mbdHeader
.getLicense() != null) {
324 this.jTextAreaLicense
.setText(this.mbdHeader
.getLicense().getStringValue());
326 if (this.mbdHeader
.getCopyright() != null) {
327 this.jTextFieldCopyright
.setText(this.mbdHeader
.getCopyright());
329 if (this.mbdHeader
.getDescription() != null) {
330 this.jTextAreaDescription
.setText(this.mbdHeader
.getDescription());
336 Disable all components when the mode is view
338 @param isView true - The view mode; false - The non-view mode
341 public void setViewMode(boolean isView
) {
342 this.jButtonOk
.setVisible(false);
343 this.jButtonCancel
.setVisible(false);
345 this.jTextFieldBaseName
.setEnabled(!isView
);
346 this.jTextFieldGuid
.setEnabled(!isView
);
347 this.jTextFieldVersion
.setEnabled(!isView
);
348 this.jTextAreaLicense
.setEnabled(!isView
);
349 this.jTextFieldCopyright
.setEnabled(!isView
);
350 this.jTextAreaDescription
.setEnabled(!isView
);
351 this.jButtonCancel
.setEnabled(!isView
);
352 this.jButtonGenerateGuid
.setEnabled(!isView
);
353 this.jButtonOk
.setEnabled(!isView
);
358 This method initializes jContentPane
360 @return javax.swing.JPanel jContentPane
363 private JPanel
getJContentPane() {
364 if (jContentPane
== null) {
365 jLabelDescription
= new JLabel();
366 jLabelDescription
.setText("Description");
367 jLabelDescription
.setBounds(new java
.awt
.Rectangle(15, 195, 140, 20));
368 jLabelCopyright
= new JLabel();
369 jLabelCopyright
.setText("Copyright");
370 jLabelCopyright
.setBounds(new java
.awt
.Rectangle(15, 170, 140, 20));
371 jLabelLicense
= new JLabel();
372 jLabelLicense
.setText("License");
373 jLabelLicense
.setBounds(new java
.awt
.Rectangle(15, 85, 140, 20));
374 jLabelVersion
= new JLabel();
375 jLabelVersion
.setText("Version");
376 jLabelVersion
.setBounds(new java
.awt
.Rectangle(15, 60, 140, 20));
377 jLabelGuid
= new JLabel();
378 jLabelGuid
.setPreferredSize(new java
.awt
.Dimension(25, 15));
379 jLabelGuid
.setBounds(new java
.awt
.Rectangle(15, 35, 140, 20));
380 jLabelGuid
.setText("Guid");
381 jLabelBaseName
= new JLabel();
382 jLabelBaseName
.setText("Base Name");
383 jLabelBaseName
.setBounds(new java
.awt
.Rectangle(15, 10, 140, 20));
384 jContentPane
= new JPanel();
385 jContentPane
.setLayout(null);
386 jContentPane
.setLocation(new java
.awt
.Point(0, 0));
387 jContentPane
.setSize(new java
.awt
.Dimension(500, 524));
388 jContentPane
.add(jLabelBaseName
, null);
389 jContentPane
.add(getJTextFieldBaseName(), null);
390 jContentPane
.add(jLabelGuid
, null);
391 jContentPane
.add(getJTextFieldGuid(), null);
392 jContentPane
.add(jLabelVersion
, null);
393 jContentPane
.add(getJTextFieldVersion(), null);
394 jContentPane
.add(getJButtonGenerateGuid(), null);
395 jContentPane
.add(jLabelLicense
, null);
396 jContentPane
.add(jLabelCopyright
, null);
397 jContentPane
.add(jLabelDescription
, null);
398 jContentPane
.add(getJButtonOk(), null);
399 jContentPane
.add(getJButtonCancel(), null);
400 jContentPane
.add(getJScrollPaneLicense(), null);
401 jContentPane
.add(getJScrollPaneDescription(), null);
403 jStarLabel1
= new StarLabel();
404 jStarLabel1
.setLocation(new java
.awt
.Point(0, 10));
405 jStarLabel2
= new StarLabel();
406 jStarLabel2
.setLocation(new java
.awt
.Point(0, 35));
407 jStarLabel3
= new StarLabel();
408 jStarLabel3
.setLocation(new java
.awt
.Point(0, 60));
409 jStarLabel4
= new StarLabel();
410 jStarLabel4
.setLocation(new java
.awt
.Point(0, 85));
411 jStarLabel5
= new StarLabel();
412 jStarLabel5
.setLocation(new java
.awt
.Point(0, 170));
413 jStarLabel6
= new StarLabel();
414 jStarLabel6
.setLocation(new java
.awt
.Point(0, 195));
416 jContentPane
.add(jStarLabel1
, null);
417 jContentPane
.add(jStarLabel2
, null);
418 jContentPane
.add(jStarLabel3
, null);
419 jContentPane
.add(jStarLabel4
, null);
420 jContentPane
.add(jStarLabel5
, null);
421 jContentPane
.add(jStarLabel6
, null);
422 jContentPane
.add(getJTextFieldCopyright(), null);
428 * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
430 * Override actionPerformed to listen all actions
433 public void actionPerformed(ActionEvent arg0
) {
434 if (arg0
.getSource() == jButtonOk
) {
437 this.setEdited(true);
439 if (arg0
.getSource() == jButtonCancel
) {
441 this.setEdited(false);
446 if (arg0
.getSource() == jButtonGenerateGuid
) {
447 jTextFieldGuid
.setText(Tools
.generateUuidString());
452 Data validation for all fields
454 @retval true - All datas are valid
455 @retval false - At least one data is invalid
458 public boolean check() {
460 // Check if all required fields are not empty
462 if (isEmpty(this.jTextFieldBaseName
.getText())) {
463 Log
.err("Base Name couldn't be empty");
466 if (isEmpty(this.jTextFieldGuid
.getText())) {
467 Log
.err("Guid couldn't be empty");
470 if (isEmpty(this.jTextFieldVersion
.getText())) {
471 Log
.err("Version couldn't be empty");
474 if (isEmpty(this.jTextAreaLicense
.getText())) {
475 Log
.err("License couldn't be empty");
478 if (isEmpty(this.jTextFieldCopyright
.getText())) {
479 Log
.err("Copyright couldn't be empty");
482 if (isEmpty(this.jTextAreaDescription
.getText())) {
483 Log
.err("Description couldn't be empty");
488 // Check if all fields have correct data types
490 if (!DataValidation
.isBaseName(this.jTextFieldBaseName
.getText())) {
491 Log
.err("Incorrect data type for Base Name");
494 if (!DataValidation
.isGuid((this.jTextFieldGuid
).getText())) {
495 Log
.err("Incorrect data type for Guid");
498 if (!DataValidation
.isCopyright(this.jTextFieldCopyright
.getText())) {
499 Log
.err("Incorrect data type for Copyright");
506 Save all components of Mbd Header
507 if exists mbdHeader, set the value directly
508 if not exists mbdHeader, new an instance first
513 if (this.mbdHeader
== null) {
514 mbdHeader
= MbdHeaderDocument
.MbdHeader
.Factory
.newInstance();
516 if (this.mbdHeader
.getBaseName() != null) {
517 this.mbdHeader
.getBaseName().setStringValue(this.jTextFieldBaseName
.getText());
519 BaseNameDocument
.BaseName mBaseName
= BaseNameDocument
.BaseName
.Factory
.newInstance();
520 mBaseName
.setStringValue(this.jTextFieldBaseName
.getText());
521 this.mbdHeader
.setBaseName(mBaseName
);
524 if (this.mbdHeader
.getGuid() != null) {
525 this.mbdHeader
.getGuid().setStringValue(this.jTextFieldGuid
.getText());
527 GuidDocument
.Guid mGuid
= GuidDocument
.Guid
.Factory
.newInstance();
528 mGuid
.setStringValue(this.jTextFieldGuid
.getText());
529 this.mbdHeader
.setGuid(mGuid
);
532 this.mbdHeader
.setVersion(this.jTextFieldVersion
.getText());
534 if (this.mbdHeader
.getLicense() != null) {
535 this.mbdHeader
.getLicense().setStringValue(this.jTextAreaLicense
.getText());
537 LicenseDocument
.License mLicense
= LicenseDocument
.License
.Factory
.newInstance();
538 mLicense
.setStringValue(this.jTextAreaLicense
.getText());
539 this.mbdHeader
.setLicense(mLicense
);
542 this.mbdHeader
.setCopyright(this.jTextFieldCopyright
.getText());
543 this.mbdHeader
.setDescription(this.jTextAreaDescription
.getText());
545 if (this.mbdHeader
.getCreated() == null) {
546 this.mbdHeader
.setCreated(Tools
.getCurrentDateTime());
548 this.mbdHeader
.setModified(Tools
.getCurrentDateTime());
551 } catch (Exception e
) {
552 Log
.err("Save Module Buid Description", e
.getMessage());
557 This method initializes module type and compontent type
560 private void initFrame() {
565 Get MbdHeaderDocument.MbdHeader
567 @return MbdHeaderDocument.MbdHeader mbdHeader
570 public MbdHeaderDocument
.MbdHeader
getMbdHeader() {
575 Set MbdHeaderDocument.MbdHeader
577 @param mbdHeader The input MbdHeaderDocument.MbdHeader
580 public void setMbdHeader(MbdHeaderDocument
.MbdHeader mbdHeader
) {
581 this.mbdHeader
= mbdHeader
;