]> git.proxmox.com Git - mirror_edk2.git/blame - Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdDynamicPcdBuildDefinitions.java
initialize text fields to empty when switching dynamic pcd entries.
[mirror_edk2.git] / Tools / 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
26\r
27public class FpdDynamicPcdBuildDefinitions extends IInternalFrame {\r
28\r
44053733 29 /**\r
30 * \r
31 */\r
32 private static final long serialVersionUID = 1L;\r
a13899c5 33 private JPanel jContentPane = null;\r
4da2e625 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
a13899c5 41 private FpdFileContents ffc = null;\r
d6d24759 42 private OpeningPlatformType docConsole = null;\r
4da2e625 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
a13899c5 64 private ButtonGroup bg = new ButtonGroup();\r
4da2e625 65 private JLabel jLabelPadd = 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
4da2e625 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
a13899c5 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
4da2e625 134 private JPanel getJPanelContentNorth() {\r
135 if (jPanelContentNorth == null) {\r
136 jPanelContentNorth = new JPanel();\r
a13899c5 137 }\r
4da2e625 138 return jPanelContentNorth;\r
a13899c5 139 }\r
140\r
141 /**\r
142 * This method initializes jPanel1 \r
143 * \r
144 * @return javax.swing.JPanel \r
145 */\r
4da2e625 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
a13899c5 154 }\r
155\r
156 /**\r
157 * This method initializes jPanel2 \r
158 * \r
159 * @return javax.swing.JPanel \r
160 */\r
4da2e625 161 private JPanel getJPanelContentSouth() {\r
162 if (jPanelContentSouth == null) {\r
163 jPanelContentSouth = new JPanel();\r
a13899c5 164 }\r
4da2e625 165 return jPanelContentSouth;\r
a13899c5 166 }\r
167\r
168 /**\r
169 * This method initializes jScrollPane \r
170 * \r
171 * @return javax.swing.JScrollPane \r
172 */\r
4da2e625 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
a13899c5 178 }\r
4da2e625 179 return jScrollPaneDynPcd;\r
a13899c5 180 }\r
181\r
182 /**\r
183 * This method initializes jTable \r
184 * \r
185 * @return javax.swing.JTable \r
186 */\r
4da2e625 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
a13899c5 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
fb464577 209 jTextFieldDefaultValue.setText("");\r
210 jTextFieldVpdOffset.setText("");\r
211 jTextFieldVarName.setText("");\r
212 jTextFieldVarGuid.setText("");\r
213 jTextFieldVarOffset.setText("");\r
214 jTextFieldHiiDefaultValue.setText("");\r
a13899c5 215 displayDetails(selectedRow);\r
216 }\r
217 }\r
218 });\r
219 }\r
4da2e625 220 return jTableDynPcd;\r
a13899c5 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
4da2e625 226 jTableSkuInfo.changeSelection(0, 1, false, false);\r
a13899c5 227 int skuCount = ffc.getDynamicPcdSkuInfoCount(i);\r
228 String defaultVal = ffc.getDynamicPcdBuildDataValue(i);\r
229 if (defaultVal != null) {\r
4da2e625 230 jRadioButtonDefaultValue.setSelected(true);\r
231 jTextFieldDefaultValue.setText(defaultVal);\r
a13899c5 232 if ( skuCount == 1) {\r
4da2e625 233 jCheckBoxSkuEnable.setSelected(false);\r
a13899c5 234 }\r
235 else{\r
4da2e625 236 jCheckBoxSkuEnable.setSelected(true);\r
a13899c5 237 }\r
238 }\r
239 \r
240 else if (ffc.getDynamicPcdBuildDataVpdOffset(i) != null) {\r
4da2e625 241 jRadioButtonVpd.setSelected(true);\r
242 jTextFieldVpdOffset.setText(ffc.getDynamicPcdBuildDataVpdOffset(i));\r
a13899c5 243 if (skuCount ==1) {\r
4da2e625 244 jCheckBoxSkuEnable.setSelected(false);\r
a13899c5 245 \r
246 }\r
247 else{\r
4da2e625 248 jCheckBoxSkuEnable.setSelected(true);\r
a13899c5 249 }\r
250 }\r
251 else {\r
4da2e625 252 jRadioButtonHii.setSelected(true);\r
a13899c5 253 String[][] saa = new String[ffc.getDynamicPcdSkuInfoCount(i)][7];\r
254 ffc.getDynamicPcdSkuInfos(i, saa);\r
2a23019d 255 \r
256 String varDisplayName = Tools.convertUnicodeHexStringToString(saa[0][1]);\r
257 jTextFieldVarName.setText(varDisplayName);\r
258 \r
4da2e625 259 jTextFieldVarGuid.setText(saa[0][2]);\r
260 jTextFieldVarOffset.setText(saa[0][3]);\r
261 jTextFieldHiiDefaultValue.setText(saa[0][4]);\r
a13899c5 262 if (skuCount ==1) {\r
4da2e625 263 jCheckBoxSkuEnable.setSelected(false);\r
a13899c5 264 }\r
265 else{\r
4da2e625 266 jCheckBoxSkuEnable.setSelected(true);\r
a13899c5 267 }\r
268 }\r
269 \r
270 }\r
271 \r
272 private void displaySkuInfoDetails(int i) {\r
4da2e625 273 int pcdSelected = jTableDynPcd.getSelectedRow();\r
a13899c5 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
4da2e625 282 jRadioButtonVpd.setSelected(true);\r
283 jTextFieldVpdOffset.setText(saa[i][5]);\r
a13899c5 284 } \r
285 \r
286 else if (saa[i][1] != null) {\r
4da2e625 287 jRadioButtonHii.setSelected(true);\r
2a23019d 288 String varDisplayName = Tools.convertUnicodeHexStringToString(saa[i][1]);\r
289 jTextFieldVarName.setText(varDisplayName);\r
4da2e625 290 jTextFieldVarGuid.setText(saa[i][2]);\r
291 jTextFieldVarOffset.setText(saa[i][3]);\r
292 jTextFieldHiiDefaultValue.setText(saa[i][4]);\r
a13899c5 293 }\r
294 \r
295 else{\r
4da2e625 296 jRadioButtonDefaultValue.setSelected(true);\r
297 jTextFieldDefaultValue.setText(saa[i][6]);\r
a13899c5 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
4da2e625 307 private JPanel getJPanelSkuInfo() {\r
308 if (jPanelSkuInfo == null) {\r
a13899c5 309 FlowLayout flowLayout = new FlowLayout();\r
310 flowLayout.setAlignment(java.awt.FlowLayout.LEFT);\r
4da2e625 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
a13899c5 320 }\r
321\r
322 /**\r
323 * This method initializes jCheckBox \r
324 * \r
325 * @return javax.swing.JCheckBox \r
326 */\r
4da2e625 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
a13899c5 332 public void itemStateChanged(java.awt.event.ItemEvent e) {\r
4da2e625 333 jTableSkuInfo.setEnabled(jCheckBoxSkuEnable.isSelected());\r
a13899c5 334 }\r
335 });\r
336 }\r
4da2e625 337 return jCheckBoxSkuEnable;\r
a13899c5 338 }\r
339\r
340 \r
341 /**\r
342 * This method initializes jPanel4 \r
343 * \r
344 * @return javax.swing.JPanel \r
345 */\r
4da2e625 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
a13899c5 366 FlowLayout flowLayout1 = new FlowLayout();\r
367 flowLayout1.setAlignment(java.awt.FlowLayout.LEFT);\r
4da2e625 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
a13899c5 397 } \r
398\r
4da2e625 399 return jPanelDynPcdValue;\r
a13899c5 400 }\r
401\r
402 /**\r
403 * This method initializes jRadioButton \r
404 * \r
405 * @return javax.swing.JRadioButton \r
406 */\r
4da2e625 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
a13899c5 412 public void itemStateChanged(java.awt.event.ItemEvent e) {\r
4da2e625 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
a13899c5 423 }\r
424 });\r
425 }\r
4da2e625 426 return jRadioButtonHii;\r
a13899c5 427 }\r
428\r
429 /**\r
430 * This method initializes jRadioButton1 \r
431 * \r
432 * @return javax.swing.JRadioButton \r
433 */\r
4da2e625 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
a13899c5 439 public void itemStateChanged(java.awt.event.ItemEvent e) {\r
4da2e625 440 boolean selected = jRadioButtonVpd.isSelected();\r
441 jTextFieldVpdOffset.setEnabled(selected);\r
442 jLabelVpdOffset.setEnabled(selected);\r
a13899c5 443 }\r
444 });\r
445 }\r
4da2e625 446 return jRadioButtonVpd;\r
a13899c5 447 }\r
448\r
449 /**\r
450 * This method initializes jScrollPane1 \r
451 * \r
452 * @return javax.swing.JScrollPane \r
453 */\r
4da2e625 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
a13899c5 459 }\r
4da2e625 460 return jScrollPaneSkuInfo;\r
a13899c5 461 }\r
462\r
463 /**\r
464 * This method initializes jTable1 \r
465 * \r
466 * @return javax.swing.JTable \r
467 */\r
4da2e625 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
a13899c5 474 \r
4da2e625 475 jTableSkuInfo.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
476 jTableSkuInfo.getSelectionModel().addListSelectionListener(new ListSelectionListener(){\r
a13899c5 477 public void valueChanged(ListSelectionEvent e) {\r
4da2e625 478 if (jTableDynPcd.getSelectedRow() < 0) {\r
a13899c5 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
1bf9fa5a 489 jTextFieldDefaultValue.setText("");\r
490 jTextFieldVpdOffset.setText("");\r
491 jTextFieldVarName.setText("");\r
492 jTextFieldVarGuid.setText("");\r
493 jTextFieldVarOffset.setText("");\r
494 jTextFieldHiiDefaultValue.setText("");\r
a13899c5 495 int selected = lsm.getMinSelectionIndex();\r
44053733 496 displaySkuInfoDetails(selected);\r
a13899c5 497 }\r
498 }\r
499 });\r
500 }\r
4da2e625 501 return jTableSkuInfo;\r
a13899c5 502 }\r
503\r
504 /**\r
505 * This method initializes jButton \r
506 * \r
507 * @return javax.swing.JButton \r
508 */\r
4da2e625 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
a13899c5 515 public void actionPerformed(java.awt.event.ActionEvent e) {\r
4da2e625 516 int pcdSelected = jTableDynPcd.getSelectedRow();\r
a13899c5 517 if (pcdSelected < 0) {\r
518 return;\r
519 }\r
d6d24759 520 docConsole.setSaved(false);\r
a13899c5 521 updateSkuInfo(pcdSelected);\r
522 \r
523 }\r
524 });\r
525 }\r
4da2e625 526 return jButtonSkuInfoUpdate;\r
a13899c5 527 }\r
2a23019d 528 \r
a13899c5 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
4da2e625 538 if (jRadioButtonHii.isSelected()) {\r
2a23019d 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
4da2e625 544 varGuid = jTextFieldVarGuid.getText();\r
2a23019d 545 if (varGuid.length() == 0) {\r
546 JOptionPane.showMessageDialog(this, "Variable GUID is Empty.");\r
547 return;\r
548 }\r
4da2e625 549 varOffset = jTextFieldVarOffset.getText();\r
2a23019d 550 if (!DataValidation.isHex64BitDataType(varOffset)) {\r
551 JOptionPane.showMessageDialog(this, "Variable Offset is NOT Hex64BitDataType.");\r
552 return;\r
553 }\r
4da2e625 554 hiiDefault = jTextFieldHiiDefaultValue.getText();\r
2a23019d 555 if (!DataValidation.isDefaultValueType(hiiDefault)) {\r
556 JOptionPane.showMessageDialog(this, "Default Value is NOT DefaultValueType.");\r
557 return;\r
558 }\r
a13899c5 559 }\r
4da2e625 560 if (jRadioButtonVpd.isSelected()) {\r
561 vpdOffset = jTextFieldVpdOffset.getText();\r
2a23019d 562 if (!DataValidation.isHex64BitDataType(vpdOffset)) {\r
563 JOptionPane.showMessageDialog(this, "VPD Offset is NOT Hex64BitDataType.");\r
564 return;\r
565 }\r
a13899c5 566 }\r
4da2e625 567 if (jRadioButtonDefaultValue.isSelected()) {\r
568 value = jTextFieldDefaultValue.getText();\r
2a23019d 569 if (!DataValidation.isDefaultValueType(value)) {\r
570 JOptionPane.showMessageDialog(this, "Value is NOT DefaultValueType.");\r
571 return;\r
572 }\r
a13899c5 573 }\r
574 //\r
575 // SKU disabled. only modify data for default SKU.\r
576 //\r
4da2e625 577 if (!jCheckBoxSkuEnable.isSelected()) {\r
a13899c5 578 if (true) {\r
579 ffc.removeDynamicPcdBuildDataSkuInfo(pcdSelected);\r
4da2e625 580 if (jRadioButtonHii.isSelected()) {\r
a13899c5 581 ffc.genDynamicPcdBuildDataSkuInfo("0", varName, varGuid, varOffset, hiiDefault, null, null, pcdSelected);\r
582 }\r
4da2e625 583 else if (jRadioButtonVpd.isSelected()){\r
a13899c5 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
4da2e625 594 if (jCheckBoxSkuEnable.isSelected()) {\r
a13899c5 595 if (skuCount == 1) {\r
596 \r
4da2e625 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
a13899c5 599 }\r
600 }\r
601 else {\r
4da2e625 602 int row = jTableSkuInfo.getSelectedRow();\r
a13899c5 603 if (row < 0) {\r
604 return;\r
605 }\r
4da2e625 606 ffc.updateDynamicPcdBuildDataSkuInfo(jTableSkuInfo.getValueAt(row, 0)+"", varName, varGuid, varOffset, hiiDefault, vpdOffset, value, pcdSelected);\r
a13899c5 607 }\r
608 }\r
609 }\r
610 /**\r
611 * This method initializes jTextField \r
612 * \r
613 * @return javax.swing.JTextField \r
614 */\r
4da2e625 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
a13899c5 620 }\r
4da2e625 621 return jTextFieldVarName;\r
a13899c5 622 }\r
623\r
624 /**\r
625 * This method initializes jTextField1 \r
626 * \r
627 * @return javax.swing.JTextField \r
628 */\r
4da2e625 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
a13899c5 634 }\r
4da2e625 635 return jTextFieldVarGuid;\r
a13899c5 636 }\r
637\r
638 /**\r
639 * This method initializes jTextField2 \r
640 * \r
641 * @return javax.swing.JTextField \r
642 */\r
4da2e625 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
a13899c5 648 }\r
4da2e625 649 return jTextFieldVarOffset;\r
a13899c5 650 }\r
651\r
652 /**\r
653 * This method initializes jTextField3 \r
654 * \r
655 * @return javax.swing.JTextField \r
656 */\r
4da2e625 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
a13899c5 662 }\r
4da2e625 663 return jTextFieldHiiDefaultValue;\r
a13899c5 664 }\r
665\r
666 /**\r
667 * This method initializes jTextField4 \r
668 * \r
669 * @return javax.swing.JTextField \r
670 */\r
4da2e625 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
a13899c5 676 }\r
4da2e625 677 return jTextFieldVpdOffset;\r
a13899c5 678 }\r
679\r
680 /**\r
681 * This method initializes jTextField5 \r
682 * \r
683 * @return javax.swing.JTextField \r
684 */\r
4da2e625 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
a13899c5 689 }\r
4da2e625 690 return jTextFieldDefaultValue;\r
a13899c5 691 }\r
692\r
693 /**\r
694 * This method initializes jRadioButton2 \r
695 * \r
696 * @return javax.swing.JRadioButton \r
697 */\r
4da2e625 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
a13899c5 705 public void itemStateChanged(java.awt.event.ItemEvent e) {\r
4da2e625 706 jTextFieldDefaultValue.setEnabled(jRadioButtonDefaultValue.isSelected());\r
a13899c5 707 }\r
708 });\r
4da2e625 709 bg.add(jRadioButtonDefaultValue);\r
a13899c5 710 }\r
4da2e625 711 return jRadioButtonDefaultValue;\r
a13899c5 712 }\r
713\r
714} // @jve:decl-index=0:visual-constraint="10,10"\r
715\r
716class DynPcdTableModel extends DefaultTableModel {\r
44053733 717 /**\r
718 * \r
719 */\r
720 private static final long serialVersionUID = 1L;\r
721\r
a13899c5 722 public boolean isCellEditable(int row, int col) {\r
723 \r
724 return false;\r
725 }\r
726}\r