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