]> git.proxmox.com Git - mirror_edk2.git/blob - Tools/Source/PackageEditor/src/org/tianocore/packaging/PackageNew.java
Initial import.
[mirror_edk2.git] / Tools / Source / PackageEditor / src / org / tianocore / packaging / PackageNew.java
1 /** @file
2 Java class PackageNew is the top level GUI for create spd file.
3
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
9
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.
12 **/
13 package org.tianocore.packaging;
14
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;
21
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;
30
31 import org.tianocore.common.Tools;
32 import org.tianocore.packaging.common.ui.StarLabel;
33
34 /**
35 This class contains GUI components to show various GUIs for creating spd file elements
36
37 @since PackageEditor 1.0
38 **/
39 public class PackageNew extends JFrame implements ActionListener {
40
41 private JPanel jContentPane = null; // @jve:decl-index=0:visual-constraint="128,4"
42
43 private JLabel jLabelBaseName = null;
44
45 private JTextField jTextFieldBaseName = null;
46
47 private JLabel jLabelGuid = null;
48
49 private JTextField jTextFieldGuid = null;
50
51 private JLabel jLabelVersion = null;
52
53 private JTextField jTextFieldVersion = null;
54
55 private JButton jButtonGenerateGuid = null;
56
57 private JLabel jLabelLicense = null;
58
59 private JTextArea jTextAreaLicense = null;
60
61 private JLabel jLabelCopyright = null;
62
63 private JTextArea jTextAreaCopyright = null;
64
65 private JLabel jLabelDescription = null;
66
67 private JTextArea jTextAreaDescription = null;
68
69 private JButton jButtonOk = null;
70
71 private JButton jButtonCancel = null;
72
73 private JScrollPane jScrollPaneLicense = null;
74
75 private JScrollPane jScrollPaneDescription = null;
76
77 private JLabel jLabelAbstract = null;
78
79 private JTextField jTextFieldAbstract = null;
80
81 private JLabel jLabelModuleType = null;
82
83 private JLabel jLabelCompontentType = null;
84
85 private JComboBox jComboBox1 = null;
86
87 private JComboBox jComboBoxModuleType = null;
88
89 private StarLabel jStarLabel1 = null;
90
91 private StarLabel jStarLabel2 = null;
92
93 private StarLabel jStarLabel3 = null;
94
95 private StarLabel jStarLabel4 = null;
96
97 private StarLabel jStarLabel5 = null;
98
99 private StarLabel jStarLabel6 = null;
100
101 private StarLabel jStarLabel7 = null;
102
103 private StarLabel jStarLabel8 = null;
104
105 private JLabel jLabelURL = null;
106
107 private JTextField jTextFieldAbstractURL = null;
108
109 private JLabel jLabel = null;
110
111 private JComboBox jComboBox = null;
112
113 private SpdFileContents sfc = null;
114
115 /**
116 This method initializes this
117
118 **/
119 private void initialize() {
120 this.setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
121
122 }
123
124 /**
125 This method initializes jTextFieldBaseName
126
127 @return javax.swing.JTextField
128 **/
129 private JTextField getJTextFieldBaseName() {
130 if (jTextFieldBaseName == null) {
131 jTextFieldBaseName = new JTextField();
132 jTextFieldBaseName.setBounds(new java.awt.Rectangle(160, 10, 320, 20));
133 }
134 return jTextFieldBaseName;
135 }
136
137 /**
138 This method initializes jTextFieldGuid
139
140 @return javax.swing.JTextField
141 **/
142 private JTextField getJTextFieldGuid() {
143 if (jTextFieldGuid == null) {
144 jTextFieldGuid = new JTextField();
145 jTextFieldGuid.setBounds(new java.awt.Rectangle(160, 35, 240, 20));
146 }
147 return jTextFieldGuid;
148 }
149
150 /**
151 This method initializes jTextFieldVersion
152
153 @return javax.swing.JTextField
154 **/
155 private JTextField getJTextFieldVersion() {
156 if (jTextFieldVersion == null) {
157 jTextFieldVersion = new JTextField();
158 jTextFieldVersion.setBounds(new java.awt.Rectangle(160, 60, 320, 20));
159 }
160 return jTextFieldVersion;
161 }
162
163 /**
164 This method initializes jButtonGenerateGuid
165
166 @return javax.swing.JButton
167 **/
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);
174 }
175 return jButtonGenerateGuid;
176 }
177
178 /**
179 This method initializes jTextAreaLicense
180
181 @return javax.swing.JTextArea
182 **/
183 private JTextArea getJTextAreaLicense() {
184 if (jTextAreaLicense == null) {
185 jTextAreaLicense = new JTextArea();
186 jTextAreaLicense.setText("");
187 jTextAreaLicense.setLineWrap(true);
188 }
189 return jTextAreaLicense;
190 }
191
192 /**
193 This method initializes jTextAreaCopyright
194
195 @return javax.swing.JTextArea
196 **/
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));
202 }
203 return jTextAreaCopyright;
204 }
205
206 /**
207 This method initializes jTextAreaDescription
208
209 @return javax.swing.JTextArea
210 **/
211 private JTextArea getJTextAreaDescription() {
212 if (jTextAreaDescription == null) {
213 jTextAreaDescription = new JTextArea();
214 jTextAreaDescription.setLineWrap(true);
215 }
216 return jTextAreaDescription;
217 }
218
219 /**
220 This method initializes jButtonNext
221
222 @return javax.swing.JButton
223 **/
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);
230 }
231 return jButtonOk;
232 }
233
234 /**
235 This method initializes jButtonCancel
236
237 @return javax.swing.JButton
238 **/
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);
245 }
246 return jButtonCancel;
247 }
248
249 /**
250 This method initializes jScrollPane
251
252 @return javax.swing.JScrollPane
253 **/
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());
260 }
261 return jScrollPaneLicense;
262 }
263
264 /**
265 This method initializes jScrollPane2
266
267 @return javax.swing.JScrollPane
268 **/
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);
275 }
276 return jScrollPaneDescription;
277 }
278
279 /**
280 This method initializes jTextFieldAbstract
281
282 @return javax.swing.JTextField
283 **/
284 private JTextField getJTextFieldAbstract() {
285 if (jTextFieldAbstract == null) {
286 jTextFieldAbstract = new JTextField();
287 jTextFieldAbstract.setBounds(new java.awt.Rectangle(159,218,318,70));
288 }
289 return jTextFieldAbstract;
290 }
291
292 /**
293 This method initializes jComboBoxCompontentType
294
295 @return javax.swing.JComboBox
296 **/
297 private JComboBox getJComboBox1() {
298 if (jComboBox1 == null) {
299 jComboBox1 = new JComboBox();
300 jComboBox1.setBounds(new java.awt.Rectangle(160, 465, 91, 20));
301 }
302 return jComboBox1;
303 }
304
305 /**
306 This method initializes jComboBoxModuleType
307
308 @return javax.swing.JComboBox
309 **/
310 private JComboBox getJComboBoxModuleType() {
311 if (jComboBoxModuleType == null) {
312 jComboBoxModuleType = new JComboBox();
313 jComboBoxModuleType.setBounds(new java.awt.Rectangle(160, 440, 91, 20));
314 }
315 return jComboBoxModuleType;
316 }
317
318 /**
319 This method initializes jTextFieldAbstractURL
320
321 @return javax.swing.JTextField
322 **/
323 private JTextField getJTextFieldAbstractURL() {
324 if (jTextFieldAbstractURL == null) {
325 jTextFieldAbstractURL = new JTextField();
326 jTextFieldAbstractURL.setBounds(new java.awt.Rectangle(159, 414, 320, 20));
327 }
328 return jTextFieldAbstractURL;
329 }
330
331 public PackageNew(SpdFileContents sfc) {
332 super();
333 initialize();
334 init();
335 this.setVisible(true);
336 this.sfc = sfc;
337
338 }
339
340 /**
341 Start the window at the center of screen
342
343 **/
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);
347 }
348
349 /**
350 Start the window at the center of screen
351
352 **/
353 protected void centerWindow() {
354 centerWindow(this.getSize().width, this.getSize().height);
355 }
356
357 /**
358 This method initializes this
359
360 @return void
361 **/
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");
367 this.centerWindow();
368 //this.getRootPane().setDefaultButton(jButtonOk);
369 initFrame();
370 }
371
372 /**
373 This method initializes jContentPane
374
375 @return javax.swing.JPanel
376 **/
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);
437
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));
454
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);
468 }
469 return jContentPane;
470 }
471
472 public void actionPerformed(ActionEvent arg0) {
473 if (arg0.getSource() == jButtonOk) {
474 this.save();
475 this.dispose();
476 }
477
478 if (arg0.getSource() == jButtonCancel) {
479 this.dispose();
480 }
481
482 if (arg0.getSource() == jButtonGenerateGuid) {
483 jTextFieldGuid.setText(Tools.generateUuidString());
484 }
485 }
486
487 /**
488 Save all components of Msa Header
489 if exist, set the value directly
490 if not exist, new instance first
491
492 **/
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);
501 }
502
503 /**
504 This method initializes module type and compontent type
505
506 **/
507 private void initFrame() {
508 jComboBoxModuleType.addItem("SOURCE");
509 jComboBoxModuleType.addItem("BINARY");
510 jComboBoxModuleType.addItem("MIXED");
511
512 jComboBox1.addItem("true");
513 jComboBox1.addItem("false");
514
515 jComboBox.addItem("false");
516 jComboBox.addItem("true");
517
518 }
519
520 /**
521 This method initializes jComboBox
522
523 @return javax.swing.JComboBox
524 **/
525 private JComboBox getJComboBox() {
526 if (jComboBox == null) {
527 jComboBox = new JComboBox();
528 jComboBox.setBounds(new java.awt.Rectangle(160, 490, 90, 20));
529 }
530 return jComboBox;
531 }
532
533 } // @jve:decl-index=0:visual-constraint="38,-22"