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 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 MbdLibHeaderDocument
.MbdLibHeader mbdLibHeader
= 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 jTextFieldCopyright
260 private JTextField
getJTextFieldCopyright() {
261 if (jTextFieldCopyright
== null) {
262 jTextFieldCopyright
= new JTextField();
263 jTextFieldCopyright
.setBounds(new java
.awt
.Rectangle(160,170,320,20));
265 return jTextFieldCopyright
;
268 public static void main(String
[] args
) {
273 This is the default constructor
276 public MbdLibHeader() {
279 this.setVisible(true);
283 This is the override edit constructor
285 @param inMbdLibHeader The input MbdLibHeaderDocument.MbdLibHeader
288 public MbdLibHeader(MbdLibHeaderDocument
.MbdLibHeader inMbdLibHeader
) {
290 init(inMbdLibHeader
);
291 this.setVisible(true);
292 this.setViewMode(false);
296 This method initializes this
299 private void init() {
300 this.setSize(500, 515);
301 this.setContentPane(getJContentPane());
302 this.setTitle("Library Module Build Description Header");
307 This method initializes this
308 Fill values to all fields if these values are not empty
310 @param inMbdLibHeader The input MbdLibHeaderDocument.MbdLibHeader
313 private void init(MbdLibHeaderDocument
.MbdLibHeader inMbdLibHeader
) {
315 setMbdLibHeader(inMbdLibHeader
);
316 if (inMbdLibHeader
!= null) {
317 if (this.mbdLibHeader
.getBaseName() != null) {
318 this.jTextFieldBaseName
.setText(this.mbdLibHeader
.getBaseName().getStringValue());
320 if (this.mbdLibHeader
.getGuid() != null) {
321 this.jTextFieldGuid
.setText(this.mbdLibHeader
.getGuid().getStringValue());
323 if (this.mbdLibHeader
.getVersion() != null) {
324 this.jTextFieldVersion
.setText(this.mbdLibHeader
.getVersion());
326 if (this.mbdLibHeader
.getLicense() != null) {
327 this.jTextAreaLicense
.setText(this.mbdLibHeader
.getLicense().getStringValue());
329 if (this.mbdLibHeader
.getCopyright() != null) {
330 this.jTextFieldCopyright
.setText(this.mbdLibHeader
.getCopyright());
332 if (this.mbdLibHeader
.getDescription() != null) {
333 this.jTextAreaDescription
.setText(this.mbdLibHeader
.getDescription());
339 Disable all components when the mode is view
341 @param isView true - The view mode; false - The non-view mode
344 public void setViewMode(boolean isView
) {
345 this.jButtonOk
.setVisible(false);
346 this.jButtonCancel
.setVisible(false);
348 this.jTextFieldBaseName
.setEnabled(!isView
);
349 this.jTextFieldGuid
.setEnabled(!isView
);
350 this.jTextFieldVersion
.setEnabled(!isView
);
351 this.jTextAreaLicense
.setEnabled(!isView
);
352 this.jTextFieldCopyright
.setEnabled(!isView
);
353 this.jTextAreaDescription
.setEnabled(!isView
);
354 this.jButtonCancel
.setEnabled(!isView
);
355 this.jButtonGenerateGuid
.setEnabled(!isView
);
356 this.jButtonOk
.setEnabled(!isView
);
361 This method initializes jContentPane
363 @return javax.swing.JPanel jContentPane
366 private JPanel
getJContentPane() {
367 if (jContentPane
== null) {
368 jLabelDescription
= new JLabel();
369 jLabelDescription
.setText("Description");
370 jLabelDescription
.setBounds(new java
.awt
.Rectangle(15, 195, 140, 20));
371 jLabelCopyright
= new JLabel();
372 jLabelCopyright
.setText("Copyright");
373 jLabelCopyright
.setBounds(new java
.awt
.Rectangle(15, 170, 140, 20));
374 jLabelLicense
= new JLabel();
375 jLabelLicense
.setText("License");
376 jLabelLicense
.setBounds(new java
.awt
.Rectangle(15, 85, 140, 20));
377 jLabelVersion
= new JLabel();
378 jLabelVersion
.setText("Version");
379 jLabelVersion
.setBounds(new java
.awt
.Rectangle(15, 60, 140, 20));
380 jLabelGuid
= new JLabel();
381 jLabelGuid
.setPreferredSize(new java
.awt
.Dimension(25, 15));
382 jLabelGuid
.setBounds(new java
.awt
.Rectangle(15, 35, 140, 20));
383 jLabelGuid
.setText("Guid");
384 jLabelBaseName
= new JLabel();
385 jLabelBaseName
.setText("Base Name");
386 jLabelBaseName
.setBounds(new java
.awt
.Rectangle(15, 10, 140, 20));
387 jContentPane
= new JPanel();
388 jContentPane
.setLayout(null);
389 jContentPane
.setLocation(new java
.awt
.Point(0, 0));
390 jContentPane
.setSize(new java
.awt
.Dimension(500, 524));
391 jContentPane
.add(jLabelBaseName
, null);
392 jContentPane
.add(getJTextFieldBaseName(), null);
393 jContentPane
.add(jLabelGuid
, null);
394 jContentPane
.add(getJTextFieldGuid(), null);
395 jContentPane
.add(jLabelVersion
, null);
396 jContentPane
.add(getJTextFieldVersion(), null);
397 jContentPane
.add(getJButtonGenerateGuid(), null);
398 jContentPane
.add(jLabelLicense
, null);
399 jContentPane
.add(jLabelCopyright
, null);
400 jContentPane
.add(jLabelDescription
, null);
401 jContentPane
.add(getJButtonOk(), null);
402 jContentPane
.add(getJButtonCancel(), null);
403 jContentPane
.add(getJScrollPaneLicense(), null);
404 jContentPane
.add(getJScrollPaneDescription(), null);
406 jStarLabel1
= new StarLabel();
407 jStarLabel1
.setLocation(new java
.awt
.Point(0, 10));
408 jStarLabel2
= new StarLabel();
409 jStarLabel2
.setLocation(new java
.awt
.Point(0, 35));
410 jStarLabel3
= new StarLabel();
411 jStarLabel3
.setLocation(new java
.awt
.Point(0, 60));
412 jStarLabel4
= new StarLabel();
413 jStarLabel4
.setLocation(new java
.awt
.Point(0, 85));
414 jStarLabel5
= new StarLabel();
415 jStarLabel5
.setLocation(new java
.awt
.Point(0, 170));
416 jStarLabel6
= new StarLabel();
417 jStarLabel6
.setLocation(new java
.awt
.Point(0, 195));
419 jContentPane
.add(jStarLabel1
, null);
420 jContentPane
.add(jStarLabel2
, null);
421 jContentPane
.add(jStarLabel3
, null);
422 jContentPane
.add(jStarLabel4
, null);
423 jContentPane
.add(jStarLabel5
, null);
424 jContentPane
.add(jStarLabel6
, null);
425 jContentPane
.add(getJTextFieldCopyright(), null);
431 * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
433 * Override actionPerformed to listen all actions
436 public void actionPerformed(ActionEvent arg0
) {
437 if (arg0
.getSource() == jButtonOk
) {
440 this.setEdited(true);
442 if (arg0
.getSource() == jButtonCancel
) {
444 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 Lib Header
507 if exists mbdLibHeader, set the value directly
508 if not exists mbdLibHeader, new an instance first
513 if (this.mbdLibHeader
== null) {
514 mbdLibHeader
= MbdLibHeaderDocument
.MbdLibHeader
.Factory
.newInstance();
516 if (this.mbdLibHeader
.getBaseName() != null) {
517 this.mbdLibHeader
.getBaseName().setStringValue(this.jTextFieldBaseName
.getText());
519 BaseNameDocument
.BaseName mBaseName
= BaseNameDocument
.BaseName
.Factory
.newInstance();
520 mBaseName
.setStringValue(this.jTextFieldBaseName
.getText());
521 this.mbdLibHeader
.setBaseName(mBaseName
);
524 if (this.mbdLibHeader
.getGuid() != null) {
525 this.mbdLibHeader
.getGuid().setStringValue(this.jTextFieldGuid
.getText());
527 GuidDocument
.Guid mGuid
= GuidDocument
.Guid
.Factory
.newInstance();
528 mGuid
.setStringValue(this.jTextFieldGuid
.getText());
529 this.mbdLibHeader
.setGuid(mGuid
);
532 this.mbdLibHeader
.setVersion(this.jTextFieldVersion
.getText());
534 if (this.mbdLibHeader
.getLicense() != null) {
535 this.mbdLibHeader
.getLicense().setStringValue(this.jTextAreaLicense
.getText());
537 LicenseDocument
.License mLicense
= LicenseDocument
.License
.Factory
.newInstance();
538 mLicense
.setStringValue(this.jTextAreaLicense
.getText());
539 this.mbdLibHeader
.setLicense(mLicense
);
542 this.mbdLibHeader
.setCopyright(this.jTextFieldCopyright
.getText());
543 this.mbdLibHeader
.setDescription(this.jTextAreaDescription
.getText());
545 if (this.mbdLibHeader
.getCreated() == null) {
546 this.mbdLibHeader
.setCreated(Tools
.getCurrentDateTime());
548 this.mbdLibHeader
.setModified(Tools
.getCurrentDateTime());
550 } catch (Exception e
) {
551 Log
.err("Save Module Buid Description", e
.getMessage());
556 This method initializes module type and compontent type
559 private void initFrame() {
563 Get MbdLibHeaderDocument.MbdLibHeader
565 @return MbdLibHeaderDocument.MbdLibHeader
568 public MbdLibHeaderDocument
.MbdLibHeader
getMbdLibHeader() {
573 Set MbdLibHeaderDocument.MbdLibHeader
575 @param mbdLibHeader The input MbdLibHeaderDocument.MbdLibHeader
578 public void setMbdLibHeader(MbdLibHeaderDocument
.MbdLibHeader mbdLibHeader
) {
579 this.mbdLibHeader
= mbdLibHeader
;