]> git.proxmox.com Git - mirror_edk2.git/blame - Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdDynamicPcdBuildDefinitions.java
change table column positions in tables of FrameworkModules and horizontal scrollbar...
[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
484 int selected = lsm.getMinSelectionIndex();\r
44053733 485 displaySkuInfoDetails(selected);\r
a13899c5 486 }\r
487 }\r
488 });\r
489 }\r
4da2e625 490 return jTableSkuInfo;\r
a13899c5 491 }\r
492\r
493 /**\r
494 * This method initializes jButton \r
495 * \r
496 * @return javax.swing.JButton \r
497 */\r
4da2e625 498 private JButton getJButtonSkuInfoUpdate() {\r
499 if (jButtonSkuInfoUpdate == null) {\r
500 jButtonSkuInfoUpdate = new JButton();\r
501 jButtonSkuInfoUpdate.setPreferredSize(new java.awt.Dimension(180,20));\r
502 jButtonSkuInfoUpdate.setText(" Update SKU Information");\r
503 jButtonSkuInfoUpdate.addActionListener(new java.awt.event.ActionListener() {\r
a13899c5 504 public void actionPerformed(java.awt.event.ActionEvent e) {\r
4da2e625 505 int pcdSelected = jTableDynPcd.getSelectedRow();\r
a13899c5 506 if (pcdSelected < 0) {\r
507 return;\r
508 }\r
d6d24759 509 docConsole.setSaved(false);\r
a13899c5 510 updateSkuInfo(pcdSelected);\r
511 \r
512 }\r
513 });\r
514 }\r
4da2e625 515 return jButtonSkuInfoUpdate;\r
a13899c5 516 }\r
2a23019d 517 \r
a13899c5 518 private void updateSkuInfo (int pcdSelected) {\r
519 int skuCount = ffc.getDynamicPcdSkuInfoCount(pcdSelected);\r
520 \r
521 String varName = null;\r
522 String varGuid = null;\r
523 String varOffset = null;\r
524 String hiiDefault = null;\r
525 String value = null;\r
526 String vpdOffset = null;\r
4da2e625 527 if (jRadioButtonHii.isSelected()) {\r
2a23019d 528 varName = Tools.convertStringToUnicodeHexString(jTextFieldVarName.getText());\r
529 if (varName.length() == 0) {\r
530 JOptionPane.showMessageDialog(this, "Variable Name is Empty.");\r
531 return;\r
532 }\r
4da2e625 533 varGuid = jTextFieldVarGuid.getText();\r
2a23019d 534 if (varGuid.length() == 0) {\r
535 JOptionPane.showMessageDialog(this, "Variable GUID is Empty.");\r
536 return;\r
537 }\r
4da2e625 538 varOffset = jTextFieldVarOffset.getText();\r
2a23019d 539 if (!DataValidation.isHex64BitDataType(varOffset)) {\r
540 JOptionPane.showMessageDialog(this, "Variable Offset is NOT Hex64BitDataType.");\r
541 return;\r
542 }\r
4da2e625 543 hiiDefault = jTextFieldHiiDefaultValue.getText();\r
2a23019d 544 if (!DataValidation.isDefaultValueType(hiiDefault)) {\r
545 JOptionPane.showMessageDialog(this, "Default Value is NOT DefaultValueType.");\r
546 return;\r
547 }\r
a13899c5 548 }\r
4da2e625 549 if (jRadioButtonVpd.isSelected()) {\r
550 vpdOffset = jTextFieldVpdOffset.getText();\r
2a23019d 551 if (!DataValidation.isHex64BitDataType(vpdOffset)) {\r
552 JOptionPane.showMessageDialog(this, "VPD Offset is NOT Hex64BitDataType.");\r
553 return;\r
554 }\r
a13899c5 555 }\r
4da2e625 556 if (jRadioButtonDefaultValue.isSelected()) {\r
557 value = jTextFieldDefaultValue.getText();\r
2a23019d 558 if (!DataValidation.isDefaultValueType(value)) {\r
559 JOptionPane.showMessageDialog(this, "Value is NOT DefaultValueType.");\r
560 return;\r
561 }\r
a13899c5 562 }\r
563 //\r
564 // SKU disabled. only modify data for default SKU.\r
565 //\r
4da2e625 566 if (!jCheckBoxSkuEnable.isSelected()) {\r
a13899c5 567 if (true) {\r
568 ffc.removeDynamicPcdBuildDataSkuInfo(pcdSelected);\r
4da2e625 569 if (jRadioButtonHii.isSelected()) {\r
a13899c5 570 ffc.genDynamicPcdBuildDataSkuInfo("0", varName, varGuid, varOffset, hiiDefault, null, null, pcdSelected);\r
571 }\r
4da2e625 572 else if (jRadioButtonVpd.isSelected()){\r
a13899c5 573 ffc.genDynamicPcdBuildDataSkuInfo("0", null, null, null, null, vpdOffset, null, pcdSelected);\r
574 }\r
575 else{\r
576 ffc.genDynamicPcdBuildDataSkuInfo("0", null, null, null, null, null, value, pcdSelected);\r
577 }\r
578 }\r
579 }\r
580 //\r
581 // SKU Enabled, need add data to all SKUs.\r
582 //\r
4da2e625 583 if (jCheckBoxSkuEnable.isSelected()) {\r
a13899c5 584 if (skuCount == 1) {\r
585 \r
4da2e625 586 for (int i = 1; i < jTableSkuInfo.getRowCount(); ++i) {\r
587 ffc.genDynamicPcdBuildDataSkuInfo(jTableSkuInfo.getValueAt(i, 0)+"", varName, varGuid, varOffset, hiiDefault, vpdOffset, value, pcdSelected);\r
a13899c5 588 }\r
589 }\r
590 else {\r
4da2e625 591 int row = jTableSkuInfo.getSelectedRow();\r
a13899c5 592 if (row < 0) {\r
593 return;\r
594 }\r
4da2e625 595 ffc.updateDynamicPcdBuildDataSkuInfo(jTableSkuInfo.getValueAt(row, 0)+"", varName, varGuid, varOffset, hiiDefault, vpdOffset, value, pcdSelected);\r
a13899c5 596 }\r
597 }\r
598 }\r
599 /**\r
600 * This method initializes jTextField \r
601 * \r
602 * @return javax.swing.JTextField \r
603 */\r
4da2e625 604 private JTextField getJTextFieldVarName() {\r
605 if (jTextFieldVarName == null) {\r
606 jTextFieldVarName = new JTextField();\r
607 jTextFieldVarName.setPreferredSize(new java.awt.Dimension(150,20));\r
608 jTextFieldVarName.setEnabled(false);\r
a13899c5 609 }\r
4da2e625 610 return jTextFieldVarName;\r
a13899c5 611 }\r
612\r
613 /**\r
614 * This method initializes jTextField1 \r
615 * \r
616 * @return javax.swing.JTextField \r
617 */\r
4da2e625 618 private JTextField getJTextFieldVarGuid() {\r
619 if (jTextFieldVarGuid == null) {\r
620 jTextFieldVarGuid = new JTextField();\r
621 jTextFieldVarGuid.setPreferredSize(new java.awt.Dimension(150,20));\r
622 jTextFieldVarGuid.setEnabled(false);\r
a13899c5 623 }\r
4da2e625 624 return jTextFieldVarGuid;\r
a13899c5 625 }\r
626\r
627 /**\r
628 * This method initializes jTextField2 \r
629 * \r
630 * @return javax.swing.JTextField \r
631 */\r
4da2e625 632 private JTextField getJTextFieldVarOffset() {\r
633 if (jTextFieldVarOffset == null) {\r
634 jTextFieldVarOffset = new JTextField();\r
635 jTextFieldVarOffset.setPreferredSize(new java.awt.Dimension(150,20));\r
636 jTextFieldVarOffset.setEnabled(false);\r
a13899c5 637 }\r
4da2e625 638 return jTextFieldVarOffset;\r
a13899c5 639 }\r
640\r
641 /**\r
642 * This method initializes jTextField3 \r
643 * \r
644 * @return javax.swing.JTextField \r
645 */\r
4da2e625 646 private JTextField getJTextFieldHiiDefaultValue() {\r
647 if (jTextFieldHiiDefaultValue == null) {\r
648 jTextFieldHiiDefaultValue = new JTextField();\r
649 jTextFieldHiiDefaultValue.setPreferredSize(new java.awt.Dimension(150,20));\r
650 jTextFieldHiiDefaultValue.setEnabled(false);\r
a13899c5 651 }\r
4da2e625 652 return jTextFieldHiiDefaultValue;\r
a13899c5 653 }\r
654\r
655 /**\r
656 * This method initializes jTextField4 \r
657 * \r
658 * @return javax.swing.JTextField \r
659 */\r
4da2e625 660 private JTextField getJTextFieldVpdOffset() {\r
661 if (jTextFieldVpdOffset == null) {\r
662 jTextFieldVpdOffset = new JTextField();\r
663 jTextFieldVpdOffset.setPreferredSize(new java.awt.Dimension(150,20));\r
664 jTextFieldVpdOffset.setEnabled(false);\r
a13899c5 665 }\r
4da2e625 666 return jTextFieldVpdOffset;\r
a13899c5 667 }\r
668\r
669 /**\r
670 * This method initializes jTextField5 \r
671 * \r
672 * @return javax.swing.JTextField \r
673 */\r
4da2e625 674 private JTextField getJTextFieldDefaultValue() {\r
675 if (jTextFieldDefaultValue == null) {\r
676 jTextFieldDefaultValue = new JTextField();\r
677 jTextFieldDefaultValue.setPreferredSize(new java.awt.Dimension(150,20));\r
a13899c5 678 }\r
4da2e625 679 return jTextFieldDefaultValue;\r
a13899c5 680 }\r
681\r
682 /**\r
683 * This method initializes jRadioButton2 \r
684 * \r
685 * @return javax.swing.JRadioButton \r
686 */\r
4da2e625 687 private JRadioButton getJRadioButtonDefaultValue() {\r
688 if (jRadioButtonDefaultValue == null) {\r
689 jRadioButtonDefaultValue = new JRadioButton();\r
690 jRadioButtonDefaultValue.setText("Default PCD Value");\r
691 jRadioButtonDefaultValue.setSelected(true);\r
692 jRadioButtonDefaultValue.setPreferredSize(new java.awt.Dimension(175,20));\r
693 jRadioButtonDefaultValue.addItemListener(new java.awt.event.ItemListener() {\r
a13899c5 694 public void itemStateChanged(java.awt.event.ItemEvent e) {\r
4da2e625 695 jTextFieldDefaultValue.setEnabled(jRadioButtonDefaultValue.isSelected());\r
a13899c5 696 }\r
697 });\r
4da2e625 698 bg.add(jRadioButtonDefaultValue);\r
a13899c5 699 }\r
4da2e625 700 return jRadioButtonDefaultValue;\r
a13899c5 701 }\r
702\r
703} // @jve:decl-index=0:visual-constraint="10,10"\r
704\r
705class DynPcdTableModel extends DefaultTableModel {\r
44053733 706 /**\r
707 * \r
708 */\r
709 private static final long serialVersionUID = 1L;\r
710\r
a13899c5 711 public boolean isCellEditable(int row, int col) {\r
712 \r
713 return false;\r
714 }\r
715}\r