3 Copyright (c) 2006, Intel Corporation
4 All rights reserved. This program and the accompanying materials
5 are licensed and made available under the terms and conditions of the BSD License
6 which accompanies this distribution. The full text of the license may be found at
7 http://opensource.org/licenses/bsd-license.php
9 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
10 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
14 package org
.tianocore
.frameworkwizard
.far
.createui
;
16 import java
.awt
.event
.MouseEvent
;
17 import java
.awt
.event
.MouseListener
;
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
.frameworkwizard
.common
.DataValidation
;
27 import org
.tianocore
.frameworkwizard
.common
.Log
;
28 import org
.tianocore
.frameworkwizard
.common
.Tools
;
29 import org
.tianocore
.frameworkwizard
.common
.ui
.IDialog
;
30 import org
.tianocore
.frameworkwizard
.common
.ui
.IFrame
;
31 import org
.tianocore
.frameworkwizard
.common
.ui
.StarLabel
;
32 import org
.tianocore
.frameworkwizard
.far
.FarHeader
;
34 public class CreateStepOne
extends IDialog
implements MouseListener
{
37 // / Define class Serial Version UID
39 private static final long serialVersionUID
= -8152099582923006900L;
42 // Define class members
44 private JPanel jContentPane
= null;
46 private JLabel jLabelBaseName
= null;
48 private JTextField jTextFieldBaseName
= null;
50 private JLabel jLabelGuid
= null;
52 private JTextField jTextFieldGuid
= null;
54 private JLabel jLabelVersion
= null;
56 private JTextField jTextFieldVersion
= null;
58 private JButton jButtonGenerateGuid
= null;
60 private JLabel jLabelLicense
= null;
62 private JTextArea jTextAreaLicense
= null;
64 private JLabel jLabelCopyright
= null;
66 private JLabel jLabelDescription
= null;
68 private JTextArea jTextAreaDescription
= null;
70 private JLabel jLabelSpecification
= null;
72 private JTextField jTextFieldSpecification
= null;
74 private JButton jButtonOk
= null;
76 private JScrollPane jScrollPaneLicense
= null;
78 private JScrollPane jScrollPaneDescription
= null;
80 private JLabel jLabelAbstract
= null;
82 private JTextField jTextFieldAbstract
= null;
84 private StarLabel jStarLabel1
= null;
86 private StarLabel jStarLabel4
= null;
88 private StarLabel jStarLabel5
= null;
90 private StarLabel jStarLabel6
= null;
92 private StarLabel jStarLabel7
= null;
94 private StarLabel jStarLabel8
= null;
96 private StarLabel jStarLabel10
= null;
98 private StarLabel jStarLabel12
= null;
100 private JLabel jLabelURL
= null;
102 private JTextField jTextFieldURL
= null;
104 private JScrollPane jScrollPane
= null;
106 private CreateStepTwo stepTwo
= null;
108 private JButton jButtonCancel
= null;
110 private JButton jButtonNext
= null;
112 private FarHeader farHeader
= new FarHeader();
114 private JScrollPane jScrollPaneCopyright
= null;
116 private JTextArea jTextAreaCopyright
= null;
119 * This method initializes jTextFieldBaseName
121 * @return javax.swing.JTextField jTextFieldBaseName
124 private JTextField
getJTextFieldBaseName() {
125 if (jTextFieldBaseName
== null) {
126 jTextFieldBaseName
= new JTextField();
127 jTextFieldBaseName
.setBounds(new java
.awt
.Rectangle(160, 10, 520, 20));
128 jTextFieldBaseName
.setToolTipText("An brief Identifier, such as USB I/O Library, of the module");
130 return jTextFieldBaseName
;
134 * This method initializes jTextFieldGuid
136 * @return javax.swing.JTextField jTextFieldGuid
139 private JTextField
getJTextFieldGuid() {
140 if (jTextFieldGuid
== null) {
141 jTextFieldGuid
= new JTextField();
142 jTextFieldGuid
.setBounds(new java
.awt
.Rectangle(160, 35, 410, 20));
143 jTextFieldGuid
.setToolTipText("Guaranteed Unique Identification Number (8-4-4-4-12)");
145 return jTextFieldGuid
;
149 * This method initializes jTextFieldVersion
151 * @return javax.swing.JTextField jTextFieldVersion
154 private JTextField
getJTextFieldVersion() {
155 if (jTextFieldVersion
== null) {
156 jTextFieldVersion
= new JTextField();
157 jTextFieldVersion
.setBounds(new java
.awt
.Rectangle(160, 60, 520, 20));
158 jTextFieldVersion
.setToolTipText("A Version Number, 1.0, 1, 1.01");
160 return jTextFieldVersion
;
164 * This method initializes jButtonGenerateGuid
166 * @return javax.swing.JButton jButtonGenerateGuid
169 private JButton
getJButtonGenerateGuid() {
170 if (jButtonGenerateGuid
== null) {
171 jButtonGenerateGuid
= new JButton();
172 jButtonGenerateGuid
.setBounds(new java
.awt
.Rectangle(590, 35, 90, 20));
173 jButtonGenerateGuid
.setText("Generate");
174 jButtonGenerateGuid
.addMouseListener(this);
176 return jButtonGenerateGuid
;
180 * This method initializes jTextAreaLicense
182 * @return javax.swing.JTextArea jTextAreaLicense
185 private JTextArea
getJTextAreaLicense() {
186 if (jTextAreaLicense
== null) {
187 jTextAreaLicense
= new JTextArea();
188 jTextAreaLicense
.setText("");
189 jTextAreaLicense
.setLineWrap(true);
190 jTextAreaLicense
.setToolTipText("The License for this file");
192 return jTextAreaLicense
;
196 * This method initializes jTextAreaDescription
198 * @return javax.swing.JTextArea jTextAreaDescription
201 private JTextArea
getJTextAreaDescription() {
202 if (jTextAreaDescription
== null) {
203 jTextAreaDescription
= new JTextArea();
204 jTextAreaDescription
.setLineWrap(true);
205 jTextAreaDescription
.setToolTipText("A verbose description of the module");
207 return jTextAreaDescription
;
211 * This method initializes jTextFieldSpecification
213 * @return javax.swing.JTextField jTextFieldSpecification
216 private JTextField
getJTextFieldSpecification() {
217 if (jTextFieldSpecification
== null) {
218 jTextFieldSpecification
= new JTextField();
219 jTextFieldSpecification
.setText("FRAMEWORK_BUILD_PACKAGING_SPECIFICATION 0x00000052");
220 jTextFieldSpecification
.setBounds(new java
.awt
.Rectangle(160, 310, 520, 20));
221 jTextFieldSpecification
.setEditable(false);
223 return jTextFieldSpecification
;
227 * This method initializes jScrollPaneLicense
229 * @return javax.swing.JScrollPane jScrollPaneLicense
232 private JScrollPane
getJScrollPaneLicense() {
233 if (jScrollPaneLicense
== null) {
234 jScrollPaneLicense
= new JScrollPane();
235 jScrollPaneLicense
.setHorizontalScrollBarPolicy(javax
.swing
.JScrollPane
.HORIZONTAL_SCROLLBAR_NEVER
);
236 jScrollPaneLicense
.setBounds(new java
.awt
.Rectangle(160, 220, 520, 60));
237 jScrollPaneLicense
.setViewportView(getJTextAreaLicense());
239 return jScrollPaneLicense
;
243 * This method initializes jScrollPaneDescription
245 * @return javax.swing.JScrollPane jScrollPaneDescription
248 private JScrollPane
getJScrollPaneDescription() {
249 if (jScrollPaneDescription
== null) {
250 jScrollPaneDescription
= new JScrollPane();
251 jScrollPaneDescription
.setHorizontalScrollBarPolicy(javax
.swing
.JScrollPane
.HORIZONTAL_SCROLLBAR_NEVER
);
252 jScrollPaneDescription
.setBounds(new java
.awt
.Rectangle(160, 110, 520, 60));
253 jScrollPaneDescription
.setViewportView(getJTextAreaDescription());
255 return jScrollPaneDescription
;
259 * This method initializes jTextFieldAbstract
261 * @return javax.swing.JTextField jTextFieldAbstract
264 private JTextField
getJTextFieldAbstract() {
265 if (jTextFieldAbstract
== null) {
266 jTextFieldAbstract
= new JTextField();
267 jTextFieldAbstract
.setBounds(new java
.awt
.Rectangle(160, 85, 520, 20));
268 jTextFieldAbstract
.setToolTipText("A one sentence description of this module");
270 return jTextFieldAbstract
;
274 * This method initializes jTextFieldURL
276 * @return javax.swing.JTextField
278 private JTextField
getJTextFieldURL() {
279 if (jTextFieldURL
== null) {
280 jTextFieldURL
= new JTextField();
281 jTextFieldURL
.setBounds(new java
.awt
.Rectangle(160, 285, 520, 20));
282 jTextFieldURL
.setToolTipText("A URL for the latest version of the license");
284 return jTextFieldURL
;
288 * This method initializes jScrollPane
290 * @return javax.swing.JScrollPane
292 private JScrollPane
getJScrollPane() {
293 if (jScrollPane
== null) {
294 jScrollPane
= new JScrollPane();
295 jScrollPane
.setViewportView(getJContentPane());
301 * This method initializes jButtonCancel1
303 * @return javax.swing.JButton
305 private JButton
getJButtonCancel() {
306 if (jButtonCancel
== null) {
307 jButtonCancel
= new JButton();
308 jButtonCancel
.setBounds(new java
.awt
.Rectangle(590, 350, 90, 20));
309 jButtonCancel
.setText("Cancel");
310 jButtonCancel
.addMouseListener(this);
312 return jButtonCancel
;
316 * This method initializes jButtonNext
318 * @return javax.swing.JButton
320 private JButton
getJButtonNext() {
321 if (jButtonNext
== null) {
322 jButtonNext
= new JButton();
323 jButtonNext
.setBounds(new java
.awt
.Rectangle(480, 350, 90, 20));
324 jButtonNext
.setText("Next");
325 jButtonNext
.addMouseListener(this);
331 * This method initializes jScrollPaneCopyright
333 * @return javax.swing.JScrollPane
335 private JScrollPane
getJScrollPaneCopyright() {
336 if (jScrollPaneCopyright
== null) {
337 jScrollPaneCopyright
= new JScrollPane();
338 jScrollPaneCopyright
.setBounds(new java
.awt
.Rectangle(160, 175, 520, 40));
339 jScrollPaneCopyright
.setViewportView(getJTextAreaCopyright());
341 return jScrollPaneCopyright
;
345 * This method initializes jTextAreaCopyright
347 * @return javax.swing.JTextArea
349 private JTextArea
getJTextAreaCopyright() {
350 if (jTextAreaCopyright
== null) {
351 jTextAreaCopyright
= new JTextArea();
353 return jTextAreaCopyright
;
356 public static void main(String
[] args
) {
357 CreateStepOne c
= new CreateStepOne(new IFrame(), true);
362 * This is the default constructor
365 public CreateStepOne(IFrame iFrame
, boolean modal
) {
366 super(iFrame
, modal
);
371 * Disable all components when the mode is view
374 * true - The view mode; false - The non-view mode
377 public void setViewMode(boolean isView
) {
379 this.jTextFieldBaseName
.setEnabled(!isView
);
380 this.jTextFieldGuid
.setEnabled(!isView
);
381 this.jTextFieldVersion
.setEnabled(!isView
);
382 this.jTextAreaLicense
.setEnabled(!isView
);
383 this.jScrollPaneCopyright
.setEnabled(!isView
);
384 this.jTextAreaCopyright
.setEnabled(!isView
);
385 this.jTextAreaDescription
.setEnabled(!isView
);
386 this.jTextFieldSpecification
.setEnabled(!isView
);
387 this.jTextFieldAbstract
.setEnabled(!isView
);
388 this.jButtonGenerateGuid
.setEnabled(!isView
);
389 this.jButtonOk
.setEnabled(!isView
);
394 * This method initializes this
397 private void initialize() {
398 this.setSize(700, 425);
399 this.setContentPane(getJScrollPane());
400 this.setTitle("Create Framework Archive(FAR) - Step 1: Set FAR's baseic information");
405 * This method initializes jContentPane
407 * @return javax.swing.JPanel jContentPane
410 private JPanel
getJContentPane() {
411 if (jContentPane
== null) {
413 jLabelURL
= new JLabel();
414 jLabelURL
.setText("License URL");
415 jLabelURL
.setBounds(new java
.awt
.Rectangle(35, 285, 120, 20));
416 jLabelBaseName
= new JLabel();
417 jLabelBaseName
.setText("FAR Name");
418 jLabelBaseName
.setBounds(new java
.awt
.Rectangle(35, 10, 120, 20));
419 jLabelGuid
= new JLabel();
420 jLabelGuid
.setText("Guid Value");
421 jLabelGuid
.setBounds(new java
.awt
.Rectangle(35, 35, 120, 20));
422 jLabelVersion
= new JLabel();
423 jLabelVersion
.setText("Version");
424 jLabelVersion
.setBounds(new java
.awt
.Rectangle(35, 60, 120, 20));
425 jLabelAbstract
= new JLabel();
426 jLabelAbstract
.setText("Abstract");
427 jLabelAbstract
.setBounds(new java
.awt
.Rectangle(35, 85, 120, 20));
428 jLabelDescription
= new JLabel();
429 jLabelDescription
.setText("Description");
430 jLabelDescription
.setBounds(new java
.awt
.Rectangle(35, 110, 120, 20));
431 jLabelCopyright
= new JLabel();
432 jLabelCopyright
.setText("Copyright");
433 jLabelCopyright
.setBounds(new java
.awt
.Rectangle(35, 175, 120, 20));
434 jLabelLicense
= new JLabel();
435 jLabelLicense
.setText("License");
436 jLabelLicense
.setBounds(new java
.awt
.Rectangle(35, 220, 120, 20));
437 jLabelSpecification
= new JLabel();
438 jLabelSpecification
.setText("Specification");
439 jLabelSpecification
.setBounds(new java
.awt
.Rectangle(35, 310, 120, 20));
441 jContentPane
= new JPanel();
442 jContentPane
.setLayout(null);
444 jContentPane
.add(jLabelBaseName
, null);
445 jContentPane
.add(getJTextFieldBaseName(), null);
446 jContentPane
.add(jLabelGuid
, null);
447 jContentPane
.add(getJTextFieldGuid(), null);
448 jContentPane
.add(jLabelVersion
, null);
449 jContentPane
.add(getJTextFieldVersion(), null);
450 jContentPane
.add(getJButtonGenerateGuid(), null);
451 jContentPane
.add(jLabelLicense
, null);
452 jContentPane
.add(jLabelCopyright
, null);
453 jContentPane
.add(jLabelDescription
, null);
454 jContentPane
.add(jLabelSpecification
, null);
455 jContentPane
.add(getJTextFieldSpecification(), null);
456 jContentPane
.add(getJScrollPaneLicense(), null);
457 jContentPane
.add(getJScrollPaneDescription(), null);
458 jContentPane
.add(jLabelAbstract
, null);
459 jContentPane
.add(getJTextFieldAbstract(), null);
460 jContentPane
.add(jLabelURL
, null);
461 jContentPane
.add(getJTextFieldURL(), null);
462 jStarLabel1
= new StarLabel();
463 jStarLabel1
.setLocation(new java
.awt
.Point(20, 10));
464 jStarLabel4
= new StarLabel();
465 jStarLabel4
.setLocation(new java
.awt
.Point(20, 35));
466 jStarLabel5
= new StarLabel();
467 jStarLabel5
.setLocation(new java
.awt
.Point(20, 60));
468 jStarLabel6
= new StarLabel();
469 jStarLabel6
.setLocation(new java
.awt
.Point(20, 110));
470 jStarLabel7
= new StarLabel();
471 jStarLabel7
.setLocation(new java
.awt
.Point(20, 175));
472 jStarLabel8
= new StarLabel();
473 jStarLabel8
.setLocation(new java
.awt
.Point(20, 220));
474 jStarLabel10
= new StarLabel();
475 jStarLabel10
.setLocation(new java
.awt
.Point(20, 85));
476 jStarLabel12
= new StarLabel();
477 jStarLabel12
.setLocation(new java
.awt
.Point(20, 310));
479 jContentPane
.add(jStarLabel1
, null);
480 jContentPane
.add(jStarLabel4
, null);
481 jContentPane
.add(jStarLabel5
, null);
482 jContentPane
.add(jStarLabel6
, null);
483 jContentPane
.add(jStarLabel7
, null);
484 jContentPane
.add(jStarLabel8
, null);
485 jContentPane
.add(jStarLabel10
, null);
486 jContentPane
.add(jStarLabel12
, null);
487 jContentPane
.add(getJButtonCancel(), null);
488 jContentPane
.add(getJButtonNext(), null);
489 jContentPane
.add(getJScrollPaneCopyright(), null);
494 public boolean valid() {
498 if (isEmpty(this.jTextFieldBaseName
.getText())) {
499 Log
.wrn("Create far", "Base Name couldn't be empty");
502 if (!DataValidation
.isBaseName(this.jTextFieldBaseName
.getText())) {
503 Log
.wrn("Create far", "Incorrect data type for Base Name");
506 farHeader
.setFarName(this.jTextFieldBaseName
.getText());
511 if (isEmpty(this.jTextFieldGuid
.getText())) {
512 Log
.wrn("Create far", "Guid Value couldn't be empty");
515 if (!DataValidation
.isGuid((this.jTextFieldGuid
).getText())) {
516 Log
.wrn("Create far", "Incorrect data type for Guid");
519 farHeader
.setGuidValue(this.jTextFieldGuid
.getText());
524 if (isEmpty(this.jTextFieldVersion
.getText())) {
525 Log
.wrn("Create far", "Version couldn't be empty");
528 if (!DataValidation
.isVersion(this.jTextFieldVersion
.getText())) {
529 Log
.wrn("Create far", "Incorrect data type for Version");
532 farHeader
.setVersion(this.jTextFieldVersion
.getText());
537 if (isEmpty(this.jTextFieldAbstract
.getText())) {
538 Log
.wrn("Create far", "Abstract couldn't be empty");
541 if (!DataValidation
.isAbstract(this.jTextFieldAbstract
.getText())) {
542 Log
.wrn("Create far", "Incorrect data type for Abstract");
545 farHeader
.setAbstractStr(this.jTextFieldAbstract
.getText());
550 if (isEmpty(this.jTextAreaDescription
.getText())) {
551 Log
.wrn("Create far", "Description couldn't be empty");
554 farHeader
.setDescription(this.jTextAreaDescription
.getText());
559 if (isEmpty(this.jTextAreaCopyright
.getText())) {
560 Log
.wrn("Create far", "Copyright couldn't be empty");
563 farHeader
.setCopyright(this.jTextAreaCopyright
.getText());
568 if (isEmpty(this.jTextAreaLicense
.getText())) {
569 Log
.wrn("Create far", "License couldn't be empty");
572 farHeader
.setLicense(this.jTextAreaLicense
.getText());
574 farHeader
.setSpecification(this.jTextFieldSpecification
.getText());
579 * Check the input data is empty or not
582 * The input data which need be checked
584 * @retval true - The input data is empty
585 * @retval fals - The input data is not empty
588 public boolean isEmpty(String strValue
) {
589 if (strValue
.length() > 0) {
595 public void mouseClicked(MouseEvent e
) {
596 if (e
.getSource() == jButtonCancel
) {
597 this.setVisible(false);
598 } else if (e
.getSource() == jButtonNext
) {
600 // Add some logic process here
605 if (stepTwo
== null) {
606 stepTwo
= new CreateStepTwo(this, true, this);
608 this.setVisible(false);
609 stepTwo
.setVisible(true);
610 } else if (e
.getSource() == jButtonGenerateGuid
) {
611 this.jTextFieldGuid
.setText(Tools
.generateUuidString());
615 public void mousePressed(MouseEvent e
) {
616 // TODO Auto-generated method stub
620 public void mouseReleased(MouseEvent e
) {
621 // TODO Auto-generated method stub
625 public void mouseEntered(MouseEvent e
) {
626 // TODO Auto-generated method stub
630 public void mouseExited(MouseEvent e
) {
631 // TODO Auto-generated method stub
635 public FarHeader
getFarHeader() {