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