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