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 JTextArea jTextAreaCopyright
= null;
77 private JLabel jLabelDescription
= null;
79 private JTextArea jTextAreaDescription
= null;
81 private JButton jButtonOk
= null;
83 private JButton jButtonCancel
= null;
85 private JScrollPane jScrollPaneLicense
= null;
87 private JScrollPane jScrollPaneCopyright
= null;
89 private JScrollPane jScrollPaneDescription
= null;
91 private StarLabel jStarLabel1
= null;
93 private StarLabel jStarLabel2
= null;
95 private StarLabel jStarLabel3
= null;
97 private StarLabel jStarLabel4
= null;
99 private StarLabel jStarLabel5
= null;
101 private StarLabel jStarLabel6
= null;
103 private MbdHeaderDocument
.MbdHeader mbdHeader
= null;
106 This method initializes jTextFieldBaseName
108 @return javax.swing.JTextField jTextFieldBaseName
111 private JTextField
getJTextFieldBaseName() {
112 if (jTextFieldBaseName
== null) {
113 jTextFieldBaseName
= new JTextField();
114 jTextFieldBaseName
.setBounds(new java
.awt
.Rectangle(160, 10, 320, 20));
116 return jTextFieldBaseName
;
120 This method initializes jTextFieldGuid
122 @return javax.swing.JTextField jTextFieldGuid
125 private JTextField
getJTextFieldGuid() {
126 if (jTextFieldGuid
== null) {
127 jTextFieldGuid
= new JTextField();
128 jTextFieldGuid
.setBounds(new java
.awt
.Rectangle(160, 35, 240, 20));
130 return jTextFieldGuid
;
134 This method initializes jTextFieldVersion
136 @return javax.swing.JTextField jTextFieldVersion
139 private JTextField
getJTextFieldVersion() {
140 if (jTextFieldVersion
== null) {
141 jTextFieldVersion
= new JTextField();
142 jTextFieldVersion
.setBounds(new java
.awt
.Rectangle(160, 60, 320, 20));
144 return jTextFieldVersion
;
148 This method initializes jButtonGenerateGuid
150 @return javax.swing.JButton jButtonGenerateGuid
153 private JButton
getJButtonGenerateGuid() {
154 if (jButtonGenerateGuid
== null) {
155 jButtonGenerateGuid
= new JButton();
156 jButtonGenerateGuid
.setBounds(new java
.awt
.Rectangle(405, 35, 75, 20));
157 jButtonGenerateGuid
.setText("GEN");
158 jButtonGenerateGuid
.addActionListener(this);
160 return jButtonGenerateGuid
;
164 This method initializes jTextAreaLicense
166 @return javax.swing.JTextArea jTextAreaLicense
169 private JTextArea
getJTextAreaLicense() {
170 if (jTextAreaLicense
== null) {
171 jTextAreaLicense
= new JTextArea();
172 jTextAreaLicense
.setText("");
173 jTextAreaLicense
.setLineWrap(true);
175 return jTextAreaLicense
;
179 This method initializes jTextAreaCopyright
181 @return javax.swing.JTextArea jTextAreaCopyright
184 private JTextArea
getJTextAreaCopyright() {
185 if (jTextAreaCopyright
== null) {
186 jTextAreaCopyright
= new JTextArea();
187 jTextAreaCopyright
.setLineWrap(true);
189 return jTextAreaCopyright
;
193 This method initializes jTextAreaDescription
195 @return javax.swing.JTextArea jTextAreaDescription
198 private JTextArea
getJTextAreaDescription() {
199 if (jTextAreaDescription
== null) {
200 jTextAreaDescription
= new JTextArea();
201 jTextAreaDescription
.setLineWrap(true);
203 return jTextAreaDescription
;
207 This method initializes jButtonOk
209 @return javax.swing.JButton jButtonOk
212 private JButton
getJButtonOk() {
213 if (jButtonOk
== null) {
214 jButtonOk
= new JButton();
215 jButtonOk
.setText("OK");
216 jButtonOk
.setBounds(new java
.awt
.Rectangle(290, 345, 90, 20));
217 jButtonOk
.addActionListener(this);
223 This method initializes jButtonCancel
225 @return javax.swing.JButton jButtonCancel
228 private JButton
getJButtonCancel() {
229 if (jButtonCancel
== null) {
230 jButtonCancel
= new JButton();
231 jButtonCancel
.setText("Cancel");
232 jButtonCancel
.setBounds(new java
.awt
.Rectangle(390, 345, 90, 20));
233 jButtonCancel
.addActionListener(this);
235 return jButtonCancel
;
239 This method initializes jScrollPaneLicense
241 @return javax.swing.JScrollPane jScrollPaneLicense
244 private JScrollPane
getJScrollPaneLicense() {
245 if (jScrollPaneLicense
== null) {
246 jScrollPaneLicense
= new JScrollPane();
247 jScrollPaneLicense
.setBounds(new java
.awt
.Rectangle(160, 85, 320, 80));
248 jScrollPaneLicense
.setHorizontalScrollBarPolicy(javax
.swing
.JScrollPane
.HORIZONTAL_SCROLLBAR_NEVER
);
249 jScrollPaneLicense
.setViewportView(getJTextAreaLicense());
251 return jScrollPaneLicense
;
255 This method initializes jScrollPaneCopyright
257 @return javax.swing.JScrollPane jScrollPaneCopyright
260 private JScrollPane
getJScrollPaneCopyright() {
261 if (jScrollPaneCopyright
== null) {
262 jScrollPaneCopyright
= new JScrollPane();
263 jScrollPaneCopyright
.setBounds(new java
.awt
.Rectangle(160, 170, 320, 80));
264 jScrollPaneCopyright
.setHorizontalScrollBarPolicy(javax
.swing
.JScrollPane
.HORIZONTAL_SCROLLBAR_NEVER
);
265 jScrollPaneCopyright
.setViewportView(getJTextAreaCopyright());
267 return jScrollPaneCopyright
;
271 This method initializes jScrollPaneDescription
273 @return javax.swing.JScrollPane jScrollPaneDescription
276 private JScrollPane
getJScrollPaneDescription() {
277 if (jScrollPaneDescription
== null) {
278 jScrollPaneDescription
= new JScrollPane();
279 jScrollPaneDescription
.setBounds(new java
.awt
.Rectangle(160, 255, 320, 80));
280 jScrollPaneDescription
.setHorizontalScrollBarPolicy(javax
.swing
.JScrollPane
.HORIZONTAL_SCROLLBAR_NEVER
);
281 jScrollPaneDescription
.setViewportView(getJTextAreaDescription());
283 return jScrollPaneDescription
;
286 public static void main(String
[] args
) {
291 This is the default constructor
297 this.setVisible(true);
301 This is the override edit constructor
304 public MbdHeader(MbdHeaderDocument
.MbdHeader inMbdHeader
) {
307 this.setVisible(true);
308 this.setViewMode(false);
312 This method initializes this
315 private void init() {
316 this.setSize(500, 515);
317 this.setContentPane(getJContentPane());
318 this.setTitle("Module Build Description Header");
323 This method initializes this
324 Fill values to all fields if these values are not empty
326 @param inMbdHeader The input MbdHeaderDocument.MbdHeader
329 private void init(MbdHeaderDocument
.MbdHeader inMbdHeader
) {
331 setMbdHeader(inMbdHeader
);
332 if (inMbdHeader
!= null) {
333 if (this.mbdHeader
.getBaseName() != null) {
334 this.jTextFieldBaseName
.setText(this.mbdHeader
.getBaseName().getStringValue());
336 if (this.mbdHeader
.getGuid() != null) {
337 this.jTextFieldGuid
.setText(this.mbdHeader
.getGuid().getStringValue());
339 if (this.mbdHeader
.getVersion() != null) {
340 this.jTextFieldVersion
.setText(this.mbdHeader
.getVersion());
342 if (this.mbdHeader
.getLicense() != null) {
343 this.jTextAreaLicense
.setText(this.mbdHeader
.getLicense().getStringValue());
345 if (this.mbdHeader
.getCopyright() != null) {
346 this.jTextAreaCopyright
.setText(this.mbdHeader
.getCopyright());
348 if (this.mbdHeader
.getDescription() != null) {
349 this.jTextAreaDescription
.setText(this.mbdHeader
.getDescription());
355 Disable all components when the mode is view
357 @param isView true - The view mode; false - The non-view mode
360 public void setViewMode(boolean isView
) {
361 this.jButtonOk
.setVisible(false);
362 this.jButtonCancel
.setVisible(false);
364 this.jTextFieldBaseName
.setEnabled(!isView
);
365 this.jTextFieldGuid
.setEnabled(!isView
);
366 this.jTextFieldVersion
.setEnabled(!isView
);
367 this.jTextAreaLicense
.setEnabled(!isView
);
368 this.jTextAreaCopyright
.setEnabled(!isView
);
369 this.jTextAreaDescription
.setEnabled(!isView
);
370 this.jButtonCancel
.setEnabled(!isView
);
371 this.jButtonGenerateGuid
.setEnabled(!isView
);
372 this.jButtonOk
.setEnabled(!isView
);
377 This method initializes jContentPane
379 @return javax.swing.JPanel jContentPane
382 private JPanel
getJContentPane() {
383 if (jContentPane
== null) {
384 jLabelDescription
= new JLabel();
385 jLabelDescription
.setText("Description");
386 jLabelDescription
.setBounds(new java
.awt
.Rectangle(15, 255, 140, 20));
387 jLabelCopyright
= new JLabel();
388 jLabelCopyright
.setText("Copyright");
389 jLabelCopyright
.setBounds(new java
.awt
.Rectangle(15, 170, 140, 20));
390 jLabelLicense
= new JLabel();
391 jLabelLicense
.setText("License");
392 jLabelLicense
.setBounds(new java
.awt
.Rectangle(15, 85, 140, 20));
393 jLabelVersion
= new JLabel();
394 jLabelVersion
.setText("Version");
395 jLabelVersion
.setBounds(new java
.awt
.Rectangle(15, 60, 140, 20));
396 jLabelGuid
= new JLabel();
397 jLabelGuid
.setPreferredSize(new java
.awt
.Dimension(25, 15));
398 jLabelGuid
.setBounds(new java
.awt
.Rectangle(15, 35, 140, 20));
399 jLabelGuid
.setText("Guid");
400 jLabelBaseName
= new JLabel();
401 jLabelBaseName
.setText("Base Name");
402 jLabelBaseName
.setBounds(new java
.awt
.Rectangle(15, 10, 140, 20));
403 jContentPane
= new JPanel();
404 jContentPane
.setLayout(null);
405 jContentPane
.setLocation(new java
.awt
.Point(0, 0));
406 jContentPane
.setSize(new java
.awt
.Dimension(500, 524));
407 jContentPane
.add(jLabelBaseName
, null);
408 jContentPane
.add(getJTextFieldBaseName(), null);
409 jContentPane
.add(jLabelGuid
, null);
410 jContentPane
.add(getJTextFieldGuid(), null);
411 jContentPane
.add(jLabelVersion
, null);
412 jContentPane
.add(getJTextFieldVersion(), null);
413 jContentPane
.add(getJButtonGenerateGuid(), null);
414 jContentPane
.add(jLabelLicense
, null);
415 jContentPane
.add(jLabelCopyright
, null);
416 jContentPane
.add(jLabelDescription
, null);
417 jContentPane
.add(getJButtonOk(), null);
418 jContentPane
.add(getJButtonCancel(), null);
419 jContentPane
.add(getJScrollPaneLicense(), null);
420 jContentPane
.add(getJScrollPaneCopyright(), null);
421 jContentPane
.add(getJScrollPaneDescription(), null);
423 jStarLabel1
= new StarLabel();
424 jStarLabel1
.setLocation(new java
.awt
.Point(0, 10));
425 jStarLabel2
= new StarLabel();
426 jStarLabel2
.setLocation(new java
.awt
.Point(0, 35));
427 jStarLabel3
= new StarLabel();
428 jStarLabel3
.setLocation(new java
.awt
.Point(0, 60));
429 jStarLabel4
= new StarLabel();
430 jStarLabel4
.setLocation(new java
.awt
.Point(0, 85));
431 jStarLabel5
= new StarLabel();
432 jStarLabel5
.setLocation(new java
.awt
.Point(0, 170));
433 jStarLabel6
= new StarLabel();
434 jStarLabel6
.setLocation(new java
.awt
.Point(0, 255));
436 jContentPane
.add(jStarLabel1
, null);
437 jContentPane
.add(jStarLabel2
, null);
438 jContentPane
.add(jStarLabel3
, null);
439 jContentPane
.add(jStarLabel4
, null);
440 jContentPane
.add(jStarLabel5
, null);
441 jContentPane
.add(jStarLabel6
, null);
447 * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
449 * Override actionPerformed to listen all actions
452 public void actionPerformed(ActionEvent arg0
) {
453 if (arg0
.getSource() == jButtonOk
) {
456 this.setEdited(true);
458 if (arg0
.getSource() == jButtonCancel
) {
460 this.setEdited(false);
465 if (arg0
.getSource() == jButtonGenerateGuid
) {
466 jTextFieldGuid
.setText(Tools
.generateUuidString());
471 Data validation for all fields
473 @retval true - All datas are valid
474 @retval false - At least one data is invalid
477 public boolean check() {
479 // Check if all required fields are not empty
481 if (isEmpty(this.jTextFieldBaseName
.getText())) {
482 Log
.err("Base Name couldn't be empty");
485 if (isEmpty(this.jTextFieldGuid
.getText())) {
486 Log
.err("Guid couldn't be empty");
489 if (isEmpty(this.jTextFieldVersion
.getText())) {
490 Log
.err("Version couldn't be empty");
493 if (isEmpty(this.jTextAreaLicense
.getText())) {
494 Log
.err("License couldn't be empty");
497 if (isEmpty(this.jTextAreaCopyright
.getText())) {
498 Log
.err("Copyright couldn't be empty");
501 if (isEmpty(this.jTextAreaDescription
.getText())) {
502 Log
.err("Description couldn't be empty");
507 // Check if all fields have correct data types
509 if (!DataValidation
.isBaseName(this.jTextFieldBaseName
.getText())) {
510 Log
.err("Incorrect data type for Base Name");
513 if (!DataValidation
.isGuid((this.jTextFieldGuid
).getText())) {
514 Log
.err("Incorrect data type for Guid");
517 if (!DataValidation
.isCopyright(this.jTextAreaCopyright
.getText())) {
518 Log
.err("Incorrect data type for Copyright");
525 Save all components of Mbd Header
526 if exists mbdHeader, set the value directly
527 if not exists mbdHeader, new an instance first
532 if (this.mbdHeader
== null) {
533 mbdHeader
= MbdHeaderDocument
.MbdHeader
.Factory
.newInstance();
535 if (this.mbdHeader
.getBaseName() != null) {
536 this.mbdHeader
.getBaseName().setStringValue(this.jTextFieldBaseName
.getText());
538 BaseNameDocument
.BaseName mBaseName
= BaseNameDocument
.BaseName
.Factory
.newInstance();
539 mBaseName
.setStringValue(this.jTextFieldBaseName
.getText());
540 this.mbdHeader
.setBaseName(mBaseName
);
543 if (this.mbdHeader
.getGuid() != null) {
544 this.mbdHeader
.getGuid().setStringValue(this.jTextFieldGuid
.getText());
546 GuidDocument
.Guid mGuid
= GuidDocument
.Guid
.Factory
.newInstance();
547 mGuid
.setStringValue(this.jTextFieldGuid
.getText());
548 this.mbdHeader
.setGuid(mGuid
);
551 this.mbdHeader
.setVersion(this.jTextFieldVersion
.getText());
553 if (this.mbdHeader
.getLicense() != null) {
554 this.mbdHeader
.getLicense().setStringValue(this.jTextAreaLicense
.getText());
556 LicenseDocument
.License mLicense
= LicenseDocument
.License
.Factory
.newInstance();
557 mLicense
.setStringValue(this.jTextAreaLicense
.getText());
558 this.mbdHeader
.setLicense(mLicense
);
561 this.mbdHeader
.setCopyright(this.jTextAreaCopyright
.getText());
562 this.mbdHeader
.setDescription(this.jTextAreaDescription
.getText());
564 if (this.mbdHeader
.getCreated() == null) {
565 this.mbdHeader
.setCreated(Tools
.getCurrentDateTime());
567 this.mbdHeader
.setModified(Tools
.getCurrentDateTime());
570 } catch (Exception e
) {
571 Log
.err("Save Module Buid Description", e
.getMessage());
576 This method initializes module type and compontent type
579 private void initFrame() {
584 Get MbdHeaderDocument.MbdHeader
586 @return MbdHeaderDocument.MbdHeader mbdHeader
589 public MbdHeaderDocument
.MbdHeader
getMbdHeader() {
594 Set MbdHeaderDocument.MbdHeader
596 @param mbdHeader The input MbdHeaderDocument.MbdHeader
599 public void setMbdHeader(MbdHeaderDocument
.MbdHeader mbdHeader
) {
600 this.mbdHeader
= mbdHeader
;