]> git.proxmox.com Git - mirror_edk2.git/blame - Tools/Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/packaging/ui/SpdPcdDefs.java
Added code to fetch more detailed error message from XMLBeans when there's error...
[mirror_edk2.git] / Tools / Java / Source / FrameworkWizard / src / org / tianocore / frameworkwizard / packaging / ui / SpdPcdDefs.java
CommitLineData
a13899c5 1/** @file\r
2 Java class SpdPcdDefs is GUI for create PCD 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
a13899c5 16import java.awt.event.ActionEvent;\r
a13899c5 17import java.awt.event.ComponentEvent;\r
18\r
a13899c5 19import javax.swing.DefaultCellEditor;\r
20import javax.swing.JFrame;\r
21import javax.swing.JOptionPane;\r
22import javax.swing.JPanel;\r
a13899c5 23import javax.swing.JLabel;\r
24import javax.swing.JTextField;\r
25import javax.swing.JComboBox;\r
26import javax.swing.JButton;\r
27import javax.swing.ListSelectionModel;\r
28\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.TableColumn;\r
37import javax.swing.table.TableModel;\r
38\r
39import org.tianocore.PackageSurfaceAreaDocument;\r
a13899c5 40\r
ce73a791 41import org.tianocore.frameworkwizard.common.DataValidation;\r
8792f60f 42import org.tianocore.frameworkwizard.common.Tools;\r
d6d24759 43import org.tianocore.frameworkwizard.common.Identifications.OpeningPackageType;\r
a13899c5 44import org.tianocore.frameworkwizard.common.ui.IInternalFrame;\r
45import org.tianocore.frameworkwizard.common.ui.StarLabel;\r
46import javax.swing.JScrollPane;\r
47import javax.swing.JTable;\r
48import javax.swing.JCheckBox;\r
49import org.tianocore.frameworkwizard.common.ui.iCheckBoxList.ICheckBoxList;\r
ce73a791 50import org.tianocore.frameworkwizard.platform.ui.ListEditor;\r
fbf730ff 51import org.tianocore.frameworkwizard.platform.ui.LongTextEditor;\r
ce73a791 52\r
a13899c5 53import java.awt.Rectangle;\r
54import java.util.Vector;\r
55\r
56/**\r
57 GUI for create PCD definition elements of spd file\r
58 \r
59 @since PackageEditor 1.0\r
60**/\r
61public class SpdPcdDefs extends IInternalFrame implements TableModelListener{\r
62\r
0b5e1cc3 63 /**\r
64 * \r
65 */\r
66 private static final long serialVersionUID = 1L;\r
67\r
a13899c5 68 static JFrame frame;\r
69 \r
70 private JPanel jContentPane = null; \r
71\r
72 private JLabel jLabelItemType = null;\r
73\r
74 private JLabel jLabelC_Name = null;\r
75\r
76 private JTextField jTextFieldC_Name = null;\r
77\r
78 private JLabel jLabelToken = null;\r
79\r
80 private JTextField jTextFieldToken = null;\r
81\r
82 private JLabel jLabelDataType = null;\r
83\r
84 private JButton jButtonOk = null;\r
85\r
86 private JButton jButtonCancel = null;\r
87\r
88 private JComboBox jComboBoxDataType = null;\r
89\r
90 private SpdFileContents sfc = null;\r
d6d24759 91 \r
92 private OpeningPackageType docConsole = null;\r
a13899c5 93\r
94 private StarLabel jStarLabel2 = null;\r
95\r
96 private StarLabel jStarLabel3 = null;\r
97\r
98 private StarLabel jStarLabel4 = null;\r
99\r
100 private StarLabel jStarLabel = null;\r
101\r
102 private StarLabel jStarLabel1 = null;\r
103\r
104 private JLabel jLabelTokenSpace = null;\r
105\r
5f97c029 106 private JComboBox jComboBoxTsGuid = null;\r
a13899c5 107\r
108 private JLabel jLabelVarVal = null;\r
109\r
4da2e625 110 private JTextField jTextFieldHelp = null;\r
a13899c5 111\r
112 private JLabel jLabelDefVal = null;\r
113\r
114 private JTextField jTextFieldDefaultValue = null;\r
115\r
116 private JButton jButtonAdd = null;\r
117 \r
118 private CheckboxTableModel model = null;\r
119\r
120 private JButton jButtonRemove = null;\r
121\r
122 private JButton jButtonClearAll = null;\r
123\r
a13899c5 124 private JScrollPane jScrollPane = null;\r
125\r
126 private JTable jTable = null;\r
127 \r
128 private JScrollPane topScrollPane = null; // @jve:decl-index=0:visual-constraint="390,10"\r
129 \r
130 private int selectedRow = -1;\r
131\r
132 private StarLabel starLabel = null;\r
133\r
4da2e625 134 private JCheckBox jCheckBoxFeatureFlag = null;\r
a13899c5 135\r
4da2e625 136 private JCheckBox jCheckBoxFixedAtBuild = null;\r
a13899c5 137\r
4da2e625 138 private JCheckBox jCheckBoxPatchInMod = null;\r
a13899c5 139\r
4da2e625 140 private JCheckBox jCheckBoxDyn = null;\r
a13899c5 141\r
4da2e625 142 private JCheckBox jCheckBoxDynEx = null;\r
a13899c5 143\r
4da2e625 144 private JScrollPane jScrollPaneArch = null;\r
a13899c5 145\r
4da2e625 146 private ICheckBoxList iCheckBoxListArch = null;\r
a13899c5 147\r
4da2e625 148 private JScrollPane jScrollPaneMod = null;\r
a13899c5 149\r
4da2e625 150 private ICheckBoxList iCheckBoxListMod = null;\r
a13899c5 151\r
4da2e625 152 private JLabel jLabelSupMod = null;\r
a13899c5 153\r
4da2e625 154 private JLabel jLabelSupArch = null;\r
5a502bd4 155 \r
156 private final int pcdCNameMinWidth = 200;\r
157 private final int pcdTokenMinWidth = 100;\r
158 private final int pcdTokenSpaceMinWidth = 200;\r
159 private final int datumTypeMinWidth = 80;\r
160 private final int defaultValueMinWidth = 100;\r
161 private final int helpTextMinWidth = 200;\r
162 private final int usageMinWidth = 60;\r
163 private final int supArchMinWidth = 200;\r
164 private final int supModMinWidth = 200;\r
a13899c5 165\r
166 /**\r
167 This method initializes this\r
168 \r
169 **/\r
170 private void initialize() {\r
209abc92 171 this.setTitle("PCD Declarations");\r
a13899c5 172 this.setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);\r
173\r
174 }\r
175\r
176 /**\r
177 This method initializes jTextFieldC_Name \r
178 \r
179 @return javax.swing.JTextField \r
180 **/\r
181 private JTextField getJTextFieldC_Name() {\r
182 if (jTextFieldC_Name == null) {\r
183 jTextFieldC_Name = new JTextField();\r
184 jTextFieldC_Name.setBounds(new java.awt.Rectangle(156,9,317,20));\r
185 jTextFieldC_Name.setPreferredSize(new java.awt.Dimension(315,20));\r
186 }\r
187 return jTextFieldC_Name;\r
188 }\r
189\r
190 /**\r
191 This method initializes jTextFieldToken \r
192 \r
193 @return javax.swing.JTextField \r
194 **/\r
195 private JTextField getJTextFieldToken() {\r
196 if (jTextFieldToken == null) {\r
197 jTextFieldToken = new JTextField();\r
198 jTextFieldToken.setBounds(new java.awt.Rectangle(156,33,317,20));\r
199 jTextFieldToken.setPreferredSize(new java.awt.Dimension(315,20));\r
200 }\r
201 return jTextFieldToken;\r
202 }\r
203\r
204 /**\r
205 This method initializes jButtonOk \r
206 \r
207 @return javax.swing.JButton \r
208 **/\r
209 private JButton getJButtonOk() {\r
210 if (jButtonOk == null) {\r
211 jButtonOk = new JButton();\r
212 jButtonOk.setText("OK");\r
213 jButtonOk.setBounds(new java.awt.Rectangle(279,276,90,20));\r
214 jButtonOk.setVisible(false);\r
215 jButtonOk.addActionListener(this);\r
216 }\r
217 return jButtonOk;\r
218 }\r
219\r
220 /**\r
221 This method initializes jButtonCancel \r
222 \r
223 @return javax.swing.JButton \r
224 **/\r
225 private JButton getJButtonCancel() {\r
226 if (jButtonCancel == null) {\r
227 jButtonCancel = new JButton();\r
228 jButtonCancel.setText("Cancel");\r
229 jButtonCancel.setBounds(new java.awt.Rectangle(389,276,82,20));\r
230 jButtonCancel.setVisible(false);\r
231 jButtonCancel.addActionListener(this);\r
232 }\r
233 return jButtonCancel;\r
234 }\r
235\r
236 /**\r
237 This method initializes jComboBoxDataType \r
238 \r
239 @return javax.swing.JComboBox \r
240 **/\r
241 private JComboBox getJComboBoxDataType() {\r
242 if (jComboBoxDataType == null) {\r
243 jComboBoxDataType = new JComboBox();\r
244 jComboBoxDataType.setBounds(new java.awt.Rectangle(156,84,110,20));\r
245 }\r
246 return jComboBoxDataType;\r
247 }\r
248\r
249 /**\r
250 This is the default constructor\r
251 **/\r
252 public SpdPcdDefs() {\r
253 super();\r
254 init();\r
255 initialize();\r
256 \r
257 }\r
258\r
259 public SpdPcdDefs(PackageSurfaceAreaDocument.PackageSurfaceArea inPsa) {\r
260 this();\r
261 sfc = new SpdFileContents(inPsa);\r
262 init(sfc);\r
263 }\r
d6d24759 264 \r
265 public SpdPcdDefs(OpeningPackageType opt) {\r
266 this(opt.getXmlSpd());\r
267 docConsole = opt;\r
268 }\r
a13899c5 269 /**\r
270 This method initializes this\r
271 \r
272 @return void\r
273 **/\r
274 private void init() {\r
275 this.setSize(500, 650);\r
276 this.setContentPane(getJContentPane());\r
277 this.addInternalFrameListener(new InternalFrameAdapter(){\r
278 public void internalFrameDeactivated(InternalFrameEvent e){\r
279 if (jTable.isEditing()) {\r
280 jTable.getCellEditor().stopCellEditing();\r
281 }\r
282 }\r
283 });\r
5f97c029 284 \r
a13899c5 285 this.setVisible(true);\r
286 }\r
287\r
288 private void init(SpdFileContents sfc){\r
5f97c029 289 initFrame(sfc);\r
a13899c5 290 if (sfc.getSpdPcdDefinitionCount() == 0) {\r
291 return ;\r
292 }\r
293 String[][] saa = new String[sfc.getSpdPcdDefinitionCount()][8];\r
294 String[][] usage = new String[sfc.getSpdPcdDefinitionCount()][5];\r
295 Object[] rowData = new Object[13];\r
296 sfc.getSpdPcdDefinitions(saa, usage);\r
297 int i = 0;\r
298 while (i < saa.length) {\r
299 \r
300 for (int k = 0; k < 6; ++k) {\r
301 rowData[k] = saa[i][k];\r
302 }\r
af25df16 303 for (int m = 6; m < 11; ++m) {\r
a13899c5 304 rowData[m] = new Boolean("false");\r
305 }\r
306 int j = 0;\r
307 while (j < 5) {\r
308 if (usage[i][j] == null || usage[i][j].length()==0){\r
309 ++j;\r
310 continue;\r
311 }\r
312 if (usage[i][j].equals("FEATURE_FLAG")){\r
313 rowData[6] = new Boolean("true");\r
314 }\r
315 if (usage[i][j].equals("FIXED_AT_BUILD")){\r
316 rowData[7] = new Boolean("true");\r
317 }\r
318 if (usage[i][j].equals("PATCHABLE_IN_MODULE")){\r
319 rowData[8] = new Boolean("true");\r
320 }\r
321 if (usage[i][j].equals("DYNAMIC")){\r
322 rowData[9] = new Boolean("true");\r
323 }\r
324 if (usage[i][j].equals("DYNAMIC_EX")){\r
325 rowData[10] = new Boolean("true");\r
326 }\r
327 \r
328 ++j;\r
329 }\r
330 \r
331 rowData[11] = saa[i][6];\r
332 rowData[12] = saa[i][7];\r
333 \r
334 model.addRow(rowData);\r
335 \r
336 i++;\r
337 }\r
338 \r
339 \r
340 \r
341 }\r
342 \r
343 private JScrollPane getJContentPane(){\r
344 if (topScrollPane == null){\r
345 topScrollPane = new JScrollPane();\r
346 topScrollPane.setSize(new java.awt.Dimension(482,451));\r
347 topScrollPane.setViewportView(getJContentPane1());\r
348 }\r
349 return topScrollPane;\r
350 }\r
351 private JPanel getJContentPane1() {\r
352 if (jContentPane == null) { \r
353 \r
4da2e625 354 jLabelSupArch = new JLabel();\r
355 jLabelSupArch.setBounds(new java.awt.Rectangle(241,192,89,16));\r
816ea437 356 jLabelSupArch.setText("Supported Architectures");\r
4da2e625 357 jLabelSupArch.setEnabled(true);\r
358 jLabelSupMod = new JLabel();\r
359 jLabelSupMod.setBounds(new java.awt.Rectangle(15,193,103,16));\r
816ea437 360 jLabelSupMod.setText("Supported Module type");\r
4da2e625 361 jLabelSupMod.setEnabled(true);\r
a13899c5 362 starLabel = new StarLabel();\r
363 starLabel.setBounds(new java.awt.Rectangle(2,134,10,20));\r
364 jLabelDefVal = new JLabel();\r
365 jLabelDefVal.setBounds(new java.awt.Rectangle(277,84,80,20));\r
366 jLabelDefVal.setText("Default Value");\r
367 jLabelVarVal = new JLabel();\r
368 jLabelVarVal.setBounds(new java.awt.Rectangle(11,133,84,20));\r
369 jLabelVarVal.setText("Valid Usage");\r
370 jLabelC_Name = new JLabel();\r
816ea437 371 jLabelC_Name.setText("C Name");\r
a13899c5 372 jLabelC_Name.setBounds(new java.awt.Rectangle(11,9,140,20));\r
373 jLabelTokenSpace = new JLabel();\r
374 jLabelTokenSpace.setBounds(new java.awt.Rectangle(11,58,140,20));\r
375 jLabelTokenSpace.setText("Token Space");\r
376 jLabelDataType = new JLabel();\r
377 jLabelDataType.setText("Data Type");\r
378 jLabelDataType.setBounds(new java.awt.Rectangle(11,83,140,20));\r
379 jLabelToken = new JLabel();\r
c1dbe93d 380 jLabelToken.setText("Token Number");\r
a13899c5 381 jLabelToken.setBounds(new java.awt.Rectangle(11,33,140,20));\r
382 jLabelItemType = new JLabel();\r
383 jLabelItemType.setText("Help Text");\r
384 jLabelItemType.setBounds(new java.awt.Rectangle(11,108,140,20));\r
385 \r
386 \r
387 jContentPane = new JPanel();\r
388 jContentPane.setLayout(null);\r
389 jContentPane.setPreferredSize(new java.awt.Dimension(479,375));\r
390 \r
391 jContentPane.add(jLabelItemType, null);\r
392 jContentPane.add(jLabelC_Name, null);\r
393 jContentPane.add(jLabelTokenSpace, null);\r
5f97c029 394 jContentPane.add(getJComboBoxTsGuid(), null);\r
a13899c5 395 jContentPane.add(jLabelVarVal, null);\r
396 jContentPane.add(getJTextFieldC_Name(), null);\r
397 jContentPane.add(jLabelToken, null);\r
398 jContentPane.add(getJTextFieldToken(), null);\r
399 jContentPane.add(jLabelDataType, null);\r
400 jContentPane.add(getJButtonOk(), null);\r
401 jContentPane.add(getJButtonCancel(), null);\r
402 jContentPane.add(getJComboBoxDataType(), null);\r
403 \r
404 jStarLabel = new StarLabel();\r
405 jStarLabel1 = new StarLabel();\r
406 jStarLabel1.setBounds(new java.awt.Rectangle(2,8,10,20));\r
407 jStarLabel2 = new StarLabel();\r
408 jStarLabel3 = new StarLabel();\r
409 jStarLabel4 = new StarLabel();\r
410 jStarLabel.setLocation(new java.awt.Point(2,84));\r
411 jStarLabel4.setLocation(new java.awt.Point(2, 109));\r
412 jStarLabel2.setLocation(new java.awt.Point(2,33));\r
413 jStarLabel3.setLocation(new java.awt.Point(2, 58));\r
414 jStarLabel3.setSize(new java.awt.Dimension(8,20));\r
415 jContentPane.add(jStarLabel2, null);\r
416 jContentPane.add(jStarLabel3, null);\r
417 jContentPane.add(jStarLabel, null);\r
418 jContentPane.add(jStarLabel1, null);\r
419 jContentPane.add(jStarLabel4, null);\r
4da2e625 420 jContentPane.add(getJTextFieldHelp(), null);\r
a13899c5 421 jContentPane.add(jLabelDefVal, null);\r
422 jContentPane.add(getJTextFieldDefaultValue(), null);\r
423 jContentPane.add(getJButtonAdd(), null);\r
424 jContentPane.add(getJButtonRemove(), null);\r
425 jContentPane.add(getJButtonClearAll(), null);\r
a13899c5 426 jContentPane.add(getJScrollPane(), null);\r
427 jContentPane.add(starLabel, null);\r
4da2e625 428 jContentPane.add(getJCheckBoxFeatureFlag(), null);\r
429 jContentPane.add(getJCheckBoxFixedAtBuild(), null);\r
430 jContentPane.add(getJCheckBoxPatchInMod(), null);\r
431 jContentPane.add(getJCheckBoxDyn(), null);\r
432 jContentPane.add(getJCheckBoxDynEx(), null);\r
433 jContentPane.add(getJScrollPaneArch(), null);\r
434 jContentPane.add(getJScrollPaneMod(), null);\r
435 jContentPane.add(jLabelSupMod, null);\r
436 jContentPane.add(jLabelSupArch, null);\r
a13899c5 437 }\r
438 return jContentPane;\r
439 }\r
440\r
441 /**\r
442 This method initializes comboboxes \r
443 jContentPane.add(jLabelTokenSpace, null);\r
444 \r
445 **/\r
5f97c029 446 private void initFrame(SpdFileContents sfc) {\r
a13899c5 447\r
448 jComboBoxDataType.addItem("UINT8");\r
449 jComboBoxDataType.addItem("UINT16");\r
450 jComboBoxDataType.addItem("UINT32");\r
451 jComboBoxDataType.addItem("UINT64");\r
452 jComboBoxDataType.addItem("VOID*");\r
453 jComboBoxDataType.addItem("BOOLEAN");\r
454 jComboBoxDataType.setSelectedIndex(0);\r
5f97c029 455 \r
456 Vector<String> vGuidCName = new Vector<String>();\r
457 sfc.getSpdGuidDeclWithType(vGuidCName, "TOKEN_SPACE_GUID");\r
458 for (int i = 0; i < vGuidCName.size(); ++i) {\r
459 jComboBoxTsGuid.addItem(vGuidCName.get(i));\r
460 }\r
a13899c5 461 }\r
462\r
463 public void actionPerformed(ActionEvent arg0) {\r
464 \r
5f97c029 465 \r
a13899c5 466 if (arg0.getSource() == jButtonOk) {\r
467 this.save();\r
468 this.dispose();\r
a13899c5 469 }\r
470 if (arg0.getSource() == jButtonCancel) {\r
471 this.dispose();\r
472 }\r
473\r
474 if (arg0.getSource() == jButtonAdd) {\r
475 //ToDo: check before add\r
5f97c029 476 \r
4da2e625 477 boolean[] b = {jCheckBoxFeatureFlag.isSelected(), jCheckBoxFixedAtBuild.isSelected(), jCheckBoxPatchInMod.isSelected(), jCheckBoxDyn.isSelected(), jCheckBoxDynEx.isSelected()};\r
ce73a791 478 if (!checkValidUsage(b)) {\r
a13899c5 479 return;\r
480 }\r
4da2e625 481 String archList = vectorToString(iCheckBoxListArch.getAllCheckedItemsString());\r
a13899c5 482 if (archList.length() == 0) {\r
483 archList = null;\r
484 }\r
4da2e625 485 String modTypeList = vectorToString(iCheckBoxListMod.getAllCheckedItemsString());\r
a13899c5 486 if (modTypeList.length() == 0) {\r
487 modTypeList = null;\r
488 }\r
489 Object[] row = {jTextFieldC_Name.getText(), jTextFieldToken.getText(),\r
5f97c029 490 jComboBoxTsGuid.getSelectedItem(), jComboBoxDataType.getSelectedItem(), \r
4da2e625 491 jTextFieldDefaultValue.getText(), jTextFieldHelp.getText(),\r
492 jCheckBoxFeatureFlag.isSelected(), jCheckBoxFixedAtBuild.isSelected(),\r
493 jCheckBoxPatchInMod.isSelected(), jCheckBoxDyn.isSelected(), jCheckBoxDynEx.isSelected(),\r
a13899c5 494 archList, modTypeList};\r
ce73a791 495 if (!dataValidation(row)) {\r
496 return;\r
497 }\r
5f97c029 498 \r
499 if (tokenCNameExisted(jTextFieldToken.getText(), jTextFieldC_Name.getText())) {\r
500 return;\r
501 }\r
502 \r
a13899c5 503 model.addRow(row);\r
af25df16 504 jTable.changeSelection(model.getRowCount()-1, 0, false, false);\r
4da2e625 505 String usage = getValidUsage(jCheckBoxFeatureFlag.isSelected(), jCheckBoxFixedAtBuild.isSelected(), jCheckBoxPatchInMod.isSelected(), jCheckBoxDyn.isSelected(), jCheckBoxDynEx.isSelected());\r
a13899c5 506 if (usage.length() == 0) {\r
507 usage = null;\r
508 }\r
509 sfc.genSpdPcdDefinitions(row[0]+"", row[1]+"", row[3]+"", usage, row[2]+"", row[4]+"", row[5]+"", archList, modTypeList);\r
5f97c029 510 docConsole.setSaved(false);\r
a13899c5 511 }\r
512 //\r
513 // remove selected line\r
514 //\r
515 if (arg0.getSource() == jButtonRemove) {\r
516 if (jTable.isEditing()){\r
517 jTable.getCellEditor().stopCellEditing();\r
518 }\r
519 int rowSelected = selectedRow;\r
520 if (rowSelected >= 0) {\r
521 model.removeRow(rowSelected);\r
522 sfc.removeSpdPcdDefinition(rowSelected);\r
5f97c029 523 docConsole.setSaved(false);\r
a13899c5 524 }\r
525 }\r
526\r
527 if (arg0.getSource() == jButtonClearAll) {\r
528 if (model.getRowCount() == 0) {\r
529 return;\r
530 }\r
531 model.setRowCount(0);\r
532 sfc.removeSpdPcdDefinition();\r
5f97c029 533 docConsole.setSaved(false);\r
a13899c5 534 }\r
535 \r
a13899c5 536 }\r
537\r
538 protected void save() {\r
539 \r
540 }\r
541\r
542 /**\r
5f97c029 543 * This method initializes jComboBoxTsGuid \r
a13899c5 544 * \r
5f97c029 545 * @return javax.swing.JComboBox \r
a13899c5 546 */\r
5f97c029 547 private JComboBox getJComboBoxTsGuid() {\r
548 if (jComboBoxTsGuid == null) {\r
549 jComboBoxTsGuid = new JComboBox();\r
550 jComboBoxTsGuid.setBounds(new java.awt.Rectangle(156,58,315,20));\r
551 \r
a13899c5 552 }\r
5f97c029 553 return jComboBoxTsGuid;\r
a13899c5 554 }\r
555\r
556 /**\r
557 * This method initializes jTextField \r
558 * \r
559 * @return javax.swing.JTextField \r
560 */\r
4da2e625 561 private JTextField getJTextFieldHelp() {\r
562 if (jTextFieldHelp == null) {\r
563 jTextFieldHelp = new JTextField();\r
564 jTextFieldHelp.setBounds(new java.awt.Rectangle(156,108,317,20));\r
565 jTextFieldHelp.setPreferredSize(new java.awt.Dimension(315,20));\r
a13899c5 566 }\r
4da2e625 567 return jTextFieldHelp;\r
a13899c5 568 }\r
569\r
570 /**\r
571 * This method initializes jTextFieldDefaultValue \r
572 * \r
573 * @return javax.swing.JTextField \r
574 */\r
575 private JTextField getJTextFieldDefaultValue() {\r
576 if (jTextFieldDefaultValue == null) {\r
577 jTextFieldDefaultValue = new JTextField();\r
578 jTextFieldDefaultValue.setBounds(new java.awt.Rectangle(368,84,105,20));\r
579 jTextFieldDefaultValue.setPreferredSize(new java.awt.Dimension(104,20));\r
580 }\r
581 return jTextFieldDefaultValue;\r
582 }\r
583\r
584 /**\r
585 * This method initializes jButtonAdd \r
586 * \r
587 * @return javax.swing.JButton \r
588 */\r
589 private JButton getJButtonAdd() {\r
590 if (jButtonAdd == null) {\r
591 jButtonAdd = new JButton();\r
592 jButtonAdd.setBounds(new java.awt.Rectangle(195,277,71,20));\r
593 jButtonAdd.setPreferredSize(new java.awt.Dimension(70,20));\r
594 jButtonAdd.setText("Add");\r
595 jButtonAdd.addActionListener(this);\r
596 }\r
597 return jButtonAdd; \r
598 \r
599 } \r
600 \r
601 /**\r
602 * This method initializes jButtonRemove \r
603 * \r
604 * @return javax.swing.JButton \r
605 */\r
606 private JButton getJButtonRemove() {\r
607 if (jButtonRemove == null) {\r
608 jButtonRemove = new JButton();\r
609 jButtonRemove.setBounds(new java.awt.Rectangle(278,277,81,20));\r
610 jButtonRemove.setPreferredSize(new java.awt.Dimension(70,20));\r
611 jButtonRemove.setText("Delete");\r
612 jButtonRemove.addActionListener(this);\r
613 }\r
614 return jButtonRemove;\r
615 }\r
616\r
617 /**\r
618 * This method initializes jButtonClearAll \r
619 * \r
620 * @return javax.swing.JButton \r
621 */\r
622 private JButton getJButtonClearAll() {\r
623 if (jButtonClearAll == null) {\r
624 jButtonClearAll = new JButton();\r
625 jButtonClearAll.setBounds(new java.awt.Rectangle(382,277,90,20));\r
626 jButtonClearAll.setPreferredSize(new java.awt.Dimension(81,20));\r
627 jButtonClearAll.setText("Clear All");\r
628 jButtonClearAll.addActionListener(this);\r
629 }\r
630 return jButtonClearAll;\r
631 }\r
632\r
a13899c5 633 public void componentResized(ComponentEvent arg0) {\r
634 int intPreferredWidth = 500;\r
635 \r
8792f60f 636 Tools.resizeComponentWidth(this.jTextFieldC_Name, this.getWidth(), intPreferredWidth);\r
637 Tools.resizeComponentWidth(this.jTextFieldToken, this.getWidth(), intPreferredWidth);\r
5f97c029 638 Tools.resizeComponentWidth(this.jComboBoxTsGuid, this.getWidth(), intPreferredWidth);\r
8792f60f 639 Tools.resizeComponentWidth(this.jTextFieldDefaultValue, this.getWidth(), intPreferredWidth);\r
640 Tools.resizeComponentWidth(this.jTextFieldHelp, this.getWidth(), intPreferredWidth);\r
641 Tools.resizeComponentWidth(this.jScrollPane, this.getWidth(), intPreferredWidth);\r
a13899c5 642 \r
8792f60f 643 Tools.resizeComponentWidth(this.jTextFieldDefaultValue, this.getWidth(), intPreferredWidth);\r
a13899c5 644// relocateComponentX(this.jButtonClearAll, this.getWidth(), DataType.SPACE_TO_RIGHT_FOR_GENERATE_BUTTON);\r
645// relocateComponentX(this.jButtonRemove, this.getWidth(), DataType.SPACE_TO_RIGHT_FOR_GENERATE_BUTTON);\r
646// relocateComponentX(this.jButtonAdd, this.getWidth(), DataType.SPACE_TO_RIGHT_FOR_GENERATE_BUTTON);\r
a13899c5 647 }\r
648\r
649 /**\r
650 * This method initializes jScrollPane \r
651 * \r
652 * @return javax.swing.JScrollPane \r
653 */\r
654 private JScrollPane getJScrollPane() {\r
655 if (jScrollPane == null) {\r
656 jScrollPane = new JScrollPane();\r
af25df16 657 jScrollPane.setBounds(new java.awt.Rectangle(5,301,1473,259));\r
a13899c5 658 jScrollPane.setViewportView(getJTable());\r
659 }\r
660 return jScrollPane;\r
661 }\r
662\r
663 /**\r
664 * This method initializes jTable \r
665 * \r
666 * @return javax.swing.JTable \r
667 */\r
668 private JTable getJTable() {\r
669 if (jTable == null) {\r
670 model = new CheckboxTableModel();\r
671 jTable = new JTable(model);\r
ce73a791 672 jTable.setRowHeight(20);\r
a13899c5 673 jTable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);\r
674 jTable.setSize(new Dimension(1000, 300));\r
675 \r
676 model.addColumn("C_Name");\r
677 model.addColumn("Token");\r
678 model.addColumn("TokenSpace");\r
679 model.addColumn("DatumType");\r
680 model.addColumn("DefaultValue");\r
681 model.addColumn("HelpText");\r
682 \r
683 model.addColumn("FeatureFlag");\r
684 model.addColumn("FixedAtBuild");\r
685 model.addColumn("PatchableInModule");\r
686 model.addColumn("Dynamic");\r
687 model.addColumn("DynamicEx");\r
688 model.addColumn("SupportedArch");\r
689 model.addColumn("SupportedModule");\r
a13899c5 690 \r
5a502bd4 691 TableColumn column = jTable.getColumnModel().getColumn(0);\r
692 column.setMinWidth(this.pcdCNameMinWidth);\r
693 column = jTable.getColumnModel().getColumn(1);\r
694 column.setMinWidth(this.pcdTokenMinWidth);\r
695 column = jTable.getColumnModel().getColumn(2);\r
696 column.setMinWidth(this.pcdTokenSpaceMinWidth);\r
697 column = jTable.getColumnModel().getColumn(3);\r
698 column.setMinWidth(this.datumTypeMinWidth);\r
699 column = jTable.getColumnModel().getColumn(4);\r
700 column.setMinWidth(this.defaultValueMinWidth);\r
701 column = jTable.getColumnModel().getColumn(5);\r
702 column.setMinWidth(this.helpTextMinWidth);\r
703 column = jTable.getColumnModel().getColumn(6);\r
704 column.setMinWidth(this.usageMinWidth);\r
705 column = jTable.getColumnModel().getColumn(7);\r
706 column.setMinWidth(this.usageMinWidth);\r
707 column = jTable.getColumnModel().getColumn(8);\r
708 column.setMinWidth(this.usageMinWidth);\r
709 column = jTable.getColumnModel().getColumn(9);\r
710 column.setMinWidth(this.usageMinWidth);\r
711 column = jTable.getColumnModel().getColumn(10);\r
712 column.setMinWidth(this.usageMinWidth);\r
713 column = jTable.getColumnModel().getColumn(11);\r
714 column.setMinWidth(this.supArchMinWidth);\r
715 column = jTable.getColumnModel().getColumn(12);\r
716 column.setMinWidth(this.supModMinWidth);\r
717 \r
a13899c5 718 //ToDo: add a valid usage editor\r
719 \r
720 JComboBox jComboBoxDataType = new JComboBox();\r
721 jComboBoxDataType.addItem("UINT8");\r
722 jComboBoxDataType.addItem("UINT16");\r
723 jComboBoxDataType.addItem("UINT32");\r
724 jComboBoxDataType.addItem("UINT64");\r
725 jComboBoxDataType.addItem("VOID*");\r
726 jComboBoxDataType.addItem("BOOLEAN");\r
727 TableColumn dataTypeColumn = jTable.getColumnModel().getColumn(3);\r
728 dataTypeColumn.setCellEditor(new DefaultCellEditor(jComboBoxDataType));\r
fbf730ff 729 \r
730 jTable.getColumnModel().getColumn(5).setCellEditor(new LongTextEditor());\r
a13899c5 731\r
ce73a791 732 Vector<String> vArch = new Vector<String>();\r
733 vArch.add("IA32");\r
734 vArch.add("X64");\r
735 vArch.add("IPF");\r
736 vArch.add("EBC");\r
737 vArch.add("ARM");\r
738 vArch.add("PPC");\r
739 jTable.getColumnModel().getColumn(11).setCellEditor(new ListEditor(vArch));\r
740 \r
741 Vector<String> vModule = new Vector<String>();\r
742 vModule.add("BASE");\r
743 vModule.add("SEC");\r
744 vModule.add("PEI_CORE");\r
745 vModule.add("PEIM");\r
746 vModule.add("DXE_CORE");\r
747 vModule.add("DXE_DRIVER");\r
748 vModule.add("DXE_RUNTIME_DRIVER");\r
749 vModule.add("DXE_SAL_DRIVER");\r
750 vModule.add("DXE_SMM_DRIVER");\r
751 vModule.add("UEFI_DRIVER");\r
752 vModule.add("UEFI_APPLICATION");\r
753 vModule.add("USER_DEFINED");\r
754 jTable.getColumnModel().getColumn(12).setCellEditor(new ListEditor(vModule));\r
755 \r
a13899c5 756 jTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
757 jTable.getSelectionModel().addListSelectionListener(new ListSelectionListener(){\r
758 public void valueChanged(ListSelectionEvent e) {\r
759 if (e.getValueIsAdjusting()){\r
760 return;\r
761 }\r
762 ListSelectionModel lsm = (ListSelectionModel)e.getSource();\r
763 if (lsm.isSelectionEmpty()) {\r
764 return;\r
765 }\r
766 else{\r
767 selectedRow = lsm.getMinSelectionIndex();\r
768 }\r
769 }\r
770 });\r
771 \r
772 jTable.getModel().addTableModelListener(this);\r
773 }\r
774 return jTable;\r
775 }\r
776 \r
777 public void tableChanged(TableModelEvent arg0) {\r
778 // TODO Auto-generated method stub\r
779 int row = arg0.getFirstRow();\r
a490bca8 780 int column = arg0.getColumn();\r
a13899c5 781 TableModel m = (TableModel)arg0.getSource();\r
782 if (arg0.getType() == TableModelEvent.UPDATE){\r
a490bca8 783 String[] sa = new String[9];\r
784 sfc.getSpdPcdDeclaration(sa, row);\r
785 Object cellData = m.getValueAt(row, column);\r
786 if (column < 6) {\r
787 \r
788 if (cellData == null) {\r
789 cellData = "";\r
790 }\r
791 if (cellData.equals(sa[column])) {\r
792 return;\r
793 }\r
794 if (cellData.toString().length() == 0 && sa[column] == null) {\r
795 return;\r
796 }\r
797 }\r
798 \r
799 String usage = getValidUsage(new Boolean(m.getValueAt(row, 6)+""), new Boolean(m.getValueAt(row, 7)+""), new Boolean(m.getValueAt(row, 8)+""), new Boolean(m.getValueAt(row, 9)+""), new Boolean(m.getValueAt(row, 10)+""));\r
800 if (usage.length() == 0) {\r
801 JOptionPane.showMessageDialog(frame, "You must choose at least one usage for PCD entry.");\r
802 return;\r
803 }\r
804 if (column <= 10 && column >= 6) {\r
fbf730ff 805 Vector<String> v = stringToVector(usage);\r
806 if (compareTwoVectors(v, stringToVector(sa[6]))) {\r
807 return;\r
808 }\r
809 if (v.contains("FEATURE_FLAG") && v.size() > 1) {\r
810 JOptionPane.showMessageDialog(frame, "Usage Feature Flag can NOT co-exist with others.");\r
a490bca8 811 return;\r
812 }\r
813 }\r
814 \r
815 if (column == 11) {\r
816 if (cellData == null) {\r
817 cellData = "";\r
818 }\r
819 if (cellData.equals(sa[7])) {\r
820 return;\r
821 }\r
822 if (cellData.toString().length() == 0 && sa[7] == null) {\r
823 return;\r
824 }\r
825 }\r
a13899c5 826 \r
a490bca8 827 if (column == 12) {\r
828 if (cellData == null) {\r
829 cellData = "";\r
830 }\r
831 if (cellData.equals(sa[8])) {\r
832 return;\r
833 }\r
834 if (cellData.toString().length() == 0 && sa[8] == null) {\r
835 return;\r
836 }\r
837 }\r
a13899c5 838 String cName = m.getValueAt(row, 0) + "";\r
839 String token = m.getValueAt(row, 1) + "";\r
840 String ts = m.getValueAt(row, 2) + "";\r
841 String dataType = m.getValueAt(row, 3) + "";\r
842 String defaultVal = m.getValueAt(row, 4) + "";\r
843 String help = m.getValueAt(row, 5) + "";\r
a490bca8 844 \r
209abc92 845 \r
846 String archList = null;\r
847 if (m.getValueAt(row, 11) != null){\r
848 archList = m.getValueAt(row, 11).toString();\r
849 }\r
850 String modTypeList = null;\r
851 if (m.getValueAt(row, 12) != null) {\r
852 modTypeList = m.getValueAt(row, 12).toString(); \r
853 }\r
a490bca8 854 \r
ce73a791 855 Object[] o = {cName, token, ts, dataType, defaultVal, help};\r
856 if (!dataValidation(o)){\r
857 return;\r
858 }\r
d6d24759 859 docConsole.setSaved(false);\r
a13899c5 860 sfc.updateSpdPcdDefinition(row, cName, token, dataType, usage, ts, defaultVal, help, archList, modTypeList);\r
861 }\r
862 }\r
863\r
864 /**\r
865 * This method initializes jCheckBox \r
866 * \r
867 * @return javax.swing.JCheckBox \r
868 */\r
4da2e625 869 private JCheckBox getJCheckBoxFeatureFlag() {\r
870 if (jCheckBoxFeatureFlag == null) {\r
871 jCheckBoxFeatureFlag = new JCheckBox();\r
872 jCheckBoxFeatureFlag.setBounds(new java.awt.Rectangle(156,161,100,21));\r
873 jCheckBoxFeatureFlag.setText("Feature Flag");\r
874 jCheckBoxFeatureFlag.setPreferredSize(new java.awt.Dimension(21,20));\r
5f97c029 875 jCheckBoxFeatureFlag.addItemListener(new java.awt.event.ItemListener() {\r
876 public void itemStateChanged(java.awt.event.ItemEvent e) {\r
877 if (jCheckBoxFeatureFlag.isSelected()) {\r
878 jCheckBoxPatchInMod.setSelected(false);\r
879 jCheckBoxFixedAtBuild.setSelected(false);\r
880 jCheckBoxDyn.setSelected(false);\r
881 jCheckBoxDynEx.setSelected(false);\r
882 }\r
883 }\r
884 });\r
a13899c5 885 }\r
4da2e625 886 return jCheckBoxFeatureFlag;\r
a13899c5 887 }\r
888\r
889 /**\r
890 * This method initializes jCheckBox1 \r
891 * \r
892 * @return javax.swing.JCheckBox \r
893 */\r
4da2e625 894 private JCheckBox getJCheckBoxFixedAtBuild() {\r
895 if (jCheckBoxFixedAtBuild == null) {\r
896 jCheckBoxFixedAtBuild = new JCheckBox();\r
897 jCheckBoxFixedAtBuild.setBounds(new java.awt.Rectangle(312,133,108,20));\r
898 jCheckBoxFixedAtBuild.setText("Fixed at Build");\r
899 jCheckBoxFixedAtBuild.setPreferredSize(new java.awt.Dimension(21,20));\r
5f97c029 900 jCheckBoxFixedAtBuild.addItemListener(new java.awt.event.ItemListener() {\r
901 public void itemStateChanged(java.awt.event.ItemEvent e) {\r
902 if (jCheckBoxFixedAtBuild.isSelected()) {\r
903 jCheckBoxFeatureFlag.setSelected(false);\r
904 }\r
905 }\r
906 });\r
a13899c5 907 }\r
4da2e625 908 return jCheckBoxFixedAtBuild;\r
a13899c5 909 }\r
910\r
911 /**\r
912 * This method initializes jCheckBox2 \r
913 * \r
914 * @return javax.swing.JCheckBox \r
915 */\r
4da2e625 916 private JCheckBox getJCheckBoxPatchInMod() {\r
917 if (jCheckBoxPatchInMod == null) {\r
918 jCheckBoxPatchInMod = new JCheckBox();\r
919 jCheckBoxPatchInMod.setBounds(new java.awt.Rectangle(156,133,154,20));\r
920 jCheckBoxPatchInMod.setText("Patchable in Module");\r
921 jCheckBoxPatchInMod.setPreferredSize(new java.awt.Dimension(21,20));\r
5f97c029 922 jCheckBoxPatchInMod.addItemListener(new java.awt.event.ItemListener() {\r
923 public void itemStateChanged(java.awt.event.ItemEvent e) {\r
924 if (jCheckBoxPatchInMod.isSelected()) {\r
925 jCheckBoxFeatureFlag.setSelected(false);\r
926 }\r
927 }\r
928 });\r
a13899c5 929 }\r
4da2e625 930 return jCheckBoxPatchInMod;\r
a13899c5 931 }\r
932\r
933 /**\r
934 * This method initializes jCheckBox3 \r
935 * \r
936 * @return javax.swing.JCheckBox \r
937 */\r
4da2e625 938 private JCheckBox getJCheckBoxDyn() {\r
939 if (jCheckBoxDyn == null) {\r
940 jCheckBoxDyn = new JCheckBox();\r
941 jCheckBoxDyn.setBounds(new java.awt.Rectangle(278,161,80,20));\r
942 jCheckBoxDyn.setText("Dynamic");\r
943 jCheckBoxDyn.setPreferredSize(new java.awt.Dimension(21,20));\r
5f97c029 944 jCheckBoxDyn.addItemListener(new java.awt.event.ItemListener() {\r
945 public void itemStateChanged(java.awt.event.ItemEvent e) {\r
946 if (jCheckBoxDyn.isSelected()) {\r
947 jCheckBoxFeatureFlag.setSelected(false);\r
948 }\r
949 }\r
950 });\r
a13899c5 951 }\r
4da2e625 952 return jCheckBoxDyn;\r
a13899c5 953 }\r
954\r
955 /**\r
956 * This method initializes jCheckBox4 \r
957 * \r
958 * @return javax.swing.JCheckBox \r
959 */\r
4da2e625 960 private JCheckBox getJCheckBoxDynEx() {\r
961 if (jCheckBoxDynEx == null) {\r
962 jCheckBoxDynEx = new JCheckBox();\r
963 jCheckBoxDynEx.setBounds(new java.awt.Rectangle(371,161,99,20));\r
964 jCheckBoxDynEx.setText("DynamicEx");\r
965 jCheckBoxDynEx.setPreferredSize(new java.awt.Dimension(21,20));\r
5f97c029 966 jCheckBoxDynEx.addItemListener(new java.awt.event.ItemListener() {\r
967 public void itemStateChanged(java.awt.event.ItemEvent e) {\r
968 if (jCheckBoxDynEx.isSelected()) {\r
969 jCheckBoxFeatureFlag.setSelected(false);\r
970 }\r
971 }\r
972 });\r
a13899c5 973 }\r
4da2e625 974 return jCheckBoxDynEx;\r
a13899c5 975 }\r
976 \r
977 private String getValidUsage(boolean ff, boolean fab, boolean pim, boolean d, boolean de) {\r
978 String usage = "";\r
979 if (ff){\r
980 usage += "FEATURE_FLAG ";\r
981 }\r
982 if (fab){\r
983 usage += "FIXED_AT_BUILD ";\r
984 }\r
985 if (pim){\r
986 usage += "PATCHABLE_IN_MODULE ";\r
987 }\r
988 if (d){\r
989 usage += "DYNAMIC ";\r
990 }\r
991 if (de){\r
992 usage += "DYNAMIC_EX ";\r
993 }\r
994 \r
995 return usage.trim();\r
996 }\r
997 \r
5f97c029 998 private boolean tokenCNameExisted(String token, String cName) {\r
999 Integer inputToken = Integer.decode(token);\r
1000 \r
1001 for (int i = 0; i < jTable.getRowCount(); ++i) {\r
1002 if (jTable.getValueAt(i, 0).equals(cName)) {\r
1003 JOptionPane.showMessageDialog(frame, "C_Name already existed in table.");\r
1004 return true;\r
1005 }\r
1006 if (jTable.getValueAt(i, 1).equals(token)) {\r
1007 JOptionPane.showMessageDialog(frame, "Token already existed in table.");\r
1008 return true;\r
1009 }\r
1010 Integer tokenValue = Integer.decode(jTable.getValueAt(i, 1)+"");\r
1011 if (tokenValue.equals(inputToken)) {\r
1012 JOptionPane.showMessageDialog(frame, "Same token value already existed in table.");\r
1013 return true;\r
1014 }\r
1015 \r
1016 }\r
1017 return false;\r
1018 }\r
1019 \r
ce73a791 1020 private boolean checkValidUsage(boolean[] b) {\r
1021 if (!(b[0] || b[1] || b[2] || b[3] || b[4])){\r
a13899c5 1022 JOptionPane.showMessageDialog(frame, "You must specify at least one usage.");\r
1023 return false;\r
1024 }\r
1025 return true;\r
1026 }\r
ce73a791 1027 private boolean dataValidation(Object[] row) {\r
1028 \r
1029 if (!DataValidation.isC_NameType(row[0].toString())) {\r
1030 JOptionPane.showMessageDialog(frame, "C_Name is NOT C_NameType.");\r
1031 return false;\r
1032 }\r
b876680a 1033 if (!DataValidation.isHexDoubleWordDataType(row[1].toString()) && \r
1034 !DataValidation.isInt(row[1].toString(), Integer.MIN_VALUE, Integer.MAX_VALUE)) {\r
ce73a791 1035 JOptionPane.showMessageDialog(frame, "Token is NOT correct.");\r
1036 return false;\r
1037 }\r
1038 if (!DataValidation.isC_NameType(row[2].toString())) {\r
1039 JOptionPane.showMessageDialog(frame, "Token Space is NOT C_NameType");\r
1040 return false;\r
1041 }\r
1042 if (row[5].toString().length() == 0) {\r
1043 JOptionPane.showMessageDialog(frame, "HelpText could NOT be empty.");\r
1044 return false;\r
1045 }\r
1046 return true;\r
1047 }\r
a13899c5 1048\r
1049 /**\r
1050 * This method initializes jScrollPane1 \r
1051 * \r
1052 * @return javax.swing.JScrollPane \r
1053 */\r
4da2e625 1054 private JScrollPane getJScrollPaneArch() {\r
1055 if (jScrollPaneArch == null) {\r
1056 jScrollPaneArch = new JScrollPane();\r
1057 jScrollPaneArch.setBounds(new java.awt.Rectangle(242,213,188,54));\r
1058 jScrollPaneArch.setViewportView(getICheckBoxListArch());\r
1059 jScrollPaneArch.setPreferredSize(new Dimension(188, 74));\r
a13899c5 1060 }\r
4da2e625 1061 return jScrollPaneArch;\r
a13899c5 1062 }\r
1063\r
1064 /**\r
1065 * This method initializes iCheckBoxList \r
1066 * \r
1067 * @return org.tianocore.frameworkwizard.common.ui.iCheckBoxList.ICheckBoxList \r
1068 */\r
4da2e625 1069 private ICheckBoxList getICheckBoxListArch() {\r
1070 if (iCheckBoxListArch == null) {\r
1071 iCheckBoxListArch = new ICheckBoxList();\r
1072 iCheckBoxListArch.setBounds(new Rectangle(197, 142, 188, 74));\r
a13899c5 1073 Vector<String> v = new Vector<String>();\r
1074 v.add("IA32");\r
1075 v.add("X64");\r
1076 v.add("IPF");\r
1077 v.add("EBC");\r
ce73a791 1078 v.add("ARM");\r
1079 v.add("PPC");\r
4da2e625 1080 iCheckBoxListArch.setAllItems(v);\r
a13899c5 1081 }\r
4da2e625 1082 return iCheckBoxListArch;\r
a13899c5 1083 }\r
1084\r
1085 /**\r
1086 * This method initializes jScrollPane2 \r
1087 * \r
1088 * @return javax.swing.JScrollPane \r
1089 */\r
4da2e625 1090 private JScrollPane getJScrollPaneMod() {\r
1091 if (jScrollPaneMod == null) {\r
1092 jScrollPaneMod = new JScrollPane();\r
1093 jScrollPaneMod.setBounds(new java.awt.Rectangle(15,213,199,55));\r
1094 jScrollPaneMod.setViewportView(getICheckBoxListMod());\r
1095 jScrollPaneMod.setPreferredSize(new Dimension(170, 74));\r
a13899c5 1096 }\r
4da2e625 1097 return jScrollPaneMod;\r
a13899c5 1098 }\r
1099\r
1100 /**\r
1101 * This method initializes iCheckBoxList1 \r
1102 * \r
1103 * @return org.tianocore.frameworkwizard.common.ui.iCheckBoxList.ICheckBoxList \r
1104 */\r
4da2e625 1105 private ICheckBoxList getICheckBoxListMod() {\r
1106 if (iCheckBoxListMod == null) {\r
1107 iCheckBoxListMod = new ICheckBoxList();\r
1108 iCheckBoxListMod.setBounds(new Rectangle(14, 142, 170, 74));\r
a13899c5 1109 Vector<String> v = new Vector<String>();\r
1110 v.add("BASE");\r
1111 v.add("SEC");\r
1112 v.add("PEI_CORE");\r
1113 v.add("PEIM");\r
1114 v.add("DXE_CORE");\r
1115 v.add("DXE_DRIVER");\r
1116 v.add("DXE_RUNTIME_DRIVER");\r
1117 v.add("DXE_SAL_DRIVER");\r
1118 v.add("DXE_SMM_DRIVER");\r
1119 v.add("UEFI_DRIVER");\r
1120 v.add("UEFI_APPLICATION");\r
1121 v.add("USER_DEFINED");\r
4da2e625 1122 iCheckBoxListMod.setAllItems(v);\r
a13899c5 1123 }\r
4da2e625 1124 return iCheckBoxListMod;\r
a13899c5 1125 }\r
1126 \r
1127 protected String vectorToString(Vector<String> v) {\r
1128 if (v == null) {\r
1129 return null;\r
1130 }\r
1131 String s = " ";\r
1132 for (int i = 0; i < v.size(); ++i) {\r
1133 s += v.get(i);\r
1134 s += " ";\r
1135 }\r
1136 return s.trim();\r
1137 }\r
a490bca8 1138 \r
1139 protected Vector<String> stringToVector(String s){\r
fbf730ff 1140 Vector<String> v = new Vector<String>();\r
a490bca8 1141 if (s == null) {\r
fbf730ff 1142 return v;\r
a490bca8 1143 }\r
1144 String[] sArray = s.split(" ");\r
fbf730ff 1145 \r
a490bca8 1146 for (int i = 0; i < sArray.length; ++i) {\r
1147 v.add(sArray[i]);\r
1148 }\r
1149 return v;\r
1150 }\r
1151 \r
1152 private boolean compareTwoVectors(Vector v1, Vector v2) {\r
1153 if (v1.size() != v2.size()) {\r
1154 return false;\r
1155 }\r
1156 for (int i = 0; i < v1.size(); ++i) {\r
1157 if (!v2.contains(v1.get(i))) {\r
1158 return false;\r
1159 }\r
1160 }\r
1161 return true;\r
1162 }\r
a13899c5 1163} // @jve:decl-index=0:visual-constraint="22,11"\r
1164\r
1165class CheckboxTableModel extends DefaultTableModel {\r
0b5e1cc3 1166 /**\r
1167 * \r
1168 */\r
1169 private static final long serialVersionUID = 1L;\r
1170\r
1171 public Class<?> getColumnClass (int c) {\r
a13899c5 1172 if (getValueAt(0, c) != null){\r
1173 return getValueAt(0, c).getClass();\r
1174 }\r
1175 return String.class;\r
1176 }\r
1177}\r