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