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