]> git.proxmox.com Git - mirror_edk2.git/blame - Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/packaging/ui/SpdGuidDecls.java
fix the problem that if no data updated in wizard editors, the Save indicator will...
[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
a490bca8 132 protected String[][] saa = null;\r
a13899c5 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
a490bca8 240 \r
a13899c5 241 }\r
242 }\r
243 });\r
244 \r
245 jTable.getModel().addTableModelListener(this);\r
246 }\r
247 return jTable;\r
248 }\r
249 \r
250\r
251 public void tableChanged(TableModelEvent arg0) {\r
252 // TODO Auto-generated method stub\r
253 int row = arg0.getFirstRow();\r
a490bca8 254 int column = arg0.getColumn();\r
a13899c5 255 TableModel m = (TableModel)arg0.getSource();\r
256 if (arg0.getType() == TableModelEvent.UPDATE){\r
2c85fbc8 257 \r
a490bca8 258 updateRow(row, column, m);\r
a13899c5 259 }\r
260 }\r
261 \r
a490bca8 262 protected void updateRow(int row, int column, TableModel m){\r
263 String[] sa = new String[7];\r
264 sfc.getSpdGuidDeclaration(sa, row);\r
265 Object cellData = m.getValueAt(row, column);\r
266 if (cellData == null) {\r
267 cellData = "";\r
268 }\r
269 if (cellData.equals(sa[column])) {\r
270 return;\r
271 }\r
272 if (cellData.toString().length() == 0 && sa[column] == null) {\r
273 return;\r
274 }\r
275 \r
a13899c5 276 String name = m.getValueAt(row, 0) + "";\r
277 String cName = m.getValueAt(row, 1) + "";\r
278 String guid = m.getValueAt(row, 2) + "";\r
279 String help = m.getValueAt(row, 3) + "";\r
280 String archList = null;\r
281 if (m.getValueAt(row, 4) != null){\r
282 archList = m.getValueAt(row, 4).toString();\r
283 }\r
284 String modTypeList = null;\r
285 if (m.getValueAt(row, 5) != null) {\r
286 modTypeList = m.getValueAt(row, 5).toString(); \r
287 }\r
288 String guidTypeList = null;\r
289 if (m.getValueAt(row, 6) != null){\r
290 guidTypeList = m.getValueAt(row, 6).toString();\r
291 }\r
ce73a791 292 String[] rowData = {name, cName, guid, help};\r
293 if (!dataValidation(rowData)){\r
294 return;\r
295 }\r
2c85fbc8 296 if (docConsole != null) {\r
297 docConsole.setSaved(false);\r
298 }\r
a13899c5 299 sfc.updateSpdGuidDecl(row, name, cName, guid, help, archList, modTypeList, guidTypeList);\r
300 }\r
301 /**\r
302 This method initializes jButtonAdd \r
303 \r
304 @return javax.swing.JButton \r
305 **/\r
306 protected JButton getJButtonAdd() {\r
307 if (jButtonAdd == null) {\r
308 jButtonAdd = new JButton();\r
309 jButtonAdd.setBounds(new java.awt.Rectangle(167,227,90,20));\r
310 jButtonAdd.setText("Add");\r
311 jButtonAdd.addActionListener(this);\r
312 }\r
313 return jButtonAdd;\r
314 }\r
315\r
316 /**\r
317 This method initializes jButtonRemove \r
318 \r
319 @return javax.swing.JButton \r
320 **/\r
321 protected JButton getJButtonRemove() {\r
322 if (jButtonRemove == null) {\r
323 jButtonRemove = new JButton();\r
324 jButtonRemove.setBounds(new java.awt.Rectangle(270,227,90,20));\r
325 jButtonRemove.setText("Remove");\r
326 jButtonRemove.addActionListener(this);\r
327 }\r
328 return jButtonRemove;\r
329 }\r
330\r
331 /**\r
332 This method initializes jButtonRemoveAll \r
333 \r
334 @return javax.swing.JButton \r
335 **/\r
336 protected JButton getJButtonClearAll() {\r
337 if (jButtonClearAll == null) {\r
338 jButtonClearAll = new JButton();\r
339 jButtonClearAll.setBounds(new java.awt.Rectangle(380,227,90,20));\r
340 jButtonClearAll.setText("Clear All");\r
341 jButtonClearAll.addActionListener(this);\r
342 }\r
343 return jButtonClearAll;\r
344 }\r
345\r
346 /**\r
347 This method initializes jButtonCancel \r
348 \r
349 @return javax.swing.JButton \r
350 **/\r
351 protected JButton getJButtonCancel() {\r
352 if (jButtonCancel == null) {\r
353 jButtonCancel = new JButton();\r
354 jButtonCancel.setPreferredSize(new java.awt.Dimension(90, 20));\r
355 jButtonCancel.setLocation(new java.awt.Point(390, 305));\r
356 jButtonCancel.setText("Cancel");\r
357 jButtonCancel.setSize(new java.awt.Dimension(90, 20));\r
358 jButtonCancel.setVisible(false);\r
359 jButtonCancel.addActionListener(this);\r
360 }\r
361 return jButtonCancel;\r
362 }\r
363\r
364 /**\r
365 This method initializes jButton \r
366 \r
367 @return javax.swing.JButton \r
368 **/\r
369 protected JButton getJButtonOk() {\r
370 if (jButtonOk == null) {\r
371 jButtonOk = new JButton();\r
372 jButtonOk.setSize(new java.awt.Dimension(90, 20));\r
373 jButtonOk.setText("OK");\r
374 jButtonOk.setLocation(new java.awt.Point(290, 305));\r
375 jButtonOk.setVisible(false);\r
376 jButtonOk.addActionListener(this);\r
377 }\r
378 return jButtonOk;\r
379 }\r
380\r
381 /**\r
382 This is the default constructor\r
383 **/\r
384 public SpdGuidDecls() {\r
385 super();\r
386 initialize();\r
387 init();\r
388 \r
389 }\r
390\r
391 public SpdGuidDecls(PackageSurfaceAreaDocument.PackageSurfaceArea inPsa){\r
392 this();\r
393 sfc = new SpdFileContents(inPsa);\r
394 init(sfc);\r
395 }\r
d6d24759 396 \r
397 public SpdGuidDecls(OpeningPackageType opt) {\r
398 this(opt.getXmlSpd());\r
399 docConsole = opt;\r
400 }\r
a13899c5 401 /**\r
402 This method initializes this\r
403 \r
404 @return void\r
405 **/\r
406 protected void init() {\r
407 this.setContentPane(getJContentPane());\r
408 this.addInternalFrameListener(new InternalFrameAdapter(){\r
409 public void internalFrameDeactivated(InternalFrameEvent e){\r
410 if (jTable.isEditing()) {\r
411 jTable.getCellEditor().stopCellEditing();\r
412 }\r
413 }\r
414 });\r
415 this.setBounds(new java.awt.Rectangle(0, 0, 500, 370));\r
416 this.setVisible(true);\r
417 initFrame();\r
418 }\r
419\r
420 protected void init(SpdFileContents sfc){\r
421 if (sfc.getSpdGuidDeclarationCount() == 0) {\r
422 return ;\r
423 }\r
424 //\r
425 // initialize table using SpdFileContents object\r
426 //\r
a490bca8 427 saa = new String[sfc.getSpdGuidDeclarationCount()][7];\r
a13899c5 428 sfc.getSpdGuidDeclarations(saa);\r
429 int i = 0;\r
430 while (i < saa.length) {\r
431 model.addRow(saa[i]);\r
432 i++;\r
433 }\r
434 }\r
435 \r
436 protected JScrollPane getJContentPane(){\r
437 if (topScrollPane == null){\r
438 topScrollPane = new JScrollPane();\r
439 topScrollPane.setSize(new java.awt.Dimension(617,500));\r
440 topScrollPane.setPreferredSize(new java.awt.Dimension(498,500));\r
441 topScrollPane.setViewportView(getJContentPane1());\r
442 }\r
443 return topScrollPane;\r
444 }\r
445 \r
446 /**\r
447 This method initializes jContentPane\r
448 \r
449 @return javax.swing.JPanel\r
450 **/\r
451 protected JPanel getJContentPane1() {\r
452 if (jContentPane == null) {\r
453 jLabel3 = new JLabel();\r
454 jLabel3.setBounds(new java.awt.Rectangle(400,122,103,16));\r
455 jLabel3.setText("GUID Type List");\r
456 jLabel3.setEnabled(true);\r
457 jLabel2 = new JLabel();\r
458 jLabel2.setBounds(new java.awt.Rectangle(197,122,108,16));\r
459 jLabel2.setText("Supported Arch");\r
460 jLabel2.setEnabled(true);\r
461 jLabel1 = new JLabel();\r
462 jLabel1.setBounds(new java.awt.Rectangle(14,120,110,16));\r
463 jLabel1.setText("Supported Module");\r
464 jLabel1.setEnabled(true);\r
465 jLabel = new JLabel();\r
466 jLabel.setText("HelpText");\r
467 jLabel.setSize(new java.awt.Dimension(109,20));\r
468 jLabel.setLocation(new java.awt.Point(14,85));\r
469 jLabelVer = new JLabel();\r
470 jLabelVer.setBounds(new java.awt.Rectangle(14,60,111,20));\r
471 jLabelVer.setText("C_Name");\r
472 jLabelGuid = new JLabel();\r
473 jLabelGuid.setBounds(new java.awt.Rectangle(15,35,112,20));\r
474 jLabelGuid.setText("Guid Value");\r
475 jLabelName = new JLabel();\r
476 jLabelName.setBounds(new java.awt.Rectangle(15,10,113,20));\r
477 jLabelName.setText("Name");\r
478 jStarLabel1 = new StarLabel();\r
479 jStarLabel1.setLocation(new java.awt.Point(0, 10));\r
480 jStarLabel3 = new StarLabel();\r
481 jStarLabel3.setLocation(new java.awt.Point(0, 35));\r
482 jStarLabel4 = new StarLabel();\r
483 jStarLabel4.setLocation(new java.awt.Point(0, 60));\r
484 jStarLabel2 = new StarLabel();\r
485 jStarLabel2.setLocation(new java.awt.Point(0, 85));\r
486 jStarLabel2.setVisible(true);\r
487 jContentPane = new JPanel();\r
488 jContentPane.setLayout(null);\r
489 jContentPane.setPreferredSize(new Dimension(480, 375));\r
490 jContentPane.add(jStarLabel1, null);\r
491 jContentPane.add(jStarLabel2, null);\r
492 jContentPane.add(jStarLabel3, null);\r
493 jContentPane.add(jStarLabel4, null);\r
494 jContentPane.add(jLabelVer, null);\r
495 jContentPane.add(getJTextFieldVersion(), null);\r
496 jContentPane.add(getJTextFieldAdd(), null);\r
497 jContentPane.add(getJScrollPane(), null);\r
498 jContentPane.add(getJButtonAdd(), null);\r
499 jContentPane.add(getJButtonRemove(), null);\r
500 jContentPane.add(getJButtonClearAll(), null);\r
501 jContentPane.add(getJButtonCancel(), null);\r
502 jContentPane.add(getJButtonOk(), null);\r
503 \r
504 jContentPane.add(getJButtonGen(), null);\r
505 jContentPane.add(jLabelName, null);\r
506 jContentPane.add(getJTextFieldName(), null);\r
507 jContentPane.add(jLabelGuid, null);\r
508 jContentPane.add(jLabel, null);\r
509 jContentPane.add(getJTextField(), null);\r
510 jContentPane.add(jLabel1, null);\r
511 jContentPane.add(jLabel2, null);\r
512 jContentPane.add(getJScrollPaneArch(), null);\r
513 jContentPane.add(getJScrollPaneGuid(), null);\r
514 jContentPane.add(getJScrollPaneModule(), null);\r
515 jContentPane.add(jLabel3, null);\r
516 }\r
517 return jContentPane;\r
518 }\r
519\r
520 /**\r
521 fill ComboBoxes with pre-defined contents\r
522 **/\r
523 protected void initFrame() {\r
524 \r
525 this.setTitle("GUID Declarations");\r
526\r
527 }\r
528\r
529 /* (non-Javadoc)\r
530 * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)\r
531 */\r
532 public void actionPerformed(ActionEvent arg0) {\r
d6d24759 533 \r
a13899c5 534 if (arg0.getSource() == jButtonOk) {\r
535 this.save();\r
536 this.dispose();\r
537\r
538 }\r
539 if (arg0.getSource() == jButtonCancel) {\r
540 this.dispose();\r
541 }\r
542\r
543 if (arg0.getSource() == jButtonAdd) {\r
544 \r
545 //ToDo: check before add\r
ce73a791 546 String[] row = {"", "", "", "", "", "", ""};\r
a13899c5 547 row[3] = jTextField.getText();\r
548 row[2] = jTextFieldAdd.getText();\r
549 row[1] = jTextFieldVersion.getText();\r
550 row[0] = jTextFieldName.getText();\r
551 row[4] = vectorToString(iCheckBoxList.getAllCheckedItemsString());\r
552 if (row[4].length() == 0) {\r
553 row[4] = null;\r
554 }\r
555 row[5] = vectorToString(iCheckBoxList2.getAllCheckedItemsString());\r
556 if (row[5].length() == 0) {\r
557 row[5] = null;\r
558 }\r
ce73a791 559 row[6] = vectorToString(iCheckBoxList1.getAllCheckedItemsString());\r
560 if (row[6].length() == 0) {\r
561 row[6] = null;\r
562 }\r
563 \r
564 if (!dataValidation(row)) {\r
565 return;\r
a13899c5 566 }\r
2c85fbc8 567 \r
a13899c5 568 model.addRow(row);\r
af25df16 569 jTable.changeSelection(model.getRowCount()-1, 0, false, false);\r
a13899c5 570 addRow(row);\r
571 }\r
572 //\r
573 // remove selected line\r
574 //\r
575 if (arg0.getSource() == jButtonRemove) {\r
576 if (jTable.isEditing()){\r
577 jTable.getCellEditor().stopCellEditing();\r
578 }\r
579 int rowSelected = selectedRow;\r
580 if (rowSelected >= 0) {\r
581 model.removeRow(rowSelected);\r
582 removeRow(rowSelected);\r
583 }\r
584 }\r
585\r
586 if (arg0.getSource() == jButtonClearAll) {\r
587 if (model.getRowCount() == 0) {\r
588 return;\r
589 }\r
590 model.setRowCount(0);\r
591 clearAllRow();\r
592 }\r
593 \r
594 if (arg0.getSource() == jButtonGen) {\r
ce73a791 595 jTextFieldAdd.setText(Tools.generateUuidString());\r
a13899c5 596 }\r
597 \r
598 if (arg0.getActionCommand().equals("GenGuidValue")) {\r
599 jTextFieldAdd.setText(guidDialog.getGuid());\r
600 }\r
601 \r
602 }\r
603 \r
ce73a791 604 protected boolean dataValidation(String[] row){\r
605 if (!DataValidation.isUiNameType(row[0])) {\r
606 JOptionPane.showMessageDialog(this, "Name is NOT UiNameType.");\r
607 return false;\r
608 }\r
609 if (!DataValidation.isGuid(row[2])) {\r
610 JOptionPane.showMessageDialog(this, "Guid Value is NOT GuidType.");\r
611 return false;\r
612 }\r
613 if (!DataValidation.isC_NameType(row[1])) {\r
614 JOptionPane.showMessageDialog(this, "C_Name is NOT C_NameType.");\r
615 return false;\r
616 }\r
617 if (row[3].length() == 0) {\r
618 JOptionPane.showMessageDialog(this, "HelpText could NOT be empty.");\r
619 return false;\r
620 }\r
621 return true;\r
622 }\r
623 \r
a13899c5 624 protected void addRow(String[] row) {\r
625 Vector<String> vArch = iCheckBoxList.getAllCheckedItemsString();\r
2c85fbc8 626 if (vArch.size() == 0) {\r
627 vArch = null;\r
628 }\r
a13899c5 629 Vector<String> vModType = iCheckBoxList2.getAllCheckedItemsString();\r
2c85fbc8 630 if (vModType.size() == 0) {\r
631 vModType = null;\r
632 }\r
a13899c5 633 Vector<String> vguidType = iCheckBoxList1.getAllCheckedItemsString();\r
2c85fbc8 634 if (vguidType.size() == 0) {\r
635 vguidType = null;\r
636 }\r
637 if (docConsole != null) {\r
638 docConsole.setSaved(false);\r
639 }\r
a13899c5 640 sfc.genSpdGuidDeclarations(row[0], row[1], row[2], row[3], vArch, vModType, vguidType);\r
641 }\r
642 \r
643 protected void removeRow(int i){\r
644 sfc.removeSpdGuidDeclaration(i);\r
2c85fbc8 645 if (docConsole != null) {\r
646 docConsole.setSaved(false);\r
647 }\r
a13899c5 648 }\r
649 \r
650 protected void clearAllRow(){\r
651 sfc.removeSpdGuidDeclaration();\r
2c85fbc8 652 if (docConsole != null) {\r
653 docConsole.setSaved(false);\r
654 }\r
a13899c5 655 }\r
656\r
657 /**\r
658 Add contents in list to sfc\r
659 **/\r
660 protected void save() {\r
661 \r
662 }\r
663\r
664 /**\r
665 This method initializes jButtonBrowse \r
666 \r
667 @return javax.swing.JButton \r
668 **/\r
669 protected JButton getJButtonGen() {\r
670 if (jButtonGen == null) {\r
671 jButtonGen = new JButton();\r
672 jButtonGen.setBounds(new java.awt.Rectangle(379,58,92,21));\r
673 jButtonGen.setText("Gen GUID");\r
674 jButtonGen.setPreferredSize(new java.awt.Dimension(80,20));\r
675 jButtonGen.addActionListener(this);\r
676 }\r
677 return jButtonGen;\r
678 }\r
679 \r
680 /**\r
681 * This method initializes jTextFieldName \r
682 * \r
683 * @return javax.swing.JTextField \r
684 */\r
685 protected JTextField getJTextFieldName() {\r
686 if (jTextFieldName == null) {\r
687 jTextFieldName = new JTextField();\r
688 jTextFieldName.setBounds(new java.awt.Rectangle(138,10,337,20));\r
689 jTextFieldName.setPreferredSize(new java.awt.Dimension(335,20));\r
690 }\r
691 return jTextFieldName;\r
692 }\r
693\r
694 /**\r
695 * This method initializes jTextFieldVersion \r
696 * \r
697 * @return javax.swing.JTextField \r
698 */\r
699 protected JTextField getJTextFieldVersion() {\r
700 if (jTextFieldVersion == null) {\r
701 jTextFieldVersion = new JTextField();\r
702 jTextFieldVersion.setBounds(new java.awt.Rectangle(137,60,225,20));\r
703 jTextFieldVersion.setPreferredSize(new java.awt.Dimension(225,20));\r
704 }\r
705 return jTextFieldVersion;\r
706 }\r
707\r
708 public void componentResized(ComponentEvent arg0) {\r
709 int intPreferredWidth = 500;\r
710 \r
711 resizeComponentWidth(this.jTextFieldName, this.getWidth(), intPreferredWidth);\r
712 resizeComponentWidth(this.jTextFieldAdd, this.getWidth(), intPreferredWidth);\r
713 resizeComponentWidth(this.jTextFieldVersion, this.getWidth(), intPreferredWidth);\r
714 resizeComponentWidth(this.jTextField, this.getWidth(), intPreferredWidth);\r
715 resizeComponentWidth(this.jScrollPane, this.getWidth(), intPreferredWidth);\r
716 relocateComponentX(this.jButtonGen, this.getWidth(), this.getPreferredSize().width, 40);\r
717 \r
718 }\r
719 \r
720 /**\r
721 * This method initializes jTextField \r
722 * \r
723 * @return javax.swing.JTextField \r
724 */\r
725 private JTextField getJTextField() {\r
726 if (jTextField == null) {\r
727 jTextField = new JTextField();\r
728 jTextField.setBounds(new java.awt.Rectangle(136,85,337,20));\r
729 jTextField.setPreferredSize(new Dimension(335, 20));\r
730 }\r
731 return jTextField;\r
732 }\r
733\r
734 private JScrollPane getJScrollPaneArch() {\r
735 if (jScrollPaneArch == null) {\r
736 jScrollPaneArch = new JScrollPane();\r
737 jScrollPaneArch.setBounds(new java.awt.Rectangle(197,142,188,74));\r
738 jScrollPaneArch.setPreferredSize(new java.awt.Dimension(188, 74));\r
739 jScrollPaneArch.setViewportView(getICheckBoxList());\r
740 }\r
741 return jScrollPaneArch;\r
742 }\r
743 /**\r
744 * This method initializes iCheckBoxList \r
745 * \r
746 * @return org.tianocore.frameworkwizard.common.ui.iCheckBoxList.ICheckBoxList \r
747 */\r
748 private ICheckBoxList getICheckBoxList() {\r
749 if (iCheckBoxList == null) {\r
750 iCheckBoxList = new ICheckBoxList();\r
751 iCheckBoxList.setBounds(new java.awt.Rectangle(197,142,188,74));\r
752 Vector<String> v = new Vector<String>();\r
753 v.add("IA32");\r
754 v.add("X64");\r
755 v.add("IPF");\r
756 v.add("EBC");\r
ce73a791 757 v.add("ARM");\r
758 v.add("PPC");\r
a13899c5 759 iCheckBoxList.setAllItems(v);\r
760 }\r
761 return iCheckBoxList;\r
762 }\r
763\r
764 protected JScrollPane getJScrollPaneGuid() {\r
765 if (jScrollPaneGuid== null) {\r
766 jScrollPaneGuid = new JScrollPane();\r
767 jScrollPaneGuid.setPreferredSize(new java.awt.Dimension(190,74));\r
768 jScrollPaneGuid.setLocation(new java.awt.Point(400,142));\r
769 jScrollPaneGuid.setSize(new java.awt.Dimension(260,74));\r
770 jScrollPaneGuid.setViewportView(getICheckBoxList1());\r
771 }\r
772 return jScrollPaneGuid;\r
773 }\r
774 /**\r
775 * This method initializes iCheckBoxList1 \r
776 * \r
777 * @return org.tianocore.frameworkwizard.common.ui.iCheckBoxList.ICheckBoxList \r
778 */\r
779 private ICheckBoxList getICheckBoxList1() {\r
780 if (iCheckBoxList1 == null) {\r
781 iCheckBoxList1 = new ICheckBoxList();\r
782 iCheckBoxList1.setBounds(new java.awt.Rectangle(400,142,177,74));\r
783 Vector<String> v = new Vector<String>();\r
784 v.add("DATA_HUB_RECORD");\r
785 v.add("EFI_EVENT");\r
786 v.add("EFI_SYSTEM_CONFIGURATION_TABLE");\r
787 v.add("EFI_VARIABLE");\r
788 v.add("GUID");\r
789 v.add("HII_PACKAGE_LIST");\r
790 v.add("HOB");\r
791 v.add("TOKEN_SPACE_GUID");\r
792 \r
793 iCheckBoxList1.setAllItems(v);\r
794 }\r
795 return iCheckBoxList1;\r
796 }\r
797\r
798 private JScrollPane getJScrollPaneModule() {\r
799 if (jScrollPaneModule == null) {\r
800 jScrollPaneModule = new JScrollPane();\r
801 jScrollPaneModule.setBounds(new java.awt.Rectangle(14,142,170,74));\r
802 jScrollPaneModule.setPreferredSize(new java.awt.Dimension(170, 74));\r
803 jScrollPaneModule.setViewportView(getICheckBoxList2());\r
804 }\r
805 return jScrollPaneModule;\r
806 }\r
807 /**\r
808 * This method initializes iCheckBoxList2 \r
809 * \r
810 * @return org.tianocore.frameworkwizard.common.ui.iCheckBoxList.ICheckBoxList \r
811 */\r
812 private ICheckBoxList getICheckBoxList2() {\r
813 if (iCheckBoxList2 == null) {\r
814 iCheckBoxList2 = new ICheckBoxList();\r
815 iCheckBoxList2.setBounds(new java.awt.Rectangle(14,142,170,74));\r
816 Vector<String> v = new Vector<String>();\r
817 v.add("BASE");\r
818 v.add("SEC");\r
819 v.add("PEI_CORE");\r
820 v.add("PEIM");\r
821 v.add("DXE_CORE");\r
822 v.add("DXE_DRIVER");\r
823 v.add("DXE_RUNTIME_DRIVER");\r
824 v.add("DXE_SAL_DRIVER");\r
825 v.add("DXE_SMM_DRIVER");\r
826 v.add("UEFI_DRIVER");\r
827 v.add("UEFI_APPLICATION");\r
828 v.add("USER_DEFINED");\r
829 iCheckBoxList2.setAllItems(v);\r
830 }\r
831 return iCheckBoxList2;\r
832 }\r
833\r
834 public static void main(String[] args){\r
835 new SpdGuidDecls().setVisible(true);\r
836 }\r
837\r
838 protected DefaultTableModel getModel() {\r
839 return model;\r
840 }\r
841\r
842 protected void setModel(DefaultTableModel model) {\r
843 this.model = model;\r
844 }\r
845 \r
846 protected String vectorToString(Vector<String> v) {\r
847 String s = " ";\r
848 for (int i = 0; i < v.size(); ++i) {\r
849 s += v.get(i);\r
850 s += " ";\r
851 }\r
852 return s.trim();\r
853 }\r
854 \r
855 protected Vector<String> stringToVector(String s){\r
856 if (s == null) {\r
857 return null;\r
858 }\r
859 String[] sArray = s.split(" ");\r
860 Vector<String> v = new Vector<String>();\r
861 for (int i = 0; i < sArray.length; ++i) {\r
862 v.add(sArray[i]);\r
863 }\r
864 return v;\r
865 }\r
866\r
867 protected JLabel getJLabel3() {\r
868 return jLabel3;\r
869 }\r
870}\r
871\r
872\r