]> git.proxmox.com Git - mirror_edk2.git/blame_incremental - Tools/Source/ModuleEditor/src/org/tianocore/packaging/module/ui/MbdHeader.java
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@671 6f19259b...
[mirror_edk2.git] / Tools / Source / ModuleEditor / src / org / tianocore / packaging / module / ui / MbdHeader.java
... / ...
CommitLineData
1/** @file\r
2 \r
3 This file is used to create, update MbdHeader of a MBD file\r
4 \r
5 Copyright (c) 2006, Intel Corporation\r
6 All rights reserved. This program and the accompanying materials\r
7 are licensed and made available under the terms and conditions of the BSD License\r
8 which accompanies this distribution. The full text of the license may be found at\r
9 http://opensource.org/licenses/bsd-license.php\r
10 \r
11 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
12 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
13 \r
14 **/\r
15\r
16package org.tianocore.packaging.module.ui;\r
17\r
18import java.awt.event.ActionEvent;\r
19\r
20import javax.swing.JButton;\r
21import javax.swing.JLabel;\r
22import javax.swing.JPanel;\r
23import javax.swing.JScrollPane;\r
24import javax.swing.JTextArea;\r
25import javax.swing.JTextField;\r
26\r
27import org.tianocore.BaseNameDocument;\r
28import org.tianocore.GuidDocument;\r
29import org.tianocore.LicenseDocument;\r
30import org.tianocore.MbdHeaderDocument;\r
31import org.tianocore.common.DataValidation;\r
32import org.tianocore.common.Log;\r
33import org.tianocore.common.Tools;\r
34import org.tianocore.packaging.common.ui.IInternalFrame;\r
35import org.tianocore.packaging.common.ui.StarLabel;\r
36\r
37/**\r
38 This class is used to create, update MbdHeader of a MBD file\r
39 It extends IInternalFrame\r
40 \r
41 @since ModuleEditor 1.0\r
42\r
43 **/\r
44public class MbdHeader extends IInternalFrame {\r
45 ///\r
46 /// Define class Serial Version UID\r
47 ///\r
48 private static final long serialVersionUID = -2015726615436197378L;\r
49\r
50 //\r
51 // Define class members\r
52 //\r
53 private JPanel jContentPane = null;\r
54\r
55 private JLabel jLabelBaseName = null;\r
56\r
57 private JTextField jTextFieldBaseName = null;\r
58\r
59 private JLabel jLabelGuid = null;\r
60\r
61 private JTextField jTextFieldGuid = null;\r
62\r
63 private JLabel jLabelVersion = null;\r
64\r
65 private JTextField jTextFieldVersion = null;\r
66\r
67 private JButton jButtonGenerateGuid = null;\r
68\r
69 private JLabel jLabelLicense = null;\r
70\r
71 private JTextArea jTextAreaLicense = null;\r
72\r
73 private JLabel jLabelCopyright = null;\r
74\r
75 private JLabel jLabelDescription = null;\r
76\r
77 private JTextArea jTextAreaDescription = null;\r
78\r
79 private JButton jButtonOk = null;\r
80\r
81 private JButton jButtonCancel = null;\r
82\r
83 private JScrollPane jScrollPaneLicense = null;\r
84\r
85 private JScrollPane jScrollPaneDescription = null;\r
86\r
87 private StarLabel jStarLabel1 = null;\r
88\r
89 private StarLabel jStarLabel2 = null;\r
90\r
91 private StarLabel jStarLabel3 = null;\r
92\r
93 private StarLabel jStarLabel4 = null;\r
94\r
95 private StarLabel jStarLabel5 = null;\r
96\r
97 private StarLabel jStarLabel6 = null;\r
98\r
99 private MbdHeaderDocument.MbdHeader mbdHeader = null;\r
100\r
101 private JTextField jTextFieldCopyright = null;\r
102\r
103 /**\r
104 This method initializes jTextFieldBaseName\r
105 \r
106 @return javax.swing.JTextField jTextFieldBaseName\r
107 \r
108 **/\r
109 private JTextField getJTextFieldBaseName() {\r
110 if (jTextFieldBaseName == null) {\r
111 jTextFieldBaseName = new JTextField();\r
112 jTextFieldBaseName.setBounds(new java.awt.Rectangle(160, 10, 320, 20));\r
113 }\r
114 return jTextFieldBaseName;\r
115 }\r
116\r
117 /**\r
118 This method initializes jTextFieldGuid \r
119 \r
120 @return javax.swing.JTextField jTextFieldGuid\r
121 \r
122 **/\r
123 private JTextField getJTextFieldGuid() {\r
124 if (jTextFieldGuid == null) {\r
125 jTextFieldGuid = new JTextField();\r
126 jTextFieldGuid.setBounds(new java.awt.Rectangle(160, 35, 250, 20));\r
127 }\r
128 return jTextFieldGuid;\r
129 }\r
130\r
131 /**\r
132 This method initializes jTextFieldVersion \r
133 \r
134 @return javax.swing.JTextField jTextFieldVersion\r
135 \r
136 **/\r
137 private JTextField getJTextFieldVersion() {\r
138 if (jTextFieldVersion == null) {\r
139 jTextFieldVersion = new JTextField();\r
140 jTextFieldVersion.setBounds(new java.awt.Rectangle(160, 60, 320, 20));\r
141 }\r
142 return jTextFieldVersion;\r
143 }\r
144\r
145 /**\r
146 This method initializes jButtonGenerateGuid \r
147 \r
148 @return javax.swing.JButton jButtonGenerateGuid\r
149 \r
150 **/\r
151 private JButton getJButtonGenerateGuid() {\r
152 if (jButtonGenerateGuid == null) {\r
153 jButtonGenerateGuid = new JButton();\r
154 jButtonGenerateGuid.setBounds(new java.awt.Rectangle(415, 35, 65, 20));\r
155 jButtonGenerateGuid.setText("GEN");\r
156 jButtonGenerateGuid.addActionListener(this);\r
157 }\r
158 return jButtonGenerateGuid;\r
159 }\r
160\r
161 /**\r
162 This method initializes jTextAreaLicense \r
163 \r
164 @return javax.swing.JTextArea jTextAreaLicense\r
165 \r
166 **/\r
167 private JTextArea getJTextAreaLicense() {\r
168 if (jTextAreaLicense == null) {\r
169 jTextAreaLicense = new JTextArea();\r
170 jTextAreaLicense.setText("");\r
171 jTextAreaLicense.setLineWrap(true);\r
172 }\r
173 return jTextAreaLicense;\r
174 }\r
175\r
176 /**\r
177 This method initializes jTextAreaDescription \r
178 \r
179 @return javax.swing.JTextArea jTextAreaDescription\r
180 \r
181 **/\r
182 private JTextArea getJTextAreaDescription() {\r
183 if (jTextAreaDescription == null) {\r
184 jTextAreaDescription = new JTextArea();\r
185 jTextAreaDescription.setLineWrap(true);\r
186 }\r
187 return jTextAreaDescription;\r
188 }\r
189\r
190 /**\r
191 This method initializes jButtonOk \r
192 \r
193 @return javax.swing.JButton jButtonOk\r
194 \r
195 **/\r
196 private JButton getJButtonOk() {\r
197 if (jButtonOk == null) {\r
198 jButtonOk = new JButton();\r
199 jButtonOk.setText("OK");\r
200 jButtonOk.setBounds(new java.awt.Rectangle(290, 345, 90, 20));\r
201 jButtonOk.addActionListener(this);\r
202 }\r
203 return jButtonOk;\r
204 }\r
205\r
206 /**\r
207 This method initializes jButtonCancel \r
208 \r
209 @return javax.swing.JButton jButtonCancel\r
210 \r
211 **/\r
212 private JButton getJButtonCancel() {\r
213 if (jButtonCancel == null) {\r
214 jButtonCancel = new JButton();\r
215 jButtonCancel.setText("Cancel");\r
216 jButtonCancel.setBounds(new java.awt.Rectangle(390, 345, 90, 20));\r
217 jButtonCancel.addActionListener(this);\r
218 }\r
219 return jButtonCancel;\r
220 }\r
221\r
222 /**\r
223 This method initializes jScrollPaneLicense \r
224 \r
225 @return javax.swing.JScrollPane jScrollPaneLicense\r
226 \r
227 **/\r
228 private JScrollPane getJScrollPaneLicense() {\r
229 if (jScrollPaneLicense == null) {\r
230 jScrollPaneLicense = new JScrollPane();\r
231 jScrollPaneLicense.setBounds(new java.awt.Rectangle(160, 85, 320, 80));\r
232 jScrollPaneLicense.setHorizontalScrollBarPolicy(javax.swing.JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);\r
233 jScrollPaneLicense.setViewportView(getJTextAreaLicense());\r
234 }\r
235 return jScrollPaneLicense;\r
236 }\r
237\r
238 /**\r
239 This method initializes jScrollPaneDescription \r
240 \r
241 @return javax.swing.JScrollPane jScrollPaneDescription\r
242 \r
243 **/\r
244 private JScrollPane getJScrollPaneDescription() {\r
245 if (jScrollPaneDescription == null) {\r
246 jScrollPaneDescription = new JScrollPane();\r
247 jScrollPaneDescription.setBounds(new java.awt.Rectangle(160, 195, 320, 80));\r
248 jScrollPaneDescription.setHorizontalScrollBarPolicy(javax.swing.JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);\r
249 jScrollPaneDescription.setViewportView(getJTextAreaDescription());\r
250 }\r
251 return jScrollPaneDescription;\r
252 }\r
253\r
254 /**\r
255 * This method initializes jTextFieldCopyright \r
256 * \r
257 * @return javax.swing.JTextField \r
258 */\r
259 private JTextField getJTextFieldCopyright() {\r
260 if (jTextFieldCopyright == null) {\r
261 jTextFieldCopyright = new JTextField();\r
262 jTextFieldCopyright.setBounds(new java.awt.Rectangle(160,170,320,20));\r
263 }\r
264 return jTextFieldCopyright;\r
265 }\r
266\r
267 public static void main(String[] args) {\r
268\r
269 }\r
270\r
271 /**\r
272 This is the default constructor\r
273 \r
274 **/\r
275 public MbdHeader() {\r
276 super();\r
277 init();\r
278 this.setVisible(true);\r
279 }\r
280\r
281 /**\r
282 This is the override edit constructor\r
283 \r
284 **/\r
285 public MbdHeader(MbdHeaderDocument.MbdHeader inMbdHeader) {\r
286 super();\r
287 init(inMbdHeader);\r
288 this.setVisible(true);\r
289 this.setViewMode(false);\r
290 }\r
291\r
292 /**\r
293 This method initializes this\r
294 \r
295 **/\r
296 private void init() {\r
297 this.setSize(500, 515);\r
298 this.setContentPane(getJContentPane());\r
299 this.setTitle("Module Build Description Header");\r
300 initFrame();\r
301 }\r
302\r
303 /**\r
304 This method initializes this\r
305 Fill values to all fields if these values are not empty\r
306 \r
307 @param inMbdHeader The input MbdHeaderDocument.MbdHeader\r
308 \r
309 **/\r
310 private void init(MbdHeaderDocument.MbdHeader inMbdHeader) {\r
311 init();\r
312 setMbdHeader(inMbdHeader);\r
313 if (inMbdHeader != null) {\r
314 if (this.mbdHeader.getBaseName() != null) {\r
315 this.jTextFieldBaseName.setText(this.mbdHeader.getBaseName().getStringValue());\r
316 }\r
317 if (this.mbdHeader.getGuid() != null) {\r
318 this.jTextFieldGuid.setText(this.mbdHeader.getGuid().getStringValue());\r
319 }\r
320 if (this.mbdHeader.getVersion() != null) {\r
321 this.jTextFieldVersion.setText(this.mbdHeader.getVersion());\r
322 }\r
323 if (this.mbdHeader.getLicense() != null) {\r
324 this.jTextAreaLicense.setText(this.mbdHeader.getLicense().getStringValue());\r
325 }\r
326 if (this.mbdHeader.getCopyright() != null) {\r
327 this.jTextFieldCopyright.setText(this.mbdHeader.getCopyright());\r
328 }\r
329 if (this.mbdHeader.getDescription() != null) {\r
330 this.jTextAreaDescription.setText(this.mbdHeader.getDescription());\r
331 }\r
332 }\r
333 }\r
334\r
335 /**\r
336 Disable all components when the mode is view\r
337 \r
338 @param isView true - The view mode; false - The non-view mode\r
339 \r
340 **/\r
341 public void setViewMode(boolean isView) {\r
342 this.jButtonOk.setVisible(false);\r
343 this.jButtonCancel.setVisible(false);\r
344 if (isView) {\r
345 this.jTextFieldBaseName.setEnabled(!isView);\r
346 this.jTextFieldGuid.setEnabled(!isView);\r
347 this.jTextFieldVersion.setEnabled(!isView);\r
348 this.jTextAreaLicense.setEnabled(!isView);\r
349 this.jTextFieldCopyright.setEnabled(!isView);\r
350 this.jTextAreaDescription.setEnabled(!isView);\r
351 this.jButtonCancel.setEnabled(!isView);\r
352 this.jButtonGenerateGuid.setEnabled(!isView);\r
353 this.jButtonOk.setEnabled(!isView);\r
354 }\r
355 }\r
356\r
357 /**\r
358 This method initializes jContentPane\r
359 \r
360 @return javax.swing.JPanel jContentPane\r
361 \r
362 **/\r
363 private JPanel getJContentPane() {\r
364 if (jContentPane == null) {\r
365 jLabelDescription = new JLabel();\r
366 jLabelDescription.setText("Description");\r
367 jLabelDescription.setBounds(new java.awt.Rectangle(15, 195, 140, 20));\r
368 jLabelCopyright = new JLabel();\r
369 jLabelCopyright.setText("Copyright");\r
370 jLabelCopyright.setBounds(new java.awt.Rectangle(15, 170, 140, 20));\r
371 jLabelLicense = new JLabel();\r
372 jLabelLicense.setText("License");\r
373 jLabelLicense.setBounds(new java.awt.Rectangle(15, 85, 140, 20));\r
374 jLabelVersion = new JLabel();\r
375 jLabelVersion.setText("Version");\r
376 jLabelVersion.setBounds(new java.awt.Rectangle(15, 60, 140, 20));\r
377 jLabelGuid = new JLabel();\r
378 jLabelGuid.setPreferredSize(new java.awt.Dimension(25, 15));\r
379 jLabelGuid.setBounds(new java.awt.Rectangle(15, 35, 140, 20));\r
380 jLabelGuid.setText("Guid");\r
381 jLabelBaseName = new JLabel();\r
382 jLabelBaseName.setText("Base Name");\r
383 jLabelBaseName.setBounds(new java.awt.Rectangle(15, 10, 140, 20));\r
384 jContentPane = new JPanel();\r
385 jContentPane.setLayout(null);\r
386 jContentPane.setLocation(new java.awt.Point(0, 0));\r
387 jContentPane.setSize(new java.awt.Dimension(500, 524));\r
388 jContentPane.add(jLabelBaseName, null);\r
389 jContentPane.add(getJTextFieldBaseName(), null);\r
390 jContentPane.add(jLabelGuid, null);\r
391 jContentPane.add(getJTextFieldGuid(), null);\r
392 jContentPane.add(jLabelVersion, null);\r
393 jContentPane.add(getJTextFieldVersion(), null);\r
394 jContentPane.add(getJButtonGenerateGuid(), null);\r
395 jContentPane.add(jLabelLicense, null);\r
396 jContentPane.add(jLabelCopyright, null);\r
397 jContentPane.add(jLabelDescription, null);\r
398 jContentPane.add(getJButtonOk(), null);\r
399 jContentPane.add(getJButtonCancel(), null);\r
400 jContentPane.add(getJScrollPaneLicense(), null);\r
401 jContentPane.add(getJScrollPaneDescription(), null);\r
402\r
403 jStarLabel1 = new StarLabel();\r
404 jStarLabel1.setLocation(new java.awt.Point(0, 10));\r
405 jStarLabel2 = new StarLabel();\r
406 jStarLabel2.setLocation(new java.awt.Point(0, 35));\r
407 jStarLabel3 = new StarLabel();\r
408 jStarLabel3.setLocation(new java.awt.Point(0, 60));\r
409 jStarLabel4 = new StarLabel();\r
410 jStarLabel4.setLocation(new java.awt.Point(0, 85));\r
411 jStarLabel5 = new StarLabel();\r
412 jStarLabel5.setLocation(new java.awt.Point(0, 170));\r
413 jStarLabel6 = new StarLabel();\r
414 jStarLabel6.setLocation(new java.awt.Point(0, 195));\r
415\r
416 jContentPane.add(jStarLabel1, null);\r
417 jContentPane.add(jStarLabel2, null);\r
418 jContentPane.add(jStarLabel3, null);\r
419 jContentPane.add(jStarLabel4, null);\r
420 jContentPane.add(jStarLabel5, null);\r
421 jContentPane.add(jStarLabel6, null);\r
422 jContentPane.add(getJTextFieldCopyright(), null);\r
423 }\r
424 return jContentPane;\r
425 }\r
426\r
427 /* (non-Javadoc)\r
428 * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)\r
429 *\r
430 * Override actionPerformed to listen all actions\r
431 * \r
432 */\r
433 public void actionPerformed(ActionEvent arg0) {\r
434 if (arg0.getSource() == jButtonOk) {\r
435 this.dispose();\r
436 this.save();\r
437 this.setEdited(true);\r
438 }\r
439 if (arg0.getSource() == jButtonCancel) {\r
440 this.dispose();\r
441 this.setEdited(false);\r
442 }\r
443 //\r
444 // Generate GUID\r
445 //\r
446 if (arg0.getSource() == jButtonGenerateGuid) {\r
447 jTextFieldGuid.setText(Tools.generateUuidString());\r
448 }\r
449 }\r
450\r
451 /**\r
452 Data validation for all fields\r
453 \r
454 @retval true - All datas are valid\r
455 @retval false - At least one data is invalid\r
456 \r
457 **/\r
458 public boolean check() {\r
459 //\r
460 // Check if all required fields are not empty\r
461 //\r
462 if (isEmpty(this.jTextFieldBaseName.getText())) {\r
463 Log.err("Base Name couldn't be empty");\r
464 return false;\r
465 }\r
466 if (isEmpty(this.jTextFieldGuid.getText())) {\r
467 Log.err("Guid couldn't be empty");\r
468 return false;\r
469 }\r
470 if (isEmpty(this.jTextFieldVersion.getText())) {\r
471 Log.err("Version couldn't be empty");\r
472 return false;\r
473 }\r
474 if (isEmpty(this.jTextAreaLicense.getText())) {\r
475 Log.err("License couldn't be empty");\r
476 return false;\r
477 }\r
478 if (isEmpty(this.jTextFieldCopyright.getText())) {\r
479 Log.err("Copyright couldn't be empty");\r
480 return false;\r
481 }\r
482 if (isEmpty(this.jTextAreaDescription.getText())) {\r
483 Log.err("Description couldn't be empty");\r
484 return false;\r
485 }\r
486\r
487 //\r
488 // Check if all fields have correct data types \r
489 //\r
490 if (!DataValidation.isBaseName(this.jTextFieldBaseName.getText())) {\r
491 Log.err("Incorrect data type for Base Name");\r
492 return false;\r
493 }\r
494 if (!DataValidation.isGuid((this.jTextFieldGuid).getText())) {\r
495 Log.err("Incorrect data type for Guid");\r
496 return false;\r
497 }\r
498 if (!DataValidation.isCopyright(this.jTextFieldCopyright.getText())) {\r
499 Log.err("Incorrect data type for Copyright");\r
500 return false;\r
501 }\r
502 return true;\r
503 }\r
504\r
505 /**\r
506 Save all components of Mbd Header\r
507 if exists mbdHeader, set the value directly\r
508 if not exists mbdHeader, new an instance first\r
509 \r
510 **/\r
511 public void save() {\r
512 try {\r
513 if (this.mbdHeader == null) {\r
514 mbdHeader = MbdHeaderDocument.MbdHeader.Factory.newInstance();\r
515 }\r
516 if (this.mbdHeader.getBaseName() != null) {\r
517 this.mbdHeader.getBaseName().setStringValue(this.jTextFieldBaseName.getText());\r
518 } else {\r
519 BaseNameDocument.BaseName mBaseName = BaseNameDocument.BaseName.Factory.newInstance();\r
520 mBaseName.setStringValue(this.jTextFieldBaseName.getText());\r
521 this.mbdHeader.setBaseName(mBaseName);\r
522 }\r
523\r
524 if (this.mbdHeader.getGuid() != null) {\r
525 this.mbdHeader.getGuid().setStringValue(this.jTextFieldGuid.getText());\r
526 } else {\r
527 GuidDocument.Guid mGuid = GuidDocument.Guid.Factory.newInstance();\r
528 mGuid.setStringValue(this.jTextFieldGuid.getText());\r
529 this.mbdHeader.setGuid(mGuid);\r
530 }\r
531\r
532 this.mbdHeader.setVersion(this.jTextFieldVersion.getText());\r
533\r
534 if (this.mbdHeader.getLicense() != null) {\r
535 this.mbdHeader.getLicense().setStringValue(this.jTextAreaLicense.getText());\r
536 } else {\r
537 LicenseDocument.License mLicense = LicenseDocument.License.Factory.newInstance();\r
538 mLicense.setStringValue(this.jTextAreaLicense.getText());\r
539 this.mbdHeader.setLicense(mLicense);\r
540 }\r
541\r
542 this.mbdHeader.setCopyright(this.jTextFieldCopyright.getText());\r
543 this.mbdHeader.setDescription(this.jTextAreaDescription.getText());\r
544\r
545 if (this.mbdHeader.getCreated() == null) {\r
546 this.mbdHeader.setCreated(Tools.getCurrentDateTime());\r
547 } else {\r
548 this.mbdHeader.setModified(Tools.getCurrentDateTime());\r
549 }\r
550\r
551 } catch (Exception e) {\r
552 Log.err("Save Module Buid Description", e.getMessage());\r
553 }\r
554 }\r
555\r
556 /**\r
557 This method initializes module type and compontent type\r
558 \r
559 **/\r
560 private void initFrame() {\r
561\r
562 }\r
563\r
564 /**\r
565 Get MbdHeaderDocument.MbdHeader\r
566 \r
567 @return MbdHeaderDocument.MbdHeader mbdHeader\r
568 \r
569 **/\r
570 public MbdHeaderDocument.MbdHeader getMbdHeader() {\r
571 return mbdHeader;\r
572 }\r
573\r
574 /**\r
575 Set MbdHeaderDocument.MbdHeader\r
576 \r
577 @param mbdHeader The input MbdHeaderDocument.MbdHeader\r
578 \r
579 **/\r
580 public void setMbdHeader(MbdHeaderDocument.MbdHeader mbdHeader) {\r
581 this.mbdHeader = mbdHeader;\r
582 }\r
583}\r