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