]> git.proxmox.com Git - mirror_edk2.git/blame - Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdDynamicPcdBuildDefinitions.java
1.change GlobalData to WorkspaceProfile.
[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
209 \r
210 displayDetails(selectedRow);\r
211 }\r
212 }\r
213 });\r
214 }\r
4da2e625 215 return jTableDynPcd;\r
a13899c5 216 }\r
217 //\r
218 // should display default sku info here, as no selection event of table1 will be triggered when change selection of rows in table. \r
219 //\r
220 private void displayDetails(int i) {\r
4da2e625 221 jTableSkuInfo.changeSelection(0, 1, false, false);\r
a13899c5 222 int skuCount = ffc.getDynamicPcdSkuInfoCount(i);\r
223 String defaultVal = ffc.getDynamicPcdBuildDataValue(i);\r
224 if (defaultVal != null) {\r
4da2e625 225 jRadioButtonDefaultValue.setSelected(true);\r
226 jTextFieldDefaultValue.setText(defaultVal);\r
a13899c5 227 if ( skuCount == 1) {\r
4da2e625 228 jCheckBoxSkuEnable.setSelected(false);\r
a13899c5 229 }\r
230 else{\r
4da2e625 231 jCheckBoxSkuEnable.setSelected(true);\r
a13899c5 232 }\r
233 }\r
234 \r
235 else if (ffc.getDynamicPcdBuildDataVpdOffset(i) != null) {\r
4da2e625 236 jRadioButtonVpd.setSelected(true);\r
237 jTextFieldVpdOffset.setText(ffc.getDynamicPcdBuildDataVpdOffset(i));\r
a13899c5 238 if (skuCount ==1) {\r
4da2e625 239 jCheckBoxSkuEnable.setSelected(false);\r
a13899c5 240 \r
241 }\r
242 else{\r
4da2e625 243 jCheckBoxSkuEnable.setSelected(true);\r
a13899c5 244 }\r
245 }\r
246 else {\r
4da2e625 247 jRadioButtonHii.setSelected(true);\r
a13899c5 248 String[][] saa = new String[ffc.getDynamicPcdSkuInfoCount(i)][7];\r
249 ffc.getDynamicPcdSkuInfos(i, saa);\r
2a23019d 250 \r
251 String varDisplayName = Tools.convertUnicodeHexStringToString(saa[0][1]);\r
252 jTextFieldVarName.setText(varDisplayName);\r
253 \r
4da2e625 254 jTextFieldVarGuid.setText(saa[0][2]);\r
255 jTextFieldVarOffset.setText(saa[0][3]);\r
256 jTextFieldHiiDefaultValue.setText(saa[0][4]);\r
a13899c5 257 if (skuCount ==1) {\r
4da2e625 258 jCheckBoxSkuEnable.setSelected(false);\r
a13899c5 259 }\r
260 else{\r
4da2e625 261 jCheckBoxSkuEnable.setSelected(true);\r
a13899c5 262 }\r
263 }\r
264 \r
265 }\r
266 \r
267 private void displaySkuInfoDetails(int i) {\r
4da2e625 268 int pcdSelected = jTableDynPcd.getSelectedRow();\r
a13899c5 269 if (pcdSelected < 0) {\r
270 return;\r
271 }\r
272 \r
273 String[][] saa = new String[ffc.getDynamicPcdSkuInfoCount(pcdSelected)][7];\r
274 ffc.getDynamicPcdSkuInfos(pcdSelected, saa);\r
275 \r
276 if (saa[i][5] != null){\r
4da2e625 277 jRadioButtonVpd.setSelected(true);\r
278 jTextFieldVpdOffset.setText(saa[i][5]);\r
a13899c5 279 } \r
280 \r
281 else if (saa[i][1] != null) {\r
4da2e625 282 jRadioButtonHii.setSelected(true);\r
2a23019d 283 String varDisplayName = Tools.convertUnicodeHexStringToString(saa[i][1]);\r
284 jTextFieldVarName.setText(varDisplayName);\r
4da2e625 285 jTextFieldVarGuid.setText(saa[i][2]);\r
286 jTextFieldVarOffset.setText(saa[i][3]);\r
287 jTextFieldHiiDefaultValue.setText(saa[i][4]);\r
a13899c5 288 }\r
289 \r
290 else{\r
4da2e625 291 jRadioButtonDefaultValue.setSelected(true);\r
292 jTextFieldDefaultValue.setText(saa[i][6]);\r
a13899c5 293 }\r
294 \r
295 }\r
296\r
297 /**\r
298 * This method initializes jPanel3 \r
299 * \r
300 * @return javax.swing.JPanel \r
301 */\r
4da2e625 302 private JPanel getJPanelSkuInfo() {\r
303 if (jPanelSkuInfo == null) {\r
a13899c5 304 FlowLayout flowLayout = new FlowLayout();\r
305 flowLayout.setAlignment(java.awt.FlowLayout.LEFT);\r
4da2e625 306 jPanelSkuInfo = new JPanel();\r
307 jPanelSkuInfo.setBorder(javax.swing.BorderFactory.createEtchedBorder(javax.swing.border.EtchedBorder.RAISED));\r
308 jPanelSkuInfo.setLayout(flowLayout);\r
309 jPanelSkuInfo.setPreferredSize(new java.awt.Dimension(600,100));\r
310 jPanelSkuInfo.add(getJCheckBoxSkuEnable(), null);\r
311 jPanelSkuInfo.add(getJScrollPaneSkuInfo(), null);\r
312 jPanelSkuInfo.add(getJButtonSkuInfoUpdate(), null);\r
313 }\r
314 return jPanelSkuInfo;\r
a13899c5 315 }\r
316\r
317 /**\r
318 * This method initializes jCheckBox \r
319 * \r
320 * @return javax.swing.JCheckBox \r
321 */\r
4da2e625 322 private JCheckBox getJCheckBoxSkuEnable() {\r
323 if (jCheckBoxSkuEnable == null) {\r
324 jCheckBoxSkuEnable = new JCheckBox();\r
325 jCheckBoxSkuEnable.setText("SKU Enable");\r
326 jCheckBoxSkuEnable.addItemListener(new java.awt.event.ItemListener() {\r
a13899c5 327 public void itemStateChanged(java.awt.event.ItemEvent e) {\r
4da2e625 328 jTableSkuInfo.setEnabled(jCheckBoxSkuEnable.isSelected());\r
a13899c5 329 }\r
330 });\r
331 }\r
4da2e625 332 return jCheckBoxSkuEnable;\r
a13899c5 333 }\r
334\r
335 \r
336 /**\r
337 * This method initializes jPanel4 \r
338 * \r
339 * @return javax.swing.JPanel \r
340 */\r
4da2e625 341 private JPanel getJPanelDynPcdValue() {\r
342 if (jPanelDynPcdValue == null) {\r
343 jLabelVpdOffset = new JLabel();\r
344 jLabelVpdOffset.setPreferredSize(new java.awt.Dimension(80,20));\r
345 jLabelVpdOffset.setText("VPD Offset");\r
346 jLabelHiiDefaultValue = new JLabel();\r
347 jLabelHiiDefaultValue.setPreferredSize(new java.awt.Dimension(100,20));\r
348 jLabelHiiDefaultValue.setText("HII Default Value");\r
349 jLabelVarOffset = new JLabel();\r
350 jLabelVarOffset.setText("Variable Offset");\r
351 jLabelVarOffset.setPreferredSize(new java.awt.Dimension(90,20));\r
352 jLabelPad = new JLabel();\r
353 jLabelPad.setText(" ");\r
354 jLabelVarGuid = new JLabel();\r
355 jLabelVarGuid.setText("Variable GUID");\r
356 jLabelVarGuid.setPreferredSize(new java.awt.Dimension(100,20));\r
357 jLabelVarName = new JLabel();\r
358 jLabelVarName.setText("Variable Name");\r
359 jLabelVarName.setToolTipText("");\r
360 jLabelVarName.setPreferredSize(new java.awt.Dimension(90,20));\r
a13899c5 361 FlowLayout flowLayout1 = new FlowLayout();\r
362 flowLayout1.setAlignment(java.awt.FlowLayout.LEFT);\r
4da2e625 363 jPanelDynPcdValue = new JPanel();\r
364 jPanelDynPcdValue.setBorder(javax.swing.BorderFactory.createEtchedBorder(javax.swing.border.EtchedBorder.LOWERED));\r
365 jPanelDynPcdValue.setLayout(flowLayout1);\r
366 jPanelDynPcdValue.setPreferredSize(new java.awt.Dimension(600,120));\r
367 jPanelDynPcdValue.add(getJRadioButtonHii(), null);\r
368 jPanelDynPcdValue.add(jLabelVarName, null);\r
369 jPanelDynPcdValue.add(getJTextFieldVarName(), null);\r
370 jPanelDynPcdValue.add(jLabelVarGuid, null);\r
371 jPanelDynPcdValue.add(getJTextFieldVarGuid(), null);\r
372 jPanelDynPcdValue.add(jLabelPad, null);\r
373 jPanelDynPcdValue.add(jLabelVarOffset, null);\r
374 jPanelDynPcdValue.add(getJTextFieldVarOffset(), null);\r
375 jPanelDynPcdValue.add(jLabelHiiDefaultValue, null);\r
376 jPanelDynPcdValue.add(getJTextFieldHiiDefaultValue(), null);\r
377 jPanelDynPcdValue.add(getJRadioButtonVpd(), null);\r
378 jPanelDynPcdValue.add(jLabelVpdOffset, null);\r
379 jPanelDynPcdValue.add(getJTextFieldVpdOffset(), null);\r
380 jLabelPadd = new JLabel();\r
381 jLabelPadd.setText(" ");\r
382 jPanelDynPcdValue.add(jLabelPadd, null);\r
383 jLabelVarName.setEnabled(false);\r
384 jLabelVarGuid.setEnabled(false);\r
385 jLabelHiiDefaultValue.setEnabled(false);\r
386 jLabelVarOffset.setEnabled(false);\r
387 jLabelVpdOffset.setEnabled(false);\r
388 jPanelDynPcdValue.add(getJRadioButtonDefaultValue(), null);\r
389 jPanelDynPcdValue.add(getJTextFieldDefaultValue(), null);\r
390 bg.add(jRadioButtonHii);\r
391 bg.add(jRadioButtonVpd);\r
a13899c5 392 } \r
393\r
4da2e625 394 return jPanelDynPcdValue;\r
a13899c5 395 }\r
396\r
397 /**\r
398 * This method initializes jRadioButton \r
399 * \r
400 * @return javax.swing.JRadioButton \r
401 */\r
4da2e625 402 private JRadioButton getJRadioButtonHii() {\r
403 if (jRadioButtonHii == null) {\r
404 jRadioButtonHii = new JRadioButton();\r
405 jRadioButtonHii.setText("HII Enable");\r
406 jRadioButtonHii.addItemListener(new java.awt.event.ItemListener() {\r
a13899c5 407 public void itemStateChanged(java.awt.event.ItemEvent e) {\r
4da2e625 408 boolean selected = jRadioButtonHii.isSelected();\r
409 jLabelVarName.setEnabled(selected);\r
410 jLabelVarGuid.setEnabled(selected);\r
411 jLabelPad.setEnabled(selected);\r
412 jLabelVarOffset.setEnabled(selected);\r
413 jLabelHiiDefaultValue.setEnabled(selected);\r
414 jTextFieldVarName.setEnabled(selected);\r
415 jTextFieldVarGuid.setEnabled(selected);\r
416 jTextFieldVarOffset.setEnabled(selected);\r
417 jTextFieldHiiDefaultValue.setEnabled(selected);\r
a13899c5 418 }\r
419 });\r
420 }\r
4da2e625 421 return jRadioButtonHii;\r
a13899c5 422 }\r
423\r
424 /**\r
425 * This method initializes jRadioButton1 \r
426 * \r
427 * @return javax.swing.JRadioButton \r
428 */\r
4da2e625 429 private JRadioButton getJRadioButtonVpd() {\r
430 if (jRadioButtonVpd == null) {\r
431 jRadioButtonVpd = new JRadioButton();\r
432 jRadioButtonVpd.setText("VPD Enable");\r
433 jRadioButtonVpd.addItemListener(new java.awt.event.ItemListener() {\r
a13899c5 434 public void itemStateChanged(java.awt.event.ItemEvent e) {\r
4da2e625 435 boolean selected = jRadioButtonVpd.isSelected();\r
436 jTextFieldVpdOffset.setEnabled(selected);\r
437 jLabelVpdOffset.setEnabled(selected);\r
a13899c5 438 }\r
439 });\r
440 }\r
4da2e625 441 return jRadioButtonVpd;\r
a13899c5 442 }\r
443\r
444 /**\r
445 * This method initializes jScrollPane1 \r
446 * \r
447 * @return javax.swing.JScrollPane \r
448 */\r
4da2e625 449 private JScrollPane getJScrollPaneSkuInfo() {\r
450 if (jScrollPaneSkuInfo == null) {\r
451 jScrollPaneSkuInfo = new JScrollPane();\r
452 jScrollPaneSkuInfo.setPreferredSize(new java.awt.Dimension(300,80));\r
453 jScrollPaneSkuInfo.setViewportView(getJTableSkuInfo());\r
a13899c5 454 }\r
4da2e625 455 return jScrollPaneSkuInfo;\r
a13899c5 456 }\r
457\r
458 /**\r
459 * This method initializes jTable1 \r
460 * \r
461 * @return javax.swing.JTable \r
462 */\r
4da2e625 463 private JTable getJTableSkuInfo() {\r
464 if (jTableSkuInfo == null) {\r
465 modelSku = new DynPcdTableModel();\r
466 jTableSkuInfo = new JTable(modelSku);\r
467 modelSku.addColumn("SKU ID");\r
468 modelSku.addColumn("SKU Name");\r
a13899c5 469 \r
4da2e625 470 jTableSkuInfo.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
471 jTableSkuInfo.getSelectionModel().addListSelectionListener(new ListSelectionListener(){\r
a13899c5 472 public void valueChanged(ListSelectionEvent e) {\r
4da2e625 473 if (jTableDynPcd.getSelectedRow() < 0) {\r
a13899c5 474 return;\r
475 }\r
476 if (e.getValueIsAdjusting()){\r
477 return;\r
478 }\r
479 ListSelectionModel lsm = (ListSelectionModel)e.getSource();\r
480 if (lsm.isSelectionEmpty()) {\r
481 return;\r
482 }\r
483 else{\r
1bf9fa5a 484 jTextFieldDefaultValue.setText("");\r
485 jTextFieldVpdOffset.setText("");\r
486 jTextFieldVarName.setText("");\r
487 jTextFieldVarGuid.setText("");\r
488 jTextFieldVarOffset.setText("");\r
489 jTextFieldHiiDefaultValue.setText("");\r
a13899c5 490 int selected = lsm.getMinSelectionIndex();\r
44053733 491 displaySkuInfoDetails(selected);\r
a13899c5 492 }\r
493 }\r
494 });\r
495 }\r
4da2e625 496 return jTableSkuInfo;\r
a13899c5 497 }\r
498\r
499 /**\r
500 * This method initializes jButton \r
501 * \r
502 * @return javax.swing.JButton \r
503 */\r
4da2e625 504 private JButton getJButtonSkuInfoUpdate() {\r
505 if (jButtonSkuInfoUpdate == null) {\r
506 jButtonSkuInfoUpdate = new JButton();\r
507 jButtonSkuInfoUpdate.setPreferredSize(new java.awt.Dimension(180,20));\r
508 jButtonSkuInfoUpdate.setText(" Update SKU Information");\r
509 jButtonSkuInfoUpdate.addActionListener(new java.awt.event.ActionListener() {\r
a13899c5 510 public void actionPerformed(java.awt.event.ActionEvent e) {\r
4da2e625 511 int pcdSelected = jTableDynPcd.getSelectedRow();\r
a13899c5 512 if (pcdSelected < 0) {\r
513 return;\r
514 }\r
d6d24759 515 docConsole.setSaved(false);\r
a13899c5 516 updateSkuInfo(pcdSelected);\r
517 \r
518 }\r
519 });\r
520 }\r
4da2e625 521 return jButtonSkuInfoUpdate;\r
a13899c5 522 }\r
2a23019d 523 \r
a13899c5 524 private void updateSkuInfo (int pcdSelected) {\r
525 int skuCount = ffc.getDynamicPcdSkuInfoCount(pcdSelected);\r
526 \r
527 String varName = null;\r
528 String varGuid = null;\r
529 String varOffset = null;\r
530 String hiiDefault = null;\r
531 String value = null;\r
532 String vpdOffset = null;\r
4da2e625 533 if (jRadioButtonHii.isSelected()) {\r
2a23019d 534 varName = Tools.convertStringToUnicodeHexString(jTextFieldVarName.getText());\r
535 if (varName.length() == 0) {\r
536 JOptionPane.showMessageDialog(this, "Variable Name is Empty.");\r
537 return;\r
538 }\r
4da2e625 539 varGuid = jTextFieldVarGuid.getText();\r
2a23019d 540 if (varGuid.length() == 0) {\r
541 JOptionPane.showMessageDialog(this, "Variable GUID is Empty.");\r
542 return;\r
543 }\r
4da2e625 544 varOffset = jTextFieldVarOffset.getText();\r
2a23019d 545 if (!DataValidation.isHex64BitDataType(varOffset)) {\r
546 JOptionPane.showMessageDialog(this, "Variable Offset is NOT Hex64BitDataType.");\r
547 return;\r
548 }\r
4da2e625 549 hiiDefault = jTextFieldHiiDefaultValue.getText();\r
2a23019d 550 if (!DataValidation.isDefaultValueType(hiiDefault)) {\r
551 JOptionPane.showMessageDialog(this, "Default Value is NOT DefaultValueType.");\r
552 return;\r
553 }\r
a13899c5 554 }\r
4da2e625 555 if (jRadioButtonVpd.isSelected()) {\r
556 vpdOffset = jTextFieldVpdOffset.getText();\r
2a23019d 557 if (!DataValidation.isHex64BitDataType(vpdOffset)) {\r
558 JOptionPane.showMessageDialog(this, "VPD Offset is NOT Hex64BitDataType.");\r
559 return;\r
560 }\r
a13899c5 561 }\r
4da2e625 562 if (jRadioButtonDefaultValue.isSelected()) {\r
563 value = jTextFieldDefaultValue.getText();\r
2a23019d 564 if (!DataValidation.isDefaultValueType(value)) {\r
565 JOptionPane.showMessageDialog(this, "Value is NOT DefaultValueType.");\r
566 return;\r
567 }\r
a13899c5 568 }\r
569 //\r
570 // SKU disabled. only modify data for default SKU.\r
571 //\r
4da2e625 572 if (!jCheckBoxSkuEnable.isSelected()) {\r
a13899c5 573 if (true) {\r
574 ffc.removeDynamicPcdBuildDataSkuInfo(pcdSelected);\r
4da2e625 575 if (jRadioButtonHii.isSelected()) {\r
a13899c5 576 ffc.genDynamicPcdBuildDataSkuInfo("0", varName, varGuid, varOffset, hiiDefault, null, null, pcdSelected);\r
577 }\r
4da2e625 578 else if (jRadioButtonVpd.isSelected()){\r
a13899c5 579 ffc.genDynamicPcdBuildDataSkuInfo("0", null, null, null, null, vpdOffset, null, pcdSelected);\r
580 }\r
581 else{\r
582 ffc.genDynamicPcdBuildDataSkuInfo("0", null, null, null, null, null, value, pcdSelected);\r
583 }\r
584 }\r
585 }\r
586 //\r
587 // SKU Enabled, need add data to all SKUs.\r
588 //\r
4da2e625 589 if (jCheckBoxSkuEnable.isSelected()) {\r
a13899c5 590 if (skuCount == 1) {\r
591 \r
4da2e625 592 for (int i = 1; i < jTableSkuInfo.getRowCount(); ++i) {\r
593 ffc.genDynamicPcdBuildDataSkuInfo(jTableSkuInfo.getValueAt(i, 0)+"", varName, varGuid, varOffset, hiiDefault, vpdOffset, value, pcdSelected);\r
a13899c5 594 }\r
595 }\r
596 else {\r
4da2e625 597 int row = jTableSkuInfo.getSelectedRow();\r
a13899c5 598 if (row < 0) {\r
599 return;\r
600 }\r
4da2e625 601 ffc.updateDynamicPcdBuildDataSkuInfo(jTableSkuInfo.getValueAt(row, 0)+"", varName, varGuid, varOffset, hiiDefault, vpdOffset, value, pcdSelected);\r
a13899c5 602 }\r
603 }\r
604 }\r
605 /**\r
606 * This method initializes jTextField \r
607 * \r
608 * @return javax.swing.JTextField \r
609 */\r
4da2e625 610 private JTextField getJTextFieldVarName() {\r
611 if (jTextFieldVarName == null) {\r
612 jTextFieldVarName = new JTextField();\r
613 jTextFieldVarName.setPreferredSize(new java.awt.Dimension(150,20));\r
614 jTextFieldVarName.setEnabled(false);\r
a13899c5 615 }\r
4da2e625 616 return jTextFieldVarName;\r
a13899c5 617 }\r
618\r
619 /**\r
620 * This method initializes jTextField1 \r
621 * \r
622 * @return javax.swing.JTextField \r
623 */\r
4da2e625 624 private JTextField getJTextFieldVarGuid() {\r
625 if (jTextFieldVarGuid == null) {\r
626 jTextFieldVarGuid = new JTextField();\r
627 jTextFieldVarGuid.setPreferredSize(new java.awt.Dimension(150,20));\r
628 jTextFieldVarGuid.setEnabled(false);\r
a13899c5 629 }\r
4da2e625 630 return jTextFieldVarGuid;\r
a13899c5 631 }\r
632\r
633 /**\r
634 * This method initializes jTextField2 \r
635 * \r
636 * @return javax.swing.JTextField \r
637 */\r
4da2e625 638 private JTextField getJTextFieldVarOffset() {\r
639 if (jTextFieldVarOffset == null) {\r
640 jTextFieldVarOffset = new JTextField();\r
641 jTextFieldVarOffset.setPreferredSize(new java.awt.Dimension(150,20));\r
642 jTextFieldVarOffset.setEnabled(false);\r
a13899c5 643 }\r
4da2e625 644 return jTextFieldVarOffset;\r
a13899c5 645 }\r
646\r
647 /**\r
648 * This method initializes jTextField3 \r
649 * \r
650 * @return javax.swing.JTextField \r
651 */\r
4da2e625 652 private JTextField getJTextFieldHiiDefaultValue() {\r
653 if (jTextFieldHiiDefaultValue == null) {\r
654 jTextFieldHiiDefaultValue = new JTextField();\r
655 jTextFieldHiiDefaultValue.setPreferredSize(new java.awt.Dimension(150,20));\r
656 jTextFieldHiiDefaultValue.setEnabled(false);\r
a13899c5 657 }\r
4da2e625 658 return jTextFieldHiiDefaultValue;\r
a13899c5 659 }\r
660\r
661 /**\r
662 * This method initializes jTextField4 \r
663 * \r
664 * @return javax.swing.JTextField \r
665 */\r
4da2e625 666 private JTextField getJTextFieldVpdOffset() {\r
667 if (jTextFieldVpdOffset == null) {\r
668 jTextFieldVpdOffset = new JTextField();\r
669 jTextFieldVpdOffset.setPreferredSize(new java.awt.Dimension(150,20));\r
670 jTextFieldVpdOffset.setEnabled(false);\r
a13899c5 671 }\r
4da2e625 672 return jTextFieldVpdOffset;\r
a13899c5 673 }\r
674\r
675 /**\r
676 * This method initializes jTextField5 \r
677 * \r
678 * @return javax.swing.JTextField \r
679 */\r
4da2e625 680 private JTextField getJTextFieldDefaultValue() {\r
681 if (jTextFieldDefaultValue == null) {\r
682 jTextFieldDefaultValue = new JTextField();\r
683 jTextFieldDefaultValue.setPreferredSize(new java.awt.Dimension(150,20));\r
a13899c5 684 }\r
4da2e625 685 return jTextFieldDefaultValue;\r
a13899c5 686 }\r
687\r
688 /**\r
689 * This method initializes jRadioButton2 \r
690 * \r
691 * @return javax.swing.JRadioButton \r
692 */\r
4da2e625 693 private JRadioButton getJRadioButtonDefaultValue() {\r
694 if (jRadioButtonDefaultValue == null) {\r
695 jRadioButtonDefaultValue = new JRadioButton();\r
696 jRadioButtonDefaultValue.setText("Default PCD Value");\r
697 jRadioButtonDefaultValue.setSelected(true);\r
698 jRadioButtonDefaultValue.setPreferredSize(new java.awt.Dimension(175,20));\r
699 jRadioButtonDefaultValue.addItemListener(new java.awt.event.ItemListener() {\r
a13899c5 700 public void itemStateChanged(java.awt.event.ItemEvent e) {\r
4da2e625 701 jTextFieldDefaultValue.setEnabled(jRadioButtonDefaultValue.isSelected());\r
a13899c5 702 }\r
703 });\r
4da2e625 704 bg.add(jRadioButtonDefaultValue);\r
a13899c5 705 }\r
4da2e625 706 return jRadioButtonDefaultValue;\r
a13899c5 707 }\r
708\r
709} // @jve:decl-index=0:visual-constraint="10,10"\r
710\r
711class DynPcdTableModel extends DefaultTableModel {\r
44053733 712 /**\r
713 * \r
714 */\r
715 private static final long serialVersionUID = 1L;\r
716\r
a13899c5 717 public boolean isCellEditable(int row, int col) {\r
718 \r
719 return false;\r
720 }\r
721}\r