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