]> git.proxmox.com Git - mirror_edk2.git/blob - Tools/Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/packaging/ui/SpdGuidDecls.java
Delete useless file SpdPackageDefinitions.java;
[mirror_edk2.git] / Tools / Java / Source / FrameworkWizard / src / org / tianocore / frameworkwizard / packaging / ui / SpdGuidDecls.java
1 /** @file
2 Java class SpdGuidDecls is GUI for create library definition elements of spd file.
3
4 Copyright (c) 2006, Intel Corporation
5 All rights reserved. This program and the accompanying materials
6 are licensed and made available under the terms and conditions of the BSD License
7 which accompanies this distribution. The full text of the license may be found at
8 http://opensource.org/licenses/bsd-license.php
9
10 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
11 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
12 **/
13 package org.tianocore.frameworkwizard.packaging.ui;
14
15 import java.awt.Dimension;
16 import java.awt.FontMetrics;
17 import java.awt.Point;
18 import java.awt.event.ActionEvent;
19 import java.awt.event.ComponentEvent;
20 import java.util.Vector;
21
22 import javax.swing.JOptionPane;
23 import javax.swing.JPanel;
24 import javax.swing.JTable;
25 import javax.swing.JTextField;
26 import javax.swing.JLabel;
27 import javax.swing.JScrollPane;
28 import javax.swing.JButton;
29 import javax.swing.JFrame;
30 import javax.swing.ListSelectionModel;
31 import javax.swing.event.InternalFrameAdapter;
32 import javax.swing.event.InternalFrameEvent;
33 import javax.swing.event.ListSelectionEvent;
34 import javax.swing.event.ListSelectionListener;
35 import javax.swing.event.TableModelEvent;
36 import javax.swing.event.TableModelListener;
37 import javax.swing.table.DefaultTableModel;
38 import javax.swing.table.TableColumn;
39 import javax.swing.table.TableModel;
40
41 import org.tianocore.PackageSurfaceAreaDocument;
42 import org.tianocore.frameworkwizard.common.DataValidation;
43 import org.tianocore.frameworkwizard.common.Tools;
44 import org.tianocore.frameworkwizard.common.Identifications.OpeningPackageType;
45 import org.tianocore.frameworkwizard.common.ui.IInternalFrame;
46 import org.tianocore.frameworkwizard.common.ui.StarLabel;
47 import org.tianocore.frameworkwizard.common.ui.iCheckBoxList.ICheckBoxList;
48 import org.tianocore.frameworkwizard.platform.ui.ListEditor;
49 import org.tianocore.frameworkwizard.platform.ui.LongTextEditor;
50
51 /**
52 GUI for create library definition elements of spd file.
53
54 @since PackageEditor 1.0
55 **/
56 public class SpdGuidDecls extends IInternalFrame implements TableModelListener{
57 /**
58 *
59 */
60 private static final long serialVersionUID = 1L;
61
62 static JFrame frame;
63
64 private SpdFileContents sfc = null;
65
66 private OpeningPackageType docConsole = null;
67
68 private JTable jTable = null;
69
70 private DefaultTableModel model = null;
71
72 private JPanel jContentPane = null;
73
74 private JTextField jTextFieldGuid = null;
75
76 private JScrollPane jScrollPane = null;
77
78 private JButton jButtonAdd = null;
79
80 private JButton jButtonRemove = null;
81
82 private JButton jButtonClearAll = null;
83
84 private JButton jButtonCancel = null;
85
86 private JButton jButtonOk = null;
87
88 private JButton jButtonGen = null;
89
90 private StarLabel jStarLabel1 = null;
91
92 private StarLabel jStarLabel2 = null;
93
94 private StarLabel jStarLabel3 = null;
95
96 private StarLabel jStarLabel4 = null;
97
98 protected int selectedRow = -1;
99
100 private JLabel jLabelName = null;
101
102 private JScrollPane jScrollPaneModule = null;
103
104 private JTextField jTextFieldName = null;
105
106 private JScrollPane jScrollPaneArch = null;
107
108 private JScrollPane jScrollPaneGuid = null;
109
110 private JLabel jLabelGuid = null;
111
112 private JScrollPane topScrollPane = null; // @jve:decl-index=0:visual-constraint="10,213"
113
114 private JLabel jLabelCName = null;
115
116 private GenGuidDialog guidDialog = null;
117
118 private JTextField jTextFieldCName = null;
119
120 private JLabel jLabelHelp = null;
121
122 private JTextField jTextFieldHelp = null;
123
124 private JLabel jLabelSupMod = null;
125
126 private JLabel jLabelSupArch = null;
127
128 private ICheckBoxList iCheckBoxListArch = null;
129
130 private ICheckBoxList iCheckBoxListGuid = null;
131
132 private ICheckBoxList iCheckBoxListMod = null;
133
134 private JLabel jLabelGuidType = null;
135
136 protected String[][] saa = null;
137
138 protected StarLabel starLabel = null;
139
140 private final int guidNameMinWidth = 200;
141 private final int guidCNameMinWidth = 200;
142 private final int guidValueMinWidth = 300;
143 private final int helpTextMinWidth = 300;
144 private final int supArchMinWidth = 200;
145 private final int supModMinWidth = 200;
146 private final int guidTypeMinWidth = 200;
147
148
149 /**
150 This method initializes this
151
152 **/
153 protected void initialize() {
154
155 this.setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
156
157 }
158
159 /**
160 This method initializes jTextFieldGuid
161
162 @return javax.swing.JTextField
163 **/
164 protected JTextField getJTextFieldGuid() {
165 if (jTextFieldGuid == null) {
166 jTextFieldGuid = new JTextField();
167 jTextFieldGuid.setBounds(new java.awt.Rectangle(137,60,336,20));
168 jTextFieldGuid.setPreferredSize(new java.awt.Dimension(200,20));
169
170 }
171 return jTextFieldGuid;
172 }
173
174 /**
175 This method initializes jScrollPane
176
177 @return javax.swing.JScrollPane
178 **/
179 protected JScrollPane getJScrollPane() {
180 if (jScrollPane == null) {
181 jScrollPane = new JScrollPane();
182 jScrollPane.setBounds(new java.awt.Rectangle(5,256,472,292));
183 jScrollPane.setViewportView(getJTable());
184 }
185 return jScrollPane;
186 }
187
188 /**
189 This method initializes jTable
190
191 @return javax.swing.JTable
192 **/
193 protected JTable getJTable() {
194 if (jTable == null) {
195 model = new DefaultTableModel();
196 jTable = new JTable(model);
197 jTable.setRowHeight(20);
198 jTable.setAutoResizeMode(javax.swing.JTable.AUTO_RESIZE_OFF);
199 model.addColumn("Name");
200 model.addColumn("The C Name");
201 model.addColumn("GUID Value");
202 model.addColumn("Help Text");
203 model.addColumn("Supported Architectures");
204 model.addColumn("Supported Module Types");
205 model.addColumn("GuidTypes");
206
207 TableColumn column = jTable.getColumnModel().getColumn(0);
208 column.setMinWidth(this.guidNameMinWidth);
209 column = jTable.getColumnModel().getColumn(1);
210 column.setMinWidth(this.guidCNameMinWidth);
211 column = jTable.getColumnModel().getColumn(2);
212 column.setMinWidth(this.guidValueMinWidth);
213 column = jTable.getColumnModel().getColumn(3);
214 column.setMinWidth(this.helpTextMinWidth);
215 column = jTable.getColumnModel().getColumn(4);
216 column.setMinWidth(this.supArchMinWidth);
217 column = jTable.getColumnModel().getColumn(5);
218 column.setMinWidth(this.supModMinWidth);
219 column = jTable.getColumnModel().getColumn(6);
220 column.setMinWidth(this.guidTypeMinWidth);
221
222 jTable.getColumnModel().getColumn(2).setCellEditor(new GuidEditor());
223 jTable.getColumnModel().getColumn(3).setCellEditor(new LongTextEditor());
224
225 Vector<String> vArch = new Vector<String>();
226 vArch.add("IA32");
227 vArch.add("X64");
228 vArch.add("IPF");
229 vArch.add("EBC");
230 vArch.add("ARM");
231 vArch.add("PPC");
232 jTable.getColumnModel().getColumn(4).setCellEditor(new ListEditor(vArch));
233
234 Vector<String> vModule = new Vector<String>();
235 vModule.add("BASE");
236 vModule.add("SEC");
237 vModule.add("PEI_CORE");
238 vModule.add("PEIM");
239 vModule.add("DXE_CORE");
240 vModule.add("DXE_DRIVER");
241 vModule.add("DXE_RUNTIME_DRIVER");
242 vModule.add("DXE_SAL_DRIVER");
243 vModule.add("DXE_SMM_DRIVER");
244 vModule.add("UEFI_DRIVER");
245 vModule.add("UEFI_APPLICATION");
246 vModule.add("USER_DEFINED");
247 jTable.getColumnModel().getColumn(5).setCellEditor(new ListEditor(vModule));
248
249 Vector<String> vGuid = new Vector<String>();
250 vGuid.add("DATA_HUB_RECORD");
251 vGuid.add("EFI_EVENT");
252 vGuid.add("EFI_SYSTEM_CONFIGURATION_TABLE");
253 vGuid.add("EFI_VARIABLE");
254 vGuid.add("GUID");
255 vGuid.add("HII_PACKAGE_LIST");
256 vGuid.add("HOB");
257 vGuid.add("TOKEN_SPACE_GUID");
258 ListEditor le = new ListEditor(vGuid);
259 le.setCanNotBeEmpty(true);
260 jTable.getColumnModel().getColumn(6).setCellEditor(le);
261
262 jTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
263 jTable.getSelectionModel().addListSelectionListener(new ListSelectionListener(){
264 public void valueChanged(ListSelectionEvent e) {
265 if (e.getValueIsAdjusting()){
266 return;
267 }
268 ListSelectionModel lsm = (ListSelectionModel)e.getSource();
269 if (lsm.isSelectionEmpty()) {
270 return;
271 }
272 else{
273 selectedRow = lsm.getMinSelectionIndex();
274
275 }
276 }
277 });
278
279 jTable.getModel().addTableModelListener(this);
280 }
281 return jTable;
282 }
283
284
285 public void tableChanged(TableModelEvent arg0) {
286 // TODO Auto-generated method stub
287 int row = arg0.getFirstRow();
288 int column = arg0.getColumn();
289 TableModel m = (TableModel)arg0.getSource();
290 if (arg0.getType() == TableModelEvent.UPDATE){
291
292 updateRow(row, column, m);
293 }
294 }
295
296 protected void updateRow(int row, int column, TableModel m){
297 String[] sa = new String[7];
298 sfc.getSpdGuidDeclaration(sa, row);
299 Object cellData = m.getValueAt(row, column);
300 if (cellData == null) {
301 cellData = "";
302 }
303 if (cellData.equals(sa[column])) {
304 return;
305 }
306
307 if (cellData.toString().length() == 0 && sa[column] == null) {
308 return;
309 }
310
311 String name = m.getValueAt(row, 0) + "";
312 String cName = m.getValueAt(row, 1) + "";
313 String guid = m.getValueAt(row, 2) + "";
314 String help = m.getValueAt(row, 3) + "";
315 String archList = null;
316 if (m.getValueAt(row, 4) != null){
317 archList = m.getValueAt(row, 4).toString();
318 }
319 String modTypeList = null;
320 if (m.getValueAt(row, 5) != null) {
321 modTypeList = m.getValueAt(row, 5).toString();
322 }
323 String guidTypeList = null;
324 if (m.getValueAt(row, 6) != null){
325 guidTypeList = m.getValueAt(row, 6).toString();
326 }
327 String[] rowData = {name, cName, guid, help};
328 if (!dataValidation(rowData)){
329 return;
330 }
331 if (docConsole != null) {
332 docConsole.setSaved(false);
333 }
334 sfc.updateSpdGuidDecl(row, name, cName, guid, help, archList, modTypeList, guidTypeList);
335 }
336 /**
337 This method initializes jButtonAdd
338
339 @return javax.swing.JButton
340 **/
341 protected JButton getJButtonAdd() {
342 if (jButtonAdd == null) {
343 jButtonAdd = new JButton();
344 jButtonAdd.setBounds(new java.awt.Rectangle(167,227,90,20));
345 jButtonAdd.setText("Add");
346 jButtonAdd.addActionListener(this);
347 }
348 return jButtonAdd;
349 }
350
351 /**
352 This method initializes jButtonRemove
353
354 @return javax.swing.JButton
355 **/
356 protected JButton getJButtonRemove() {
357 if (jButtonRemove == null) {
358 jButtonRemove = new JButton();
359 jButtonRemove.setBounds(new java.awt.Rectangle(270,227,90,20));
360 jButtonRemove.setText("Delete");
361 jButtonRemove.addActionListener(this);
362 }
363 return jButtonRemove;
364 }
365
366 /**
367 This method initializes jButtonRemoveAll
368
369 @return javax.swing.JButton
370 **/
371 protected JButton getJButtonClearAll() {
372 if (jButtonClearAll == null) {
373 jButtonClearAll = new JButton();
374 jButtonClearAll.setBounds(new java.awt.Rectangle(380,227,90,20));
375 jButtonClearAll.setText("Clear All");
376 jButtonClearAll.addActionListener(this);
377 }
378 return jButtonClearAll;
379 }
380
381 /**
382 This method initializes jButtonCancel
383
384 @return javax.swing.JButton
385 **/
386 protected JButton getJButtonCancel() {
387 if (jButtonCancel == null) {
388 jButtonCancel = new JButton();
389 jButtonCancel.setPreferredSize(new java.awt.Dimension(90, 20));
390 jButtonCancel.setLocation(new java.awt.Point(390, 305));
391 jButtonCancel.setText("Cancel");
392 jButtonCancel.setSize(new java.awt.Dimension(90, 20));
393 jButtonCancel.setVisible(false);
394 jButtonCancel.addActionListener(this);
395 }
396 return jButtonCancel;
397 }
398
399 /**
400 This method initializes jButton
401
402 @return javax.swing.JButton
403 **/
404 protected JButton getJButtonOk() {
405 if (jButtonOk == null) {
406 jButtonOk = new JButton();
407 jButtonOk.setSize(new java.awt.Dimension(90, 20));
408 jButtonOk.setText("OK");
409 jButtonOk.setLocation(new java.awt.Point(290, 305));
410 jButtonOk.setVisible(false);
411 jButtonOk.addActionListener(this);
412 }
413 return jButtonOk;
414 }
415
416 /**
417 This is the default constructor
418 **/
419 public SpdGuidDecls() {
420 super();
421 initialize();
422 init();
423
424 }
425
426 public SpdGuidDecls(PackageSurfaceAreaDocument.PackageSurfaceArea inPsa){
427 this();
428 sfc = new SpdFileContents(inPsa);
429 init(sfc);
430 }
431
432 public SpdGuidDecls(OpeningPackageType opt) {
433 this(opt.getXmlSpd());
434 docConsole = opt;
435 if (sfc.getSpdPkgDefsRdOnly().equals("true")) {
436 JOptionPane.showMessageDialog(frame, "This is a read-only package. You will not be able to edit contents in table.");
437 }
438 initFrame();
439 }
440 /**
441 This method initializes this
442
443 @return void
444 **/
445 protected void init() {
446 this.setContentPane(getJContentPane());
447 this.addInternalFrameListener(new InternalFrameAdapter(){
448 public void internalFrameDeactivated(InternalFrameEvent e){
449 if (jTable.isEditing()) {
450 jTable.getCellEditor().stopCellEditing();
451 }
452 }
453 });
454 this.setBounds(new java.awt.Rectangle(0, 0, 500, 370));
455 this.setVisible(true);
456 }
457
458 protected void init(SpdFileContents sfc){
459 if (sfc.getSpdGuidDeclarationCount() == 0) {
460 return ;
461 }
462 //
463 // initialize table using SpdFileContents object
464 //
465 saa = new String[sfc.getSpdGuidDeclarationCount()][7];
466 sfc.getSpdGuidDeclarations(saa);
467 int i = 0;
468 while (i < saa.length) {
469 model.addRow(saa[i]);
470 i++;
471 }
472
473 }
474
475 protected JScrollPane getJContentPane(){
476 if (topScrollPane == null){
477 topScrollPane = new JScrollPane();
478 topScrollPane.setSize(new java.awt.Dimension(617,500));
479 topScrollPane.setPreferredSize(new java.awt.Dimension(498,500));
480 topScrollPane.setViewportView(getJContentPane1());
481 }
482 return topScrollPane;
483 }
484
485 /**
486 This method initializes jContentPane
487
488 @return javax.swing.JPanel
489 **/
490 protected JPanel getJContentPane1() {
491 if (jContentPane == null) {
492
493 jLabelGuidType = new JLabel();
494 jLabelGuidType.setBounds(new java.awt.Rectangle(420,122,103,16));
495 jLabelGuidType.setText("GUID Type List");
496 jLabelGuidType.setEnabled(true);
497 starLabel = new StarLabel();
498 starLabel.setLocation(new Point(jLabelGuidType.getX() - 10, jLabelGuidType.getY()));
499 starLabel.setVisible(true);
500 jLabelSupArch = new JLabel();
501 jLabelSupArch.setBounds(new java.awt.Rectangle(197,122,108,16));
502 jLabelSupArch.setText("Supported Architectures");
503 jLabelSupArch.setEnabled(true);
504 FontMetrics fm = jLabelSupArch.getFontMetrics(jLabelSupArch.getFont());
505 jLabelSupArch.setSize(fm.stringWidth(jLabelSupArch.getText()) + 10, 20);
506 jLabelSupMod = new JLabel();
507 jLabelSupMod.setBounds(new java.awt.Rectangle(14,120,110,16));
508 jLabelSupMod.setText("Supported Module Types");
509 jLabelSupMod.setEnabled(true);
510 fm = jLabelSupMod.getFontMetrics(jLabelSupMod.getFont());
511 jLabelSupMod.setSize(fm.stringWidth(jLabelSupMod.getText()) + 10, 20);
512 jLabelHelp = new JLabel();
513 jLabelHelp.setText("HelpText");
514 jLabelHelp.setSize(new java.awt.Dimension(109,20));
515 jLabelHelp.setLocation(new java.awt.Point(14,85));
516 jLabelCName = new JLabel();
517 jLabelCName.setBounds(new java.awt.Rectangle(14,35,111,20));
518 jLabelCName.setText("C Name");
519 jLabelGuid = new JLabel();
520 jLabelGuid.setBounds(new java.awt.Rectangle(15,60,112,20));
521 jLabelGuid.setText("Guid Value");
522 jLabelName = new JLabel();
523 jLabelName.setBounds(new java.awt.Rectangle(15,10,113,20));
524 jLabelName.setText("Name");
525 jStarLabel1 = new StarLabel();
526 jStarLabel1.setLocation(new java.awt.Point(0, 10));
527 jStarLabel3 = new StarLabel();
528 jStarLabel3.setLocation(new java.awt.Point(0, 35));
529 jStarLabel4 = new StarLabel();
530 jStarLabel4.setLocation(new java.awt.Point(0, 60));
531 jStarLabel2 = new StarLabel();
532 jStarLabel2.setLocation(new java.awt.Point(0, 85));
533 jStarLabel2.setVisible(true);
534 jContentPane = new JPanel();
535 jContentPane.setLayout(null);
536 jContentPane.setPreferredSize(new Dimension(480, 375));
537 jContentPane.add(jStarLabel1, null);
538 jContentPane.add(jStarLabel2, null);
539 jContentPane.add(jStarLabel3, null);
540 jContentPane.add(jStarLabel4, null);
541 jContentPane.add(jLabelCName, null);
542 jContentPane.add(getJTextFieldCName(), null);
543 jContentPane.add(getJTextFieldGuid(), null);
544 jContentPane.add(getJScrollPane(), null);
545 jContentPane.add(getJButtonAdd(), null);
546 jContentPane.add(getJButtonRemove(), null);
547 jContentPane.add(getJButtonClearAll(), null);
548 jContentPane.add(getJButtonCancel(), null);
549 jContentPane.add(getJButtonOk(), null);
550
551 jContentPane.add(getJButtonGen(), null);
552 jContentPane.add(jLabelName, null);
553 jContentPane.add(getJTextFieldName(), null);
554 jContentPane.add(jLabelGuid, null);
555 jContentPane.add(jLabelHelp, null);
556 jContentPane.add(getJTextFieldHelp(), null);
557 jContentPane.add(jLabelSupMod, null);
558 jContentPane.add(jLabelSupArch, null);
559 jContentPane.add(getJScrollPaneArch(), null);
560 jContentPane.add(getJScrollPaneGuid(), null);
561 jContentPane.add(getJScrollPaneModule(), null);
562 jContentPane.add(jLabelGuidType, null);
563 jContentPane.add(starLabel, null);
564 }
565 return jContentPane;
566 }
567
568 /**
569 fill ComboBoxes with pre-defined contents
570 **/
571 protected void initFrame() {
572
573 this.setTitle("GUID Declarations");
574
575 boolean editable = true;
576 if (getSfc().getSpdPkgDefsRdOnly().equals("true")) {
577 editable = false;
578 }
579
580 jButtonAdd.setEnabled(editable);
581 jButtonRemove.setEnabled(editable);
582 jButtonClearAll.setEnabled(editable);
583 jTable.setEnabled(editable);
584 }
585
586 /* (non-Javadoc)
587 * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
588 */
589 public void actionPerformed(ActionEvent arg0) {
590
591 if (arg0.getSource() == jButtonOk) {
592 this.save();
593 this.dispose();
594
595 }
596 if (arg0.getSource() == jButtonCancel) {
597 this.dispose();
598 }
599
600 if (arg0.getSource() == jButtonAdd) {
601
602 //ToDo: check before add
603 String[] row = {"", "", "", "", "", "", ""};
604 row[3] = jTextFieldHelp.getText();
605 row[2] = jTextFieldGuid.getText();
606 row[1] = jTextFieldCName.getText();
607 row[0] = jTextFieldName.getText();
608 row[4] = vectorToString(iCheckBoxListArch.getAllCheckedItemsString());
609 if (row[4].length() == 0) {
610 row[4] = null;
611 }
612 row[5] = vectorToString(iCheckBoxListMod.getAllCheckedItemsString());
613 if (row[5].length() == 0) {
614 row[5] = null;
615 }
616 row[6] = vectorToString(iCheckBoxListGuid.getAllCheckedItemsString());
617 if (row[6].length() == 0) {
618 row[6] = null;
619 }
620
621 if (!dataValidation(row)) {
622 return;
623 }
624
625 if (addRow(row) == -1) {
626 return;
627 }
628 model.addRow(row);
629 jTable.changeSelection(model.getRowCount()-1, 0, false, false);
630
631 }
632 //
633 // remove selected line
634 //
635 if (arg0.getSource() == jButtonRemove) {
636 if (jTable.isEditing()){
637 jTable.getCellEditor().stopCellEditing();
638 }
639 int rowSelected = selectedRow;
640 if (rowSelected >= 0) {
641 model.removeRow(rowSelected);
642 removeRow(rowSelected);
643 }
644 }
645
646 if (arg0.getSource() == jButtonClearAll) {
647 if (model.getRowCount() == 0) {
648 return;
649 }
650 model.setRowCount(0);
651 clearAllRow();
652 }
653
654 if (arg0.getSource() == jButtonGen) {
655 jTextFieldGuid.setText(Tools.generateUuidString());
656 }
657
658 if (arg0.getActionCommand().equals("GenGuidValue")) {
659 jTextFieldGuid.setText(guidDialog.getGuid());
660 }
661
662 }
663
664 protected boolean dataValidation(String[] row){
665 if (!DataValidation.isUiNameType(row[0])) {
666 JOptionPane.showMessageDialog(this, "Name must start with an alpha character.");
667 return false;
668 }
669 if (!DataValidation.isGuid(row[2])) {
670 JOptionPane.showMessageDialog(this, "Guid Value must be in registry format, 8-4-4-4-12.");
671 return false;
672 }
673 if (!DataValidation.isC_NameType(row[1])) {
674 JOptionPane.showMessageDialog(this, "C Name does not match C Name datatype.");
675 return false;
676 }
677 if (row[3].length() == 0) {
678 JOptionPane.showMessageDialog(this, "Help Text must be entered!");
679 return false;
680 }
681 return true;
682 }
683
684 protected int addRow(String[] row) {
685 Vector<String> vArch = iCheckBoxListArch.getAllCheckedItemsString();
686 if (vArch.size() == 0) {
687 vArch = null;
688 }
689 Vector<String> vModType = iCheckBoxListMod.getAllCheckedItemsString();
690 if (vModType.size() == 0) {
691 vModType = null;
692 }
693 Vector<String> vguidType = iCheckBoxListGuid.getAllCheckedItemsString();
694 if (vguidType.size() == 0) {
695 vguidType = null;
696 }
697 if (vguidType == null) {
698 JOptionPane.showMessageDialog(this, "You must select at least one GUID type.");
699 return -1;
700 }
701 if (docConsole != null) {
702 docConsole.setSaved(false);
703 }
704 sfc.genSpdGuidDeclarations(row[0], row[1], row[2], row[3], vArch, vModType, vguidType);
705 return 0;
706 }
707
708 protected void removeRow(int i){
709 sfc.removeSpdGuidDeclaration(i);
710 if (docConsole != null) {
711 docConsole.setSaved(false);
712 }
713 }
714
715 protected void clearAllRow(){
716 sfc.removeSpdGuidDeclaration();
717 if (docConsole != null) {
718 docConsole.setSaved(false);
719 }
720 }
721
722 /**
723 Add contents in list to sfc
724 **/
725 protected void save() {
726
727 }
728
729 /**
730 This method initializes jButtonBrowse
731
732 @return javax.swing.JButton
733 **/
734 protected JButton getJButtonGen() {
735 if (jButtonGen == null) {
736 jButtonGen = new JButton();
737 jButtonGen.setBounds(new java.awt.Rectangle(485,58,92,21));
738 jButtonGen.setText("Gen");
739 jButtonGen.setPreferredSize(new java.awt.Dimension(80,20));
740 jButtonGen.addActionListener(this);
741 }
742 return jButtonGen;
743 }
744
745 /**
746 * This method initializes jTextFieldName
747 *
748 * @return javax.swing.JTextField
749 */
750 protected JTextField getJTextFieldName() {
751 if (jTextFieldName == null) {
752 jTextFieldName = new JTextField();
753 jTextFieldName.setBounds(new java.awt.Rectangle(138,10,337,20));
754 jTextFieldName.setPreferredSize(new java.awt.Dimension(335,20));
755 }
756 return jTextFieldName;
757 }
758
759 /**
760 * This method initializes jTextFieldCName
761 *
762 * @return javax.swing.JTextField
763 */
764 protected JTextField getJTextFieldCName() {
765 if (jTextFieldCName == null) {
766 jTextFieldCName = new JTextField();
767 jTextFieldCName.setBounds(new java.awt.Rectangle(137,35,337,20));
768 jTextFieldCName.setPreferredSize(new java.awt.Dimension(335,20));
769 }
770 return jTextFieldCName;
771 }
772
773 public void componentResized(ComponentEvent arg0) {
774 int intPreferredWidth = 500;
775
776 Tools.resizeComponentWidth(this.jTextFieldName, this.getWidth(), intPreferredWidth);
777
778 Tools.resizeComponentWidth(this.jTextFieldCName, this.getWidth(), intPreferredWidth);
779 Tools.resizeComponentWidth(this.jTextFieldHelp, this.getWidth(), intPreferredWidth);
780 Tools.resizeComponentWidth(this.jScrollPane, this.getWidth(), intPreferredWidth);
781 Tools.relocateComponentX(this.jButtonGen, this.getWidth(), this.getPreferredSize().width, 40);
782
783 }
784
785 /**
786 * This method initializes jTextField
787 *
788 * @return javax.swing.JTextField
789 */
790 private JTextField getJTextFieldHelp() {
791 if (jTextFieldHelp == null) {
792 jTextFieldHelp = new JTextField();
793 jTextFieldHelp.setBounds(new java.awt.Rectangle(136,85,337,20));
794 jTextFieldHelp.setPreferredSize(new Dimension(335, 20));
795 }
796 return jTextFieldHelp;
797 }
798
799 private JScrollPane getJScrollPaneArch() {
800 if (jScrollPaneArch == null) {
801 jScrollPaneArch = new JScrollPane();
802 jScrollPaneArch.setBounds(new java.awt.Rectangle(197,142,188,74));
803 jScrollPaneArch.setPreferredSize(new java.awt.Dimension(188, 74));
804 jScrollPaneArch.setViewportView(getICheckBoxListArch());
805 }
806 return jScrollPaneArch;
807 }
808 /**
809 * This method initializes iCheckBoxList
810 *
811 * @return org.tianocore.frameworkwizard.common.ui.iCheckBoxList.ICheckBoxList
812 */
813 private ICheckBoxList getICheckBoxListArch() {
814 if (iCheckBoxListArch == null) {
815 iCheckBoxListArch = new ICheckBoxList();
816 iCheckBoxListArch.setBounds(new java.awt.Rectangle(197,142,188,74));
817 Vector<String> v = new Vector<String>();
818 v.add("IA32");
819 v.add("X64");
820 v.add("IPF");
821 v.add("EBC");
822 v.add("ARM");
823 v.add("PPC");
824 iCheckBoxListArch.setAllItems(v);
825 }
826 return iCheckBoxListArch;
827 }
828
829 protected JScrollPane getJScrollPaneGuid() {
830 if (jScrollPaneGuid== null) {
831 jScrollPaneGuid = new JScrollPane();
832 jScrollPaneGuid.setPreferredSize(new java.awt.Dimension(190,74));
833 jScrollPaneGuid.setLocation(new java.awt.Point(400,142));
834 jScrollPaneGuid.setSize(new java.awt.Dimension(260,74));
835 jScrollPaneGuid.setViewportView(getICheckBoxListGuid());
836 }
837 return jScrollPaneGuid;
838 }
839 /**
840 * This method initializes iCheckBoxList1
841 *
842 * @return org.tianocore.frameworkwizard.common.ui.iCheckBoxList.ICheckBoxList
843 */
844 private ICheckBoxList getICheckBoxListGuid() {
845 if (iCheckBoxListGuid == null) {
846 iCheckBoxListGuid = new ICheckBoxList();
847 iCheckBoxListGuid.setBounds(new java.awt.Rectangle(400,142,177,74));
848 Vector<String> v = new Vector<String>();
849 v.add("DATA_HUB_RECORD");
850 v.add("EFI_EVENT");
851 v.add("EFI_SYSTEM_CONFIGURATION_TABLE");
852 v.add("EFI_VARIABLE");
853 v.add("GUID");
854 v.add("HII_PACKAGE_LIST");
855 v.add("HOB");
856 v.add("TOKEN_SPACE_GUID");
857
858 iCheckBoxListGuid.setAllItems(v);
859 }
860 return iCheckBoxListGuid;
861 }
862
863 private JScrollPane getJScrollPaneModule() {
864 if (jScrollPaneModule == null) {
865 jScrollPaneModule = new JScrollPane();
866 jScrollPaneModule.setBounds(new java.awt.Rectangle(14,142,170,74));
867 jScrollPaneModule.setPreferredSize(new java.awt.Dimension(170, 74));
868 jScrollPaneModule.setViewportView(getICheckBoxListMod());
869 }
870 return jScrollPaneModule;
871 }
872 /**
873 * This method initializes iCheckBoxList2
874 *
875 * @return org.tianocore.frameworkwizard.common.ui.iCheckBoxList.ICheckBoxList
876 */
877 private ICheckBoxList getICheckBoxListMod() {
878 if (iCheckBoxListMod == null) {
879 iCheckBoxListMod = new ICheckBoxList();
880 iCheckBoxListMod.setBounds(new java.awt.Rectangle(14,142,170,74));
881 Vector<String> v = new Vector<String>();
882 v.add("BASE");
883 v.add("SEC");
884 v.add("PEI_CORE");
885 v.add("PEIM");
886 v.add("DXE_CORE");
887 v.add("DXE_DRIVER");
888 v.add("DXE_RUNTIME_DRIVER");
889 v.add("DXE_SAL_DRIVER");
890 v.add("DXE_SMM_DRIVER");
891 v.add("UEFI_DRIVER");
892 v.add("UEFI_APPLICATION");
893 v.add("USER_DEFINED");
894 iCheckBoxListMod.setAllItems(v);
895 }
896 return iCheckBoxListMod;
897 }
898
899 public static void main(String[] args){
900 new SpdGuidDecls().setVisible(true);
901 }
902
903 protected DefaultTableModel getModel() {
904 return model;
905 }
906
907 protected void setModel(DefaultTableModel model) {
908 this.model = model;
909 }
910
911 protected String vectorToString(Vector<String> v) {
912 String s = " ";
913 for (int i = 0; i < v.size(); ++i) {
914 s += v.get(i);
915 s += " ";
916 }
917 return s.trim();
918 }
919
920 protected Vector<String> stringToVector(String s){
921 if (s == null) {
922 return null;
923 }
924 String[] sArray = s.split(" ");
925 Vector<String> v = new Vector<String>();
926 for (int i = 0; i < sArray.length; ++i) {
927 v.add(sArray[i]);
928 }
929 return v;
930 }
931
932 protected JLabel getJLabelGuidType() {
933 return jLabelGuidType;
934 }
935
936 /**
937 * @return Returns the sfc.
938 */
939 protected SpdFileContents getSfc() {
940 return sfc;
941 }
942 }
943
944