]> git.proxmox.com Git - mirror_edk2.git/blame - Tools/Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdDynamicPcdBuildDefinitions.java
1. Update ICheckBoxList to add one attribute "selected". Set the first item of ICheck...
[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
a13899c5 21import javax.swing.JRadioButton;\r
22import javax.swing.JButton;\r
23import javax.swing.JLabel;\r
24import javax.swing.JTextField;\r
a0783edc 25import java.awt.GridLayout;\r
50d4c727 26import java.util.ArrayList;\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
50d4c727 65 private JScrollPane jScrollPane = null;\r
a13899c5 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
d6d24759 79 public FpdDynamicPcdBuildDefinitions(OpeningPlatformType opt) {\r
80 this(opt.getXmlFpd());\r
81 docConsole = opt;\r
82 }\r
83 \r
a13899c5 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
4da2e625 91 modelPcd.addRow(saa[i]);\r
a13899c5 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
4da2e625 97 modelSku.addRow(saa[i]);\r
a13899c5 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
a0783edc 122 jContentPane.add(getJScrollPaneDynPcd(), java.awt.BorderLayout.NORTH);\r
123 jContentPane.add(getJPanelSkuInfo(), java.awt.BorderLayout.CENTER);\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
50d4c727 136 jScrollPaneDynPcd.setPreferredSize(new java.awt.Dimension(100,250));\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
4da2e625 272 jPanelSkuInfo = new JPanel();\r
50d4c727 273 jPanelSkuInfo.setLayout(new BorderLayout());\r
4da2e625 274 jPanelSkuInfo.setBorder(javax.swing.BorderFactory.createEtchedBorder(javax.swing.border.EtchedBorder.RAISED));\r
50d4c727 275 jPanelSkuInfo.setPreferredSize(new java.awt.Dimension(600,120));\r
276\r
277// jPanelSkuInfo.add(getJPanelSkuInfoN(), java.awt.BorderLayout.NORTH);\r
278 jPanelSkuInfo.add(getJScrollPane(), java.awt.BorderLayout.NORTH);\r
279 jPanelSkuInfo.add(getJScrollPaneSkuInfo(), java.awt.BorderLayout.CENTER);\r
280 \r
281 \r
282// jPanelSkuInfo.add(getJPanelDynPcdValue(), java.awt.BorderLayout.SOUTH);\r
4da2e625 283 }\r
284 return jPanelSkuInfo;\r
a13899c5 285 }\r
286\r
287 /**\r
288 * This method initializes jCheckBox \r
289 * \r
290 * @return javax.swing.JCheckBox \r
291 */\r
4da2e625 292 private JCheckBox getJCheckBoxSkuEnable() {\r
293 if (jCheckBoxSkuEnable == null) {\r
294 jCheckBoxSkuEnable = new JCheckBox();\r
295 jCheckBoxSkuEnable.setText("SKU Enable");\r
296 jCheckBoxSkuEnable.addItemListener(new java.awt.event.ItemListener() {\r
a13899c5 297 public void itemStateChanged(java.awt.event.ItemEvent e) {\r
4da2e625 298 jTableSkuInfo.setEnabled(jCheckBoxSkuEnable.isSelected());\r
a13899c5 299 }\r
300 });\r
301 }\r
4da2e625 302 return jCheckBoxSkuEnable;\r
a13899c5 303 }\r
304\r
305 \r
306 /**\r
307 * This method initializes jPanel4 \r
308 * \r
309 * @return javax.swing.JPanel \r
310 */\r
4da2e625 311 private JPanel getJPanelDynPcdValue() {\r
312 if (jPanelDynPcdValue == null) {\r
a0783edc 313 jLabelPad1 = new JLabel();\r
314 jLabelPad1.setText(" ");\r
315 GridLayout gridLayout = new GridLayout();\r
316 gridLayout.setColumns(5);\r
317 gridLayout.setRows(4);\r
50d4c727 318 gridLayout.setHgap(20);\r
319 gridLayout.setVgap(20);\r
a0783edc 320 \r
4da2e625 321 jLabelVpdOffset = new JLabel();\r
322 jLabelVpdOffset.setPreferredSize(new java.awt.Dimension(80,20));\r
323 jLabelVpdOffset.setText("VPD Offset");\r
324 jLabelHiiDefaultValue = new JLabel();\r
325 jLabelHiiDefaultValue.setPreferredSize(new java.awt.Dimension(100,20));\r
326 jLabelHiiDefaultValue.setText("HII Default Value");\r
327 jLabelVarOffset = new JLabel();\r
328 jLabelVarOffset.setText("Variable Offset");\r
329 jLabelVarOffset.setPreferredSize(new java.awt.Dimension(90,20));\r
330 jLabelPad = new JLabel();\r
331 jLabelPad.setText(" ");\r
332 jLabelVarGuid = new JLabel();\r
333 jLabelVarGuid.setText("Variable GUID");\r
334 jLabelVarGuid.setPreferredSize(new java.awt.Dimension(100,20));\r
335 jLabelVarName = new JLabel();\r
336 jLabelVarName.setText("Variable Name");\r
337 jLabelVarName.setToolTipText("");\r
338 jLabelVarName.setPreferredSize(new java.awt.Dimension(90,20));\r
4da2e625 339 jPanelDynPcdValue = new JPanel();\r
340 jPanelDynPcdValue.setBorder(javax.swing.BorderFactory.createEtchedBorder(javax.swing.border.EtchedBorder.LOWERED));\r
50d4c727 341 jPanelDynPcdValue.setPreferredSize(new java.awt.Dimension(1000,150));\r
a0783edc 342 jPanelDynPcdValue.setLayout(gridLayout);\r
4da2e625 343 jPanelDynPcdValue.add(getJRadioButtonHii(), null);\r
344 jPanelDynPcdValue.add(jLabelVarName, null);\r
345 jPanelDynPcdValue.add(getJTextFieldVarName(), null);\r
346 jPanelDynPcdValue.add(jLabelVarGuid, null);\r
347 jPanelDynPcdValue.add(getJTextFieldVarGuid(), null);\r
348 jPanelDynPcdValue.add(jLabelPad, null);\r
349 jPanelDynPcdValue.add(jLabelVarOffset, null);\r
350 jPanelDynPcdValue.add(getJTextFieldVarOffset(), null);\r
351 jPanelDynPcdValue.add(jLabelHiiDefaultValue, null);\r
352 jPanelDynPcdValue.add(getJTextFieldHiiDefaultValue(), null);\r
353 jPanelDynPcdValue.add(getJRadioButtonVpd(), null);\r
354 jPanelDynPcdValue.add(jLabelVpdOffset, null);\r
4da2e625 355 jLabelPadd = new JLabel();\r
356 jLabelPadd.setText(" ");\r
a0783edc 357 jPanelDynPcdValue.add(getJTextFieldVpdOffset(), null);\r
4da2e625 358 jLabelVarName.setEnabled(false);\r
359 jLabelVarGuid.setEnabled(false);\r
360 jLabelHiiDefaultValue.setEnabled(false);\r
361 jLabelVarOffset.setEnabled(false);\r
362 jLabelVpdOffset.setEnabled(false);\r
a0783edc 363 jPanelDynPcdValue.add(jLabelPadd, null);\r
364 jPanelDynPcdValue.add(jLabelPad1, null);\r
4da2e625 365 jPanelDynPcdValue.add(getJRadioButtonDefaultValue(), null);\r
366 jPanelDynPcdValue.add(getJTextFieldDefaultValue(), null);\r
50d4c727 367 jPanelDynPcdValue.add(getJCheckBoxSkuEnable(), null);\r
368 jPanelDynPcdValue.add(getJButtonSkuInfoUpdate(), null);\r
4da2e625 369 bg.add(jRadioButtonHii);\r
370 bg.add(jRadioButtonVpd);\r
a13899c5 371 } \r
372\r
4da2e625 373 return jPanelDynPcdValue;\r
a13899c5 374 }\r
375\r
376 /**\r
377 * This method initializes jRadioButton \r
378 * \r
379 * @return javax.swing.JRadioButton \r
380 */\r
4da2e625 381 private JRadioButton getJRadioButtonHii() {\r
382 if (jRadioButtonHii == null) {\r
383 jRadioButtonHii = new JRadioButton();\r
384 jRadioButtonHii.setText("HII Enable");\r
385 jRadioButtonHii.addItemListener(new java.awt.event.ItemListener() {\r
a13899c5 386 public void itemStateChanged(java.awt.event.ItemEvent e) {\r
4da2e625 387 boolean selected = jRadioButtonHii.isSelected();\r
388 jLabelVarName.setEnabled(selected);\r
389 jLabelVarGuid.setEnabled(selected);\r
390 jLabelPad.setEnabled(selected);\r
391 jLabelVarOffset.setEnabled(selected);\r
392 jLabelHiiDefaultValue.setEnabled(selected);\r
393 jTextFieldVarName.setEnabled(selected);\r
394 jTextFieldVarGuid.setEnabled(selected);\r
395 jTextFieldVarOffset.setEnabled(selected);\r
396 jTextFieldHiiDefaultValue.setEnabled(selected);\r
a13899c5 397 }\r
398 });\r
399 }\r
4da2e625 400 return jRadioButtonHii;\r
a13899c5 401 }\r
402\r
403 /**\r
404 * This method initializes jRadioButton1 \r
405 * \r
406 * @return javax.swing.JRadioButton \r
407 */\r
4da2e625 408 private JRadioButton getJRadioButtonVpd() {\r
409 if (jRadioButtonVpd == null) {\r
410 jRadioButtonVpd = new JRadioButton();\r
411 jRadioButtonVpd.setText("VPD Enable");\r
412 jRadioButtonVpd.addItemListener(new java.awt.event.ItemListener() {\r
a13899c5 413 public void itemStateChanged(java.awt.event.ItemEvent e) {\r
4da2e625 414 boolean selected = jRadioButtonVpd.isSelected();\r
415 jTextFieldVpdOffset.setEnabled(selected);\r
416 jLabelVpdOffset.setEnabled(selected);\r
a13899c5 417 }\r
418 });\r
419 }\r
4da2e625 420 return jRadioButtonVpd;\r
a13899c5 421 }\r
422\r
423 /**\r
424 * This method initializes jScrollPane1 \r
425 * \r
426 * @return javax.swing.JScrollPane \r
427 */\r
4da2e625 428 private JScrollPane getJScrollPaneSkuInfo() {\r
429 if (jScrollPaneSkuInfo == null) {\r
430 jScrollPaneSkuInfo = new JScrollPane();\r
50d4c727 431 jScrollPaneSkuInfo.setPreferredSize(new java.awt.Dimension(300,50));\r
4da2e625 432 jScrollPaneSkuInfo.setViewportView(getJTableSkuInfo());\r
a13899c5 433 }\r
4da2e625 434 return jScrollPaneSkuInfo;\r
a13899c5 435 }\r
436\r
437 /**\r
438 * This method initializes jTable1 \r
439 * \r
440 * @return javax.swing.JTable \r
441 */\r
4da2e625 442 private JTable getJTableSkuInfo() {\r
443 if (jTableSkuInfo == null) {\r
444 modelSku = new DynPcdTableModel();\r
445 jTableSkuInfo = new JTable(modelSku);\r
446 modelSku.addColumn("SKU ID");\r
447 modelSku.addColumn("SKU Name");\r
a13899c5 448 \r
4da2e625 449 jTableSkuInfo.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
450 jTableSkuInfo.getSelectionModel().addListSelectionListener(new ListSelectionListener(){\r
a13899c5 451 public void valueChanged(ListSelectionEvent e) {\r
4da2e625 452 if (jTableDynPcd.getSelectedRow() < 0) {\r
a13899c5 453 return;\r
454 }\r
455 if (e.getValueIsAdjusting()){\r
456 return;\r
457 }\r
458 ListSelectionModel lsm = (ListSelectionModel)e.getSource();\r
459 if (lsm.isSelectionEmpty()) {\r
460 return;\r
461 }\r
462 else{\r
1bf9fa5a 463 jTextFieldDefaultValue.setText("");\r
464 jTextFieldVpdOffset.setText("");\r
465 jTextFieldVarName.setText("");\r
466 jTextFieldVarGuid.setText("");\r
467 jTextFieldVarOffset.setText("");\r
468 jTextFieldHiiDefaultValue.setText("");\r
a13899c5 469 int selected = lsm.getMinSelectionIndex();\r
44053733 470 displaySkuInfoDetails(selected);\r
a13899c5 471 }\r
472 }\r
473 });\r
474 }\r
4da2e625 475 return jTableSkuInfo;\r
a13899c5 476 }\r
477\r
478 /**\r
479 * This method initializes jButton \r
480 * \r
481 * @return javax.swing.JButton \r
482 */\r
4da2e625 483 private JButton getJButtonSkuInfoUpdate() {\r
484 if (jButtonSkuInfoUpdate == null) {\r
485 jButtonSkuInfoUpdate = new JButton();\r
486 jButtonSkuInfoUpdate.setPreferredSize(new java.awt.Dimension(180,20));\r
487 jButtonSkuInfoUpdate.setText(" Update SKU Information");\r
488 jButtonSkuInfoUpdate.addActionListener(new java.awt.event.ActionListener() {\r
a13899c5 489 public void actionPerformed(java.awt.event.ActionEvent e) {\r
4da2e625 490 int pcdSelected = jTableDynPcd.getSelectedRow();\r
a13899c5 491 if (pcdSelected < 0) {\r
492 return;\r
493 }\r
d6d24759 494 docConsole.setSaved(false);\r
a13899c5 495 updateSkuInfo(pcdSelected);\r
496 \r
497 }\r
498 });\r
499 }\r
4da2e625 500 return jButtonSkuInfoUpdate;\r
a13899c5 501 }\r
2a23019d 502 \r
a13899c5 503 private void updateSkuInfo (int pcdSelected) {\r
504 int skuCount = ffc.getDynamicPcdSkuInfoCount(pcdSelected);\r
50d4c727 505 String cName = modelPcd.getValueAt(pcdSelected, 0)+"";\r
506 String tsGuid = modelPcd.getValueAt(pcdSelected, 2)+"";\r
a13899c5 507 \r
508 String varName = null;\r
509 String varGuid = null;\r
510 String varOffset = null;\r
511 String hiiDefault = null;\r
512 String value = null;\r
513 String vpdOffset = null;\r
4da2e625 514 if (jRadioButtonHii.isSelected()) {\r
2a23019d 515 varName = Tools.convertStringToUnicodeHexString(jTextFieldVarName.getText());\r
516 if (varName.length() == 0) {\r
517 JOptionPane.showMessageDialog(this, "Variable Name is Empty.");\r
518 return;\r
519 }\r
4da2e625 520 varGuid = jTextFieldVarGuid.getText();\r
2a23019d 521 if (varGuid.length() == 0) {\r
522 JOptionPane.showMessageDialog(this, "Variable GUID is Empty.");\r
523 return;\r
524 }\r
4da2e625 525 varOffset = jTextFieldVarOffset.getText();\r
2a23019d 526 if (!DataValidation.isHex64BitDataType(varOffset)) {\r
527 JOptionPane.showMessageDialog(this, "Variable Offset is NOT Hex64BitDataType.");\r
528 return;\r
529 }\r
4da2e625 530 hiiDefault = jTextFieldHiiDefaultValue.getText();\r
2a23019d 531 if (!DataValidation.isDefaultValueType(hiiDefault)) {\r
532 JOptionPane.showMessageDialog(this, "Default Value is NOT DefaultValueType.");\r
533 return;\r
534 }\r
a13899c5 535 }\r
4da2e625 536 if (jRadioButtonVpd.isSelected()) {\r
537 vpdOffset = jTextFieldVpdOffset.getText();\r
2a23019d 538 if (!DataValidation.isHex64BitDataType(vpdOffset)) {\r
539 JOptionPane.showMessageDialog(this, "VPD Offset is NOT Hex64BitDataType.");\r
540 return;\r
541 }\r
a13899c5 542 }\r
4da2e625 543 if (jRadioButtonDefaultValue.isSelected()) {\r
544 value = jTextFieldDefaultValue.getText();\r
2a23019d 545 if (!DataValidation.isDefaultValueType(value)) {\r
546 JOptionPane.showMessageDialog(this, "Value is NOT DefaultValueType.");\r
547 return;\r
548 }\r
a13899c5 549 }\r
550 //\r
551 // SKU disabled. only modify data for default SKU.\r
552 //\r
4da2e625 553 if (!jCheckBoxSkuEnable.isSelected()) {\r
a13899c5 554 if (true) {\r
555 ffc.removeDynamicPcdBuildDataSkuInfo(pcdSelected);\r
4da2e625 556 if (jRadioButtonHii.isSelected()) {\r
a13899c5 557 ffc.genDynamicPcdBuildDataSkuInfo("0", varName, varGuid, varOffset, hiiDefault, null, null, pcdSelected);\r
50d4c727 558 ArrayList<String> al = ffc.getDynPcdMapValue(cName + " " + tsGuid);\r
559 for (int i = 0; i < al.size(); ++i) {\r
560 String mKey = moduleInfo (al.get(i));\r
561 ffc.updatePcdData(mKey, cName, tsGuid, null, null, hiiDefault);\r
562 }\r
a13899c5 563 }\r
4da2e625 564 else if (jRadioButtonVpd.isSelected()){\r
a13899c5 565 ffc.genDynamicPcdBuildDataSkuInfo("0", null, null, null, null, vpdOffset, null, pcdSelected);\r
50d4c727 566 ArrayList<String> al = ffc.getDynPcdMapValue(cName + " " + tsGuid);\r
567 for (int i = 0; i < al.size(); ++i) {\r
568 String mKey = moduleInfo (al.get(i));\r
569 ffc.updatePcdData(mKey, cName, tsGuid, null, null, vpdOffset);\r
570 }\r
a13899c5 571 }\r
572 else{\r
573 ffc.genDynamicPcdBuildDataSkuInfo("0", null, null, null, null, null, value, pcdSelected);\r
50d4c727 574 ArrayList<String> al = ffc.getDynPcdMapValue(cName + " " + tsGuid);\r
575 for (int i = 0; i < al.size(); ++i) {\r
576 String mKey = moduleInfo (al.get(i));\r
577 ffc.updatePcdData(mKey, cName, tsGuid, null, null, value);\r
578 }\r
a13899c5 579 }\r
580 }\r
581 }\r
582 //\r
583 // SKU Enabled, need add data to all SKUs.\r
584 //\r
4da2e625 585 if (jCheckBoxSkuEnable.isSelected()) {\r
a13899c5 586 if (skuCount == 1) {\r
587 \r
4da2e625 588 for (int i = 1; i < jTableSkuInfo.getRowCount(); ++i) {\r
589 ffc.genDynamicPcdBuildDataSkuInfo(jTableSkuInfo.getValueAt(i, 0)+"", varName, varGuid, varOffset, hiiDefault, vpdOffset, value, pcdSelected);\r
a13899c5 590 }\r
591 }\r
592 else {\r
4da2e625 593 int row = jTableSkuInfo.getSelectedRow();\r
a13899c5 594 if (row < 0) {\r
595 return;\r
596 }\r
4da2e625 597 ffc.updateDynamicPcdBuildDataSkuInfo(jTableSkuInfo.getValueAt(row, 0)+"", varName, varGuid, varOffset, hiiDefault, vpdOffset, value, pcdSelected);\r
a13899c5 598 }\r
599 }\r
600 }\r
50d4c727 601 \r
602 private String moduleInfo (String pcdInfo) {\r
603 \r
604 return pcdInfo.substring(0, pcdInfo.lastIndexOf(" "));\r
605 }\r
a13899c5 606 /**\r
607 * This method initializes jTextField \r
608 * \r
609 * @return javax.swing.JTextField \r
610 */\r
4da2e625 611 private JTextField getJTextFieldVarName() {\r
612 if (jTextFieldVarName == null) {\r
613 jTextFieldVarName = new JTextField();\r
614 jTextFieldVarName.setPreferredSize(new java.awt.Dimension(150,20));\r
615 jTextFieldVarName.setEnabled(false);\r
a13899c5 616 }\r
4da2e625 617 return jTextFieldVarName;\r
a13899c5 618 }\r
619\r
620 /**\r
621 * This method initializes jTextField1 \r
622 * \r
623 * @return javax.swing.JTextField \r
624 */\r
4da2e625 625 private JTextField getJTextFieldVarGuid() {\r
626 if (jTextFieldVarGuid == null) {\r
627 jTextFieldVarGuid = new JTextField();\r
628 jTextFieldVarGuid.setPreferredSize(new java.awt.Dimension(150,20));\r
629 jTextFieldVarGuid.setEnabled(false);\r
a13899c5 630 }\r
4da2e625 631 return jTextFieldVarGuid;\r
a13899c5 632 }\r
633\r
634 /**\r
635 * This method initializes jTextField2 \r
636 * \r
637 * @return javax.swing.JTextField \r
638 */\r
4da2e625 639 private JTextField getJTextFieldVarOffset() {\r
640 if (jTextFieldVarOffset == null) {\r
641 jTextFieldVarOffset = new JTextField();\r
642 jTextFieldVarOffset.setPreferredSize(new java.awt.Dimension(150,20));\r
643 jTextFieldVarOffset.setEnabled(false);\r
a13899c5 644 }\r
4da2e625 645 return jTextFieldVarOffset;\r
a13899c5 646 }\r
647\r
648 /**\r
649 * This method initializes jTextField3 \r
650 * \r
651 * @return javax.swing.JTextField \r
652 */\r
4da2e625 653 private JTextField getJTextFieldHiiDefaultValue() {\r
654 if (jTextFieldHiiDefaultValue == null) {\r
655 jTextFieldHiiDefaultValue = new JTextField();\r
656 jTextFieldHiiDefaultValue.setPreferredSize(new java.awt.Dimension(150,20));\r
657 jTextFieldHiiDefaultValue.setEnabled(false);\r
a13899c5 658 }\r
4da2e625 659 return jTextFieldHiiDefaultValue;\r
a13899c5 660 }\r
661\r
662 /**\r
663 * This method initializes jTextField4 \r
664 * \r
665 * @return javax.swing.JTextField \r
666 */\r
4da2e625 667 private JTextField getJTextFieldVpdOffset() {\r
668 if (jTextFieldVpdOffset == null) {\r
669 jTextFieldVpdOffset = new JTextField();\r
670 jTextFieldVpdOffset.setPreferredSize(new java.awt.Dimension(150,20));\r
671 jTextFieldVpdOffset.setEnabled(false);\r
a13899c5 672 }\r
4da2e625 673 return jTextFieldVpdOffset;\r
a13899c5 674 }\r
675\r
676 /**\r
677 * This method initializes jTextField5 \r
678 * \r
679 * @return javax.swing.JTextField \r
680 */\r
4da2e625 681 private JTextField getJTextFieldDefaultValue() {\r
682 if (jTextFieldDefaultValue == null) {\r
683 jTextFieldDefaultValue = new JTextField();\r
684 jTextFieldDefaultValue.setPreferredSize(new java.awt.Dimension(150,20));\r
a13899c5 685 }\r
4da2e625 686 return jTextFieldDefaultValue;\r
a13899c5 687 }\r
688\r
689 /**\r
690 * This method initializes jRadioButton2 \r
691 * \r
692 * @return javax.swing.JRadioButton \r
693 */\r
4da2e625 694 private JRadioButton getJRadioButtonDefaultValue() {\r
695 if (jRadioButtonDefaultValue == null) {\r
696 jRadioButtonDefaultValue = new JRadioButton();\r
697 jRadioButtonDefaultValue.setText("Default PCD Value");\r
698 jRadioButtonDefaultValue.setSelected(true);\r
699 jRadioButtonDefaultValue.setPreferredSize(new java.awt.Dimension(175,20));\r
700 jRadioButtonDefaultValue.addItemListener(new java.awt.event.ItemListener() {\r
a13899c5 701 public void itemStateChanged(java.awt.event.ItemEvent e) {\r
4da2e625 702 jTextFieldDefaultValue.setEnabled(jRadioButtonDefaultValue.isSelected());\r
a13899c5 703 }\r
704 });\r
4da2e625 705 bg.add(jRadioButtonDefaultValue);\r
a13899c5 706 }\r
4da2e625 707 return jRadioButtonDefaultValue;\r
a13899c5 708 }\r
709\r
50d4c727 710 /**\r
711 * This method initializes jScrollPane \r
712 * \r
713 * @return javax.swing.JScrollPane \r
714 */\r
715 private JScrollPane getJScrollPane() {\r
716 if (jScrollPane == null) {\r
717 jScrollPane = new JScrollPane();\r
718 jScrollPane.setPreferredSize(new java.awt.Dimension(1003,180));\r
719 jScrollPane.setViewportView(getJPanelDynPcdValue());\r
720 }\r
721 return jScrollPane;\r
722 }\r
723\r
a13899c5 724} // @jve:decl-index=0:visual-constraint="10,10"\r
725\r
726class DynPcdTableModel extends DefaultTableModel {\r
44053733 727 /**\r
728 * \r
729 */\r
730 private static final long serialVersionUID = 1L;\r
731\r
a13899c5 732 public boolean isCellEditable(int row, int col) {\r
733 \r
734 return false;\r
735 }\r
736}\r