3 The file is used to create, update FpdHeader of Fpd 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
.frameworkwizard
.platform
.ui
;
18 import java
.awt
.Dimension
;
19 import java
.awt
.event
.ActionEvent
;
20 import java
.awt
.event
.ComponentEvent
;
21 import java
.awt
.event
.FocusAdapter
;
22 import java
.awt
.event
.FocusEvent
;
24 import javax
.swing
.JButton
;
25 import javax
.swing
.JFrame
;
26 import javax
.swing
.JLabel
;
27 import javax
.swing
.JOptionPane
;
28 import javax
.swing
.JPanel
;
29 import javax
.swing
.JScrollPane
;
30 import javax
.swing
.JTextArea
;
31 import javax
.swing
.JTextField
;
35 import org
.tianocore
.PlatformSurfaceAreaDocument
;
37 import org
.tianocore
.frameworkwizard
.common
.DataValidation
;
38 import org
.tianocore
.frameworkwizard
.common
.Tools
;
39 import org
.tianocore
.frameworkwizard
.common
.Identifications
.OpeningPlatformType
;
40 import org
.tianocore
.frameworkwizard
.common
.ui
.IInternalFrame
;
41 import org
.tianocore
.frameworkwizard
.common
.ui
.StarLabel
;
44 The class is used to create, update FpdHeader of Fpd file
45 It extends IInternalFrame
47 @since PackageEditor 1.0
50 public class FpdHeader
extends IInternalFrame
{
53 /// Define class Serial Version UID
55 private static final long serialVersionUID
= -8152099582923006900L;
59 //Define class members
61 private JPanel jContentPane
= null; // @jve:decl-index=0:visual-constraint="10,53"
63 private JLabel jLabelBaseName
= null;
65 private JTextField jTextFieldBaseName
= null;
67 private JLabel jLabelGuid
= null;
69 private JTextField jTextFieldGuid
= null;
71 private JLabel jLabelVersion
= null;
73 private JTextField jTextFieldVersion
= null;
75 private JButton jButtonGenerateGuid
= null;
77 private JLabel jLabelLicense
= null;
79 private JTextArea jTextAreaLicense
= null;
81 private JLabel jLabelCopyright
= null;
83 private JLabel jLabelDescription
= null;
85 private JTextArea jTextAreaDescription
= null;
87 private JLabel jLabelSpecification
= null;
89 private JTextField jTextFieldSpecification
= null;
91 private JButton jButtonOk
= null;
93 private JButton jButtonCancel
= null;
95 private JScrollPane jScrollPaneLicense
= null;
97 private JScrollPane jScrollPaneDescription
= null;
99 private JLabel jLabelAbstract
= null;
101 private JTextField jTextFieldAbstract
= null;
103 private StarLabel jStarLabel1
= null;
105 private StarLabel jStarLabel2
= null;
107 private StarLabel jStarLabel3
= null;
109 private StarLabel jStarLabel4
= null;
111 private StarLabel jStarLabel5
= null;
113 private StarLabel jStarLabel6
= null;
115 private StarLabel jStarLabel7
= null;
117 private StarLabel jStarLabel8
= null;
119 private StarLabel jStarLabel9
= null;
121 private JTextField jTextFieldCopyright
= null;
123 private JLabel jLabel
= null;
125 private JTextField jTextField
= null;
127 private FpdFileContents ffc
= null;
129 private OpeningPlatformType docConsole
= null;
132 This method initializes jTextFieldBaseName
134 @return javax.swing.JTextField jTextFieldBaseName
137 private JTextField
getJTextFieldBaseName() {
138 if (jTextFieldBaseName
== null) {
139 jTextFieldBaseName
= new JTextField();
140 jTextFieldBaseName
.setBounds(new java
.awt
.Rectangle(160, 10, 320, 20));
141 jTextFieldBaseName
.setPreferredSize(new java
.awt
.Dimension(320,20));
142 jTextFieldBaseName
.addFocusListener(new FocusAdapter(){
143 public void focusLost(FocusEvent e
) {
144 if (!DataValidation
.isUiNameType(jTextFieldBaseName
.getText())) {
145 JOptionPane
.showMessageDialog(frame
, "Package Name is NOT UiNameType.");
148 if (jTextFieldBaseName
.getText().equals(ffc
.getFpdHdrPlatformName())) {
151 docConsole
.setSaved(false);
152 ffc
.setFpdHdrPlatformName(jTextFieldBaseName
.getText());
156 return jTextFieldBaseName
;
160 This method initializes jTextFieldGuid
162 @return javax.swing.JTextField jTextFieldGuid
165 private JTextField
getJTextFieldGuid() {
166 if (jTextFieldGuid
== null) {
167 jTextFieldGuid
= new JTextField();
168 jTextFieldGuid
.setBounds(new java
.awt
.Rectangle(160, 35, 250, 20));
169 jTextFieldGuid
.setPreferredSize(new java
.awt
.Dimension(250,20));
170 jTextFieldGuid
.addFocusListener(new FocusAdapter(){
171 public void focusLost(FocusEvent e
) {
172 if (!DataValidation
.isGuid(jTextFieldGuid
.getText())) {
173 JOptionPane
.showMessageDialog(frame
, "Guid is NOT GuidType.");
176 if (jTextFieldGuid
.getText().equals(ffc
.getFpdHdrGuidValue())) {
179 docConsole
.setSaved(false);
180 ffc
.setFpdHdrGuidValue(jTextFieldGuid
.getText());
184 return jTextFieldGuid
;
188 This method initializes jTextFieldVersion
190 @return javax.swing.JTextField jTextFieldVersion
193 private JTextField
getJTextFieldVersion() {
194 if (jTextFieldVersion
== null) {
195 jTextFieldVersion
= new JTextField();
196 jTextFieldVersion
.setBounds(new java
.awt
.Rectangle(160, 60, 320, 20));
197 jTextFieldVersion
.setPreferredSize(new java
.awt
.Dimension(320,20));
198 jTextFieldVersion
.addFocusListener(new FocusAdapter(){
199 public void focusLost(FocusEvent e
) {
200 if (!DataValidation
.isVersion(jTextFieldVersion
.getText())) {
201 JOptionPane
.showMessageDialog(frame
, "Version is NOT version type.");
204 if (jTextFieldVersion
.getText().equals(ffc
.getFpdHdrVer())) {
207 docConsole
.setSaved(false);
208 ffc
.setFpdHdrVer(jTextFieldVersion
.getText());
212 return jTextFieldVersion
;
216 This method initializes jButtonGenerateGuid
218 @return javax.swing.JButton jButtonGenerateGuid
221 private JButton
getJButtonGenerateGuid() {
222 if (jButtonGenerateGuid
== null) {
223 jButtonGenerateGuid
= new JButton();
224 jButtonGenerateGuid
.setBounds(new java
.awt
.Rectangle(415, 35, 65, 20));
225 jButtonGenerateGuid
.setText("GEN");
226 jButtonGenerateGuid
.addActionListener(this);
228 return jButtonGenerateGuid
;
232 This method initializes jTextAreaLicense
234 @return javax.swing.JTextArea jTextAreaLicense
237 private JTextArea
getJTextAreaLicense() {
238 if (jTextAreaLicense
== null) {
239 jTextAreaLicense
= new JTextArea();
240 jTextAreaLicense
.setText("");
241 jTextAreaLicense
.setLineWrap(true);
242 jTextAreaLicense
.addFocusListener(new FocusAdapter(){
243 public void focusLost(FocusEvent e
) {
244 if (jTextAreaLicense
.getText().length() == 0) {
245 JOptionPane
.showMessageDialog(frame
, "License contents could NOT be empty.");
248 if (jTextAreaLicense
.getText().equals(ffc
.getFpdHdrLicense())) {
251 docConsole
.setSaved(false);
252 ffc
.setFpdHdrLicense(jTextAreaLicense
.getText());
256 return jTextAreaLicense
;
260 This method initializes jTextAreaDescription
262 @return javax.swing.JTextArea jTextAreaDescription
265 private JTextArea
getJTextAreaDescription() {
266 if (jTextAreaDescription
== null) {
267 jTextAreaDescription
= new JTextArea();
268 jTextAreaDescription
.setLineWrap(true);
269 jTextAreaDescription
.addFocusListener(new FocusAdapter(){
270 public void focusLost(FocusEvent e
) {
271 if (jTextAreaDescription
.getText().length() == 0) {
272 JOptionPane
.showMessageDialog(frame
, "Description contents could NOT be empty.");
275 if (jTextAreaDescription
.getText().equals(ffc
.getFpdHdrDescription())) {
278 docConsole
.setSaved(false);
279 ffc
.setFpdHdrDescription(jTextAreaDescription
.getText());
283 return jTextAreaDescription
;
287 This method initializes jTextFieldSpecification
289 @return javax.swing.JTextField jTextFieldSpecification
292 private JTextField
getJTextFieldSpecification() {
293 if (jTextFieldSpecification
== null) {
294 jTextFieldSpecification
= new JTextField();
295 jTextFieldSpecification
.setBounds(new java
.awt
.Rectangle(160,328,320,20));
296 jTextFieldSpecification
.setEditable(false);
297 jTextFieldSpecification
.setPreferredSize(new java
.awt
.Dimension(320,20));
298 jTextFieldSpecification
.addFocusListener(new FocusAdapter(){
299 public void focusLost(FocusEvent e
) {
300 ffc
.setFpdHdrSpec(jTextFieldSpecification
.getText());
304 return jTextFieldSpecification
;
308 This method initializes jButtonOk
310 @return javax.swing.JButton jButtonOk
313 private JButton
getJButtonOk() {
314 if (jButtonOk
== null) {
315 jButtonOk
= new JButton();
316 jButtonOk
.setText("OK");
317 jButtonOk
.setBounds(new java
.awt
.Rectangle(290,351,90,20));
318 jButtonOk
.setVisible(false);
319 jButtonOk
.addActionListener(this);
325 This method initializes jButtonCancel
327 @return javax.swing.JButton jButtonCancel
330 private JButton
getJButtonCancel() {
331 if (jButtonCancel
== null) {
332 jButtonCancel
= new JButton();
333 jButtonCancel
.setText("Cancel");
334 jButtonCancel
.setBounds(new java
.awt
.Rectangle(390,351,90,20));
335 jButtonCancel
.setVisible(false);
336 jButtonCancel
.addActionListener(this);
338 return jButtonCancel
;
342 This method initializes jScrollPaneLicense
344 @return javax.swing.JScrollPane jScrollPaneLicense
347 private JScrollPane
getJScrollPaneLicense() {
348 if (jScrollPaneLicense
== null) {
349 jScrollPaneLicense
= new JScrollPane();
350 jScrollPaneLicense
.setBounds(new java
.awt
.Rectangle(160,107,320,80));
351 jScrollPaneLicense
.setHorizontalScrollBarPolicy(javax
.swing
.JScrollPane
.HORIZONTAL_SCROLLBAR_NEVER
);
352 jScrollPaneLicense
.setPreferredSize(new java
.awt
.Dimension(320,80));
353 jScrollPaneLicense
.setViewportView(getJTextAreaLicense());
355 return jScrollPaneLicense
;
359 This method initializes jScrollPaneDescription
361 @return javax.swing.JScrollPane jScrollPaneDescription
364 private JScrollPane
getJScrollPaneDescription() {
365 if (jScrollPaneDescription
== null) {
366 jScrollPaneDescription
= new JScrollPane();
367 jScrollPaneDescription
.setBounds(new java
.awt
.Rectangle(160,243,320,80));
368 jScrollPaneDescription
.setHorizontalScrollBarPolicy(javax
.swing
.JScrollPane
.HORIZONTAL_SCROLLBAR_NEVER
);
369 jScrollPaneDescription
.setViewportView(getJTextAreaDescription());
371 return jScrollPaneDescription
;
375 This method initializes jTextFieldAbstract
377 @return javax.swing.JTextField jTextFieldAbstract
380 private JTextField
getJTextFieldAbstract() {
381 if (jTextFieldAbstract
== null) {
382 jTextFieldAbstract
= new JTextField();
383 jTextFieldAbstract
.setBounds(new java
.awt
.Rectangle(160,218,320,20));
384 jTextFieldAbstract
.setPreferredSize(new java
.awt
.Dimension(320, 20));
385 jTextFieldAbstract
.addFocusListener(new FocusAdapter(){
386 public void focusLost(FocusEvent e
) {
387 if (!DataValidation
.isAbstract(jTextFieldAbstract
.getText())) {
388 JOptionPane
.showMessageDialog(frame
, "Abstract could NOT be empty.");
391 if (jTextFieldAbstract
.getText().equals(ffc
.getFpdHdrAbs())) {
394 docConsole
.setSaved(false);
395 ffc
.setFpdHdrAbs(jTextFieldAbstract
.getText());
399 return jTextFieldAbstract
;
403 This method initializes jTextFieldCopyright
405 @return javax.swing.JTextField jTextFieldCopyright
408 private JTextField
getJTextFieldCopyright() {
409 if (jTextFieldCopyright
== null) {
410 jTextFieldCopyright
= new JTextField();
411 jTextFieldCopyright
.setBounds(new java
.awt
.Rectangle(160,85,320,20));
412 jTextFieldCopyright
.setPreferredSize(new java
.awt
.Dimension(320,20));
413 jTextFieldCopyright
.addFocusListener(new FocusAdapter(){
414 public void focusLost(FocusEvent e
) {
415 if (!DataValidation
.isCopyright(jTextFieldCopyright
.getText())) {
416 JOptionPane
.showMessageDialog(frame
, "Copyright contents could not be empty.");
419 if (jTextFieldCopyright
.getText().equals(ffc
.getFpdHdrCopyright())) {
422 docConsole
.setSaved(false);
423 ffc
.setFpdHdrCopyright(jTextFieldCopyright
.getText());
427 return jTextFieldCopyright
;
431 * This method initializes jTextField
433 * @return javax.swing.JTextField
435 private JTextField
getJTextField() {
436 if (jTextField
== null) {
437 jTextField
= new JTextField();
438 jTextField
.setBounds(new java
.awt
.Rectangle(160,193,320,20));
439 jTextField
.setPreferredSize(new Dimension(320, 20));
440 jTextField
.addFocusListener(new FocusAdapter(){
441 public void focusLost(FocusEvent e
){
442 if (jTextField
.getText().length() == 0 && ffc
.getFpdHdrUrl() == null) {
445 if (jTextField
.getText().equals(ffc
.getFpdHdrUrl())) {
448 ffc
.setFpdHdrLicense(jTextAreaLicense
.getText());
449 ffc
.setFpdHdrUrl(jTextField
.getText());
450 docConsole
.setSaved(false);
457 public static void main(String
[] args
) {
458 new FpdHeader().setVisible(true);
462 This is the default constructor
468 this.setVisible(true);
472 This is the override edit constructor
474 @param inFpdHeader The input data of FpdHeaderDocument.FpdHeader
477 public FpdHeader(PlatformSurfaceAreaDocument
.PlatformSurfaceArea inFpd
) {
479 ffc
= new FpdFileContents(inFpd
);
484 public FpdHeader(OpeningPlatformType opt
) {
485 this(opt
.getXmlFpd());
490 This method initializes this
493 private void init() {
494 //this.setSize(500, 515);
495 this.setContentPane(getJContentPane());
496 this.setTitle("Package Surface Area Header");
502 This method initializes this
503 Fill values to all fields if these values are not empty
505 @param inFpdHeader The input data of FpdHeaderDocument.FpdHeader
508 private void init(FpdFileContents ffc
) {
510 if (ffc
.getFpdHdrPlatformName() != null) {
511 jTextFieldBaseName
.setText(ffc
.getFpdHdrPlatformName());
513 if (ffc
.getFpdHdrGuidValue() != null) {
514 jTextFieldGuid
.setText(ffc
.getFpdHdrGuidValue());
516 if (ffc
.getFpdHdrVer() != null) {
517 jTextFieldVersion
.setText(ffc
.getFpdHdrVer());
519 if (ffc
.getFpdHdrLicense() != null) {
520 jTextAreaLicense
.setText(ffc
.getFpdHdrLicense());
522 if (ffc
.getFpdHdrAbs() != null) {
523 jTextFieldAbstract
.setText(ffc
.getFpdHdrAbs());
525 if (ffc
.getFpdHdrUrl() != null) {
526 jTextField
.setText(ffc
.getFpdHdrUrl());
528 if (ffc
.getFpdHdrCopyright() != null) {
529 jTextFieldCopyright
.setText(ffc
.getFpdHdrCopyright());
531 if (ffc
.getFpdHdrDescription() != null) {
532 jTextAreaDescription
.setText(ffc
.getFpdHdrDescription());
534 if (ffc
.getFpdHdrSpec() != null) {
535 jTextFieldSpecification
.setText(ffc
.getFpdHdrSpec());
537 ffc
.setFpdHdrSpec(jTextFieldSpecification
.getText());
541 This method initializes jContentPane
543 @return javax.swing.JPanel jContentPane
546 private JPanel
getJContentPane() {
547 if (jContentPane
== null) {
548 jLabel
= new JLabel();
549 jLabel
.setBounds(new java
.awt
.Rectangle(15,193,140,20));
550 jLabel
.setText("URL");
551 jContentPane
= new JPanel();
552 jContentPane
.setLayout(null);
553 jContentPane
.setLocation(new java
.awt
.Point(0, 0));
554 jContentPane
.setSize(new java
.awt
.Dimension(500,423));
555 jLabelAbstract
= new JLabel();
556 jLabelAbstract
.setBounds(new java
.awt
.Rectangle(15,218,140,20));
557 jLabelAbstract
.setText("Abstract");
558 jLabelSpecification
= new JLabel();
559 jLabelSpecification
.setText("Specification");
560 jLabelSpecification
.setBounds(new java
.awt
.Rectangle(15,328,140,20));
561 jLabelDescription
= new JLabel();
562 jLabelDescription
.setText("Description");
563 jLabelDescription
.setBounds(new java
.awt
.Rectangle(15,243,140,20));
564 jLabelCopyright
= new JLabel();
565 jLabelCopyright
.setText("Copyright");
566 jLabelCopyright
.setBounds(new java
.awt
.Rectangle(15,85,140,20));
567 jLabelLicense
= new JLabel();
568 jLabelLicense
.setText("License");
569 jLabelLicense
.setBounds(new java
.awt
.Rectangle(15,108,140,20));
570 jLabelVersion
= new JLabel();
571 jLabelVersion
.setText("Version");
572 jLabelVersion
.setBounds(new java
.awt
.Rectangle(15, 60, 140, 20));
573 jLabelGuid
= new JLabel();
574 jLabelGuid
.setPreferredSize(new java
.awt
.Dimension(25, 15));
575 jLabelGuid
.setBounds(new java
.awt
.Rectangle(15, 35, 140, 20));
576 jLabelGuid
.setText("Guid");
577 jLabelBaseName
= new JLabel();
578 jLabelBaseName
.setText("Platform Name");
579 jLabelBaseName
.setBounds(new java
.awt
.Rectangle(15, 10, 140, 20));
580 jContentPane
.add(jLabelBaseName
, null);
581 jContentPane
.add(getJTextFieldBaseName(), null);
582 jContentPane
.add(jLabelGuid
, null);
583 jContentPane
.add(getJTextFieldGuid(), null);
584 jContentPane
.add(jLabelVersion
, null);
585 jContentPane
.add(getJTextFieldVersion(), null);
586 jContentPane
.add(getJButtonGenerateGuid(), null);
587 jContentPane
.add(jLabelLicense
, null);
588 jContentPane
.add(jLabelCopyright
, null);
589 jContentPane
.add(jLabelDescription
, null);
590 jContentPane
.add(jLabelSpecification
, null);
591 jContentPane
.add(getJTextFieldSpecification(), null);
592 jContentPane
.add(getJButtonOk(), null);
593 jContentPane
.add(getJButtonCancel(), null);
594 jContentPane
.add(getJScrollPaneLicense(), null);
595 jContentPane
.add(getJScrollPaneDescription(), null);
596 jContentPane
.add(jLabelAbstract
, null);
597 jContentPane
.add(getJTextFieldAbstract(), null);
598 jStarLabel1
= new StarLabel();
599 jStarLabel1
.setLocation(new java
.awt
.Point(0, 10));
600 jStarLabel2
= new StarLabel();
601 jStarLabel2
.setLocation(new java
.awt
.Point(0, 35));
602 jStarLabel3
= new StarLabel();
603 jStarLabel3
.setLocation(new java
.awt
.Point(0, 60));
604 jStarLabel4
= new StarLabel();
605 jStarLabel4
.setLocation(new java
.awt
.Point(0,108));
606 jStarLabel5
= new StarLabel();
607 jStarLabel5
.setLocation(new java
.awt
.Point(0,85));
608 jStarLabel6
= new StarLabel();
609 jStarLabel6
.setLocation(new java
.awt
.Point(0,218));
610 jStarLabel7
= new StarLabel();
611 jStarLabel7
.setLocation(new java
.awt
.Point(0,328));
612 jStarLabel7
.setEnabled(false);
613 jStarLabel8
= new StarLabel();
614 jStarLabel8
.setLocation(new java
.awt
.Point(0,243));
615 jStarLabel9
= new StarLabel();
616 jStarLabel9
.setLocation(new java
.awt
.Point(0,303));
617 jStarLabel9
.setVisible(false);
618 jContentPane
.add(jStarLabel1
, null);
619 jContentPane
.add(jStarLabel2
, null);
620 jContentPane
.add(jStarLabel3
, null);
621 jContentPane
.add(jStarLabel4
, null);
622 jContentPane
.add(jStarLabel5
, null);
623 jContentPane
.add(jStarLabel6
, null);
624 jContentPane
.add(jStarLabel7
, null);
625 jContentPane
.add(jStarLabel8
, null);
626 jContentPane
.add(jStarLabel9
, null);
627 jContentPane
.add(getJTextFieldCopyright(), null);
629 jContentPane
.add(jLabel
, null);
630 jContentPane
.add(getJTextField(), null);
636 * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
638 * Override actionPerformed to listen all actions
641 public void actionPerformed(ActionEvent arg0
) {
643 if (arg0
.getSource() == jButtonGenerateGuid
) {
644 docConsole
.setSaved(false);
645 jTextFieldGuid
.setText(Tools
.generateUuidString());
646 ffc
.setFpdHdrGuidValue(jTextFieldGuid
.getText());
652 This method initializes Package type and Compontent type
655 private void initFrame() {
661 * @see java.awt.event.ComponentListener#componentResized(java.awt.event.ComponentEvent)
663 * Override componentResized to resize all components when frame's size is changed
665 public void componentResized(ComponentEvent arg0
) {
666 int intPreferredWidth
= 500;
668 resizeComponentWidth(this.jTextFieldBaseName
, this.getWidth(), intPreferredWidth
);
669 resizeComponentWidth(this.jTextFieldGuid
, this.getWidth(), intPreferredWidth
);
670 resizeComponentWidth(this.jTextFieldVersion
, this.getWidth(), intPreferredWidth
);
671 resizeComponentWidth(this.jTextField
, this.getWidth(), intPreferredWidth
);
672 resizeComponentWidth(this.jScrollPaneLicense
, this.getWidth(), intPreferredWidth
);
673 resizeComponentWidth(this.jTextFieldCopyright
, this.getWidth(), intPreferredWidth
);
674 resizeComponentWidth(this.jScrollPaneDescription
, this.getWidth(), intPreferredWidth
);
675 resizeComponentWidth(this.jTextFieldSpecification
, this.getWidth(), intPreferredWidth
);
676 resizeComponentWidth(this.jTextFieldAbstract
, this.getWidth(), intPreferredWidth
);
678 relocateComponentX(this.jButtonGenerateGuid
, this.getWidth(), jButtonGenerateGuid
.getWidth(), 25);