]> git.proxmox.com Git - mirror_edk2.git/blob - Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/far/createui/CreateStepOne.java
1. Extend "Copyright" field to a 2 lines text area in Create Far interface
[mirror_edk2.git] / Tools / Source / FrameworkWizard / src / org / tianocore / frameworkwizard / far / createui / CreateStepOne.java
1 /** @file
2
3 Copyright (c) 2006, Intel Corporation
4 All rights reserved. This program and the accompanying materials
5 are licensed and made available under the terms and conditions of the BSD License
6 which accompanies this distribution. The full text of the license may be found at
7 http://opensource.org/licenses/bsd-license.php
8
9 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
10 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
11
12 **/
13
14 package org.tianocore.frameworkwizard.far.createui;
15
16 import java.awt.event.MouseEvent;
17 import java.awt.event.MouseListener;
18
19 import javax.swing.JButton;
20 import javax.swing.JLabel;
21 import javax.swing.JPanel;
22 import javax.swing.JScrollPane;
23 import javax.swing.JTextArea;
24 import javax.swing.JTextField;
25
26 import org.tianocore.frameworkwizard.common.DataValidation;
27 import org.tianocore.frameworkwizard.common.Log;
28 import org.tianocore.frameworkwizard.common.Tools;
29 import org.tianocore.frameworkwizard.common.ui.IDialog;
30 import org.tianocore.frameworkwizard.common.ui.IFrame;
31 import org.tianocore.frameworkwizard.common.ui.StarLabel;
32 import org.tianocore.frameworkwizard.far.FarHeader;
33
34 public class CreateStepOne extends IDialog implements MouseListener {
35
36 // /
37 // / Define class Serial Version UID
38 // /
39 private static final long serialVersionUID = -8152099582923006900L;
40
41 //
42 // Define class members
43 //
44 private JPanel jContentPane = null;
45
46 private JLabel jLabelBaseName = null;
47
48 private JTextField jTextFieldBaseName = null;
49
50 private JLabel jLabelGuid = null;
51
52 private JTextField jTextFieldGuid = null;
53
54 private JLabel jLabelVersion = null;
55
56 private JTextField jTextFieldVersion = null;
57
58 private JButton jButtonGenerateGuid = null;
59
60 private JLabel jLabelLicense = null;
61
62 private JTextArea jTextAreaLicense = null;
63
64 private JLabel jLabelCopyright = null;
65
66 private JLabel jLabelDescription = null;
67
68 private JTextArea jTextAreaDescription = null;
69
70 private JLabel jLabelSpecification = null;
71
72 private JTextField jTextFieldSpecification = null;
73
74 private JButton jButtonOk = null;
75
76 private JScrollPane jScrollPaneLicense = null;
77
78 private JScrollPane jScrollPaneDescription = null;
79
80 private JLabel jLabelAbstract = null;
81
82 private JTextField jTextFieldAbstract = null;
83
84 private StarLabel jStarLabel1 = null;
85
86 private StarLabel jStarLabel4 = null;
87
88 private StarLabel jStarLabel5 = null;
89
90 private StarLabel jStarLabel6 = null;
91
92 private StarLabel jStarLabel7 = null;
93
94 private StarLabel jStarLabel8 = null;
95
96 private StarLabel jStarLabel10 = null;
97
98 private StarLabel jStarLabel12 = null;
99
100 private JLabel jLabelURL = null;
101
102 private JTextField jTextFieldURL = null;
103
104 private JScrollPane jScrollPane = null;
105
106 private CreateStepTwo stepTwo = null;
107
108 private JButton jButtonCancel = null;
109
110 private JButton jButtonNext = null;
111
112 private FarHeader farHeader = new FarHeader();
113
114 private JScrollPane jScrollPaneCopyright = null;
115
116 private JTextArea jTextAreaCopyright = null;
117
118 /**
119 * This method initializes jTextFieldBaseName
120 *
121 * @return javax.swing.JTextField jTextFieldBaseName
122 *
123 */
124 private JTextField getJTextFieldBaseName() {
125 if (jTextFieldBaseName == null) {
126 jTextFieldBaseName = new JTextField();
127 jTextFieldBaseName.setBounds(new java.awt.Rectangle(160, 10, 520, 20));
128 jTextFieldBaseName.setToolTipText("An brief Identifier, such as USB I/O Library, of the module");
129 }
130 return jTextFieldBaseName;
131 }
132
133 /**
134 * This method initializes jTextFieldGuid
135 *
136 * @return javax.swing.JTextField jTextFieldGuid
137 *
138 */
139 private JTextField getJTextFieldGuid() {
140 if (jTextFieldGuid == null) {
141 jTextFieldGuid = new JTextField();
142 jTextFieldGuid.setBounds(new java.awt.Rectangle(160, 35, 410, 20));
143 jTextFieldGuid.setToolTipText("Guaranteed Unique Identification Number (8-4-4-4-12)");
144 }
145 return jTextFieldGuid;
146 }
147
148 /**
149 * This method initializes jTextFieldVersion
150 *
151 * @return javax.swing.JTextField jTextFieldVersion
152 *
153 */
154 private JTextField getJTextFieldVersion() {
155 if (jTextFieldVersion == null) {
156 jTextFieldVersion = new JTextField();
157 jTextFieldVersion.setBounds(new java.awt.Rectangle(160, 60, 520, 20));
158 jTextFieldVersion.setToolTipText("A Version Number, 1.0, 1, 1.01");
159 }
160 return jTextFieldVersion;
161 }
162
163 /**
164 * This method initializes jButtonGenerateGuid
165 *
166 * @return javax.swing.JButton jButtonGenerateGuid
167 *
168 */
169 private JButton getJButtonGenerateGuid() {
170 if (jButtonGenerateGuid == null) {
171 jButtonGenerateGuid = new JButton();
172 jButtonGenerateGuid.setBounds(new java.awt.Rectangle(590, 35, 90, 20));
173 jButtonGenerateGuid.setText("Generate");
174 jButtonGenerateGuid.addMouseListener(this);
175 }
176 return jButtonGenerateGuid;
177 }
178
179 /**
180 * This method initializes jTextAreaLicense
181 *
182 * @return javax.swing.JTextArea jTextAreaLicense
183 *
184 */
185 private JTextArea getJTextAreaLicense() {
186 if (jTextAreaLicense == null) {
187 jTextAreaLicense = new JTextArea();
188 jTextAreaLicense.setText("");
189 jTextAreaLicense.setLineWrap(true);
190 jTextAreaLicense.setToolTipText("The License for this file");
191 }
192 return jTextAreaLicense;
193 }
194
195 /**
196 * This method initializes jTextAreaDescription
197 *
198 * @return javax.swing.JTextArea jTextAreaDescription
199 *
200 */
201 private JTextArea getJTextAreaDescription() {
202 if (jTextAreaDescription == null) {
203 jTextAreaDescription = new JTextArea();
204 jTextAreaDescription.setLineWrap(true);
205 jTextAreaDescription.setToolTipText("A verbose description of the module");
206 }
207 return jTextAreaDescription;
208 }
209
210 /**
211 * This method initializes jTextFieldSpecification
212 *
213 * @return javax.swing.JTextField jTextFieldSpecification
214 *
215 */
216 private JTextField getJTextFieldSpecification() {
217 if (jTextFieldSpecification == null) {
218 jTextFieldSpecification = new JTextField();
219 jTextFieldSpecification.setText("FRAMEWORK_BUILD_PACKAGING_SPECIFICATION 0x00000052");
220 jTextFieldSpecification.setBounds(new java.awt.Rectangle(160, 310, 520, 20));
221 jTextFieldSpecification.setEditable(false);
222 }
223 return jTextFieldSpecification;
224 }
225
226 /**
227 * This method initializes jScrollPaneLicense
228 *
229 * @return javax.swing.JScrollPane jScrollPaneLicense
230 *
231 */
232 private JScrollPane getJScrollPaneLicense() {
233 if (jScrollPaneLicense == null) {
234 jScrollPaneLicense = new JScrollPane();
235 jScrollPaneLicense.setHorizontalScrollBarPolicy(javax.swing.JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
236 jScrollPaneLicense.setBounds(new java.awt.Rectangle(160, 220, 520, 60));
237 jScrollPaneLicense.setViewportView(getJTextAreaLicense());
238 }
239 return jScrollPaneLicense;
240 }
241
242 /**
243 * This method initializes jScrollPaneDescription
244 *
245 * @return javax.swing.JScrollPane jScrollPaneDescription
246 *
247 */
248 private JScrollPane getJScrollPaneDescription() {
249 if (jScrollPaneDescription == null) {
250 jScrollPaneDescription = new JScrollPane();
251 jScrollPaneDescription.setHorizontalScrollBarPolicy(javax.swing.JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
252 jScrollPaneDescription.setBounds(new java.awt.Rectangle(160, 110, 520, 60));
253 jScrollPaneDescription.setViewportView(getJTextAreaDescription());
254 }
255 return jScrollPaneDescription;
256 }
257
258 /**
259 * This method initializes jTextFieldAbstract
260 *
261 * @return javax.swing.JTextField jTextFieldAbstract
262 *
263 */
264 private JTextField getJTextFieldAbstract() {
265 if (jTextFieldAbstract == null) {
266 jTextFieldAbstract = new JTextField();
267 jTextFieldAbstract.setBounds(new java.awt.Rectangle(160, 85, 520, 20));
268 jTextFieldAbstract.setToolTipText("A one sentence description of this module");
269 }
270 return jTextFieldAbstract;
271 }
272
273 /**
274 * This method initializes jTextFieldURL
275 *
276 * @return javax.swing.JTextField
277 */
278 private JTextField getJTextFieldURL() {
279 if (jTextFieldURL == null) {
280 jTextFieldURL = new JTextField();
281 jTextFieldURL.setBounds(new java.awt.Rectangle(160, 285, 520, 20));
282 jTextFieldURL.setToolTipText("A URL for the latest version of the license");
283 }
284 return jTextFieldURL;
285 }
286
287 /**
288 * This method initializes jScrollPane
289 *
290 * @return javax.swing.JScrollPane
291 */
292 private JScrollPane getJScrollPane() {
293 if (jScrollPane == null) {
294 jScrollPane = new JScrollPane();
295 jScrollPane.setViewportView(getJContentPane());
296 }
297 return jScrollPane;
298 }
299
300 /**
301 * This method initializes jButtonCancel1
302 *
303 * @return javax.swing.JButton
304 */
305 private JButton getJButtonCancel() {
306 if (jButtonCancel == null) {
307 jButtonCancel = new JButton();
308 jButtonCancel.setBounds(new java.awt.Rectangle(590, 350, 90, 20));
309 jButtonCancel.setText("Cancel");
310 jButtonCancel.addMouseListener(this);
311 }
312 return jButtonCancel;
313 }
314
315 /**
316 * This method initializes jButtonNext
317 *
318 * @return javax.swing.JButton
319 */
320 private JButton getJButtonNext() {
321 if (jButtonNext == null) {
322 jButtonNext = new JButton();
323 jButtonNext.setBounds(new java.awt.Rectangle(480, 350, 90, 20));
324 jButtonNext.setText("Next");
325 jButtonNext.addMouseListener(this);
326 }
327 return jButtonNext;
328 }
329
330 /**
331 * This method initializes jScrollPaneCopyright
332 *
333 * @return javax.swing.JScrollPane
334 */
335 private JScrollPane getJScrollPaneCopyright() {
336 if (jScrollPaneCopyright == null) {
337 jScrollPaneCopyright = new JScrollPane();
338 jScrollPaneCopyright.setBounds(new java.awt.Rectangle(160, 175, 520, 40));
339 jScrollPaneCopyright.setViewportView(getJTextAreaCopyright());
340 }
341 return jScrollPaneCopyright;
342 }
343
344 /**
345 * This method initializes jTextAreaCopyright
346 *
347 * @return javax.swing.JTextArea
348 */
349 private JTextArea getJTextAreaCopyright() {
350 if (jTextAreaCopyright == null) {
351 jTextAreaCopyright = new JTextArea();
352 }
353 return jTextAreaCopyright;
354 }
355
356 public static void main(String[] args) {
357 CreateStepOne c = new CreateStepOne(new IFrame(), true);
358 c.setVisible(true);
359 }
360
361 /**
362 * This is the default constructor
363 *
364 */
365 public CreateStepOne(IFrame iFrame, boolean modal) {
366 super(iFrame, modal);
367 initialize();
368 }
369
370 /**
371 * Disable all components when the mode is view
372 *
373 * @param isView
374 * true - The view mode; false - The non-view mode
375 *
376 */
377 public void setViewMode(boolean isView) {
378 if (isView) {
379 this.jTextFieldBaseName.setEnabled(!isView);
380 this.jTextFieldGuid.setEnabled(!isView);
381 this.jTextFieldVersion.setEnabled(!isView);
382 this.jTextAreaLicense.setEnabled(!isView);
383 this.jScrollPaneCopyright.setEnabled(!isView);
384 this.jTextAreaCopyright.setEnabled(!isView);
385 this.jTextAreaDescription.setEnabled(!isView);
386 this.jTextFieldSpecification.setEnabled(!isView);
387 this.jTextFieldAbstract.setEnabled(!isView);
388 this.jButtonGenerateGuid.setEnabled(!isView);
389 this.jButtonOk.setEnabled(!isView);
390 }
391 }
392
393 /**
394 * This method initializes this
395 *
396 */
397 private void initialize() {
398 this.setSize(700, 425);
399 this.setContentPane(getJScrollPane());
400 this.setTitle("Create Framework Archive(FAR) - Step 1: Set FAR's baseic information");
401 this.centerWindow();
402 }
403
404 /**
405 * This method initializes jContentPane
406 *
407 * @return javax.swing.JPanel jContentPane
408 *
409 */
410 private JPanel getJContentPane() {
411 if (jContentPane == null) {
412
413 jLabelURL = new JLabel();
414 jLabelURL.setText("License URL");
415 jLabelURL.setBounds(new java.awt.Rectangle(35, 285, 120, 20));
416 jLabelBaseName = new JLabel();
417 jLabelBaseName.setText("FAR Name");
418 jLabelBaseName.setBounds(new java.awt.Rectangle(35, 10, 120, 20));
419 jLabelGuid = new JLabel();
420 jLabelGuid.setText("Guid Value");
421 jLabelGuid.setBounds(new java.awt.Rectangle(35, 35, 120, 20));
422 jLabelVersion = new JLabel();
423 jLabelVersion.setText("Version");
424 jLabelVersion.setBounds(new java.awt.Rectangle(35, 60, 120, 20));
425 jLabelAbstract = new JLabel();
426 jLabelAbstract.setText("Abstract");
427 jLabelAbstract.setBounds(new java.awt.Rectangle(35, 85, 120, 20));
428 jLabelDescription = new JLabel();
429 jLabelDescription.setText("Description");
430 jLabelDescription.setBounds(new java.awt.Rectangle(35, 110, 120, 20));
431 jLabelCopyright = new JLabel();
432 jLabelCopyright.setText("Copyright");
433 jLabelCopyright.setBounds(new java.awt.Rectangle(35, 175, 120, 20));
434 jLabelLicense = new JLabel();
435 jLabelLicense.setText("License");
436 jLabelLicense.setBounds(new java.awt.Rectangle(35, 220, 120, 20));
437 jLabelSpecification = new JLabel();
438 jLabelSpecification.setText("Specification");
439 jLabelSpecification.setBounds(new java.awt.Rectangle(35, 310, 120, 20));
440
441 jContentPane = new JPanel();
442 jContentPane.setLayout(null);
443
444 jContentPane.add(jLabelBaseName, null);
445 jContentPane.add(getJTextFieldBaseName(), null);
446 jContentPane.add(jLabelGuid, null);
447 jContentPane.add(getJTextFieldGuid(), null);
448 jContentPane.add(jLabelVersion, null);
449 jContentPane.add(getJTextFieldVersion(), null);
450 jContentPane.add(getJButtonGenerateGuid(), null);
451 jContentPane.add(jLabelLicense, null);
452 jContentPane.add(jLabelCopyright, null);
453 jContentPane.add(jLabelDescription, null);
454 jContentPane.add(jLabelSpecification, null);
455 jContentPane.add(getJTextFieldSpecification(), null);
456 jContentPane.add(getJScrollPaneLicense(), null);
457 jContentPane.add(getJScrollPaneDescription(), null);
458 jContentPane.add(jLabelAbstract, null);
459 jContentPane.add(getJTextFieldAbstract(), null);
460 jContentPane.add(jLabelURL, null);
461 jContentPane.add(getJTextFieldURL(), null);
462 jStarLabel1 = new StarLabel();
463 jStarLabel1.setLocation(new java.awt.Point(20, 10));
464 jStarLabel4 = new StarLabel();
465 jStarLabel4.setLocation(new java.awt.Point(20, 35));
466 jStarLabel5 = new StarLabel();
467 jStarLabel5.setLocation(new java.awt.Point(20, 60));
468 jStarLabel6 = new StarLabel();
469 jStarLabel6.setLocation(new java.awt.Point(20, 110));
470 jStarLabel7 = new StarLabel();
471 jStarLabel7.setLocation(new java.awt.Point(20, 175));
472 jStarLabel8 = new StarLabel();
473 jStarLabel8.setLocation(new java.awt.Point(20, 220));
474 jStarLabel10 = new StarLabel();
475 jStarLabel10.setLocation(new java.awt.Point(20, 85));
476 jStarLabel12 = new StarLabel();
477 jStarLabel12.setLocation(new java.awt.Point(20, 310));
478
479 jContentPane.add(jStarLabel1, null);
480 jContentPane.add(jStarLabel4, null);
481 jContentPane.add(jStarLabel5, null);
482 jContentPane.add(jStarLabel6, null);
483 jContentPane.add(jStarLabel7, null);
484 jContentPane.add(jStarLabel8, null);
485 jContentPane.add(jStarLabel10, null);
486 jContentPane.add(jStarLabel12, null);
487 jContentPane.add(getJButtonCancel(), null);
488 jContentPane.add(getJButtonNext(), null);
489 jContentPane.add(getJScrollPaneCopyright(), null);
490 }
491 return jContentPane;
492 }
493
494 public boolean valid() {
495 //
496 // Check BaseName
497 //
498 if (isEmpty(this.jTextFieldBaseName.getText())) {
499 Log.wrn("Create far", "Base Name couldn't be empty");
500 return false;
501 }
502 if (!DataValidation.isBaseName(this.jTextFieldBaseName.getText())) {
503 Log.wrn("Create far", "Incorrect data type for Base Name");
504 return false;
505 }
506 farHeader.setFarName(this.jTextFieldBaseName.getText());
507
508 //
509 // Check Guid
510 //
511 if (isEmpty(this.jTextFieldGuid.getText())) {
512 Log.wrn("Create far", "Guid Value couldn't be empty");
513 return false;
514 }
515 if (!DataValidation.isGuid((this.jTextFieldGuid).getText())) {
516 Log.wrn("Create far", "Incorrect data type for Guid");
517 return false;
518 }
519 farHeader.setGuidValue(this.jTextFieldGuid.getText());
520
521 //
522 // Check Version
523 //
524 if (isEmpty(this.jTextFieldVersion.getText())) {
525 Log.wrn("Create far", "Version couldn't be empty");
526 return false;
527 }
528 if (!DataValidation.isVersion(this.jTextFieldVersion.getText())) {
529 Log.wrn("Create far", "Incorrect data type for Version");
530 return false;
531 }
532 farHeader.setVersion(this.jTextFieldVersion.getText());
533
534 //
535 // Check Abstact
536 //
537 if (isEmpty(this.jTextFieldAbstract.getText())) {
538 Log.wrn("Create far", "Abstract couldn't be empty");
539 return false;
540 }
541 if (!DataValidation.isAbstract(this.jTextFieldAbstract.getText())) {
542 Log.wrn("Create far", "Incorrect data type for Abstract");
543 return false;
544 }
545 farHeader.setAbstractStr(this.jTextFieldAbstract.getText());
546
547 //
548 // Check Description
549 //
550 if (isEmpty(this.jTextAreaDescription.getText())) {
551 Log.wrn("Create far", "Description couldn't be empty");
552 return false;
553 }
554 farHeader.setDescription(this.jTextAreaDescription.getText());
555
556 //
557 // Check Copyright
558 //
559 if (isEmpty(this.jTextAreaCopyright.getText())) {
560 Log.wrn("Create far", "Copyright couldn't be empty");
561 return false;
562 }
563 farHeader.setCopyright(this.jTextAreaCopyright.getText());
564
565 //
566 // Check License
567 //
568 if (isEmpty(this.jTextAreaLicense.getText())) {
569 Log.wrn("Create far", "License couldn't be empty");
570 return false;
571 }
572 farHeader.setLicense(this.jTextAreaLicense.getText());
573
574 farHeader.setSpecification(this.jTextFieldSpecification.getText());
575 return true;
576 }
577
578 /**
579 * Check the input data is empty or not
580 *
581 * @param strValue
582 * The input data which need be checked
583 *
584 * @retval true - The input data is empty
585 * @retval fals - The input data is not empty
586 *
587 */
588 public boolean isEmpty(String strValue) {
589 if (strValue.length() > 0) {
590 return false;
591 }
592 return true;
593 }
594
595 public void mouseClicked(MouseEvent e) {
596 if (e.getSource() == jButtonCancel) {
597 this.setVisible(false);
598 } else if (e.getSource() == jButtonNext) {
599 //
600 // Add some logic process here
601 //
602 if (!valid()) {
603 return;
604 }
605 if (stepTwo == null) {
606 stepTwo = new CreateStepTwo(this, true, this);
607 }
608 this.setVisible(false);
609 stepTwo.setVisible(true);
610 } else if (e.getSource() == jButtonGenerateGuid) {
611 this.jTextFieldGuid.setText(Tools.generateUuidString());
612 }
613 }
614
615 public void mousePressed(MouseEvent e) {
616 // TODO Auto-generated method stub
617
618 }
619
620 public void mouseReleased(MouseEvent e) {
621 // TODO Auto-generated method stub
622
623 }
624
625 public void mouseEntered(MouseEvent e) {
626 // TODO Auto-generated method stub
627
628 }
629
630 public void mouseExited(MouseEvent e) {
631 // TODO Auto-generated method stub
632
633 }
634
635 public FarHeader getFarHeader() {
636 return farHeader;
637 }
638 }