]> git.proxmox.com Git - mirror_edk2.git/blame - Tools/Source/PackageEditor/src/org/tianocore/packaging/PackageNew.java
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@671 6f19259b...
[mirror_edk2.git] / Tools / Source / PackageEditor / src / org / tianocore / packaging / PackageNew.java
CommitLineData
878ddf1f 1/** @file\r
2 Java class PackageNew is the top level GUI for create spd file.\r
3 \r
4Copyright (c) 2006, Intel Corporation\r
5All rights reserved. This program and the accompanying materials\r
6are licensed and made available under the terms and conditions of the BSD License\r
7which accompanies this distribution. The full text of the license may be found at\r
8http://opensource.org/licenses/bsd-license.php\r
9\r
10THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
11WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
12**/\r
13package org.tianocore.packaging;\r
14\r
15import java.awt.Dimension;\r
16import java.awt.Toolkit;\r
17import java.awt.event.ActionEvent;\r
18import java.awt.event.ActionListener;\r
19import java.text.SimpleDateFormat;\r
20import java.util.Date;\r
21\r
22import javax.swing.JFrame;\r
23import javax.swing.JPanel;\r
24import javax.swing.JLabel;\r
25import javax.swing.JTextField;\r
26import javax.swing.JButton;\r
27import javax.swing.JTextArea;\r
28import javax.swing.JScrollPane;\r
29import javax.swing.JComboBox;\r
30\r
31import org.tianocore.common.Tools;\r
32import org.tianocore.packaging.common.ui.StarLabel;\r
33\r
34/**\r
35 This class contains GUI components to show various GUIs for creating spd file elements\r
36 \r
37 @since PackageEditor 1.0\r
38**/\r
39public class PackageNew extends JFrame implements ActionListener {\r
40\r
41 private JPanel jContentPane = null; // @jve:decl-index=0:visual-constraint="128,4"\r
42\r
43 private JLabel jLabelBaseName = null;\r
44\r
45 private JTextField jTextFieldBaseName = null;\r
46\r
47 private JLabel jLabelGuid = null;\r
48\r
49 private JTextField jTextFieldGuid = null;\r
50\r
51 private JLabel jLabelVersion = null;\r
52\r
53 private JTextField jTextFieldVersion = null;\r
54\r
55 private JButton jButtonGenerateGuid = null;\r
56\r
57 private JLabel jLabelLicense = null;\r
58\r
59 private JTextArea jTextAreaLicense = null;\r
60\r
61 private JLabel jLabelCopyright = null;\r
62\r
63 private JTextArea jTextAreaCopyright = null;\r
64\r
65 private JLabel jLabelDescription = null;\r
66\r
67 private JTextArea jTextAreaDescription = null;\r
68\r
69 private JButton jButtonOk = null;\r
70\r
71 private JButton jButtonCancel = null;\r
72\r
73 private JScrollPane jScrollPaneLicense = null;\r
74\r
75 private JScrollPane jScrollPaneDescription = null;\r
76\r
77 private JLabel jLabelAbstract = null;\r
78\r
79 private JTextField jTextFieldAbstract = null;\r
80\r
81 private JLabel jLabelModuleType = null;\r
82\r
83 private JLabel jLabelCompontentType = null;\r
84\r
85 private JComboBox jComboBox1 = null;\r
86\r
87 private JComboBox jComboBoxModuleType = null;\r
88\r
89 private StarLabel jStarLabel1 = null;\r
90\r
91 private StarLabel jStarLabel2 = null;\r
92\r
93 private StarLabel jStarLabel3 = null;\r
94\r
95 private StarLabel jStarLabel4 = null;\r
96\r
97 private StarLabel jStarLabel5 = null;\r
98\r
99 private StarLabel jStarLabel6 = null;\r
100\r
101 private StarLabel jStarLabel7 = null;\r
102\r
103 private StarLabel jStarLabel8 = null;\r
104\r
105 private JLabel jLabelURL = null;\r
106\r
107 private JTextField jTextFieldAbstractURL = null;\r
108\r
109 private JLabel jLabel = null;\r
110\r
111 private JComboBox jComboBox = null;\r
112\r
113 private SpdFileContents sfc = null;\r
114\r
115 /**\r
116 This method initializes this\r
117 \r
118 **/\r
119 private void initialize() {\r
120 this.setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);\r
121\r
122 }\r
123\r
124 /**\r
125 This method initializes jTextFieldBaseName \r
126 \r
127 @return javax.swing.JTextField \r
128 **/\r
129 private JTextField getJTextFieldBaseName() {\r
130 if (jTextFieldBaseName == null) {\r
131 jTextFieldBaseName = new JTextField();\r
132 jTextFieldBaseName.setBounds(new java.awt.Rectangle(160, 10, 320, 20));\r
133 }\r
134 return jTextFieldBaseName;\r
135 }\r
136\r
137 /**\r
138 This method initializes jTextFieldGuid \r
139 \r
140 @return javax.swing.JTextField \r
141 **/\r
142 private JTextField getJTextFieldGuid() {\r
143 if (jTextFieldGuid == null) {\r
144 jTextFieldGuid = new JTextField();\r
145 jTextFieldGuid.setBounds(new java.awt.Rectangle(160, 35, 240, 20));\r
146 }\r
147 return jTextFieldGuid;\r
148 }\r
149\r
150 /**\r
151 This method initializes jTextFieldVersion \r
152 \r
153 @return javax.swing.JTextField \r
154 **/\r
155 private JTextField getJTextFieldVersion() {\r
156 if (jTextFieldVersion == null) {\r
157 jTextFieldVersion = new JTextField();\r
158 jTextFieldVersion.setBounds(new java.awt.Rectangle(160, 60, 320, 20));\r
159 }\r
160 return jTextFieldVersion;\r
161 }\r
162\r
163 /**\r
164 This method initializes jButtonGenerateGuid \r
165 \r
166 @return javax.swing.JButton \r
167 **/\r
168 private JButton getJButtonGenerateGuid() {\r
169 if (jButtonGenerateGuid == null) {\r
170 jButtonGenerateGuid = new JButton();\r
171 jButtonGenerateGuid.setBounds(new java.awt.Rectangle(405, 35, 75, 20));\r
172 jButtonGenerateGuid.setText("GEN");\r
173 jButtonGenerateGuid.addActionListener(this);\r
174 }\r
175 return jButtonGenerateGuid;\r
176 }\r
177\r
178 /**\r
179 This method initializes jTextAreaLicense \r
180 \r
181 @return javax.swing.JTextArea \r
182 **/\r
183 private JTextArea getJTextAreaLicense() {\r
184 if (jTextAreaLicense == null) {\r
185 jTextAreaLicense = new JTextArea();\r
186 jTextAreaLicense.setText("");\r
187 jTextAreaLicense.setLineWrap(true);\r
188 }\r
189 return jTextAreaLicense;\r
190 }\r
191\r
192 /**\r
193 This method initializes jTextAreaCopyright \r
194 \r
195 @return javax.swing.JTextArea \r
196 **/\r
197 private JTextArea getJTextAreaCopyright() {\r
198 if (jTextAreaCopyright == null) {\r
199 jTextAreaCopyright = new JTextArea();\r
200 jTextAreaCopyright.setLineWrap(true);\r
201 jTextAreaCopyright.setBounds(new java.awt.Rectangle(160,172,319,20));\r
202 }\r
203 return jTextAreaCopyright;\r
204 }\r
205\r
206 /**\r
207 This method initializes jTextAreaDescription \r
208 \r
209 @return javax.swing.JTextArea \r
210 **/\r
211 private JTextArea getJTextAreaDescription() {\r
212 if (jTextAreaDescription == null) {\r
213 jTextAreaDescription = new JTextArea();\r
214 jTextAreaDescription.setLineWrap(true);\r
215 }\r
216 return jTextAreaDescription;\r
217 }\r
218\r
219 /**\r
220 This method initializes jButtonNext \r
221 \r
222 @return javax.swing.JButton \r
223 **/\r
224 private JButton getJButtonOk() {\r
225 if (jButtonOk == null) {\r
226 jButtonOk = new JButton();\r
227 jButtonOk.setText("OK");\r
228 jButtonOk.setBounds(new java.awt.Rectangle(290, 481, 90, 20));\r
229 jButtonOk.addActionListener(this);\r
230 }\r
231 return jButtonOk;\r
232 }\r
233\r
234 /**\r
235 This method initializes jButtonCancel \r
236 \r
237 @return javax.swing.JButton \r
238 **/\r
239 private JButton getJButtonCancel() {\r
240 if (jButtonCancel == null) {\r
241 jButtonCancel = new JButton();\r
242 jButtonCancel.setText("Cancel");\r
243 jButtonCancel.setBounds(new java.awt.Rectangle(390, 481, 90, 20));\r
244 jButtonCancel.addActionListener(this);\r
245 }\r
246 return jButtonCancel;\r
247 }\r
248\r
249 /**\r
250 This method initializes jScrollPane \r
251 \r
252 @return javax.swing.JScrollPane \r
253 **/\r
254 private JScrollPane getJScrollPaneLicense() {\r
255 if (jScrollPaneLicense == null) {\r
256 jScrollPaneLicense = new JScrollPane();\r
257 jScrollPaneLicense.setBounds(new java.awt.Rectangle(160, 85, 320, 80));\r
258 jScrollPaneLicense.setHorizontalScrollBarPolicy(javax.swing.JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);\r
259 jScrollPaneLicense.setViewportView(getJTextAreaLicense());\r
260 }\r
261 return jScrollPaneLicense;\r
262 }\r
263\r
264 /**\r
265 This method initializes jScrollPane2 \r
266 \r
267 @return javax.swing.JScrollPane \r
268 **/\r
269 private JScrollPane getJScrollPaneDescription() {\r
270 if (jScrollPaneDescription == null) {\r
271 jScrollPaneDescription = new JScrollPane();\r
272 jScrollPaneDescription.setBounds(new java.awt.Rectangle(160, 322, 320, 80));\r
273 jScrollPaneDescription.setViewportView(getJTextAreaDescription());\r
274 jScrollPaneDescription.setHorizontalScrollBarPolicy(javax.swing.JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);\r
275 }\r
276 return jScrollPaneDescription;\r
277 }\r
278\r
279 /**\r
280 This method initializes jTextFieldAbstract \r
281 \r
282 @return javax.swing.JTextField \r
283 **/\r
284 private JTextField getJTextFieldAbstract() {\r
285 if (jTextFieldAbstract == null) {\r
286 jTextFieldAbstract = new JTextField();\r
287 jTextFieldAbstract.setBounds(new java.awt.Rectangle(159,218,318,70));\r
288 }\r
289 return jTextFieldAbstract;\r
290 }\r
291\r
292 /**\r
293 This method initializes jComboBoxCompontentType \r
294 \r
295 @return javax.swing.JComboBox \r
296 **/\r
297 private JComboBox getJComboBox1() {\r
298 if (jComboBox1 == null) {\r
299 jComboBox1 = new JComboBox();\r
300 jComboBox1.setBounds(new java.awt.Rectangle(160, 465, 91, 20));\r
301 }\r
302 return jComboBox1;\r
303 }\r
304\r
305 /**\r
306 This method initializes jComboBoxModuleType \r
307 \r
308 @return javax.swing.JComboBox \r
309 **/\r
310 private JComboBox getJComboBoxModuleType() {\r
311 if (jComboBoxModuleType == null) {\r
312 jComboBoxModuleType = new JComboBox();\r
313 jComboBoxModuleType.setBounds(new java.awt.Rectangle(160, 440, 91, 20));\r
314 }\r
315 return jComboBoxModuleType;\r
316 }\r
317\r
318 /**\r
319 This method initializes jTextFieldAbstractURL \r
320 \r
321 @return javax.swing.JTextField \r
322 **/\r
323 private JTextField getJTextFieldAbstractURL() {\r
324 if (jTextFieldAbstractURL == null) {\r
325 jTextFieldAbstractURL = new JTextField();\r
326 jTextFieldAbstractURL.setBounds(new java.awt.Rectangle(159, 414, 320, 20));\r
327 }\r
328 return jTextFieldAbstractURL;\r
329 }\r
330\r
331 public PackageNew(SpdFileContents sfc) {\r
332 super();\r
333 initialize();\r
334 init();\r
335 this.setVisible(true);\r
336 this.sfc = sfc;\r
337\r
338 }\r
339\r
340 /**\r
341 Start the window at the center of screen\r
342 \r
343 **/\r
344 protected void centerWindow(int intWidth, int intHeight) {\r
345 Dimension d = Toolkit.getDefaultToolkit().getScreenSize();\r
346 this.setLocation((d.width - intWidth) / 2, (d.height - intHeight) / 2);\r
347 }\r
348\r
349 /**\r
350 Start the window at the center of screen\r
351 \r
352 **/\r
353 protected void centerWindow() {\r
354 centerWindow(this.getSize().width, this.getSize().height);\r
355 }\r
356\r
357 /**\r
358 This method initializes this\r
359 \r
360 @return void\r
361 **/\r
362 private void init() {\r
363 this.setSize(500, 560);\r
364 this.setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);\r
365 this.setContentPane(getJContentPane());\r
366 this.setTitle("SPD File Header");\r
367 this.centerWindow();\r
368 //this.getRootPane().setDefaultButton(jButtonOk);\r
369 initFrame();\r
370 }\r
371\r
372 /**\r
373 This method initializes jContentPane\r
374 \r
375 @return javax.swing.JPanel\r
376 **/\r
377 private JPanel getJContentPane() {\r
378 if (jContentPane == null) {\r
379 jLabel = new JLabel();\r
380 jLabel.setBounds(new java.awt.Rectangle(15, 490, 140, 21));\r
381 jLabel.setText("Re-Package");\r
382 jLabelURL = new JLabel();\r
383 jLabelURL.setBounds(new java.awt.Rectangle(16, 414, 25, 20));\r
384 jLabelURL.setText("URL");\r
385 jLabelCompontentType = new JLabel();\r
386 jLabelCompontentType.setBounds(new java.awt.Rectangle(15, 465, 140, 20));\r
387 jLabelCompontentType.setText("Read Only");\r
388 jLabelModuleType = new JLabel();\r
389 jLabelModuleType.setBounds(new java.awt.Rectangle(15, 440, 140, 20));\r
390 jLabelModuleType.setText("Package Type");\r
391 jLabelAbstract = new JLabel();\r
392 jLabelAbstract.setBounds(new java.awt.Rectangle(15,218,140,20));\r
393 jLabelAbstract.setText("Abstract");\r
394 jLabelDescription = new JLabel();\r
395 jLabelDescription.setText("Description");\r
396 jLabelDescription.setBounds(new java.awt.Rectangle(16, 325, 140, 20));\r
397 jLabelCopyright = new JLabel();\r
398 jLabelCopyright.setText("Copyright");\r
399 jLabelCopyright.setBounds(new java.awt.Rectangle(15, 171, 140, 20));\r
400 jLabelLicense = new JLabel();\r
401 jLabelLicense.setText("License");\r
402 jLabelLicense.setBounds(new java.awt.Rectangle(15, 85, 140, 20));\r
403 jLabelVersion = new JLabel();\r
404 jLabelVersion.setText("Version");\r
405 jLabelVersion.setBounds(new java.awt.Rectangle(15, 60, 140, 20));\r
406 jLabelGuid = new JLabel();\r
407 jLabelGuid.setPreferredSize(new java.awt.Dimension(25, 15));\r
408 jLabelGuid.setBounds(new java.awt.Rectangle(15, 35, 140, 20));\r
409 jLabelGuid.setText("Guid");\r
410 jLabelBaseName = new JLabel();\r
411 jLabelBaseName.setText("Package Name");\r
412 jLabelBaseName.setBounds(new java.awt.Rectangle(15, 10, 140, 20));\r
413 jContentPane = new JPanel();\r
414 jContentPane.setLayout(null);\r
415 jContentPane.setLocation(new java.awt.Point(0, 0));\r
416 jContentPane.setSize(new java.awt.Dimension(500, 524));\r
417 jContentPane.add(jLabelBaseName, null);\r
418 jContentPane.add(getJTextFieldBaseName(), null);\r
419 jContentPane.add(jLabelGuid, null);\r
420 jContentPane.add(getJTextFieldGuid(), null);\r
421 jContentPane.add(jLabelVersion, null);\r
422 jContentPane.add(getJTextFieldVersion(), null);\r
423 jContentPane.add(getJButtonGenerateGuid(), null);\r
424 jContentPane.add(jLabelLicense, null);\r
425 jContentPane.add(jLabelCopyright, null);\r
426 jContentPane.add(jLabelDescription, null);\r
427 jContentPane.add(getJButtonOk(), null);\r
428 jContentPane.add(getJButtonCancel(), null);\r
429 jContentPane.add(getJScrollPaneLicense(), null);\r
430 jContentPane.add(getJScrollPaneDescription(), null);\r
431 jContentPane.add(jLabelAbstract, null);\r
432 jContentPane.add(getJTextFieldAbstract(), null);\r
433 jContentPane.add(jLabelModuleType, null);\r
434 jContentPane.add(jLabelCompontentType, null);\r
435 jContentPane.add(getJComboBox1(), null);\r
436 jContentPane.add(getJComboBoxModuleType(), null);\r
437\r
438 jStarLabel1 = new StarLabel();\r
439 jStarLabel1.setLocation(new java.awt.Point(0, 10));\r
440 jStarLabel2 = new StarLabel();\r
441 jStarLabel2.setLocation(new java.awt.Point(0, 35));\r
442 jStarLabel3 = new StarLabel();\r
443 jStarLabel3.setLocation(new java.awt.Point(0, 60));\r
444 jStarLabel4 = new StarLabel();\r
445 jStarLabel4.setLocation(new java.awt.Point(0, 85));\r
446 jStarLabel5 = new StarLabel();\r
447 jStarLabel5.setLocation(new java.awt.Point(0, 171));\r
448 jStarLabel6 = new StarLabel();\r
449 jStarLabel6.setLocation(new java.awt.Point(1, 325));\r
450 jStarLabel7 = new StarLabel();\r
451 jStarLabel7.setLocation(new java.awt.Point(0,218));\r
452 jStarLabel8 = new StarLabel();\r
453 jStarLabel8.setLocation(new java.awt.Point(0, 440));\r
454\r
455 jContentPane.add(jStarLabel1, null);\r
456 jContentPane.add(jStarLabel2, null);\r
457 jContentPane.add(jStarLabel3, null);\r
458 jContentPane.add(jStarLabel4, null);\r
459 jContentPane.add(jStarLabel5, null);\r
460 jContentPane.add(jStarLabel6, null);\r
461 jContentPane.add(jStarLabel7, null);\r
462 jContentPane.add(jStarLabel8, null);\r
463 jContentPane.add(jLabelURL, null);\r
464 jContentPane.add(getJTextFieldAbstractURL(), null);\r
465 jContentPane.add(jLabel, null);\r
466 jContentPane.add(getJComboBox(), null);\r
467 jContentPane.add(getJTextAreaCopyright(), null);\r
468 }\r
469 return jContentPane;\r
470 }\r
471\r
472 public void actionPerformed(ActionEvent arg0) {\r
473 if (arg0.getSource() == jButtonOk) {\r
474 this.save();\r
475 this.dispose();\r
476 }\r
477\r
478 if (arg0.getSource() == jButtonCancel) {\r
479 this.dispose();\r
480 }\r
481\r
482 if (arg0.getSource() == jButtonGenerateGuid) {\r
483 jTextFieldGuid.setText(Tools.generateUuidString());\r
484 }\r
485 }\r
486\r
487 /**\r
488 Save all components of Msa Header\r
489 if exist, set the value directly\r
490 if not exist, new instance first\r
491 \r
492 **/\r
493 private void save() {\r
494 SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm");\r
495 Date date = new Date();\r
496 sfc.genSpdHeader(jTextFieldBaseName.getText(), jTextFieldGuid.getText(), jTextFieldVersion.getText(),\r
497 jTextFieldAbstract.getText(), jTextAreaDescription.getText(), jTextAreaCopyright.getText(),\r
498 jTextAreaLicense.getText(), format.format(date), format.format(date),\r
499 jTextFieldAbstractURL.getText(), jComboBoxModuleType.getSelectedItem().toString(),\r
500 jComboBox1.getSelectedItem().toString(), jComboBox.getSelectedItem().toString(), null, null);\r
501 }\r
502\r
503 /**\r
504 This method initializes module type and compontent type\r
505 \r
506 **/\r
507 private void initFrame() {\r
508 jComboBoxModuleType.addItem("SOURCE");\r
509 jComboBoxModuleType.addItem("BINARY");\r
510 jComboBoxModuleType.addItem("MIXED");\r
511\r
512 jComboBox1.addItem("true");\r
513 jComboBox1.addItem("false");\r
514\r
515 jComboBox.addItem("false");\r
516 jComboBox.addItem("true");\r
517\r
518 }\r
519\r
520 /**\r
521 This method initializes jComboBox \r
522 \r
523 @return javax.swing.JComboBox \r
524 **/\r
525 private JComboBox getJComboBox() {\r
526 if (jComboBox == null) {\r
527 jComboBox = new JComboBox();\r
528 jComboBox.setBounds(new java.awt.Rectangle(160, 490, 90, 20));\r
529 }\r
530 return jComboBox;\r
531 }\r
532\r
533} // @jve:decl-index=0:visual-constraint="38,-22"\r