]> git.proxmox.com Git - mirror_edk2.git/blame_incremental - Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdDynamicPcdBuildDefinitions.java
1. Fix EDKT306 Output different error message for different condition in workspace...
[mirror_edk2.git] / Tools / Source / FrameworkWizard / src / org / tianocore / frameworkwizard / platform / ui / FpdDynamicPcdBuildDefinitions.java
... / ...
CommitLineData
1package org.tianocore.frameworkwizard.platform.ui;\r
2\r
3import java.awt.BorderLayout;\r
4\r
5import javax.swing.ButtonGroup;\r
6import javax.swing.JOptionPane;\r
7import javax.swing.JPanel;\r
8import javax.swing.JScrollPane;\r
9import javax.swing.JTable;\r
10import javax.swing.ListSelectionModel;\r
11import javax.swing.event.ListSelectionEvent;\r
12import javax.swing.event.ListSelectionListener;\r
13import javax.swing.table.DefaultTableModel;\r
14\r
15import org.tianocore.PlatformSurfaceAreaDocument;\r
16import org.tianocore.frameworkwizard.common.DataValidation;\r
17import org.tianocore.frameworkwizard.common.Tools;\r
18import org.tianocore.frameworkwizard.common.Identifications.OpeningPlatformType;\r
19import org.tianocore.frameworkwizard.common.ui.IInternalFrame;\r
20import javax.swing.JCheckBox;\r
21import java.awt.FlowLayout;\r
22import javax.swing.JRadioButton;\r
23import javax.swing.JButton;\r
24import javax.swing.JLabel;\r
25import javax.swing.JTextField;\r
26\r
27public class FpdDynamicPcdBuildDefinitions extends IInternalFrame {\r
28\r
29 /**\r
30 * \r
31 */\r
32 private static final long serialVersionUID = 1L;\r
33 private JPanel jContentPane = null;\r
34 private JPanel jPanelContentNorth = null;\r
35 private JPanel jPanelContentCenter = null;\r
36 private JPanel jPanelContentSouth = null;\r
37 private JScrollPane jScrollPaneDynPcd = null;\r
38 private JTable jTableDynPcd = null;\r
39 private DynPcdTableModel modelPcd = null; \r
40 private DynPcdTableModel modelSku = null;\r
41 private FpdFileContents ffc = null;\r
42 private OpeningPlatformType docConsole = null;\r
43 private JPanel jPanelSkuInfo = null;\r
44 private JCheckBox jCheckBoxSkuEnable = null;\r
45 private JPanel jPanelDynPcdValue = null;\r
46 private JRadioButton jRadioButtonHii = null;\r
47 private JRadioButton jRadioButtonVpd = null;\r
48 private JScrollPane jScrollPaneSkuInfo = null;\r
49 private JTable jTableSkuInfo = null;\r
50 private JButton jButtonSkuInfoUpdate = null;\r
51 private JLabel jLabelVarName = null;\r
52 private JTextField jTextFieldVarName = null;\r
53 private JLabel jLabelVarGuid = null;\r
54 private JTextField jTextFieldVarGuid = null;\r
55 private JLabel jLabelPad = null;\r
56 private JLabel jLabelVarOffset = null;\r
57 private JTextField jTextFieldVarOffset = null;\r
58 private JLabel jLabelHiiDefaultValue = null;\r
59 private JTextField jTextFieldHiiDefaultValue = null;\r
60 private JTextField jTextFieldVpdOffset = null;\r
61 private JLabel jLabelVpdOffset = null;\r
62 private JTextField jTextFieldDefaultValue = null;\r
63 private JRadioButton jRadioButtonDefaultValue = null;\r
64 private ButtonGroup bg = new ButtonGroup();\r
65 private JLabel jLabelPadd = null;\r
66 /**\r
67 * This is the default constructor\r
68 */\r
69 public FpdDynamicPcdBuildDefinitions() {\r
70 super();\r
71 initialize();\r
72 }\r
73\r
74 public FpdDynamicPcdBuildDefinitions(PlatformSurfaceAreaDocument.PlatformSurfaceArea fpd){\r
75 this();\r
76 init(fpd);\r
77 }\r
78 \r
79 public FpdDynamicPcdBuildDefinitions(OpeningPlatformType opt) {\r
80 this(opt.getXmlFpd());\r
81 docConsole = opt;\r
82 }\r
83 \r
84 public void init(PlatformSurfaceAreaDocument.PlatformSurfaceArea fpd) {\r
85 if (ffc == null) {\r
86 ffc = new FpdFileContents(fpd);\r
87 }\r
88 String[][] saa = new String[ffc.getDynamicPcdBuildDataCount()][5];\r
89 ffc.getDynamicPcdBuildData(saa);\r
90 for (int i = 0; i < saa.length; ++i) {\r
91 modelPcd.addRow(saa[i]);\r
92 }\r
93 \r
94 saa = new String[ffc.getPlatformDefsSkuInfoCount()][2];\r
95 ffc.getPlatformDefsSkuInfos(saa);\r
96 for (int i = 0; i < saa.length; ++i) {\r
97 modelSku.addRow(saa[i]);\r
98 }\r
99 \r
100 }\r
101 /**\r
102 * This method initializes this\r
103 * \r
104 * @return void\r
105 */\r
106 private void initialize() {\r
107 this.setSize(661, 558);\r
108 this.setTitle("Dynamic PCD Build Definitions");\r
109 this.setContentPane(getJContentPane());\r
110 this.setVisible(true);\r
111 }\r
112\r
113 /**\r
114 * This method initializes jContentPane\r
115 * \r
116 * @return javax.swing.JPanel\r
117 */\r
118 private JPanel getJContentPane() {\r
119 if (jContentPane == null) {\r
120 jContentPane = new JPanel();\r
121 jContentPane.setLayout(new BorderLayout());\r
122 jContentPane.add(getJPanelContentNorth(), java.awt.BorderLayout.NORTH);\r
123 jContentPane.add(getJPanelContentCenter(), java.awt.BorderLayout.CENTER);\r
124 jContentPane.add(getJPanelContentSouth(), java.awt.BorderLayout.SOUTH);\r
125 }\r
126 return jContentPane;\r
127 }\r
128\r
129 /**\r
130 * This method initializes jPanel \r
131 * \r
132 * @return javax.swing.JPanel \r
133 */\r
134 private JPanel getJPanelContentNorth() {\r
135 if (jPanelContentNorth == null) {\r
136 jPanelContentNorth = new JPanel();\r
137 }\r
138 return jPanelContentNorth;\r
139 }\r
140\r
141 /**\r
142 * This method initializes jPanel1 \r
143 * \r
144 * @return javax.swing.JPanel \r
145 */\r
146 private JPanel getJPanelContentCenter() {\r
147 if (jPanelContentCenter == null) {\r
148 jPanelContentCenter = new JPanel();\r
149 jPanelContentCenter.add(getJScrollPaneDynPcd(), null);\r
150 jPanelContentCenter.add(getJPanelSkuInfo(), null);\r
151 jPanelContentCenter.add(getJPanelDynPcdValue(), null);\r
152 }\r
153 return jPanelContentCenter;\r
154 }\r
155\r
156 /**\r
157 * This method initializes jPanel2 \r
158 * \r
159 * @return javax.swing.JPanel \r
160 */\r
161 private JPanel getJPanelContentSouth() {\r
162 if (jPanelContentSouth == null) {\r
163 jPanelContentSouth = new JPanel();\r
164 }\r
165 return jPanelContentSouth;\r
166 }\r
167\r
168 /**\r
169 * This method initializes jScrollPane \r
170 * \r
171 * @return javax.swing.JScrollPane \r
172 */\r
173 private JScrollPane getJScrollPaneDynPcd() {\r
174 if (jScrollPaneDynPcd == null) {\r
175 jScrollPaneDynPcd = new JScrollPane();\r
176 jScrollPaneDynPcd.setPreferredSize(new java.awt.Dimension(600,200));\r
177 jScrollPaneDynPcd.setViewportView(getJTableDynPcd());\r
178 }\r
179 return jScrollPaneDynPcd;\r
180 }\r
181\r
182 /**\r
183 * This method initializes jTable \r
184 * \r
185 * @return javax.swing.JTable \r
186 */\r
187 private JTable getJTableDynPcd() {\r
188 if (jTableDynPcd == null) {\r
189 modelPcd = new DynPcdTableModel();\r
190 modelPcd.addColumn("CName");\r
191 modelPcd.addColumn("Token");\r
192 modelPcd.addColumn("TokenSpaceGuid");\r
193 modelPcd.addColumn("MaxDatumSize");\r
194 modelPcd.addColumn("DatumType");\r
195 jTableDynPcd = new JTable(modelPcd);\r
196 jTableDynPcd.setRowHeight(20);\r
197 jTableDynPcd.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
198 jTableDynPcd.getSelectionModel().addListSelectionListener(new ListSelectionListener(){\r
199 public void valueChanged(ListSelectionEvent e) {\r
200 if (e.getValueIsAdjusting()){\r
201 return;\r
202 }\r
203 ListSelectionModel lsm = (ListSelectionModel)e.getSource();\r
204 if (lsm.isSelectionEmpty()) {\r
205 return;\r
206 }\r
207 else{\r
208 int selectedRow = lsm.getMinSelectionIndex();\r
209 jTextFieldDefaultValue.setText("");\r
210 jTextFieldVpdOffset.setText("");\r
211 jTextFieldVarName.setText("");\r
212 jTextFieldVarGuid.setText("");\r
213 jTextFieldVarOffset.setText("");\r
214 jTextFieldHiiDefaultValue.setText("");\r
215 displayDetails(selectedRow);\r
216 }\r
217 }\r
218 });\r
219 }\r
220 return jTableDynPcd;\r
221 }\r
222 //\r
223 // should display default sku info here, as no selection event of table1 will be triggered when change selection of rows in table. \r
224 //\r
225 private void displayDetails(int i) {\r
226 jTableSkuInfo.changeSelection(0, 1, false, false);\r
227 int skuCount = ffc.getDynamicPcdSkuInfoCount(i);\r
228 String defaultVal = ffc.getDynamicPcdBuildDataValue(i);\r
229 if (defaultVal != null) {\r
230 jRadioButtonDefaultValue.setSelected(true);\r
231 jTextFieldDefaultValue.setText(defaultVal);\r
232 if ( skuCount == 1) {\r
233 jCheckBoxSkuEnable.setSelected(false);\r
234 }\r
235 else{\r
236 jCheckBoxSkuEnable.setSelected(true);\r
237 }\r
238 }\r
239 \r
240 else if (ffc.getDynamicPcdBuildDataVpdOffset(i) != null) {\r
241 jRadioButtonVpd.setSelected(true);\r
242 jTextFieldVpdOffset.setText(ffc.getDynamicPcdBuildDataVpdOffset(i));\r
243 if (skuCount ==1) {\r
244 jCheckBoxSkuEnable.setSelected(false);\r
245 \r
246 }\r
247 else{\r
248 jCheckBoxSkuEnable.setSelected(true);\r
249 }\r
250 }\r
251 else {\r
252 jRadioButtonHii.setSelected(true);\r
253 String[][] saa = new String[ffc.getDynamicPcdSkuInfoCount(i)][7];\r
254 ffc.getDynamicPcdSkuInfos(i, saa);\r
255 \r
256 String varDisplayName = Tools.convertUnicodeHexStringToString(saa[0][1]);\r
257 jTextFieldVarName.setText(varDisplayName);\r
258 \r
259 jTextFieldVarGuid.setText(saa[0][2]);\r
260 jTextFieldVarOffset.setText(saa[0][3]);\r
261 jTextFieldHiiDefaultValue.setText(saa[0][4]);\r
262 if (skuCount ==1) {\r
263 jCheckBoxSkuEnable.setSelected(false);\r
264 }\r
265 else{\r
266 jCheckBoxSkuEnable.setSelected(true);\r
267 }\r
268 }\r
269 \r
270 }\r
271 \r
272 private void displaySkuInfoDetails(int i) {\r
273 int pcdSelected = jTableDynPcd.getSelectedRow();\r
274 if (pcdSelected < 0) {\r
275 return;\r
276 }\r
277 \r
278 String[][] saa = new String[ffc.getDynamicPcdSkuInfoCount(pcdSelected)][7];\r
279 ffc.getDynamicPcdSkuInfos(pcdSelected, saa);\r
280 \r
281 if (saa[i][5] != null){\r
282 jRadioButtonVpd.setSelected(true);\r
283 jTextFieldVpdOffset.setText(saa[i][5]);\r
284 } \r
285 \r
286 else if (saa[i][1] != null) {\r
287 jRadioButtonHii.setSelected(true);\r
288 String varDisplayName = Tools.convertUnicodeHexStringToString(saa[i][1]);\r
289 jTextFieldVarName.setText(varDisplayName);\r
290 jTextFieldVarGuid.setText(saa[i][2]);\r
291 jTextFieldVarOffset.setText(saa[i][3]);\r
292 jTextFieldHiiDefaultValue.setText(saa[i][4]);\r
293 }\r
294 \r
295 else{\r
296 jRadioButtonDefaultValue.setSelected(true);\r
297 jTextFieldDefaultValue.setText(saa[i][6]);\r
298 }\r
299 \r
300 }\r
301\r
302 /**\r
303 * This method initializes jPanel3 \r
304 * \r
305 * @return javax.swing.JPanel \r
306 */\r
307 private JPanel getJPanelSkuInfo() {\r
308 if (jPanelSkuInfo == null) {\r
309 FlowLayout flowLayout = new FlowLayout();\r
310 flowLayout.setAlignment(java.awt.FlowLayout.LEFT);\r
311 jPanelSkuInfo = new JPanel();\r
312 jPanelSkuInfo.setBorder(javax.swing.BorderFactory.createEtchedBorder(javax.swing.border.EtchedBorder.RAISED));\r
313 jPanelSkuInfo.setLayout(flowLayout);\r
314 jPanelSkuInfo.setPreferredSize(new java.awt.Dimension(600,100));\r
315 jPanelSkuInfo.add(getJCheckBoxSkuEnable(), null);\r
316 jPanelSkuInfo.add(getJScrollPaneSkuInfo(), null);\r
317 jPanelSkuInfo.add(getJButtonSkuInfoUpdate(), null);\r
318 }\r
319 return jPanelSkuInfo;\r
320 }\r
321\r
322 /**\r
323 * This method initializes jCheckBox \r
324 * \r
325 * @return javax.swing.JCheckBox \r
326 */\r
327 private JCheckBox getJCheckBoxSkuEnable() {\r
328 if (jCheckBoxSkuEnable == null) {\r
329 jCheckBoxSkuEnable = new JCheckBox();\r
330 jCheckBoxSkuEnable.setText("SKU Enable");\r
331 jCheckBoxSkuEnable.addItemListener(new java.awt.event.ItemListener() {\r
332 public void itemStateChanged(java.awt.event.ItemEvent e) {\r
333 jTableSkuInfo.setEnabled(jCheckBoxSkuEnable.isSelected());\r
334 }\r
335 });\r
336 }\r
337 return jCheckBoxSkuEnable;\r
338 }\r
339\r
340 \r
341 /**\r
342 * This method initializes jPanel4 \r
343 * \r
344 * @return javax.swing.JPanel \r
345 */\r
346 private JPanel getJPanelDynPcdValue() {\r
347 if (jPanelDynPcdValue == null) {\r
348 jLabelVpdOffset = new JLabel();\r
349 jLabelVpdOffset.setPreferredSize(new java.awt.Dimension(80,20));\r
350 jLabelVpdOffset.setText("VPD Offset");\r
351 jLabelHiiDefaultValue = new JLabel();\r
352 jLabelHiiDefaultValue.setPreferredSize(new java.awt.Dimension(100,20));\r
353 jLabelHiiDefaultValue.setText("HII Default Value");\r
354 jLabelVarOffset = new JLabel();\r
355 jLabelVarOffset.setText("Variable Offset");\r
356 jLabelVarOffset.setPreferredSize(new java.awt.Dimension(90,20));\r
357 jLabelPad = new JLabel();\r
358 jLabelPad.setText(" ");\r
359 jLabelVarGuid = new JLabel();\r
360 jLabelVarGuid.setText("Variable GUID");\r
361 jLabelVarGuid.setPreferredSize(new java.awt.Dimension(100,20));\r
362 jLabelVarName = new JLabel();\r
363 jLabelVarName.setText("Variable Name");\r
364 jLabelVarName.setToolTipText("");\r
365 jLabelVarName.setPreferredSize(new java.awt.Dimension(90,20));\r
366 FlowLayout flowLayout1 = new FlowLayout();\r
367 flowLayout1.setAlignment(java.awt.FlowLayout.LEFT);\r
368 jPanelDynPcdValue = new JPanel();\r
369 jPanelDynPcdValue.setBorder(javax.swing.BorderFactory.createEtchedBorder(javax.swing.border.EtchedBorder.LOWERED));\r
370 jPanelDynPcdValue.setLayout(flowLayout1);\r
371 jPanelDynPcdValue.setPreferredSize(new java.awt.Dimension(600,120));\r
372 jPanelDynPcdValue.add(getJRadioButtonHii(), null);\r
373 jPanelDynPcdValue.add(jLabelVarName, null);\r
374 jPanelDynPcdValue.add(getJTextFieldVarName(), null);\r
375 jPanelDynPcdValue.add(jLabelVarGuid, null);\r
376 jPanelDynPcdValue.add(getJTextFieldVarGuid(), null);\r
377 jPanelDynPcdValue.add(jLabelPad, null);\r
378 jPanelDynPcdValue.add(jLabelVarOffset, null);\r
379 jPanelDynPcdValue.add(getJTextFieldVarOffset(), null);\r
380 jPanelDynPcdValue.add(jLabelHiiDefaultValue, null);\r
381 jPanelDynPcdValue.add(getJTextFieldHiiDefaultValue(), null);\r
382 jPanelDynPcdValue.add(getJRadioButtonVpd(), null);\r
383 jPanelDynPcdValue.add(jLabelVpdOffset, null);\r
384 jPanelDynPcdValue.add(getJTextFieldVpdOffset(), null);\r
385 jLabelPadd = new JLabel();\r
386 jLabelPadd.setText(" ");\r
387 jPanelDynPcdValue.add(jLabelPadd, null);\r
388 jLabelVarName.setEnabled(false);\r
389 jLabelVarGuid.setEnabled(false);\r
390 jLabelHiiDefaultValue.setEnabled(false);\r
391 jLabelVarOffset.setEnabled(false);\r
392 jLabelVpdOffset.setEnabled(false);\r
393 jPanelDynPcdValue.add(getJRadioButtonDefaultValue(), null);\r
394 jPanelDynPcdValue.add(getJTextFieldDefaultValue(), null);\r
395 bg.add(jRadioButtonHii);\r
396 bg.add(jRadioButtonVpd);\r
397 } \r
398\r
399 return jPanelDynPcdValue;\r
400 }\r
401\r
402 /**\r
403 * This method initializes jRadioButton \r
404 * \r
405 * @return javax.swing.JRadioButton \r
406 */\r
407 private JRadioButton getJRadioButtonHii() {\r
408 if (jRadioButtonHii == null) {\r
409 jRadioButtonHii = new JRadioButton();\r
410 jRadioButtonHii.setText("HII Enable");\r
411 jRadioButtonHii.addItemListener(new java.awt.event.ItemListener() {\r
412 public void itemStateChanged(java.awt.event.ItemEvent e) {\r
413 boolean selected = jRadioButtonHii.isSelected();\r
414 jLabelVarName.setEnabled(selected);\r
415 jLabelVarGuid.setEnabled(selected);\r
416 jLabelPad.setEnabled(selected);\r
417 jLabelVarOffset.setEnabled(selected);\r
418 jLabelHiiDefaultValue.setEnabled(selected);\r
419 jTextFieldVarName.setEnabled(selected);\r
420 jTextFieldVarGuid.setEnabled(selected);\r
421 jTextFieldVarOffset.setEnabled(selected);\r
422 jTextFieldHiiDefaultValue.setEnabled(selected);\r
423 }\r
424 });\r
425 }\r
426 return jRadioButtonHii;\r
427 }\r
428\r
429 /**\r
430 * This method initializes jRadioButton1 \r
431 * \r
432 * @return javax.swing.JRadioButton \r
433 */\r
434 private JRadioButton getJRadioButtonVpd() {\r
435 if (jRadioButtonVpd == null) {\r
436 jRadioButtonVpd = new JRadioButton();\r
437 jRadioButtonVpd.setText("VPD Enable");\r
438 jRadioButtonVpd.addItemListener(new java.awt.event.ItemListener() {\r
439 public void itemStateChanged(java.awt.event.ItemEvent e) {\r
440 boolean selected = jRadioButtonVpd.isSelected();\r
441 jTextFieldVpdOffset.setEnabled(selected);\r
442 jLabelVpdOffset.setEnabled(selected);\r
443 }\r
444 });\r
445 }\r
446 return jRadioButtonVpd;\r
447 }\r
448\r
449 /**\r
450 * This method initializes jScrollPane1 \r
451 * \r
452 * @return javax.swing.JScrollPane \r
453 */\r
454 private JScrollPane getJScrollPaneSkuInfo() {\r
455 if (jScrollPaneSkuInfo == null) {\r
456 jScrollPaneSkuInfo = new JScrollPane();\r
457 jScrollPaneSkuInfo.setPreferredSize(new java.awt.Dimension(300,80));\r
458 jScrollPaneSkuInfo.setViewportView(getJTableSkuInfo());\r
459 }\r
460 return jScrollPaneSkuInfo;\r
461 }\r
462\r
463 /**\r
464 * This method initializes jTable1 \r
465 * \r
466 * @return javax.swing.JTable \r
467 */\r
468 private JTable getJTableSkuInfo() {\r
469 if (jTableSkuInfo == null) {\r
470 modelSku = new DynPcdTableModel();\r
471 jTableSkuInfo = new JTable(modelSku);\r
472 modelSku.addColumn("SKU ID");\r
473 modelSku.addColumn("SKU Name");\r
474 \r
475 jTableSkuInfo.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
476 jTableSkuInfo.getSelectionModel().addListSelectionListener(new ListSelectionListener(){\r
477 public void valueChanged(ListSelectionEvent e) {\r
478 if (jTableDynPcd.getSelectedRow() < 0) {\r
479 return;\r
480 }\r
481 if (e.getValueIsAdjusting()){\r
482 return;\r
483 }\r
484 ListSelectionModel lsm = (ListSelectionModel)e.getSource();\r
485 if (lsm.isSelectionEmpty()) {\r
486 return;\r
487 }\r
488 else{\r
489 jTextFieldDefaultValue.setText("");\r
490 jTextFieldVpdOffset.setText("");\r
491 jTextFieldVarName.setText("");\r
492 jTextFieldVarGuid.setText("");\r
493 jTextFieldVarOffset.setText("");\r
494 jTextFieldHiiDefaultValue.setText("");\r
495 int selected = lsm.getMinSelectionIndex();\r
496 displaySkuInfoDetails(selected);\r
497 }\r
498 }\r
499 });\r
500 }\r
501 return jTableSkuInfo;\r
502 }\r
503\r
504 /**\r
505 * This method initializes jButton \r
506 * \r
507 * @return javax.swing.JButton \r
508 */\r
509 private JButton getJButtonSkuInfoUpdate() {\r
510 if (jButtonSkuInfoUpdate == null) {\r
511 jButtonSkuInfoUpdate = new JButton();\r
512 jButtonSkuInfoUpdate.setPreferredSize(new java.awt.Dimension(180,20));\r
513 jButtonSkuInfoUpdate.setText(" Update SKU Information");\r
514 jButtonSkuInfoUpdate.addActionListener(new java.awt.event.ActionListener() {\r
515 public void actionPerformed(java.awt.event.ActionEvent e) {\r
516 int pcdSelected = jTableDynPcd.getSelectedRow();\r
517 if (pcdSelected < 0) {\r
518 return;\r
519 }\r
520 docConsole.setSaved(false);\r
521 updateSkuInfo(pcdSelected);\r
522 \r
523 }\r
524 });\r
525 }\r
526 return jButtonSkuInfoUpdate;\r
527 }\r
528 \r
529 private void updateSkuInfo (int pcdSelected) {\r
530 int skuCount = ffc.getDynamicPcdSkuInfoCount(pcdSelected);\r
531 \r
532 String varName = null;\r
533 String varGuid = null;\r
534 String varOffset = null;\r
535 String hiiDefault = null;\r
536 String value = null;\r
537 String vpdOffset = null;\r
538 if (jRadioButtonHii.isSelected()) {\r
539 varName = Tools.convertStringToUnicodeHexString(jTextFieldVarName.getText());\r
540 if (varName.length() == 0) {\r
541 JOptionPane.showMessageDialog(this, "Variable Name is Empty.");\r
542 return;\r
543 }\r
544 varGuid = jTextFieldVarGuid.getText();\r
545 if (varGuid.length() == 0) {\r
546 JOptionPane.showMessageDialog(this, "Variable GUID is Empty.");\r
547 return;\r
548 }\r
549 varOffset = jTextFieldVarOffset.getText();\r
550 if (!DataValidation.isHex64BitDataType(varOffset)) {\r
551 JOptionPane.showMessageDialog(this, "Variable Offset is NOT Hex64BitDataType.");\r
552 return;\r
553 }\r
554 hiiDefault = jTextFieldHiiDefaultValue.getText();\r
555 if (!DataValidation.isDefaultValueType(hiiDefault)) {\r
556 JOptionPane.showMessageDialog(this, "Default Value is NOT DefaultValueType.");\r
557 return;\r
558 }\r
559 }\r
560 if (jRadioButtonVpd.isSelected()) {\r
561 vpdOffset = jTextFieldVpdOffset.getText();\r
562 if (!DataValidation.isHex64BitDataType(vpdOffset)) {\r
563 JOptionPane.showMessageDialog(this, "VPD Offset is NOT Hex64BitDataType.");\r
564 return;\r
565 }\r
566 }\r
567 if (jRadioButtonDefaultValue.isSelected()) {\r
568 value = jTextFieldDefaultValue.getText();\r
569 if (!DataValidation.isDefaultValueType(value)) {\r
570 JOptionPane.showMessageDialog(this, "Value is NOT DefaultValueType.");\r
571 return;\r
572 }\r
573 }\r
574 //\r
575 // SKU disabled. only modify data for default SKU.\r
576 //\r
577 if (!jCheckBoxSkuEnable.isSelected()) {\r
578 if (true) {\r
579 ffc.removeDynamicPcdBuildDataSkuInfo(pcdSelected);\r
580 if (jRadioButtonHii.isSelected()) {\r
581 ffc.genDynamicPcdBuildDataSkuInfo("0", varName, varGuid, varOffset, hiiDefault, null, null, pcdSelected);\r
582 }\r
583 else if (jRadioButtonVpd.isSelected()){\r
584 ffc.genDynamicPcdBuildDataSkuInfo("0", null, null, null, null, vpdOffset, null, pcdSelected);\r
585 }\r
586 else{\r
587 ffc.genDynamicPcdBuildDataSkuInfo("0", null, null, null, null, null, value, pcdSelected);\r
588 }\r
589 }\r
590 }\r
591 //\r
592 // SKU Enabled, need add data to all SKUs.\r
593 //\r
594 if (jCheckBoxSkuEnable.isSelected()) {\r
595 if (skuCount == 1) {\r
596 \r
597 for (int i = 1; i < jTableSkuInfo.getRowCount(); ++i) {\r
598 ffc.genDynamicPcdBuildDataSkuInfo(jTableSkuInfo.getValueAt(i, 0)+"", varName, varGuid, varOffset, hiiDefault, vpdOffset, value, pcdSelected);\r
599 }\r
600 }\r
601 else {\r
602 int row = jTableSkuInfo.getSelectedRow();\r
603 if (row < 0) {\r
604 return;\r
605 }\r
606 ffc.updateDynamicPcdBuildDataSkuInfo(jTableSkuInfo.getValueAt(row, 0)+"", varName, varGuid, varOffset, hiiDefault, vpdOffset, value, pcdSelected);\r
607 }\r
608 }\r
609 }\r
610 /**\r
611 * This method initializes jTextField \r
612 * \r
613 * @return javax.swing.JTextField \r
614 */\r
615 private JTextField getJTextFieldVarName() {\r
616 if (jTextFieldVarName == null) {\r
617 jTextFieldVarName = new JTextField();\r
618 jTextFieldVarName.setPreferredSize(new java.awt.Dimension(150,20));\r
619 jTextFieldVarName.setEnabled(false);\r
620 }\r
621 return jTextFieldVarName;\r
622 }\r
623\r
624 /**\r
625 * This method initializes jTextField1 \r
626 * \r
627 * @return javax.swing.JTextField \r
628 */\r
629 private JTextField getJTextFieldVarGuid() {\r
630 if (jTextFieldVarGuid == null) {\r
631 jTextFieldVarGuid = new JTextField();\r
632 jTextFieldVarGuid.setPreferredSize(new java.awt.Dimension(150,20));\r
633 jTextFieldVarGuid.setEnabled(false);\r
634 }\r
635 return jTextFieldVarGuid;\r
636 }\r
637\r
638 /**\r
639 * This method initializes jTextField2 \r
640 * \r
641 * @return javax.swing.JTextField \r
642 */\r
643 private JTextField getJTextFieldVarOffset() {\r
644 if (jTextFieldVarOffset == null) {\r
645 jTextFieldVarOffset = new JTextField();\r
646 jTextFieldVarOffset.setPreferredSize(new java.awt.Dimension(150,20));\r
647 jTextFieldVarOffset.setEnabled(false);\r
648 }\r
649 return jTextFieldVarOffset;\r
650 }\r
651\r
652 /**\r
653 * This method initializes jTextField3 \r
654 * \r
655 * @return javax.swing.JTextField \r
656 */\r
657 private JTextField getJTextFieldHiiDefaultValue() {\r
658 if (jTextFieldHiiDefaultValue == null) {\r
659 jTextFieldHiiDefaultValue = new JTextField();\r
660 jTextFieldHiiDefaultValue.setPreferredSize(new java.awt.Dimension(150,20));\r
661 jTextFieldHiiDefaultValue.setEnabled(false);\r
662 }\r
663 return jTextFieldHiiDefaultValue;\r
664 }\r
665\r
666 /**\r
667 * This method initializes jTextField4 \r
668 * \r
669 * @return javax.swing.JTextField \r
670 */\r
671 private JTextField getJTextFieldVpdOffset() {\r
672 if (jTextFieldVpdOffset == null) {\r
673 jTextFieldVpdOffset = new JTextField();\r
674 jTextFieldVpdOffset.setPreferredSize(new java.awt.Dimension(150,20));\r
675 jTextFieldVpdOffset.setEnabled(false);\r
676 }\r
677 return jTextFieldVpdOffset;\r
678 }\r
679\r
680 /**\r
681 * This method initializes jTextField5 \r
682 * \r
683 * @return javax.swing.JTextField \r
684 */\r
685 private JTextField getJTextFieldDefaultValue() {\r
686 if (jTextFieldDefaultValue == null) {\r
687 jTextFieldDefaultValue = new JTextField();\r
688 jTextFieldDefaultValue.setPreferredSize(new java.awt.Dimension(150,20));\r
689 }\r
690 return jTextFieldDefaultValue;\r
691 }\r
692\r
693 /**\r
694 * This method initializes jRadioButton2 \r
695 * \r
696 * @return javax.swing.JRadioButton \r
697 */\r
698 private JRadioButton getJRadioButtonDefaultValue() {\r
699 if (jRadioButtonDefaultValue == null) {\r
700 jRadioButtonDefaultValue = new JRadioButton();\r
701 jRadioButtonDefaultValue.setText("Default PCD Value");\r
702 jRadioButtonDefaultValue.setSelected(true);\r
703 jRadioButtonDefaultValue.setPreferredSize(new java.awt.Dimension(175,20));\r
704 jRadioButtonDefaultValue.addItemListener(new java.awt.event.ItemListener() {\r
705 public void itemStateChanged(java.awt.event.ItemEvent e) {\r
706 jTextFieldDefaultValue.setEnabled(jRadioButtonDefaultValue.isSelected());\r
707 }\r
708 });\r
709 bg.add(jRadioButtonDefaultValue);\r
710 }\r
711 return jRadioButtonDefaultValue;\r
712 }\r
713\r
714} // @jve:decl-index=0:visual-constraint="10,10"\r
715\r
716class DynPcdTableModel extends DefaultTableModel {\r
717 /**\r
718 * \r
719 */\r
720 private static final long serialVersionUID = 1L;\r
721\r
722 public boolean isCellEditable(int row, int col) {\r
723 \r
724 return false;\r
725 }\r
726}\r