1 package org
.tianocore
.frameworkwizard
.platform
.ui
;
3 import java
.awt
.BorderLayout
;
4 import java
.awt
.Dimension
;
5 import java
.awt
.FontMetrics
;
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
;
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
;
31 public class FpdDynamicPcdBuildDefinitions
extends IInternalFrame
{
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;
70 * This is the default constructor
72 public FpdDynamicPcdBuildDefinitions() {
77 public FpdDynamicPcdBuildDefinitions(PlatformSurfaceAreaDocument
.PlatformSurfaceArea fpd
){
82 public FpdDynamicPcdBuildDefinitions(OpeningPlatformType opt
) {
83 this(opt
.getXmlFpd());
87 public void init(PlatformSurfaceAreaDocument
.PlatformSurfaceArea fpd
) {
89 ffc
= new FpdFileContents(fpd
);
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
]);
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
]);
106 * This method initializes this
110 private void initialize() {
111 this.setSize(661, 558);
112 this.setTitle("Dynamic PCD Build Definitions");
113 this.setContentPane(getJContentPane());
114 this.setVisible(true);
118 * This method initializes jContentPane
120 * @return javax.swing.JPanel
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
);
133 * This method initializes jScrollPane
135 * @return javax.swing.JScrollPane
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());
143 return jScrollPaneDynPcd
;
147 * This method initializes jTable
149 * @return javax.swing.JTable
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);
165 jTableDynPcd
.setSelectionMode(ListSelectionModel
.SINGLE_SELECTION
);
166 jTableDynPcd
.getSelectionModel().addListSelectionListener(new ListSelectionListener(){
167 public void valueChanged(ListSelectionEvent e
) {
168 if (e
.getValueIsAdjusting()){
171 ListSelectionModel lsm
= (ListSelectionModel
)e
.getSource();
172 if (lsm
.isSelectionEmpty()) {
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
);
191 // should display default sku info here, as no selection event of table1 will be triggered when change selection of rows in table.
193 private void displayDetails(int i
) {
194 int defaultSkuRow
= getDefaultSkuInfoRow();
195 jTableSkuInfo
.changeSelection(defaultSkuRow
, 0, false, false);
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);
206 jCheckBoxSkuEnable
.setSelected(true);
210 else if (ffc
.getDynamicPcdBuildDataVpdOffset(i
) != null) {
211 jRadioButtonVpd
.setSelected(true);
212 jTextFieldVpdOffset
.setText(ffc
.getDynamicPcdBuildDataVpdOffset(i
));
214 jCheckBoxSkuEnable
.setSelected(false);
218 jCheckBoxSkuEnable
.setSelected(true);
222 jRadioButtonHii
.setSelected(true);
223 String
[][] saa
= new String
[ffc
.getDynamicPcdSkuInfoCount(i
)][7];
224 ffc
.getDynamicPcdSkuInfos(i
, saa
);
226 String varDisplayName
= Tools
.convertUnicodeHexStringToString(saa
[0][1]);
227 jTextFieldVarName
.setText(varDisplayName
);
229 jTextFieldVarGuid
.setText(saa
[0][2]);
230 jTextFieldVarOffset
.setText(saa
[0][3]);
231 jTextFieldHiiDefaultValue
.setText(saa
[0][4]);
233 jCheckBoxSkuEnable
.setSelected(false);
236 jCheckBoxSkuEnable
.setSelected(true);
242 private void displaySkuInfoDetails(String id
) {
243 int pcdSelected
= jTableDynPcd
.getSelectedRow();
244 if (pcdSelected
< 0) {
248 int skuInfoCount
= ffc
.getDynamicPcdSkuInfoCount(pcdSelected
);
249 String
[][] saa
= new String
[skuInfoCount
][7];
250 ffc
.getDynamicPcdSkuInfos(pcdSelected
, saa
);
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]);
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]);
269 jRadioButtonDefaultValue
.setSelected(true);
270 jTextFieldDefaultValue
.setText(saa
[i
][6]);
278 private int getDefaultSkuInfoRow () {
279 for (int i
= 0; i
< modelSku
.getRowCount(); ++i
) {
280 if (modelSku
.getValueAt(i
, 0).equals("0")) {
288 * This method initializes jPanel3
290 * @return javax.swing.JPanel
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));
299 // jPanelSkuInfo.add(getJPanelSkuInfoN(), java.awt.BorderLayout.NORTH);
300 jPanelSkuInfo
.add(getJScrollPane(), java
.awt
.BorderLayout
.NORTH
);
301 jPanelSkuInfo
.add(getJScrollPaneSkuInfo(), java
.awt
.BorderLayout
.CENTER
);
304 // jPanelSkuInfo.add(getJPanelDynPcdValue(), java.awt.BorderLayout.SOUTH);
306 return jPanelSkuInfo
;
310 * This method initializes jCheckBox
312 * @return javax.swing.JCheckBox
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);
324 jTableSkuInfo
.setEnabled(jCheckBoxSkuEnable
.isSelected());
328 return jCheckBoxSkuEnable
;
333 * This method initializes jPanel4
335 * @return javax.swing.JPanel
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);
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
);
399 return jPanelDynPcdValue
;
403 * This method initializes jRadioButton
405 * @return javax.swing.JRadioButton
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
);
426 return jRadioButtonHii
;
430 * This method initializes jRadioButton1
432 * @return javax.swing.JRadioButton
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
);
446 return jRadioButtonVpd
;
450 * This method initializes jScrollPane1
452 * @return javax.swing.JScrollPane
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());
460 return jScrollPaneSkuInfo
;
464 * This method initializes jTable1
466 * @return javax.swing.JTable
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) {
481 if (e
.getValueIsAdjusting()){
484 ListSelectionModel lsm
= (ListSelectionModel
)e
.getSource();
485 if (lsm
.isSelectionEmpty()) {
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
);
502 return jTableSkuInfo
;
506 * This method initializes jButton
508 * @return javax.swing.JButton
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) {
523 docConsole
.setSaved(false);
524 updateSkuInfo(pcdSelected
);
529 return jButtonSkuInfoUpdate
;
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)+"";
537 String varName
= null;
538 String varGuid
= null;
539 String varOffset
= null;
540 String hiiDefault
= 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.");
549 varGuid
= jTextFieldVarGuid
.getText();
550 if (varGuid
.length() == 0) {
551 JOptionPane
.showMessageDialog(this, "Variable GUID is Empty.");
554 varOffset
= jTextFieldVarOffset
.getText();
555 if (!DataValidation
.isHex64BitDataType(varOffset
)) {
556 JOptionPane
.showMessageDialog(this, "Variable Offset is NOT Hex64BitDataType.");
559 hiiDefault
= jTextFieldHiiDefaultValue
.getText();
560 if (!DataValidation
.isDefaultValueType(hiiDefault
)) {
561 JOptionPane
.showMessageDialog(this, "Default Value is NOT DefaultValueType.");
565 if (jRadioButtonVpd
.isSelected()) {
566 vpdOffset
= jTextFieldVpdOffset
.getText();
567 if (!DataValidation
.isHex64BitDataType(vpdOffset
)) {
568 JOptionPane
.showMessageDialog(this, "VPD Offset is NOT Hex64BitDataType.");
572 if (jRadioButtonDefaultValue
.isSelected()) {
573 value
= jTextFieldDefaultValue
.getText();
574 if (!DataValidation
.isDefaultValueType(value
)) {
575 JOptionPane
.showMessageDialog(this, "Value is NOT DefaultValueType.");
580 // SKU disabled. only modify data for default SKU.
582 if (!jCheckBoxSkuEnable
.isSelected()) {
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
);
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
);
596 else if (jRadioButtonVpd
.isSelected()){
597 ffc
.genDynamicPcdBuildDataSkuInfo("0", null, null, null, null, vpdOffset
, null, pcdSelected
);
598 ArrayList
<String
> al
= ffc
.getDynPcdMapValue(cName
+ " " + tsGuid
);
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
);
608 ffc
.genDynamicPcdBuildDataSkuInfo("0", null, null, null, null, null, value
, pcdSelected
);
609 ArrayList
<String
> al
= ffc
.getDynPcdMapValue(cName
+ " " + tsGuid
);
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
);
621 // SKU Enabled, need add data to all SKUs.
623 if (jCheckBoxSkuEnable
.isSelected()) {
626 for (int i
= 1; i
< jTableSkuInfo
.getRowCount(); ++i
) {
627 ffc
.genDynamicPcdBuildDataSkuInfo(modelSku
.getValueAt(i
, 0)+"", varName
, varGuid
, varOffset
, hiiDefault
, vpdOffset
, value
, pcdSelected
);
631 int row
= jTableSkuInfo
.getSelectedRow();
635 ffc
.updateDynamicPcdBuildDataSkuInfo(modelSku
.getValueAt(row
, 0)+"", varName
, varGuid
, varOffset
, hiiDefault
, vpdOffset
, value
, pcdSelected
);
640 private String
moduleInfo (String pcdInfo
) {
642 return pcdInfo
.substring(0, pcdInfo
.lastIndexOf(" "));
645 * This method initializes jTextField
647 * @return javax.swing.JTextField
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);
655 return jTextFieldVarName
;
659 * This method initializes jTextField1
661 * @return javax.swing.JTextField
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);
669 return jTextFieldVarGuid
;
673 * This method initializes jTextField2
675 * @return javax.swing.JTextField
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);
683 return jTextFieldVarOffset
;
687 * This method initializes jTextField3
689 * @return javax.swing.JTextField
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);
697 return jTextFieldHiiDefaultValue
;
701 * This method initializes jTextField4
703 * @return javax.swing.JTextField
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);
711 return jTextFieldVpdOffset
;
715 * This method initializes jTextField5
717 * @return javax.swing.JTextField
719 private JTextField
getJTextFieldDefaultValue() {
720 if (jTextFieldDefaultValue
== null) {
721 jTextFieldDefaultValue
= new JTextField();
722 jTextFieldDefaultValue
.setPreferredSize(new java
.awt
.Dimension(150,20));
724 return jTextFieldDefaultValue
;
728 * This method initializes jRadioButton2
730 * @return javax.swing.JRadioButton
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());
743 bg
.add(jRadioButtonDefaultValue
);
745 return jRadioButtonDefaultValue
;
749 * This method initializes jScrollPane
751 * @return javax.swing.JScrollPane
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());
762 } // @jve:decl-index=0:visual-constraint="10,10"
764 class DynPcdTableModel
extends DefaultTableModel
{
768 private static final long serialVersionUID
= 1L;
770 public boolean isCellEditable(int row
, int col
) {