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