2 Java class PackageNew is the top level GUI for create spd file.
4 Copyright (c) 2006, Intel Corporation
5 All rights reserved. This program and the accompanying materials
6 are licensed and made available under the terms and conditions of the BSD License
7 which accompanies this distribution. The full text of the license may be found at
8 http://opensource.org/licenses/bsd-license.php
10 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
11 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
13 package org
.tianocore
.packaging
;
15 import java
.awt
.Dimension
;
16 import java
.awt
.Toolkit
;
17 import java
.awt
.event
.ActionEvent
;
18 import java
.awt
.event
.ActionListener
;
19 import java
.text
.SimpleDateFormat
;
20 import java
.util
.Date
;
22 import javax
.swing
.JFrame
;
23 import javax
.swing
.JPanel
;
24 import javax
.swing
.JLabel
;
25 import javax
.swing
.JTextField
;
26 import javax
.swing
.JButton
;
27 import javax
.swing
.JTextArea
;
28 import javax
.swing
.JScrollPane
;
29 import javax
.swing
.JComboBox
;
31 import org
.tianocore
.common
.Tools
;
32 import org
.tianocore
.packaging
.common
.ui
.StarLabel
;
35 This class contains GUI components to show various GUIs for creating spd file elements
37 @since PackageEditor 1.0
39 public class PackageNew
extends JFrame
implements ActionListener
{
41 private JPanel jContentPane
= null; // @jve:decl-index=0:visual-constraint="128,4"
43 private JLabel jLabelBaseName
= null;
45 private JTextField jTextFieldBaseName
= null;
47 private JLabel jLabelGuid
= null;
49 private JTextField jTextFieldGuid
= null;
51 private JLabel jLabelVersion
= null;
53 private JTextField jTextFieldVersion
= null;
55 private JButton jButtonGenerateGuid
= null;
57 private JLabel jLabelLicense
= null;
59 private JTextArea jTextAreaLicense
= null;
61 private JLabel jLabelCopyright
= null;
63 private JTextArea jTextAreaCopyright
= null;
65 private JLabel jLabelDescription
= null;
67 private JTextArea jTextAreaDescription
= null;
69 private JButton jButtonOk
= null;
71 private JButton jButtonCancel
= null;
73 private JScrollPane jScrollPaneLicense
= null;
75 private JScrollPane jScrollPaneDescription
= null;
77 private JLabel jLabelAbstract
= null;
79 private JTextField jTextFieldAbstract
= null;
81 private JLabel jLabelModuleType
= null;
83 private JLabel jLabelCompontentType
= null;
85 private JComboBox jComboBox1
= null;
87 private JComboBox jComboBoxModuleType
= null;
89 private StarLabel jStarLabel1
= null;
91 private StarLabel jStarLabel2
= null;
93 private StarLabel jStarLabel3
= null;
95 private StarLabel jStarLabel4
= null;
97 private StarLabel jStarLabel5
= null;
99 private StarLabel jStarLabel6
= null;
101 private StarLabel jStarLabel7
= null;
103 private StarLabel jStarLabel8
= null;
105 private JLabel jLabelURL
= null;
107 private JTextField jTextFieldAbstractURL
= null;
109 private JLabel jLabel
= null;
111 private JComboBox jComboBox
= null;
113 private SpdFileContents sfc
= null;
116 This method initializes this
119 private void initialize() {
120 this.setDefaultCloseOperation(javax
.swing
.WindowConstants
.DISPOSE_ON_CLOSE
);
125 This method initializes jTextFieldBaseName
127 @return javax.swing.JTextField
129 private JTextField
getJTextFieldBaseName() {
130 if (jTextFieldBaseName
== null) {
131 jTextFieldBaseName
= new JTextField();
132 jTextFieldBaseName
.setBounds(new java
.awt
.Rectangle(160, 10, 320, 20));
134 return jTextFieldBaseName
;
138 This method initializes jTextFieldGuid
140 @return javax.swing.JTextField
142 private JTextField
getJTextFieldGuid() {
143 if (jTextFieldGuid
== null) {
144 jTextFieldGuid
= new JTextField();
145 jTextFieldGuid
.setBounds(new java
.awt
.Rectangle(160, 35, 240, 20));
147 return jTextFieldGuid
;
151 This method initializes jTextFieldVersion
153 @return javax.swing.JTextField
155 private JTextField
getJTextFieldVersion() {
156 if (jTextFieldVersion
== null) {
157 jTextFieldVersion
= new JTextField();
158 jTextFieldVersion
.setBounds(new java
.awt
.Rectangle(160, 60, 320, 20));
160 return jTextFieldVersion
;
164 This method initializes jButtonGenerateGuid
166 @return javax.swing.JButton
168 private JButton
getJButtonGenerateGuid() {
169 if (jButtonGenerateGuid
== null) {
170 jButtonGenerateGuid
= new JButton();
171 jButtonGenerateGuid
.setBounds(new java
.awt
.Rectangle(405, 35, 75, 20));
172 jButtonGenerateGuid
.setText("GEN");
173 jButtonGenerateGuid
.addActionListener(this);
175 return jButtonGenerateGuid
;
179 This method initializes jTextAreaLicense
181 @return javax.swing.JTextArea
183 private JTextArea
getJTextAreaLicense() {
184 if (jTextAreaLicense
== null) {
185 jTextAreaLicense
= new JTextArea();
186 jTextAreaLicense
.setText("");
187 jTextAreaLicense
.setLineWrap(true);
189 return jTextAreaLicense
;
193 This method initializes jTextAreaCopyright
195 @return javax.swing.JTextArea
197 private JTextArea
getJTextAreaCopyright() {
198 if (jTextAreaCopyright
== null) {
199 jTextAreaCopyright
= new JTextArea();
200 jTextAreaCopyright
.setLineWrap(true);
201 jTextAreaCopyright
.setBounds(new java
.awt
.Rectangle(160,172,319,20));
203 return jTextAreaCopyright
;
207 This method initializes jTextAreaDescription
209 @return javax.swing.JTextArea
211 private JTextArea
getJTextAreaDescription() {
212 if (jTextAreaDescription
== null) {
213 jTextAreaDescription
= new JTextArea();
214 jTextAreaDescription
.setLineWrap(true);
216 return jTextAreaDescription
;
220 This method initializes jButtonNext
222 @return javax.swing.JButton
224 private JButton
getJButtonOk() {
225 if (jButtonOk
== null) {
226 jButtonOk
= new JButton();
227 jButtonOk
.setText("OK");
228 jButtonOk
.setBounds(new java
.awt
.Rectangle(290, 481, 90, 20));
229 jButtonOk
.addActionListener(this);
235 This method initializes jButtonCancel
237 @return javax.swing.JButton
239 private JButton
getJButtonCancel() {
240 if (jButtonCancel
== null) {
241 jButtonCancel
= new JButton();
242 jButtonCancel
.setText("Cancel");
243 jButtonCancel
.setBounds(new java
.awt
.Rectangle(390, 481, 90, 20));
244 jButtonCancel
.addActionListener(this);
246 return jButtonCancel
;
250 This method initializes jScrollPane
252 @return javax.swing.JScrollPane
254 private JScrollPane
getJScrollPaneLicense() {
255 if (jScrollPaneLicense
== null) {
256 jScrollPaneLicense
= new JScrollPane();
257 jScrollPaneLicense
.setBounds(new java
.awt
.Rectangle(160, 85, 320, 80));
258 jScrollPaneLicense
.setHorizontalScrollBarPolicy(javax
.swing
.JScrollPane
.HORIZONTAL_SCROLLBAR_NEVER
);
259 jScrollPaneLicense
.setViewportView(getJTextAreaLicense());
261 return jScrollPaneLicense
;
265 This method initializes jScrollPane2
267 @return javax.swing.JScrollPane
269 private JScrollPane
getJScrollPaneDescription() {
270 if (jScrollPaneDescription
== null) {
271 jScrollPaneDescription
= new JScrollPane();
272 jScrollPaneDescription
.setBounds(new java
.awt
.Rectangle(160, 322, 320, 80));
273 jScrollPaneDescription
.setViewportView(getJTextAreaDescription());
274 jScrollPaneDescription
.setHorizontalScrollBarPolicy(javax
.swing
.JScrollPane
.HORIZONTAL_SCROLLBAR_NEVER
);
276 return jScrollPaneDescription
;
280 This method initializes jTextFieldAbstract
282 @return javax.swing.JTextField
284 private JTextField
getJTextFieldAbstract() {
285 if (jTextFieldAbstract
== null) {
286 jTextFieldAbstract
= new JTextField();
287 jTextFieldAbstract
.setBounds(new java
.awt
.Rectangle(159,218,318,70));
289 return jTextFieldAbstract
;
293 This method initializes jComboBoxCompontentType
295 @return javax.swing.JComboBox
297 private JComboBox
getJComboBox1() {
298 if (jComboBox1
== null) {
299 jComboBox1
= new JComboBox();
300 jComboBox1
.setBounds(new java
.awt
.Rectangle(160, 465, 91, 20));
306 This method initializes jComboBoxModuleType
308 @return javax.swing.JComboBox
310 private JComboBox
getJComboBoxModuleType() {
311 if (jComboBoxModuleType
== null) {
312 jComboBoxModuleType
= new JComboBox();
313 jComboBoxModuleType
.setBounds(new java
.awt
.Rectangle(160, 440, 91, 20));
315 return jComboBoxModuleType
;
319 This method initializes jTextFieldAbstractURL
321 @return javax.swing.JTextField
323 private JTextField
getJTextFieldAbstractURL() {
324 if (jTextFieldAbstractURL
== null) {
325 jTextFieldAbstractURL
= new JTextField();
326 jTextFieldAbstractURL
.setBounds(new java
.awt
.Rectangle(159, 414, 320, 20));
328 return jTextFieldAbstractURL
;
331 public PackageNew(SpdFileContents sfc
) {
335 this.setVisible(true);
341 Start the window at the center of screen
344 protected void centerWindow(int intWidth
, int intHeight
) {
345 Dimension d
= Toolkit
.getDefaultToolkit().getScreenSize();
346 this.setLocation((d
.width
- intWidth
) / 2, (d
.height
- intHeight
) / 2);
350 Start the window at the center of screen
353 protected void centerWindow() {
354 centerWindow(this.getSize().width
, this.getSize().height
);
358 This method initializes this
362 private void init() {
363 this.setSize(500, 560);
364 this.setDefaultCloseOperation(javax
.swing
.WindowConstants
.DISPOSE_ON_CLOSE
);
365 this.setContentPane(getJContentPane());
366 this.setTitle("SPD File Header");
368 //this.getRootPane().setDefaultButton(jButtonOk);
373 This method initializes jContentPane
375 @return javax.swing.JPanel
377 private JPanel
getJContentPane() {
378 if (jContentPane
== null) {
379 jLabel
= new JLabel();
380 jLabel
.setBounds(new java
.awt
.Rectangle(15, 490, 140, 21));
381 jLabel
.setText("Re-Package");
382 jLabelURL
= new JLabel();
383 jLabelURL
.setBounds(new java
.awt
.Rectangle(16, 414, 25, 20));
384 jLabelURL
.setText("URL");
385 jLabelCompontentType
= new JLabel();
386 jLabelCompontentType
.setBounds(new java
.awt
.Rectangle(15, 465, 140, 20));
387 jLabelCompontentType
.setText("Read Only");
388 jLabelModuleType
= new JLabel();
389 jLabelModuleType
.setBounds(new java
.awt
.Rectangle(15, 440, 140, 20));
390 jLabelModuleType
.setText("Package Type");
391 jLabelAbstract
= new JLabel();
392 jLabelAbstract
.setBounds(new java
.awt
.Rectangle(15,218,140,20));
393 jLabelAbstract
.setText("Abstract");
394 jLabelDescription
= new JLabel();
395 jLabelDescription
.setText("Description");
396 jLabelDescription
.setBounds(new java
.awt
.Rectangle(16, 325, 140, 20));
397 jLabelCopyright
= new JLabel();
398 jLabelCopyright
.setText("Copyright");
399 jLabelCopyright
.setBounds(new java
.awt
.Rectangle(15, 171, 140, 20));
400 jLabelLicense
= new JLabel();
401 jLabelLicense
.setText("License");
402 jLabelLicense
.setBounds(new java
.awt
.Rectangle(15, 85, 140, 20));
403 jLabelVersion
= new JLabel();
404 jLabelVersion
.setText("Version");
405 jLabelVersion
.setBounds(new java
.awt
.Rectangle(15, 60, 140, 20));
406 jLabelGuid
= new JLabel();
407 jLabelGuid
.setPreferredSize(new java
.awt
.Dimension(25, 15));
408 jLabelGuid
.setBounds(new java
.awt
.Rectangle(15, 35, 140, 20));
409 jLabelGuid
.setText("Guid");
410 jLabelBaseName
= new JLabel();
411 jLabelBaseName
.setText("Package Name");
412 jLabelBaseName
.setBounds(new java
.awt
.Rectangle(15, 10, 140, 20));
413 jContentPane
= new JPanel();
414 jContentPane
.setLayout(null);
415 jContentPane
.setLocation(new java
.awt
.Point(0, 0));
416 jContentPane
.setSize(new java
.awt
.Dimension(500, 524));
417 jContentPane
.add(jLabelBaseName
, null);
418 jContentPane
.add(getJTextFieldBaseName(), null);
419 jContentPane
.add(jLabelGuid
, null);
420 jContentPane
.add(getJTextFieldGuid(), null);
421 jContentPane
.add(jLabelVersion
, null);
422 jContentPane
.add(getJTextFieldVersion(), null);
423 jContentPane
.add(getJButtonGenerateGuid(), null);
424 jContentPane
.add(jLabelLicense
, null);
425 jContentPane
.add(jLabelCopyright
, null);
426 jContentPane
.add(jLabelDescription
, null);
427 jContentPane
.add(getJButtonOk(), null);
428 jContentPane
.add(getJButtonCancel(), null);
429 jContentPane
.add(getJScrollPaneLicense(), null);
430 jContentPane
.add(getJScrollPaneDescription(), null);
431 jContentPane
.add(jLabelAbstract
, null);
432 jContentPane
.add(getJTextFieldAbstract(), null);
433 jContentPane
.add(jLabelModuleType
, null);
434 jContentPane
.add(jLabelCompontentType
, null);
435 jContentPane
.add(getJComboBox1(), null);
436 jContentPane
.add(getJComboBoxModuleType(), null);
438 jStarLabel1
= new StarLabel();
439 jStarLabel1
.setLocation(new java
.awt
.Point(0, 10));
440 jStarLabel2
= new StarLabel();
441 jStarLabel2
.setLocation(new java
.awt
.Point(0, 35));
442 jStarLabel3
= new StarLabel();
443 jStarLabel3
.setLocation(new java
.awt
.Point(0, 60));
444 jStarLabel4
= new StarLabel();
445 jStarLabel4
.setLocation(new java
.awt
.Point(0, 85));
446 jStarLabel5
= new StarLabel();
447 jStarLabel5
.setLocation(new java
.awt
.Point(0, 171));
448 jStarLabel6
= new StarLabel();
449 jStarLabel6
.setLocation(new java
.awt
.Point(1, 325));
450 jStarLabel7
= new StarLabel();
451 jStarLabel7
.setLocation(new java
.awt
.Point(0,218));
452 jStarLabel8
= new StarLabel();
453 jStarLabel8
.setLocation(new java
.awt
.Point(0, 440));
455 jContentPane
.add(jStarLabel1
, null);
456 jContentPane
.add(jStarLabel2
, null);
457 jContentPane
.add(jStarLabel3
, null);
458 jContentPane
.add(jStarLabel4
, null);
459 jContentPane
.add(jStarLabel5
, null);
460 jContentPane
.add(jStarLabel6
, null);
461 jContentPane
.add(jStarLabel7
, null);
462 jContentPane
.add(jStarLabel8
, null);
463 jContentPane
.add(jLabelURL
, null);
464 jContentPane
.add(getJTextFieldAbstractURL(), null);
465 jContentPane
.add(jLabel
, null);
466 jContentPane
.add(getJComboBox(), null);
467 jContentPane
.add(getJTextAreaCopyright(), null);
472 public void actionPerformed(ActionEvent arg0
) {
473 if (arg0
.getSource() == jButtonOk
) {
478 if (arg0
.getSource() == jButtonCancel
) {
482 if (arg0
.getSource() == jButtonGenerateGuid
) {
483 jTextFieldGuid
.setText(Tools
.generateUuidString());
488 Save all components of Msa Header
489 if exist, set the value directly
490 if not exist, new instance first
493 private void save() {
494 SimpleDateFormat format
= new SimpleDateFormat("yyyy-MM-dd HH:mm");
495 Date date
= new Date();
496 sfc
.genSpdHeader(jTextFieldBaseName
.getText(), jTextFieldGuid
.getText(), jTextFieldVersion
.getText(),
497 jTextFieldAbstract
.getText(), jTextAreaDescription
.getText(), jTextAreaCopyright
.getText(),
498 jTextAreaLicense
.getText(), format
.format(date
), format
.format(date
),
499 jTextFieldAbstractURL
.getText(), jComboBoxModuleType
.getSelectedItem().toString(),
500 jComboBox1
.getSelectedItem().toString(), jComboBox
.getSelectedItem().toString(), null, null);
504 This method initializes module type and compontent type
507 private void initFrame() {
508 jComboBoxModuleType
.addItem("SOURCE");
509 jComboBoxModuleType
.addItem("BINARY");
510 jComboBoxModuleType
.addItem("MIXED");
512 jComboBox1
.addItem("true");
513 jComboBox1
.addItem("false");
515 jComboBox
.addItem("false");
516 jComboBox
.addItem("true");
521 This method initializes jComboBox
523 @return javax.swing.JComboBox
525 private JComboBox
getJComboBox() {
526 if (jComboBox
== null) {
527 jComboBox
= new JComboBox();
528 jComboBox
.setBounds(new java
.awt
.Rectangle(160, 490, 90, 20));
533 } // @jve:decl-index=0:visual-constraint="38,-22"