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 JTextField jTextFieldCopyright
= null;
102 private JLabel jLabelURL
= null;
104 private JTextField jTextFieldURL
= null;
106 private JScrollPane jScrollPane
= null;
108 private CreateStepTwo stepTwo
= null;
110 private JButton jButtonCancel
= null;
112 private JButton jButtonNext
= null;
114 private FarHeader farHeader
= new FarHeader();
117 * This method initializes jTextFieldBaseName
119 * @return javax.swing.JTextField jTextFieldBaseName
122 private JTextField
getJTextFieldBaseName() {
123 if (jTextFieldBaseName
== null) {
124 jTextFieldBaseName
= new JTextField();
125 jTextFieldBaseName
.setBounds(new java
.awt
.Rectangle(160, 10, 520, 20));
126 jTextFieldBaseName
.setToolTipText("An brief Identifier, such as USB I/O Library, of the module");
128 return jTextFieldBaseName
;
132 * This method initializes jTextFieldGuid
134 * @return javax.swing.JTextField jTextFieldGuid
137 private JTextField
getJTextFieldGuid() {
138 if (jTextFieldGuid
== null) {
139 jTextFieldGuid
= new JTextField();
140 jTextFieldGuid
.setBounds(new java
.awt
.Rectangle(160, 35, 410, 20));
141 jTextFieldGuid
.setToolTipText("Guaranteed Unique Identification Number (8-4-4-4-12)");
143 return jTextFieldGuid
;
147 * This method initializes jTextFieldVersion
149 * @return javax.swing.JTextField jTextFieldVersion
152 private JTextField
getJTextFieldVersion() {
153 if (jTextFieldVersion
== null) {
154 jTextFieldVersion
= new JTextField();
155 jTextFieldVersion
.setBounds(new java
.awt
.Rectangle(160, 60, 520, 20));
156 jTextFieldVersion
.setToolTipText("A Version Number, 1.0, 1, 1.01");
158 return jTextFieldVersion
;
162 * This method initializes jButtonGenerateGuid
164 * @return javax.swing.JButton jButtonGenerateGuid
167 private JButton
getJButtonGenerateGuid() {
168 if (jButtonGenerateGuid
== null) {
169 jButtonGenerateGuid
= new JButton();
170 jButtonGenerateGuid
.setBounds(new java
.awt
.Rectangle(590, 35, 90, 20));
171 jButtonGenerateGuid
.setText("Generate");
172 jButtonGenerateGuid
.addMouseListener(this);
174 return jButtonGenerateGuid
;
178 * This method initializes jTextAreaLicense
180 * @return javax.swing.JTextArea jTextAreaLicense
183 private JTextArea
getJTextAreaLicense() {
184 if (jTextAreaLicense
== null) {
185 jTextAreaLicense
= new JTextArea();
186 jTextAreaLicense
.setText("");
187 jTextAreaLicense
.setLineWrap(true);
188 jTextAreaLicense
.setToolTipText("The License for this file");
190 return jTextAreaLicense
;
194 * This method initializes jTextAreaDescription
196 * @return javax.swing.JTextArea jTextAreaDescription
199 private JTextArea
getJTextAreaDescription() {
200 if (jTextAreaDescription
== null) {
201 jTextAreaDescription
= new JTextArea();
202 jTextAreaDescription
.setLineWrap(true);
203 jTextAreaDescription
.setToolTipText("A verbose description of the module");
205 return jTextAreaDescription
;
209 * This method initializes jTextFieldSpecification
211 * @return javax.swing.JTextField jTextFieldSpecification
214 private JTextField
getJTextFieldSpecification() {
215 if (jTextFieldSpecification
== null) {
216 jTextFieldSpecification
= new JTextField();
217 jTextFieldSpecification
.setText("FRAMEWORK_BUILD_PACKAGING_SPECIFICATION 0x00000052");
218 jTextFieldSpecification
.setBounds(new java
.awt
.Rectangle(160, 290, 520, 20));
219 jTextFieldSpecification
.setEditable(false);
221 return jTextFieldSpecification
;
225 * This method initializes jScrollPaneLicense
227 * @return javax.swing.JScrollPane jScrollPaneLicense
230 private JScrollPane
getJScrollPaneLicense() {
231 if (jScrollPaneLicense
== null) {
232 jScrollPaneLicense
= new JScrollPane();
233 jScrollPaneLicense
.setHorizontalScrollBarPolicy(javax
.swing
.JScrollPane
.HORIZONTAL_SCROLLBAR_NEVER
);
234 jScrollPaneLicense
.setBounds(new java
.awt
.Rectangle(160, 200, 520, 60));
235 jScrollPaneLicense
.setViewportView(getJTextAreaLicense());
237 return jScrollPaneLicense
;
241 * This method initializes jScrollPaneDescription
243 * @return javax.swing.JScrollPane jScrollPaneDescription
246 private JScrollPane
getJScrollPaneDescription() {
247 if (jScrollPaneDescription
== null) {
248 jScrollPaneDescription
= new JScrollPane();
249 jScrollPaneDescription
.setHorizontalScrollBarPolicy(javax
.swing
.JScrollPane
.HORIZONTAL_SCROLLBAR_NEVER
);
250 jScrollPaneDescription
.setBounds(new java
.awt
.Rectangle(160, 110, 520, 60));
251 jScrollPaneDescription
.setViewportView(getJTextAreaDescription());
253 return jScrollPaneDescription
;
257 * This method initializes jTextFieldAbstract
259 * @return javax.swing.JTextField jTextFieldAbstract
262 private JTextField
getJTextFieldAbstract() {
263 if (jTextFieldAbstract
== null) {
264 jTextFieldAbstract
= new JTextField();
265 jTextFieldAbstract
.setBounds(new java
.awt
.Rectangle(160, 85, 520, 20));
266 jTextFieldAbstract
.setToolTipText("A one sentence description of this module");
268 return jTextFieldAbstract
;
272 * This method initializes jTextFieldCopyright
274 * @return javax.swing.JTextField jTextFieldCopyright
277 private JTextField
getJTextFieldCopyright() {
278 if (jTextFieldCopyright
== null) {
279 jTextFieldCopyright
= new JTextField();
280 jTextFieldCopyright
.setBounds(new java
.awt
.Rectangle(160, 175, 520, 20));
281 jTextFieldCopyright
.setToolTipText("One or more copyright lines");
283 return jTextFieldCopyright
;
287 * This method initializes jTextFieldURL
289 * @return javax.swing.JTextField
291 private JTextField
getJTextFieldURL() {
292 if (jTextFieldURL
== null) {
293 jTextFieldURL
= new JTextField();
294 jTextFieldURL
.setBounds(new java
.awt
.Rectangle(160, 265, 520, 20));
295 jTextFieldURL
.setToolTipText("A URL for the latest version of the license");
297 return jTextFieldURL
;
301 * This method initializes jScrollPane
303 * @return javax.swing.JScrollPane
305 private JScrollPane
getJScrollPane() {
306 if (jScrollPane
== null) {
307 jScrollPane
= new JScrollPane();
308 jScrollPane
.setViewportView(getJContentPane());
314 * This method initializes jButtonCancel1
316 * @return javax.swing.JButton
318 private JButton
getJButtonCancel() {
319 if (jButtonCancel
== null) {
320 jButtonCancel
= new JButton();
321 jButtonCancel
.setBounds(new java
.awt
.Rectangle(590, 330, 90, 20));
322 jButtonCancel
.setText("Cancel");
323 jButtonCancel
.addMouseListener(this);
325 return jButtonCancel
;
329 * This method initializes jButtonNext
331 * @return javax.swing.JButton
333 private JButton
getJButtonNext() {
334 if (jButtonNext
== null) {
335 jButtonNext
= new JButton();
336 jButtonNext
.setBounds(new java
.awt
.Rectangle(480, 330, 90, 20));
337 jButtonNext
.setText("Next");
338 jButtonNext
.addMouseListener(this);
343 public static void main(String
[] args
) {
344 CreateStepOne c
= new CreateStepOne(new IFrame(), true);
349 * This is the default constructor
352 public CreateStepOne(IFrame iFrame
, boolean modal
) {
353 super(iFrame
, modal
);
358 * Disable all components when the mode is view
361 * true - The view mode; false - The non-view mode
364 public void setViewMode(boolean isView
) {
366 this.jTextFieldBaseName
.setEnabled(!isView
);
367 this.jTextFieldGuid
.setEnabled(!isView
);
368 this.jTextFieldVersion
.setEnabled(!isView
);
369 this.jTextAreaLicense
.setEnabled(!isView
);
370 this.jTextFieldCopyright
.setEnabled(!isView
);
371 this.jTextAreaDescription
.setEnabled(!isView
);
372 this.jTextFieldSpecification
.setEnabled(!isView
);
373 this.jTextFieldAbstract
.setEnabled(!isView
);
374 this.jButtonGenerateGuid
.setEnabled(!isView
);
375 this.jButtonOk
.setEnabled(!isView
);
380 * This method initializes this
383 private void initialize() {
384 this.setSize(700, 400);
385 this.setContentPane(getJScrollPane());
386 this.setTitle("Create Framework Archive(FAR) - Step 1: Set FAR's baseic information");
391 * This method initializes jContentPane
393 * @return javax.swing.JPanel jContentPane
396 private JPanel
getJContentPane() {
397 if (jContentPane
== null) {
399 jLabelURL
= new JLabel();
400 jLabelURL
.setText("License URL");
401 jLabelURL
.setBounds(new java
.awt
.Rectangle(35, 265, 120, 20));
402 jLabelBaseName
= new JLabel();
403 jLabelBaseName
.setText("FAR Name");
404 jLabelBaseName
.setBounds(new java
.awt
.Rectangle(35, 10, 120, 20));
405 jLabelGuid
= new JLabel();
406 jLabelGuid
.setText("Guid Value");
407 jLabelGuid
.setBounds(new java
.awt
.Rectangle(35, 35, 120, 20));
408 jLabelVersion
= new JLabel();
409 jLabelVersion
.setText("Version");
410 jLabelVersion
.setBounds(new java
.awt
.Rectangle(35, 60, 120, 20));
411 jLabelAbstract
= new JLabel();
412 jLabelAbstract
.setText("Abstract");
413 jLabelAbstract
.setBounds(new java
.awt
.Rectangle(35, 85, 120, 20));
414 jLabelDescription
= new JLabel();
415 jLabelDescription
.setText("Description");
416 jLabelDescription
.setBounds(new java
.awt
.Rectangle(35, 110, 120, 20));
417 jLabelCopyright
= new JLabel();
418 jLabelCopyright
.setText("Copyright");
419 jLabelCopyright
.setBounds(new java
.awt
.Rectangle(35, 175, 120, 20));
420 jLabelLicense
= new JLabel();
421 jLabelLicense
.setText("License");
422 jLabelLicense
.setBounds(new java
.awt
.Rectangle(35, 200, 120, 20));
423 jLabelSpecification
= new JLabel();
424 jLabelSpecification
.setText("Specification");
425 jLabelSpecification
.setBounds(new java
.awt
.Rectangle(35, 290, 120, 20));
427 jContentPane
= new JPanel();
428 jContentPane
.setLayout(null);
430 jContentPane
.add(jLabelBaseName
, null);
431 jContentPane
.add(getJTextFieldBaseName(), null);
432 jContentPane
.add(jLabelGuid
, null);
433 jContentPane
.add(getJTextFieldGuid(), null);
434 jContentPane
.add(jLabelVersion
, null);
435 jContentPane
.add(getJTextFieldVersion(), null);
436 jContentPane
.add(getJButtonGenerateGuid(), null);
437 jContentPane
.add(jLabelLicense
, null);
438 jContentPane
.add(jLabelCopyright
, null);
439 jContentPane
.add(jLabelDescription
, null);
440 jContentPane
.add(jLabelSpecification
, null);
441 jContentPane
.add(getJTextFieldSpecification(), null);
442 jContentPane
.add(getJScrollPaneLicense(), null);
443 jContentPane
.add(getJScrollPaneDescription(), null);
444 jContentPane
.add(jLabelAbstract
, null);
445 jContentPane
.add(getJTextFieldAbstract(), null);
446 jContentPane
.add(jLabelURL
, null);
447 jContentPane
.add(getJTextFieldURL(), null);
448 jContentPane
.add(getJTextFieldCopyright(), null);
449 jStarLabel1
= new StarLabel();
450 jStarLabel1
.setLocation(new java
.awt
.Point(20, 10));
451 jStarLabel4
= new StarLabel();
452 jStarLabel4
.setLocation(new java
.awt
.Point(20, 35));
453 jStarLabel5
= new StarLabel();
454 jStarLabel5
.setLocation(new java
.awt
.Point(20, 60));
455 jStarLabel6
= new StarLabel();
456 jStarLabel6
.setLocation(new java
.awt
.Point(20, 110));
457 jStarLabel7
= new StarLabel();
458 jStarLabel7
.setLocation(new java
.awt
.Point(20, 175));
459 jStarLabel8
= new StarLabel();
460 jStarLabel8
.setLocation(new java
.awt
.Point(20, 200));
461 jStarLabel10
= new StarLabel();
462 jStarLabel10
.setLocation(new java
.awt
.Point(20, 85));
463 jStarLabel12
= new StarLabel();
464 jStarLabel12
.setLocation(new java
.awt
.Point(20, 290));
466 jContentPane
.add(jStarLabel1
, null);
467 jContentPane
.add(jStarLabel4
, null);
468 jContentPane
.add(jStarLabel5
, null);
469 jContentPane
.add(jStarLabel6
, null);
470 jContentPane
.add(jStarLabel7
, null);
471 jContentPane
.add(jStarLabel8
, null);
472 jContentPane
.add(jStarLabel10
, null);
473 jContentPane
.add(jStarLabel12
, null);
474 jContentPane
.add(getJButtonCancel(), null);
475 jContentPane
.add(getJButtonNext(), null);
480 public boolean valid() {
484 if (isEmpty(this.jTextFieldBaseName
.getText())) {
485 Log
.err("Base Name couldn't be empty");
488 if (!DataValidation
.isBaseName(this.jTextFieldBaseName
.getText())) {
489 Log
.err("Incorrect data type for Base Name");
492 farHeader
.setFarName(this.jTextFieldBaseName
.getText());
497 if (isEmpty(this.jTextFieldGuid
.getText())) {
498 Log
.err("Guid Value couldn't be empty");
501 if (!DataValidation
.isGuid((this.jTextFieldGuid
).getText())) {
502 Log
.err("Incorrect data type for Guid");
505 farHeader
.setGuidValue(this.jTextFieldGuid
.getText());
510 if (isEmpty(this.jTextFieldVersion
.getText())) {
511 Log
.err("Version couldn't be empty");
514 if (!DataValidation
.isVersion(this.jTextFieldVersion
.getText())) {
515 Log
.err("Incorrect data type for Version");
518 farHeader
.setVersion(this.jTextFieldVersion
.getText());
523 if (isEmpty(this.jTextFieldAbstract
.getText())) {
524 Log
.err("Abstract couldn't be empty");
527 if (!DataValidation
.isAbstract(this.jTextFieldAbstract
.getText())) {
528 Log
.err("Incorrect data type for Abstract");
531 farHeader
.setAbstractStr(this.jTextFieldAbstract
.getText());
536 if (isEmpty(this.jTextAreaDescription
.getText())) {
537 Log
.err("Description couldn't be empty");
540 farHeader
.setDescription(this.jTextAreaDescription
.getText());
545 if (isEmpty(this.jTextFieldCopyright
.getText())) {
546 Log
.err("Copyright couldn't be empty");
549 farHeader
.setCopyright(this.jTextFieldCopyright
.getText());
554 if (isEmpty(this.jTextAreaLicense
.getText())) {
555 Log
.err("License couldn't be empty");
558 farHeader
.setLicense(this.jTextAreaLicense
.getText());
560 farHeader
.setSpecification(this.jTextFieldSpecification
.getText());
565 * Check the input data is empty or not
568 * The input data which need be checked
570 * @retval true - The input data is empty
571 * @retval fals - The input data is not empty
574 public boolean isEmpty(String strValue
) {
575 if (strValue
.length() > 0) {
581 public void mouseClicked(MouseEvent e
) {
582 if (e
.getSource() == jButtonCancel
) {
583 this.setVisible(false);
584 } else if (e
.getSource() == jButtonNext
) {
586 // Add some logic process here
591 if (stepTwo
== null) {
592 stepTwo
= new CreateStepTwo(this, true, this);
594 this.setVisible(false);
595 stepTwo
.setVisible(true);
596 } else if (e
.getSource() == jButtonGenerateGuid
) {
597 this.jTextFieldGuid
.setText(Tools
.generateUuidString());
601 public void mousePressed(MouseEvent e
) {
602 // TODO Auto-generated method stub
606 public void mouseReleased(MouseEvent e
) {
607 // TODO Auto-generated method stub
611 public void mouseEntered(MouseEvent e
) {
612 // TODO Auto-generated method stub
616 public void mouseExited(MouseEvent e
) {
617 // TODO Auto-generated method stub
621 public FarHeader
getFarHeader() {