3 The file is used to create, update MbdLibHeader 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.
15 package org
.tianocore
.packaging
.module
.ui
;
17 import java
.awt
.event
.ActionEvent
;
19 import javax
.swing
.JButton
;
20 import javax
.swing
.JLabel
;
21 import javax
.swing
.JPanel
;
22 import javax
.swing
.JScrollPane
;
23 import javax
.swing
.JTextArea
;
24 import javax
.swing
.JTextField
;
26 import org
.tianocore
.BaseNameDocument
;
27 import org
.tianocore
.GuidDocument
;
28 import org
.tianocore
.LicenseDocument
;
29 import org
.tianocore
.MbdLibHeaderDocument
;
30 import org
.tianocore
.common
.DataValidation
;
31 import org
.tianocore
.common
.Log
;
32 import org
.tianocore
.common
.Tools
;
33 import org
.tianocore
.packaging
.common
.ui
.IInternalFrame
;
34 import org
.tianocore
.packaging
.common
.ui
.StarLabel
;
37 The class is used to create, update MbdLibHeader of a MBD file
38 It extends IInternalFrame
40 @since ModuleEditor 1.0
43 public class MbdLibHeader
extends IInternalFrame
{
46 /// Define class Serial Version UID
48 private static final long serialVersionUID
= -4881447351274201866L;
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 MbdLibHeaderDocument
.MbdLibHeader mbdLibHeader
= 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
294 public MbdLibHeader() {
297 this.setVisible(true);
301 This is the override edit constructor
303 @param inMbdLibHeader The input MbdLibHeaderDocument.MbdLibHeader
306 public MbdLibHeader(MbdLibHeaderDocument
.MbdLibHeader inMbdLibHeader
) {
308 init(inMbdLibHeader
);
309 this.setVisible(true);
310 this.setViewMode(false);
314 This method initializes this
317 private void init() {
318 this.setSize(500, 515);
319 this.setContentPane(getJContentPane());
320 this.setTitle("Library Module Build Description Header");
325 This method initializes this
326 Fill values to all fields if these values are not empty
328 @param inMbdLibHeader The input MbdLibHeaderDocument.MbdLibHeader
331 private void init(MbdLibHeaderDocument
.MbdLibHeader inMbdLibHeader
) {
333 setMbdLibHeader(inMbdLibHeader
);
334 if (inMbdLibHeader
!= null) {
335 if (this.mbdLibHeader
.getBaseName() != null) {
336 this.jTextFieldBaseName
.setText(this.mbdLibHeader
.getBaseName().getStringValue());
338 if (this.mbdLibHeader
.getGuid() != null) {
339 this.jTextFieldGuid
.setText(this.mbdLibHeader
.getGuid().getStringValue());
341 if (this.mbdLibHeader
.getVersion() != null) {
342 this.jTextFieldVersion
.setText(this.mbdLibHeader
.getVersion());
344 if (this.mbdLibHeader
.getLicense() != null) {
345 this.jTextAreaLicense
.setText(this.mbdLibHeader
.getLicense().getStringValue());
347 if (this.mbdLibHeader
.getCopyright() != null) {
348 this.jTextAreaCopyright
.setText(this.mbdLibHeader
.getCopyright());
350 if (this.mbdLibHeader
.getDescription() != null) {
351 this.jTextAreaDescription
.setText(this.mbdLibHeader
.getDescription());
357 Disable all components when the mode is view
359 @param isView true - The view mode; false - The non-view mode
362 public void setViewMode(boolean isView
) {
363 this.jButtonOk
.setVisible(false);
364 this.jButtonCancel
.setVisible(false);
366 this.jTextFieldBaseName
.setEnabled(!isView
);
367 this.jTextFieldGuid
.setEnabled(!isView
);
368 this.jTextFieldVersion
.setEnabled(!isView
);
369 this.jTextAreaLicense
.setEnabled(!isView
);
370 this.jTextAreaCopyright
.setEnabled(!isView
);
371 this.jTextAreaDescription
.setEnabled(!isView
);
372 this.jButtonCancel
.setEnabled(!isView
);
373 this.jButtonGenerateGuid
.setEnabled(!isView
);
374 this.jButtonOk
.setEnabled(!isView
);
379 This method initializes jContentPane
381 @return javax.swing.JPanel jContentPane
384 private JPanel
getJContentPane() {
385 if (jContentPane
== null) {
386 jLabelDescription
= new JLabel();
387 jLabelDescription
.setText("Description");
388 jLabelDescription
.setBounds(new java
.awt
.Rectangle(15, 255, 140, 20));
389 jLabelCopyright
= new JLabel();
390 jLabelCopyright
.setText("Copyright");
391 jLabelCopyright
.setBounds(new java
.awt
.Rectangle(15, 170, 140, 20));
392 jLabelLicense
= new JLabel();
393 jLabelLicense
.setText("License");
394 jLabelLicense
.setBounds(new java
.awt
.Rectangle(15, 85, 140, 20));
395 jLabelVersion
= new JLabel();
396 jLabelVersion
.setText("Version");
397 jLabelVersion
.setBounds(new java
.awt
.Rectangle(15, 60, 140, 20));
398 jLabelGuid
= new JLabel();
399 jLabelGuid
.setPreferredSize(new java
.awt
.Dimension(25, 15));
400 jLabelGuid
.setBounds(new java
.awt
.Rectangle(15, 35, 140, 20));
401 jLabelGuid
.setText("Guid");
402 jLabelBaseName
= new JLabel();
403 jLabelBaseName
.setText("Base Name");
404 jLabelBaseName
.setBounds(new java
.awt
.Rectangle(15, 10, 140, 20));
405 jContentPane
= new JPanel();
406 jContentPane
.setLayout(null);
407 jContentPane
.setLocation(new java
.awt
.Point(0, 0));
408 jContentPane
.setSize(new java
.awt
.Dimension(500, 524));
409 jContentPane
.add(jLabelBaseName
, null);
410 jContentPane
.add(getJTextFieldBaseName(), null);
411 jContentPane
.add(jLabelGuid
, null);
412 jContentPane
.add(getJTextFieldGuid(), null);
413 jContentPane
.add(jLabelVersion
, null);
414 jContentPane
.add(getJTextFieldVersion(), null);
415 jContentPane
.add(getJButtonGenerateGuid(), null);
416 jContentPane
.add(jLabelLicense
, null);
417 jContentPane
.add(jLabelCopyright
, null);
418 jContentPane
.add(jLabelDescription
, null);
419 jContentPane
.add(getJButtonOk(), null);
420 jContentPane
.add(getJButtonCancel(), null);
421 jContentPane
.add(getJScrollPaneLicense(), null);
422 jContentPane
.add(getJScrollPaneCopyright(), null);
423 jContentPane
.add(getJScrollPaneDescription(), null);
425 jStarLabel1
= new StarLabel();
426 jStarLabel1
.setLocation(new java
.awt
.Point(0, 10));
427 jStarLabel2
= new StarLabel();
428 jStarLabel2
.setLocation(new java
.awt
.Point(0, 35));
429 jStarLabel3
= new StarLabel();
430 jStarLabel3
.setLocation(new java
.awt
.Point(0, 60));
431 jStarLabel4
= new StarLabel();
432 jStarLabel4
.setLocation(new java
.awt
.Point(0, 85));
433 jStarLabel5
= new StarLabel();
434 jStarLabel5
.setLocation(new java
.awt
.Point(0, 170));
435 jStarLabel6
= new StarLabel();
436 jStarLabel6
.setLocation(new java
.awt
.Point(0, 255));
438 jContentPane
.add(jStarLabel1
, null);
439 jContentPane
.add(jStarLabel2
, null);
440 jContentPane
.add(jStarLabel3
, null);
441 jContentPane
.add(jStarLabel4
, null);
442 jContentPane
.add(jStarLabel5
, null);
443 jContentPane
.add(jStarLabel6
, null);
449 * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
451 * Override actionPerformed to listen all actions
454 public void actionPerformed(ActionEvent arg0
) {
455 if (arg0
.getSource() == jButtonOk
) {
458 this.setEdited(true);
460 if (arg0
.getSource() == jButtonCancel
) {
462 this.setEdited(false);
464 if (arg0
.getSource() == jButtonGenerateGuid
) {
465 jTextFieldGuid
.setText(Tools
.generateUuidString());
470 Data validation for all fields
472 @retval true - All datas are valid
473 @retval false - At least one data is invalid
476 public boolean check() {
478 // Check if all required fields are not empty
480 if (isEmpty(this.jTextFieldBaseName
.getText())) {
481 Log
.err("Base Name couldn't be empty");
484 if (isEmpty(this.jTextFieldGuid
.getText())) {
485 Log
.err("Guid couldn't be empty");
488 if (isEmpty(this.jTextFieldVersion
.getText())) {
489 Log
.err("Version couldn't be empty");
492 if (isEmpty(this.jTextAreaLicense
.getText())) {
493 Log
.err("License couldn't be empty");
496 if (isEmpty(this.jTextAreaCopyright
.getText())) {
497 Log
.err("Copyright couldn't be empty");
500 if (isEmpty(this.jTextAreaDescription
.getText())) {
501 Log
.err("Description couldn't be empty");
506 // Check if all fields have correct data types
508 if (!DataValidation
.isBaseName(this.jTextFieldBaseName
.getText())) {
509 Log
.err("Incorrect data type for Base Name");
512 if (!DataValidation
.isGuid((this.jTextFieldGuid
).getText())) {
513 Log
.err("Incorrect data type for Guid");
516 if (!DataValidation
.isCopyright(this.jTextAreaCopyright
.getText())) {
517 Log
.err("Incorrect data type for Copyright");
524 Save all components of Mbd Lib Header
525 if exists mbdLibHeader, set the value directly
526 if not exists mbdLibHeader, new an instance first
531 if (this.mbdLibHeader
== null) {
532 mbdLibHeader
= MbdLibHeaderDocument
.MbdLibHeader
.Factory
.newInstance();
534 if (this.mbdLibHeader
.getBaseName() != null) {
535 this.mbdLibHeader
.getBaseName().setStringValue(this.jTextFieldBaseName
.getText());
537 BaseNameDocument
.BaseName mBaseName
= BaseNameDocument
.BaseName
.Factory
.newInstance();
538 mBaseName
.setStringValue(this.jTextFieldBaseName
.getText());
539 this.mbdLibHeader
.setBaseName(mBaseName
);
542 if (this.mbdLibHeader
.getGuid() != null) {
543 this.mbdLibHeader
.getGuid().setStringValue(this.jTextFieldGuid
.getText());
545 GuidDocument
.Guid mGuid
= GuidDocument
.Guid
.Factory
.newInstance();
546 mGuid
.setStringValue(this.jTextFieldGuid
.getText());
547 this.mbdLibHeader
.setGuid(mGuid
);
550 this.mbdLibHeader
.setVersion(this.jTextFieldVersion
.getText());
552 if (this.mbdLibHeader
.getLicense() != null) {
553 this.mbdLibHeader
.getLicense().setStringValue(this.jTextAreaLicense
.getText());
555 LicenseDocument
.License mLicense
= LicenseDocument
.License
.Factory
.newInstance();
556 mLicense
.setStringValue(this.jTextAreaLicense
.getText());
557 this.mbdLibHeader
.setLicense(mLicense
);
560 this.mbdLibHeader
.setCopyright(this.jTextAreaCopyright
.getText());
561 this.mbdLibHeader
.setDescription(this.jTextAreaDescription
.getText());
563 if (this.mbdLibHeader
.getCreated() == null) {
564 this.mbdLibHeader
.setCreated(Tools
.getCurrentDateTime());
566 this.mbdLibHeader
.setModified(Tools
.getCurrentDateTime());
568 } catch (Exception e
) {
569 Log
.err("Save Module Buid Description", e
.getMessage());
574 This method initializes module type and compontent type
577 private void initFrame() {
581 Get MbdLibHeaderDocument.MbdLibHeader
583 @return MbdLibHeaderDocument.MbdLibHeader
586 public MbdLibHeaderDocument
.MbdLibHeader
getMbdLibHeader() {
591 Set MbdLibHeaderDocument.MbdLibHeader
593 @param mbdLibHeader The input MbdLibHeaderDocument.MbdLibHeader
596 public void setMbdLibHeader(MbdLibHeaderDocument
.MbdLibHeader mbdLibHeader
) {
597 this.mbdLibHeader
= mbdLibHeader
;