2 Java class UpdateNew is GUI for SpdHeader in 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
;
30 import javax
.swing
.JComboBox
;
32 import org
.tianocore
.common
.Tools
;
33 import org
.tianocore
.packaging
.common
.ui
.StarLabel
;
36 GUI for update SpdHeader contents
38 @since PackageEditor 1.0
40 public class UpdateNew
extends JFrame
implements ActionListener
{
42 private JPanel jContentPane
= null; // @jve:decl-index=0:visual-constraint="128,4"
44 private JLabel jLabelBaseName
= null;
46 private JTextField jTextFieldBaseName
= null;
48 private JLabel jLabelGuid
= null;
50 private JTextField jTextFieldGuid
= null;
52 private JLabel jLabelVersion
= null;
54 private JTextField jTextFieldVersion
= null;
56 private JButton jButtonGenerateGuid
= null;
58 private JLabel jLabelLicense
= null;
60 private JTextArea jTextAreaLicense
= null;
62 private JLabel jLabelCopyright
= null;
64 private JTextArea jTextAreaCopyright
= null;
66 private JLabel jLabelDescription
= null;
68 private JTextArea jTextAreaDescription
= null;
70 private JButton jButtonOk
= null;
72 private JButton jButtonCancel
= null;
74 private JScrollPane jScrollPaneLicense
= null;
76 private JScrollPane jScrollPaneCopyright
= null;
78 private JScrollPane jScrollPaneDescription
= null;
80 private JLabel jLabelAbstract
= null;
82 private JTextField jTextFieldAbstract
= null;
84 private JLabel jLabelModuleType
= null;
86 private JLabel jLabelCompontentType
= null;
88 private JComboBox jComboBox1
= null;
90 private JComboBox jComboBoxModuleType
= null;
92 private StarLabel jStarLabel1
= null;
94 private StarLabel jStarLabel2
= null;
96 private StarLabel jStarLabel3
= null;
98 private StarLabel jStarLabel4
= null;
100 private StarLabel jStarLabel5
= null;
102 private StarLabel jStarLabel6
= null;
104 private StarLabel jStarLabel7
= null;
106 private StarLabel jStarLabel8
= null;
108 private JLabel jLabelURL
= null;
110 private JTextField jTextFieldAbstractURL
= null;
112 private JLabel jLabel
= null;
114 private JComboBox jComboBox
= null;
116 private SpdFileContents sfc
= null;
118 private String createTime
= null;
121 This method initializes this
124 private void initialize() {
125 this.setDefaultCloseOperation(javax
.swing
.WindowConstants
.DISPOSE_ON_CLOSE
);
130 This method initializes jTextFieldBaseName
132 @return javax.swing.JTextField
134 private JTextField
getJTextFieldBaseName() {
135 if (jTextFieldBaseName
== null) {
136 jTextFieldBaseName
= new JTextField();
137 jTextFieldBaseName
.setBounds(new java
.awt
.Rectangle(160, 10, 320, 20));
139 return jTextFieldBaseName
;
143 This method initializes jTextFieldGuid
145 @return javax.swing.JTextField
147 private JTextField
getJTextFieldGuid() {
148 if (jTextFieldGuid
== null) {
149 jTextFieldGuid
= new JTextField();
150 jTextFieldGuid
.setBounds(new java
.awt
.Rectangle(160, 35, 240, 20));
152 return jTextFieldGuid
;
156 This method initializes jTextFieldVersion
158 @return javax.swing.JTextField
160 private JTextField
getJTextFieldVersion() {
161 if (jTextFieldVersion
== null) {
162 jTextFieldVersion
= new JTextField();
163 jTextFieldVersion
.setBounds(new java
.awt
.Rectangle(160, 60, 320, 20));
165 return jTextFieldVersion
;
169 This method initializes jButtonGenerateGuid
171 @return javax.swing.JButton
173 private JButton
getJButtonGenerateGuid() {
174 if (jButtonGenerateGuid
== null) {
175 jButtonGenerateGuid
= new JButton();
176 jButtonGenerateGuid
.setBounds(new java
.awt
.Rectangle(405, 35, 75, 20));
177 jButtonGenerateGuid
.setText("GEN");
178 jButtonGenerateGuid
.addActionListener(this);
180 return jButtonGenerateGuid
;
184 This method initializes jTextAreaLicense
186 @return javax.swing.JTextArea
188 private JTextArea
getJTextAreaLicense() {
189 if (jTextAreaLicense
== null) {
190 jTextAreaLicense
= new JTextArea();
191 jTextAreaLicense
.setText("");
192 jTextAreaLicense
.setLineWrap(true);
194 return jTextAreaLicense
;
198 This method initializes jTextAreaCopyright
200 @return javax.swing.JTextArea
202 private JTextArea
getJTextAreaCopyright() {
203 if (jTextAreaCopyright
== null) {
204 jTextAreaCopyright
= new JTextArea();
205 jTextAreaCopyright
.setLineWrap(true);
207 return jTextAreaCopyright
;
211 This method initializes jTextAreaDescription
213 @return javax.swing.JTextArea
215 private JTextArea
getJTextAreaDescription() {
216 if (jTextAreaDescription
== null) {
217 jTextAreaDescription
= new JTextArea();
218 jTextAreaDescription
.setLineWrap(true);
220 return jTextAreaDescription
;
224 This method initializes jButtonNext
226 @return javax.swing.JButton
228 private JButton
getJButtonOk() {
229 if (jButtonOk
== null) {
230 jButtonOk
= new JButton();
231 jButtonOk
.setText("OK");
232 jButtonOk
.setBounds(new java
.awt
.Rectangle(290, 481, 90, 20));
233 jButtonOk
.addActionListener(this);
239 This method initializes jButtonCancel
241 @return javax.swing.JButton
243 private JButton
getJButtonCancel() {
244 if (jButtonCancel
== null) {
245 jButtonCancel
= new JButton();
246 jButtonCancel
.setText("Cancel");
247 jButtonCancel
.setBounds(new java
.awt
.Rectangle(390, 481, 90, 20));
248 jButtonCancel
.addActionListener(this);
250 return jButtonCancel
;
254 This method initializes jScrollPane
256 @return javax.swing.JScrollPane
258 private JScrollPane
getJScrollPaneLicense() {
259 if (jScrollPaneLicense
== null) {
260 jScrollPaneLicense
= new JScrollPane();
261 jScrollPaneLicense
.setBounds(new java
.awt
.Rectangle(160, 85, 320, 80));
262 jScrollPaneLicense
.setHorizontalScrollBarPolicy(javax
.swing
.JScrollPane
.HORIZONTAL_SCROLLBAR_NEVER
);
263 jScrollPaneLicense
.setViewportView(getJTextAreaLicense());
265 return jScrollPaneLicense
;
269 This method initializes jScrollPane1
271 @return javax.swing.JScrollPane
273 private JScrollPane
getJScrollPaneCopyright() {
274 if (jScrollPaneCopyright
== null) {
275 jScrollPaneCopyright
= new JScrollPane();
276 jScrollPaneCopyright
.setBounds(new java
.awt
.Rectangle(160,170,320,26));
277 jScrollPaneCopyright
.setViewportView(getJTextAreaCopyright());
278 jScrollPaneCopyright
.setHorizontalScrollBarPolicy(javax
.swing
.JScrollPane
.HORIZONTAL_SCROLLBAR_NEVER
);
280 return jScrollPaneCopyright
;
284 This method initializes jScrollPane2
286 @return javax.swing.JScrollPane
288 private JScrollPane
getJScrollPaneDescription() {
289 if (jScrollPaneDescription
== null) {
290 jScrollPaneDescription
= new JScrollPane();
291 jScrollPaneDescription
.setBounds(new java
.awt
.Rectangle(160, 322, 320, 80));
292 jScrollPaneDescription
.setViewportView(getJTextAreaDescription());
293 jScrollPaneDescription
.setHorizontalScrollBarPolicy(javax
.swing
.JScrollPane
.HORIZONTAL_SCROLLBAR_NEVER
);
295 return jScrollPaneDescription
;
299 This method initializes jTextFieldAbstract
301 @return javax.swing.JTextField
303 private JTextField
getJTextFieldAbstract() {
304 if (jTextFieldAbstract
== null) {
305 jTextFieldAbstract
= new JTextField();
306 jTextFieldAbstract
.setBounds(new java
.awt
.Rectangle(161,216,318,73));
308 return jTextFieldAbstract
;
312 This method initializes jComboBoxCompontentType
314 @return javax.swing.JComboBox
316 private JComboBox
getJComboBox1() {
317 if (jComboBox1
== null) {
318 jComboBox1
= new JComboBox();
319 jComboBox1
.setBounds(new java
.awt
.Rectangle(160, 465, 91, 20));
325 This method initializes jComboBoxModuleType
327 @return javax.swing.JComboBox
329 private JComboBox
getJComboBoxModuleType() {
330 if (jComboBoxModuleType
== null) {
331 jComboBoxModuleType
= new JComboBox();
332 jComboBoxModuleType
.setBounds(new java
.awt
.Rectangle(160, 440, 91, 20));
334 return jComboBoxModuleType
;
338 This method initializes jTextFieldAbstractURL
340 @return javax.swing.JTextField
342 private JTextField
getJTextFieldAbstractURL() {
343 if (jTextFieldAbstractURL
== null) {
344 jTextFieldAbstractURL
= new JTextField();
345 jTextFieldAbstractURL
.setBounds(new java
.awt
.Rectangle(159, 414, 320, 20));
347 return jTextFieldAbstractURL
;
350 public UpdateNew(SpdFileContents sfc
) {
354 this.setVisible(true);
360 Start the window at the center of screen
363 protected void centerWindow(int intWidth
, int intHeight
) {
364 Dimension d
= Toolkit
.getDefaultToolkit().getScreenSize();
365 this.setLocation((d
.width
- intWidth
) / 2, (d
.height
- intHeight
) / 2);
369 Start the window at the center of screen
372 protected void centerWindow() {
373 centerWindow(this.getSize().width
, this.getSize().height
);
377 This method initializes this
381 private void init() {
382 this.setSize(500, 560);
383 this.setContentPane(getJContentPane());
384 this.setTitle("SPD File Header");
386 //this.getRootPane().setDefaultButton(jButtonOk);
391 This method initializes jContentPane
393 @return javax.swing.JPanel
395 private JPanel
getJContentPane() {
396 if (jContentPane
== null) {
397 jLabel
= new JLabel();
398 jLabel
.setBounds(new java
.awt
.Rectangle(15, 490, 140, 21));
399 jLabel
.setText("Re-Package");
400 jLabelURL
= new JLabel();
401 jLabelURL
.setBounds(new java
.awt
.Rectangle(16, 414, 25, 20));
402 jLabelURL
.setText("URL");
403 jLabelCompontentType
= new JLabel();
404 jLabelCompontentType
.setBounds(new java
.awt
.Rectangle(15, 465, 140, 20));
405 jLabelCompontentType
.setText("Read Only");
406 jLabelModuleType
= new JLabel();
407 jLabelModuleType
.setBounds(new java
.awt
.Rectangle(15, 440, 140, 20));
408 jLabelModuleType
.setText("Package Type");
409 jLabelAbstract
= new JLabel();
410 jLabelAbstract
.setBounds(new java
.awt
.Rectangle(17,216,140,20));
411 jLabelAbstract
.setText("Abstract");
412 jLabelDescription
= new JLabel();
413 jLabelDescription
.setText("Description");
414 jLabelDescription
.setBounds(new java
.awt
.Rectangle(16, 325, 140, 20));
415 jLabelCopyright
= new JLabel();
416 jLabelCopyright
.setText("Copyright");
417 jLabelCopyright
.setBounds(new java
.awt
.Rectangle(15, 171, 140, 20));
418 jLabelLicense
= new JLabel();
419 jLabelLicense
.setText("License");
420 jLabelLicense
.setBounds(new java
.awt
.Rectangle(15, 85, 140, 20));
421 jLabelVersion
= new JLabel();
422 jLabelVersion
.setText("Version");
423 jLabelVersion
.setBounds(new java
.awt
.Rectangle(15, 60, 140, 20));
424 jLabelGuid
= new JLabel();
425 jLabelGuid
.setPreferredSize(new java
.awt
.Dimension(25, 15));
426 jLabelGuid
.setBounds(new java
.awt
.Rectangle(15, 35, 140, 20));
427 jLabelGuid
.setText("Guid");
428 jLabelBaseName
= new JLabel();
429 jLabelBaseName
.setText("Package Name");
430 jLabelBaseName
.setBounds(new java
.awt
.Rectangle(15, 10, 140, 20));
431 jContentPane
= new JPanel();
432 jContentPane
.setLayout(null);
433 jContentPane
.setLocation(new java
.awt
.Point(0, 0));
434 jContentPane
.setSize(new java
.awt
.Dimension(500, 524));
435 jContentPane
.add(jLabelBaseName
, null);
436 jContentPane
.add(getJTextFieldBaseName(), null);
437 jContentPane
.add(jLabelGuid
, null);
438 jContentPane
.add(getJTextFieldGuid(), null);
439 jContentPane
.add(jLabelVersion
, null);
440 jContentPane
.add(getJTextFieldVersion(), null);
441 jContentPane
.add(getJButtonGenerateGuid(), null);
442 jContentPane
.add(jLabelLicense
, null);
443 jContentPane
.add(jLabelCopyright
, null);
444 jContentPane
.add(jLabelDescription
, null);
445 jContentPane
.add(getJButtonOk(), null);
446 jContentPane
.add(getJButtonCancel(), null);
447 jContentPane
.add(getJScrollPaneLicense(), null);
448 jContentPane
.add(getJScrollPaneCopyright(), null);
449 jContentPane
.add(getJScrollPaneDescription(), null);
450 jContentPane
.add(jLabelAbstract
, null);
451 jContentPane
.add(getJTextFieldAbstract(), null);
452 jContentPane
.add(jLabelModuleType
, null);
453 jContentPane
.add(jLabelCompontentType
, null);
454 jContentPane
.add(getJComboBox1(), null);
455 jContentPane
.add(getJComboBoxModuleType(), null);
457 jStarLabel1
= new StarLabel();
458 jStarLabel1
.setLocation(new java
.awt
.Point(0, 10));
459 jStarLabel2
= new StarLabel();
460 jStarLabel2
.setLocation(new java
.awt
.Point(0, 35));
461 jStarLabel3
= new StarLabel();
462 jStarLabel3
.setLocation(new java
.awt
.Point(0, 60));
463 jStarLabel4
= new StarLabel();
464 jStarLabel4
.setLocation(new java
.awt
.Point(0, 85));
465 jStarLabel5
= new StarLabel();
466 jStarLabel5
.setLocation(new java
.awt
.Point(0, 171));
467 jStarLabel6
= new StarLabel();
468 jStarLabel6
.setLocation(new java
.awt
.Point(1, 325));
469 jStarLabel7
= new StarLabel();
470 jStarLabel7
.setLocation(new java
.awt
.Point(2,216));
471 jStarLabel8
= new StarLabel();
472 jStarLabel8
.setLocation(new java
.awt
.Point(0, 440));
474 jContentPane
.add(jStarLabel1
, null);
475 jContentPane
.add(jStarLabel2
, null);
476 jContentPane
.add(jStarLabel3
, null);
477 jContentPane
.add(jStarLabel4
, null);
478 jContentPane
.add(jStarLabel5
, null);
479 jContentPane
.add(jStarLabel6
, null);
480 jContentPane
.add(jStarLabel7
, null);
481 jContentPane
.add(jStarLabel8
, null);
482 jContentPane
.add(jLabelURL
, null);
483 jContentPane
.add(getJTextFieldAbstractURL(), null);
484 jContentPane
.add(jLabel
, null);
485 jContentPane
.add(getJComboBox(), null);
490 public void actionPerformed(ActionEvent arg0
) {
491 if (arg0
.getSource() == jButtonOk
) {
496 if (arg0
.getSource() == jButtonCancel
) {
500 if (arg0
.getSource() == jButtonGenerateGuid
) {
501 jTextFieldGuid
.setText(Tools
.generateUuidString());
506 Save all components of Msa Header, update time modified.
509 private void save() {
510 // sfc.removeSpdHdr();
511 SimpleDateFormat format
= new SimpleDateFormat("yyyy-MM-dd HH:mm");
512 Date date
= new Date();
513 sfc
.genSpdHeader(jTextFieldBaseName
.getText(), jTextFieldGuid
.getText(), jTextFieldVersion
.getText(),
514 jTextFieldAbstract
.getText(), jTextAreaDescription
.getText(), jTextAreaCopyright
.getText(),
515 jTextAreaLicense
.getText(), createTime
, format
.format(date
), jTextFieldAbstractURL
.getText(),
516 jComboBoxModuleType
.getSelectedItem().toString(), jComboBox1
.getSelectedItem().toString(),
517 jComboBox
.getSelectedItem().toString(), null, null);
518 // ModalFrameUtil.showAsModal(new PackageAction(sfc), pThis);
522 This method initializes module type and compontent type
525 private void initFrame() {
526 jComboBoxModuleType
.addItem("SOURCE");
527 jComboBoxModuleType
.addItem("BINARY");
528 jComboBoxModuleType
.addItem("MIXED");
530 jComboBox1
.addItem("true");
531 jComboBox1
.addItem("false");
533 jComboBox
.addItem("false");
534 jComboBox
.addItem("true");
539 Display original SpdHeader contents during init
541 private void initShow() {
542 String
[] s
= new String
[12];
544 sfc
.getSpdHdrDetails(s
);
545 jTextFieldBaseName
.setText(s
[0]);
546 jTextFieldGuid
.setText(s
[1]);
547 jTextFieldVersion
.setText(s
[2]);
548 jTextFieldAbstract
.setText(s
[3]);
549 jTextAreaDescription
.setText(s
[4]);
550 jTextAreaCopyright
.setText(s
[5]);
551 jTextAreaLicense
.setText(s
[6]);
553 jTextFieldAbstractURL
.setText(s
[8]);
554 jComboBoxModuleType
.setSelectedItem(s
[9]);
555 jComboBox1
.setSelectedIndex(s
[10].equals("true") ?
0 : 1);
556 jComboBox
.setSelectedIndex(s
[11].equals("true") ?
0 : 1);
561 This method initializes jComboBox
563 @return javax.swing.JComboBox
565 private JComboBox
getJComboBox() {
566 if (jComboBox
== null) {
567 jComboBox
= new JComboBox();
568 jComboBox
.setBounds(new java
.awt
.Rectangle(160, 490, 90, 20));
573 } // @jve:decl-index=0:visual-constraint="38,-22"