]> git.proxmox.com Git - mirror_edk2.git/blame - Tools/Source/ModuleEditor/src/org/tianocore/packaging/module/ui/MbdLibHeader.java
Initial import.
[mirror_edk2.git] / Tools / Source / ModuleEditor / src / org / tianocore / packaging / module / ui / MbdLibHeader.java
CommitLineData
878ddf1f 1/** @file\r
2 \r
3 The file is used to create, update MbdLibHeader 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
15package org.tianocore.packaging.module.ui;\r
16\r
17import java.awt.event.ActionEvent;\r
18\r
19import javax.swing.JButton;\r
20import javax.swing.JLabel;\r
21import javax.swing.JPanel;\r
22import javax.swing.JScrollPane;\r
23import javax.swing.JTextArea;\r
24import javax.swing.JTextField;\r
25\r
26import org.tianocore.BaseNameDocument;\r
27import org.tianocore.GuidDocument;\r
28import org.tianocore.LicenseDocument;\r
29import org.tianocore.MbdLibHeaderDocument;\r
30import org.tianocore.common.DataValidation;\r
31import org.tianocore.common.Log;\r
32import org.tianocore.common.Tools;\r
33import org.tianocore.packaging.common.ui.IInternalFrame;\r
34import org.tianocore.packaging.common.ui.StarLabel;\r
35\r
36/**\r
37 The class is used to create, update MbdLibHeader of a MBD file\r
38 It extends IInternalFrame\r
39 \r
40 @since ModuleEditor 1.0\r
41\r
42 **/\r
43public class MbdLibHeader extends IInternalFrame {\r
44\r
45 ///\r
46 /// Define class Serial Version UID\r
47 ///\r
48 private static final long serialVersionUID = -4881447351274201866L;\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 MbdLibHeaderDocument.MbdLibHeader mbdLibHeader = 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 MbdLibHeader() {\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 @param inMbdLibHeader The input MbdLibHeaderDocument.MbdLibHeader\r
304 \r
305 **/\r
306 public MbdLibHeader(MbdLibHeaderDocument.MbdLibHeader inMbdLibHeader) {\r
307 super();\r
308 init(inMbdLibHeader);\r
309 this.setVisible(true);\r
310 this.setViewMode(false);\r
311 }\r
312\r
313 /**\r
314 This method initializes this\r
315 \r
316 **/\r
317 private void init() {\r
318 this.setSize(500, 515);\r
319 this.setContentPane(getJContentPane());\r
320 this.setTitle("Library Module Build Description Header");\r
321 initFrame();\r
322 }\r
323\r
324 /**\r
325 This method initializes this\r
326 Fill values to all fields if these values are not empty\r
327 \r
328 @param inMbdLibHeader The input MbdLibHeaderDocument.MbdLibHeader\r
329 \r
330 **/\r
331 private void init(MbdLibHeaderDocument.MbdLibHeader inMbdLibHeader) {\r
332 init();\r
333 setMbdLibHeader(inMbdLibHeader);\r
334 if (inMbdLibHeader != null) {\r
335 if (this.mbdLibHeader.getBaseName() != null) {\r
336 this.jTextFieldBaseName.setText(this.mbdLibHeader.getBaseName().getStringValue());\r
337 }\r
338 if (this.mbdLibHeader.getGuid() != null) {\r
339 this.jTextFieldGuid.setText(this.mbdLibHeader.getGuid().getStringValue());\r
340 }\r
341 if (this.mbdLibHeader.getVersion() != null) {\r
342 this.jTextFieldVersion.setText(this.mbdLibHeader.getVersion());\r
343 }\r
344 if (this.mbdLibHeader.getLicense() != null) {\r
345 this.jTextAreaLicense.setText(this.mbdLibHeader.getLicense().getStringValue());\r
346 }\r
347 if (this.mbdLibHeader.getCopyright() != null) {\r
348 this.jTextAreaCopyright.setText(this.mbdLibHeader.getCopyright());\r
349 }\r
350 if (this.mbdLibHeader.getDescription() != null) {\r
351 this.jTextAreaDescription.setText(this.mbdLibHeader.getDescription());\r
352 }\r
353 }\r
354 }\r
355\r
356 /**\r
357 Disable all components when the mode is view\r
358 \r
359 @param isView true - The view mode; false - The non-view mode\r
360 \r
361 **/\r
362 public void setViewMode(boolean isView) {\r
363 this.jButtonOk.setVisible(false);\r
364 this.jButtonCancel.setVisible(false);\r
365 if (isView) {\r
366 this.jTextFieldBaseName.setEnabled(!isView);\r
367 this.jTextFieldGuid.setEnabled(!isView);\r
368 this.jTextFieldVersion.setEnabled(!isView);\r
369 this.jTextAreaLicense.setEnabled(!isView);\r
370 this.jTextAreaCopyright.setEnabled(!isView);\r
371 this.jTextAreaDescription.setEnabled(!isView);\r
372 this.jButtonCancel.setEnabled(!isView);\r
373 this.jButtonGenerateGuid.setEnabled(!isView);\r
374 this.jButtonOk.setEnabled(!isView);\r
375 }\r
376 }\r
377\r
378 /**\r
379 This method initializes jContentPane\r
380 \r
381 @return javax.swing.JPanel jContentPane\r
382 \r
383 **/\r
384 private JPanel getJContentPane() {\r
385 if (jContentPane == null) {\r
386 jLabelDescription = new JLabel();\r
387 jLabelDescription.setText("Description");\r
388 jLabelDescription.setBounds(new java.awt.Rectangle(15, 255, 140, 20));\r
389 jLabelCopyright = new JLabel();\r
390 jLabelCopyright.setText("Copyright");\r
391 jLabelCopyright.setBounds(new java.awt.Rectangle(15, 170, 140, 20));\r
392 jLabelLicense = new JLabel();\r
393 jLabelLicense.setText("License");\r
394 jLabelLicense.setBounds(new java.awt.Rectangle(15, 85, 140, 20));\r
395 jLabelVersion = new JLabel();\r
396 jLabelVersion.setText("Version");\r
397 jLabelVersion.setBounds(new java.awt.Rectangle(15, 60, 140, 20));\r
398 jLabelGuid = new JLabel();\r
399 jLabelGuid.setPreferredSize(new java.awt.Dimension(25, 15));\r
400 jLabelGuid.setBounds(new java.awt.Rectangle(15, 35, 140, 20));\r
401 jLabelGuid.setText("Guid");\r
402 jLabelBaseName = new JLabel();\r
403 jLabelBaseName.setText("Base Name");\r
404 jLabelBaseName.setBounds(new java.awt.Rectangle(15, 10, 140, 20));\r
405 jContentPane = new JPanel();\r
406 jContentPane.setLayout(null);\r
407 jContentPane.setLocation(new java.awt.Point(0, 0));\r
408 jContentPane.setSize(new java.awt.Dimension(500, 524));\r
409 jContentPane.add(jLabelBaseName, null);\r
410 jContentPane.add(getJTextFieldBaseName(), null);\r
411 jContentPane.add(jLabelGuid, null);\r
412 jContentPane.add(getJTextFieldGuid(), null);\r
413 jContentPane.add(jLabelVersion, null);\r
414 jContentPane.add(getJTextFieldVersion(), null);\r
415 jContentPane.add(getJButtonGenerateGuid(), null);\r
416 jContentPane.add(jLabelLicense, null);\r
417 jContentPane.add(jLabelCopyright, null);\r
418 jContentPane.add(jLabelDescription, null);\r
419 jContentPane.add(getJButtonOk(), null);\r
420 jContentPane.add(getJButtonCancel(), null);\r
421 jContentPane.add(getJScrollPaneLicense(), null);\r
422 jContentPane.add(getJScrollPaneCopyright(), null);\r
423 jContentPane.add(getJScrollPaneDescription(), null);\r
424\r
425 jStarLabel1 = new StarLabel();\r
426 jStarLabel1.setLocation(new java.awt.Point(0, 10));\r
427 jStarLabel2 = new StarLabel();\r
428 jStarLabel2.setLocation(new java.awt.Point(0, 35));\r
429 jStarLabel3 = new StarLabel();\r
430 jStarLabel3.setLocation(new java.awt.Point(0, 60));\r
431 jStarLabel4 = new StarLabel();\r
432 jStarLabel4.setLocation(new java.awt.Point(0, 85));\r
433 jStarLabel5 = new StarLabel();\r
434 jStarLabel5.setLocation(new java.awt.Point(0, 170));\r
435 jStarLabel6 = new StarLabel();\r
436 jStarLabel6.setLocation(new java.awt.Point(0, 255));\r
437\r
438 jContentPane.add(jStarLabel1, null);\r
439 jContentPane.add(jStarLabel2, null);\r
440 jContentPane.add(jStarLabel3, null);\r
441 jContentPane.add(jStarLabel4, null);\r
442 jContentPane.add(jStarLabel5, null);\r
443 jContentPane.add(jStarLabel6, null);\r
444 }\r
445 return jContentPane;\r
446 }\r
447\r
448 /* (non-Javadoc)\r
449 * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)\r
450 *\r
451 * Override actionPerformed to listen all actions\r
452 * \r
453 */\r
454 public void actionPerformed(ActionEvent arg0) {\r
455 if (arg0.getSource() == jButtonOk) {\r
456 this.dispose();\r
457 this.save();\r
458 this.setEdited(true);\r
459 }\r
460 if (arg0.getSource() == jButtonCancel) {\r
461 this.dispose();\r
462 this.setEdited(false);\r
463 }\r
464 if (arg0.getSource() == jButtonGenerateGuid) {\r
465 jTextFieldGuid.setText(Tools.generateUuidString());\r
466 }\r
467 }\r
468\r
469 /**\r
470 Data validation for all fields\r
471 \r
472 @retval true - All datas are valid\r
473 @retval false - At least one data is invalid\r
474 \r
475 **/\r
476 public boolean check() {\r
477 //\r
478 // Check if all required fields are not empty\r
479 //\r
480 if (isEmpty(this.jTextFieldBaseName.getText())) {\r
481 Log.err("Base Name couldn't be empty");\r
482 return false;\r
483 }\r
484 if (isEmpty(this.jTextFieldGuid.getText())) {\r
485 Log.err("Guid couldn't be empty");\r
486 return false;\r
487 }\r
488 if (isEmpty(this.jTextFieldVersion.getText())) {\r
489 Log.err("Version couldn't be empty");\r
490 return false;\r
491 }\r
492 if (isEmpty(this.jTextAreaLicense.getText())) {\r
493 Log.err("License couldn't be empty");\r
494 return false;\r
495 }\r
496 if (isEmpty(this.jTextAreaCopyright.getText())) {\r
497 Log.err("Copyright couldn't be empty");\r
498 return false;\r
499 }\r
500 if (isEmpty(this.jTextAreaDescription.getText())) {\r
501 Log.err("Description couldn't be empty");\r
502 return false;\r
503 }\r
504\r
505 //\r
506 // Check if all fields have correct data types \r
507 //\r
508 if (!DataValidation.isBaseName(this.jTextFieldBaseName.getText())) {\r
509 Log.err("Incorrect data type for Base Name");\r
510 return false;\r
511 }\r
512 if (!DataValidation.isGuid((this.jTextFieldGuid).getText())) {\r
513 Log.err("Incorrect data type for Guid");\r
514 return false;\r
515 }\r
516 if (!DataValidation.isCopyright(this.jTextAreaCopyright.getText())) {\r
517 Log.err("Incorrect data type for Copyright");\r
518 return false;\r
519 }\r
520 return true;\r
521 }\r
522\r
523 /**\r
524 Save all components of Mbd Lib Header\r
525 if exists mbdLibHeader, set the value directly\r
526 if not exists mbdLibHeader, new an instance first\r
527 \r
528 **/\r
529 public void save() {\r
530 try {\r
531 if (this.mbdLibHeader == null) {\r
532 mbdLibHeader = MbdLibHeaderDocument.MbdLibHeader.Factory.newInstance();\r
533 }\r
534 if (this.mbdLibHeader.getBaseName() != null) {\r
535 this.mbdLibHeader.getBaseName().setStringValue(this.jTextFieldBaseName.getText());\r
536 } else {\r
537 BaseNameDocument.BaseName mBaseName = BaseNameDocument.BaseName.Factory.newInstance();\r
538 mBaseName.setStringValue(this.jTextFieldBaseName.getText());\r
539 this.mbdLibHeader.setBaseName(mBaseName);\r
540 }\r
541\r
542 if (this.mbdLibHeader.getGuid() != null) {\r
543 this.mbdLibHeader.getGuid().setStringValue(this.jTextFieldGuid.getText());\r
544 } else {\r
545 GuidDocument.Guid mGuid = GuidDocument.Guid.Factory.newInstance();\r
546 mGuid.setStringValue(this.jTextFieldGuid.getText());\r
547 this.mbdLibHeader.setGuid(mGuid);\r
548 }\r
549\r
550 this.mbdLibHeader.setVersion(this.jTextFieldVersion.getText());\r
551\r
552 if (this.mbdLibHeader.getLicense() != null) {\r
553 this.mbdLibHeader.getLicense().setStringValue(this.jTextAreaLicense.getText());\r
554 } else {\r
555 LicenseDocument.License mLicense = LicenseDocument.License.Factory.newInstance();\r
556 mLicense.setStringValue(this.jTextAreaLicense.getText());\r
557 this.mbdLibHeader.setLicense(mLicense);\r
558 }\r
559\r
560 this.mbdLibHeader.setCopyright(this.jTextAreaCopyright.getText());\r
561 this.mbdLibHeader.setDescription(this.jTextAreaDescription.getText());\r
562\r
563 if (this.mbdLibHeader.getCreated() == null) {\r
564 this.mbdLibHeader.setCreated(Tools.getCurrentDateTime());\r
565 } else {\r
566 this.mbdLibHeader.setModified(Tools.getCurrentDateTime());\r
567 }\r
568 } catch (Exception e) {\r
569 Log.err("Save Module Buid Description", e.getMessage());\r
570 }\r
571 }\r
572\r
573 /**\r
574 This method initializes module type and compontent type\r
575 \r
576 **/\r
577 private void initFrame() {\r
578 }\r
579\r
580 /**\r
581 Get MbdLibHeaderDocument.MbdLibHeader\r
582 \r
583 @return MbdLibHeaderDocument.MbdLibHeader\r
584 \r
585 **/\r
586 public MbdLibHeaderDocument.MbdLibHeader getMbdLibHeader() {\r
587 return mbdLibHeader;\r
588 }\r
589\r
590 /**\r
591 Set MbdLibHeaderDocument.MbdLibHeader\r
592 \r
593 @param mbdLibHeader The input MbdLibHeaderDocument.MbdLibHeader\r
594 \r
595 **/\r
596 public void setMbdLibHeader(MbdLibHeaderDocument.MbdLibHeader mbdLibHeader) {\r
597 this.mbdLibHeader = mbdLibHeader;\r
598 }\r
599}\r