]> git.proxmox.com Git - mirror_edk2.git/blobdiff - Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdDynamicPcdBuildDefinitions.java
Fix EDKT337,Double click on modules in "Framework Modules" of Platforms should be...
[mirror_edk2.git] / Tools / Source / FrameworkWizard / src / org / tianocore / frameworkwizard / platform / ui / FpdDynamicPcdBuildDefinitions.java
index 0a96224da3fcaaa1811e2486517389f593ecdf61..05459069003af48b8b984327eb1e24b268569b03 100644 (file)
@@ -3,6 +3,7 @@ package org.tianocore.frameworkwizard.platform.ui;
 import java.awt.BorderLayout;\r
 \r
 import javax.swing.ButtonGroup;\r
+import javax.swing.JOptionPane;\r
 import javax.swing.JPanel;\r
 import javax.swing.JScrollPane;\r
 import javax.swing.JTable;\r
@@ -12,6 +13,8 @@ import javax.swing.event.ListSelectionListener;
 import javax.swing.table.DefaultTableModel;\r
 \r
 import org.tianocore.PlatformSurfaceAreaDocument;\r
+import org.tianocore.frameworkwizard.common.DataValidation;\r
+import org.tianocore.frameworkwizard.common.Tools;\r
 import org.tianocore.frameworkwizard.common.Identifications.OpeningPlatformType;\r
 import org.tianocore.frameworkwizard.common.ui.IInternalFrame;\r
 import javax.swing.JCheckBox;\r
@@ -20,6 +23,7 @@ import javax.swing.JRadioButton;
 import javax.swing.JButton;\r
 import javax.swing.JLabel;\r
 import javax.swing.JTextField;\r
+import java.awt.GridLayout;\r
 \r
 public class FpdDynamicPcdBuildDefinitions extends IInternalFrame {\r
 \r
@@ -28,38 +32,36 @@ public class FpdDynamicPcdBuildDefinitions extends IInternalFrame {
      */\r
     private static final long serialVersionUID = 1L;\r
     private JPanel jContentPane = null;\r
-    private JPanel jPanel = null;\r
-    private JPanel jPanel1 = null;\r
-    private JPanel jPanel2 = null;\r
-    private JScrollPane jScrollPane = null;\r
-    private JTable jTable = null;\r
-    private DynPcdTableModel model = null; \r
-    private DynPcdTableModel model1 = null;\r
+    private JScrollPane jScrollPaneDynPcd = null;\r
+    private JTable jTableDynPcd = null;\r
+    private DynPcdTableModel modelPcd = null; \r
+    private DynPcdTableModel modelSku = null;\r
     private FpdFileContents ffc = null;\r
     private OpeningPlatformType docConsole = null;\r
-    private JPanel jPanel3 = null;\r
-    private JCheckBox jCheckBox = null;\r
-    private JPanel jPanel4 = null;\r
-    private JRadioButton jRadioButton = null;\r
-    private JRadioButton jRadioButton1 = null;\r
-    private JScrollPane jScrollPane1 = null;\r
-    private JTable jTable1 = null;\r
-    private JButton jButton = null;\r
-    private JLabel jLabel = null;\r
-    private JTextField jTextField = null;\r
-    private JLabel jLabel1 = null;\r
-    private JTextField jTextField1 = null;\r
-    private JLabel jLabel2 = null;\r
-    private JLabel jLabel3 = null;\r
-    private JTextField jTextField2 = null;\r
-    private JLabel jLabel4 = null;\r
-    private JTextField jTextField3 = null;\r
-    private JTextField jTextField4 = null;\r
-    private JLabel jLabel5 = null;\r
-    private JTextField jTextField5 = null;\r
-    private JRadioButton jRadioButton2 = null;\r
+    private JPanel jPanelSkuInfo = null;\r
+    private JCheckBox jCheckBoxSkuEnable = null;\r
+    private JPanel jPanelDynPcdValue = null;\r
+    private JRadioButton jRadioButtonHii = null;\r
+    private JRadioButton jRadioButtonVpd = null;\r
+    private JScrollPane jScrollPaneSkuInfo = null;\r
+    private JTable jTableSkuInfo = null;\r
+    private JButton jButtonSkuInfoUpdate = null;\r
+    private JLabel jLabelVarName = null;\r
+    private JTextField jTextFieldVarName = null;\r
+    private JLabel jLabelVarGuid = null;\r
+    private JTextField jTextFieldVarGuid = null;\r
+    private JLabel jLabelPad = null;\r
+    private JLabel jLabelVarOffset = null;\r
+    private JTextField jTextFieldVarOffset = null;\r
+    private JLabel jLabelHiiDefaultValue = null;\r
+    private JTextField jTextFieldHiiDefaultValue = null;\r
+    private JTextField jTextFieldVpdOffset = null;\r
+    private JLabel jLabelVpdOffset = null;\r
+    private JTextField jTextFieldDefaultValue = null;\r
+    private JRadioButton jRadioButtonDefaultValue = null;\r
     private ButtonGroup bg = new ButtonGroup();\r
-    private JLabel jLabel6 = null;\r
+    private JLabel jLabelPadd = null;\r
+    private JLabel jLabelPad1 = null;\r
     /**\r
      * This is the default constructor\r
      */\r
@@ -85,13 +87,13 @@ public class FpdDynamicPcdBuildDefinitions extends IInternalFrame {
         String[][] saa = new String[ffc.getDynamicPcdBuildDataCount()][5];\r
         ffc.getDynamicPcdBuildData(saa);\r
         for (int i = 0; i < saa.length; ++i) {\r
-            model.addRow(saa[i]);\r
+            modelPcd.addRow(saa[i]);\r
         }\r
         \r
         saa = new String[ffc.getPlatformDefsSkuInfoCount()][2];\r
         ffc.getPlatformDefsSkuInfos(saa);\r
         for (int i = 0; i < saa.length; ++i) {\r
-            model1.addRow(saa[i]);\r
+            modelSku.addRow(saa[i]);\r
         }\r
         \r
     }\r
@@ -116,64 +118,25 @@ public class FpdDynamicPcdBuildDefinitions extends IInternalFrame {
         if (jContentPane == null) {\r
             jContentPane = new JPanel();\r
             jContentPane.setLayout(new BorderLayout());\r
-            jContentPane.add(getJPanel(), java.awt.BorderLayout.NORTH);\r
-            jContentPane.add(getJPanel1(), java.awt.BorderLayout.CENTER);\r
-            jContentPane.add(getJPanel2(), java.awt.BorderLayout.SOUTH);\r
+            jContentPane.add(getJScrollPaneDynPcd(), java.awt.BorderLayout.NORTH);\r
+            jContentPane.add(getJPanelSkuInfo(), java.awt.BorderLayout.CENTER);\r
+            jContentPane.add(getJPanelDynPcdValue(), java.awt.BorderLayout.SOUTH);\r
         }\r
         return jContentPane;\r
     }\r
 \r
-    /**\r
-     * This method initializes jPanel  \r
-     *         \r
-     * @return javax.swing.JPanel      \r
-     */\r
-    private JPanel getJPanel() {\r
-        if (jPanel == null) {\r
-            jPanel = new JPanel();\r
-        }\r
-        return jPanel;\r
-    }\r
-\r
-    /**\r
-     * This method initializes jPanel1 \r
-     *         \r
-     * @return javax.swing.JPanel      \r
-     */\r
-    private JPanel getJPanel1() {\r
-        if (jPanel1 == null) {\r
-            jPanel1 = new JPanel();\r
-            jPanel1.add(getJScrollPane(), null);\r
-            jPanel1.add(getJPanel3(), null);\r
-            jPanel1.add(getJPanel4(), null);\r
-        }\r
-        return jPanel1;\r
-    }\r
-\r
-    /**\r
-     * This method initializes jPanel2 \r
-     *         \r
-     * @return javax.swing.JPanel      \r
-     */\r
-    private JPanel getJPanel2() {\r
-        if (jPanel2 == null) {\r
-            jPanel2 = new JPanel();\r
-        }\r
-        return jPanel2;\r
-    }\r
-\r
     /**\r
      * This method initializes jScrollPane     \r
      *         \r
      * @return javax.swing.JScrollPane \r
      */\r
-    private JScrollPane getJScrollPane() {\r
-        if (jScrollPane == null) {\r
-            jScrollPane = new JScrollPane();\r
-            jScrollPane.setPreferredSize(new java.awt.Dimension(600,200));\r
-            jScrollPane.setViewportView(getJTable());\r
+    private JScrollPane getJScrollPaneDynPcd() {\r
+        if (jScrollPaneDynPcd == null) {\r
+            jScrollPaneDynPcd = new JScrollPane();\r
+            jScrollPaneDynPcd.setPreferredSize(new java.awt.Dimension(100,300));\r
+            jScrollPaneDynPcd.setViewportView(getJTableDynPcd());\r
         }\r
-        return jScrollPane;\r
+        return jScrollPaneDynPcd;\r
     }\r
 \r
     /**\r
@@ -181,18 +144,18 @@ public class FpdDynamicPcdBuildDefinitions extends IInternalFrame {
      *         \r
      * @return javax.swing.JTable      \r
      */\r
-    private JTable getJTable() {\r
-        if (jTable == null) {\r
-            model = new DynPcdTableModel();\r
-            model.addColumn("CName");\r
-            model.addColumn("Token");\r
-            model.addColumn("TokenSpaceGuid");\r
-            model.addColumn("MaxDatumSize");\r
-            model.addColumn("DatumType");\r
-            jTable = new JTable(model);\r
-            jTable.setRowHeight(20);\r
-            jTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
-            jTable.getSelectionModel().addListSelectionListener(new ListSelectionListener(){\r
+    private JTable getJTableDynPcd() {\r
+        if (jTableDynPcd == null) {\r
+            modelPcd = new DynPcdTableModel();\r
+            modelPcd.addColumn("CName");\r
+            modelPcd.addColumn("Token");\r
+            modelPcd.addColumn("TokenSpaceGuid");\r
+            modelPcd.addColumn("MaxDatumSize");\r
+            modelPcd.addColumn("DatumType");\r
+            jTableDynPcd = new JTable(modelPcd);\r
+            jTableDynPcd.setRowHeight(20);\r
+            jTableDynPcd.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
+            jTableDynPcd.getSelectionModel().addListSelectionListener(new ListSelectionListener(){\r
                 public void valueChanged(ListSelectionEvent e) {\r
                     if (e.getValueIsAdjusting()){\r
                         return;\r
@@ -203,63 +166,71 @@ public class FpdDynamicPcdBuildDefinitions extends IInternalFrame {
                     }\r
                     else{\r
                         int selectedRow = lsm.getMinSelectionIndex();\r
-                        \r
+                        jTextFieldDefaultValue.setText("");\r
+                        jTextFieldVpdOffset.setText("");\r
+                        jTextFieldVarName.setText("");\r
+                        jTextFieldVarGuid.setText("");\r
+                        jTextFieldVarOffset.setText("");\r
+                        jTextFieldHiiDefaultValue.setText("");\r
                         displayDetails(selectedRow);\r
                     }\r
                 }\r
             });\r
         }\r
-        return jTable;\r
+        return jTableDynPcd;\r
     }\r
     //\r
     // should display default sku info here, as no selection event of table1 will be triggered when change selection of rows in table. \r
     //\r
     private void displayDetails(int i) {\r
-        jTable1.changeSelection(0, 1, false, false);\r
+        jTableSkuInfo.changeSelection(0, 1, false, false);\r
         int skuCount = ffc.getDynamicPcdSkuInfoCount(i);\r
         String defaultVal = ffc.getDynamicPcdBuildDataValue(i);\r
         if (defaultVal != null) {\r
-            jRadioButton2.setSelected(true);\r
-            jTextField5.setText(defaultVal);\r
+            jRadioButtonDefaultValue.setSelected(true);\r
+            jTextFieldDefaultValue.setText(defaultVal);\r
             if ( skuCount == 1) {\r
-                jCheckBox.setSelected(false);\r
+                jCheckBoxSkuEnable.setSelected(false);\r
             }\r
             else{\r
-                jCheckBox.setSelected(true);\r
+                jCheckBoxSkuEnable.setSelected(true);\r
             }\r
         }\r
         \r
         else if (ffc.getDynamicPcdBuildDataVpdOffset(i) != null) {\r
-            jRadioButton1.setSelected(true);\r
-            jTextField4.setText(ffc.getDynamicPcdBuildDataVpdOffset(i));\r
+            jRadioButtonVpd.setSelected(true);\r
+            jTextFieldVpdOffset.setText(ffc.getDynamicPcdBuildDataVpdOffset(i));\r
             if (skuCount ==1) {\r
-                jCheckBox.setSelected(false);\r
+                jCheckBoxSkuEnable.setSelected(false);\r
                 \r
             }\r
             else{\r
-                jCheckBox.setSelected(true);\r
+                jCheckBoxSkuEnable.setSelected(true);\r
             }\r
         }\r
         else {\r
-            jRadioButton.setSelected(true);\r
+            jRadioButtonHii.setSelected(true);\r
             String[][] saa = new String[ffc.getDynamicPcdSkuInfoCount(i)][7];\r
             ffc.getDynamicPcdSkuInfos(i, saa);\r
-            jTextField.setText(saa[0][1]);\r
-            jTextField1.setText(saa[0][2]);\r
-            jTextField2.setText(saa[0][3]);\r
-            jTextField3.setText(saa[0][4]);\r
+            \r
+            String varDisplayName = Tools.convertUnicodeHexStringToString(saa[0][1]);\r
+            jTextFieldVarName.setText(varDisplayName);\r
+            \r
+            jTextFieldVarGuid.setText(saa[0][2]);\r
+            jTextFieldVarOffset.setText(saa[0][3]);\r
+            jTextFieldHiiDefaultValue.setText(saa[0][4]);\r
             if (skuCount ==1) {\r
-                jCheckBox.setSelected(false);\r
+                jCheckBoxSkuEnable.setSelected(false);\r
             }\r
             else{\r
-                jCheckBox.setSelected(true);\r
+                jCheckBoxSkuEnable.setSelected(true);\r
             }\r
         }\r
         \r
     }\r
     \r
     private void displaySkuInfoDetails(int i) {\r
-        int pcdSelected = jTable.getSelectedRow();\r
+        int pcdSelected = jTableDynPcd.getSelectedRow();\r
         if (pcdSelected < 0) {\r
             return;\r
         }\r
@@ -268,21 +239,22 @@ public class FpdDynamicPcdBuildDefinitions extends IInternalFrame {
         ffc.getDynamicPcdSkuInfos(pcdSelected, saa);\r
         \r
         if (saa[i][5] != null){\r
-            jRadioButton1.setSelected(true);\r
-            jTextField4.setText(saa[i][5]);\r
+            jRadioButtonVpd.setSelected(true);\r
+            jTextFieldVpdOffset.setText(saa[i][5]);\r
         } \r
         \r
         else if (saa[i][1] != null) {\r
-            jRadioButton.setSelected(true);\r
-            jTextField.setText(saa[i][1]);\r
-            jTextField1.setText(saa[i][2]);\r
-            jTextField2.setText(saa[i][3]);\r
-            jTextField3.setText(saa[i][4]);\r
+            jRadioButtonHii.setSelected(true);\r
+            String varDisplayName = Tools.convertUnicodeHexStringToString(saa[i][1]);\r
+            jTextFieldVarName.setText(varDisplayName);\r
+            jTextFieldVarGuid.setText(saa[i][2]);\r
+            jTextFieldVarOffset.setText(saa[i][3]);\r
+            jTextFieldHiiDefaultValue.setText(saa[i][4]);\r
         }\r
         \r
         else{\r
-            jRadioButton2.setSelected(true);\r
-            jTextField5.setText(saa[i][6]);\r
+            jRadioButtonDefaultValue.setSelected(true);\r
+            jTextFieldDefaultValue.setText(saa[i][6]);\r
         }\r
         \r
     }\r
@@ -292,19 +264,19 @@ public class FpdDynamicPcdBuildDefinitions extends IInternalFrame {
      *         \r
      * @return javax.swing.JPanel      \r
      */\r
-    private JPanel getJPanel3() {\r
-        if (jPanel3 == null) {\r
+    private JPanel getJPanelSkuInfo() {\r
+        if (jPanelSkuInfo == null) {\r
             FlowLayout flowLayout = new FlowLayout();\r
             flowLayout.setAlignment(java.awt.FlowLayout.LEFT);\r
-            jPanel3 = new JPanel();\r
-            jPanel3.setBorder(javax.swing.BorderFactory.createEtchedBorder(javax.swing.border.EtchedBorder.RAISED));\r
-            jPanel3.setLayout(flowLayout);\r
-            jPanel3.setPreferredSize(new java.awt.Dimension(600,100));\r
-            jPanel3.add(getJCheckBox(), null);\r
-            jPanel3.add(getJScrollPane1(), null);\r
-            jPanel3.add(getJButton(), null);\r
-        }\r
-        return jPanel3;\r
+            jPanelSkuInfo = new JPanel();\r
+            jPanelSkuInfo.setBorder(javax.swing.BorderFactory.createEtchedBorder(javax.swing.border.EtchedBorder.RAISED));\r
+            jPanelSkuInfo.setLayout(flowLayout);\r
+            jPanelSkuInfo.setPreferredSize(new java.awt.Dimension(600,100));\r
+            jPanelSkuInfo.add(getJCheckBoxSkuEnable(), null);\r
+            jPanelSkuInfo.add(getJScrollPaneSkuInfo(), null);\r
+            jPanelSkuInfo.add(getJButtonSkuInfoUpdate(), null);\r
+        }\r
+        return jPanelSkuInfo;\r
     }\r
 \r
     /**\r
@@ -312,17 +284,17 @@ public class FpdDynamicPcdBuildDefinitions extends IInternalFrame {
      *         \r
      * @return javax.swing.JCheckBox   \r
      */\r
-    private JCheckBox getJCheckBox() {\r
-        if (jCheckBox == null) {\r
-            jCheckBox = new JCheckBox();\r
-            jCheckBox.setText("SKU Enable");\r
-            jCheckBox.addItemListener(new java.awt.event.ItemListener() {\r
+    private JCheckBox getJCheckBoxSkuEnable() {\r
+        if (jCheckBoxSkuEnable == null) {\r
+            jCheckBoxSkuEnable = new JCheckBox();\r
+            jCheckBoxSkuEnable.setText("SKU Enable");\r
+            jCheckBoxSkuEnable.addItemListener(new java.awt.event.ItemListener() {\r
                 public void itemStateChanged(java.awt.event.ItemEvent e) {\r
-                    jTable1.setEnabled(jCheckBox.isSelected());\r
+                    jTableSkuInfo.setEnabled(jCheckBoxSkuEnable.isSelected());\r
                 }\r
             });\r
         }\r
-        return jCheckBox;\r
+        return jCheckBoxSkuEnable;\r
     }\r
 \r
                        \r
@@ -331,60 +303,67 @@ public class FpdDynamicPcdBuildDefinitions extends IInternalFrame {
      *         \r
      * @return javax.swing.JPanel      \r
      */\r
-    private JPanel getJPanel4() {\r
-        if (jPanel4 == null) {\r
-            jLabel5 = new JLabel();\r
-            jLabel5.setPreferredSize(new java.awt.Dimension(80,20));\r
-            jLabel5.setText("VPD Offset");\r
-            jLabel4 = new JLabel();\r
-            jLabel4.setPreferredSize(new java.awt.Dimension(100,20));\r
-            jLabel4.setText("HII Default Value");\r
-            jLabel3 = new JLabel();\r
-            jLabel3.setText("Variable Offset");\r
-            jLabel3.setPreferredSize(new java.awt.Dimension(90,20));\r
-            jLabel2 = new JLabel();\r
-            jLabel2.setText("                           ");\r
-            jLabel1 = new JLabel();\r
-            jLabel1.setText("Variable GUID");\r
-            jLabel1.setPreferredSize(new java.awt.Dimension(100,20));\r
-            jLabel = new JLabel();\r
-            jLabel.setText("Variable Name");\r
-            jLabel.setToolTipText("");\r
-            jLabel.setPreferredSize(new java.awt.Dimension(90,20));\r
-            FlowLayout flowLayout1 = new FlowLayout();\r
-            flowLayout1.setAlignment(java.awt.FlowLayout.LEFT);\r
-            jPanel4 = new JPanel();\r
-            jPanel4.setBorder(javax.swing.BorderFactory.createEtchedBorder(javax.swing.border.EtchedBorder.LOWERED));\r
-            jPanel4.setLayout(flowLayout1);\r
-            jPanel4.setPreferredSize(new java.awt.Dimension(600,120));\r
-            jPanel4.add(getJRadioButton(), null);\r
-            jPanel4.add(jLabel, null);\r
-            jPanel4.add(getJTextField(), null);\r
-            jPanel4.add(jLabel1, null);\r
-            jPanel4.add(getJTextField1(), null);\r
-            jPanel4.add(jLabel2, null);\r
-            jPanel4.add(jLabel3, null);\r
-            jPanel4.add(getJTextField2(), null);\r
-            jPanel4.add(jLabel4, null);\r
-            jPanel4.add(getJTextField3(), null);\r
-            jPanel4.add(getJRadioButton1(), null);\r
-            jPanel4.add(jLabel5, null);\r
-            jPanel4.add(getJTextField4(), null);\r
-            jLabel6 = new JLabel();\r
-            jLabel6.setText("                           ");\r
-            jPanel4.add(jLabel6, null);\r
-                       jLabel.setEnabled(false);\r
-                       jLabel1.setEnabled(false);\r
-                       jLabel4.setEnabled(false);\r
-                       jLabel3.setEnabled(false);\r
-                       jLabel5.setEnabled(false);\r
-                       jPanel4.add(getJRadioButton2(), null);\r
-                       jPanel4.add(getJTextField5(), null);\r
-            bg.add(jRadioButton);\r
-            bg.add(jRadioButton1);\r
+    private JPanel getJPanelDynPcdValue() {\r
+        if (jPanelDynPcdValue == null) {\r
+            jLabelPad1 = new JLabel();\r
+            jLabelPad1.setText(" ");\r
+            GridLayout gridLayout = new GridLayout();\r
+            gridLayout.setColumns(5);\r
+            gridLayout.setRows(4);\r
+            gridLayout.setHgap(5);\r
+            gridLayout.setVgap(5);\r
+            \r
+            jLabelVpdOffset = new JLabel();\r
+            jLabelVpdOffset.setPreferredSize(new java.awt.Dimension(80,20));\r
+            jLabelVpdOffset.setText("VPD Offset");\r
+            jLabelHiiDefaultValue = new JLabel();\r
+            jLabelHiiDefaultValue.setPreferredSize(new java.awt.Dimension(100,20));\r
+            jLabelHiiDefaultValue.setText("HII Default Value");\r
+            jLabelVarOffset = new JLabel();\r
+            jLabelVarOffset.setText("Variable Offset");\r
+            jLabelVarOffset.setPreferredSize(new java.awt.Dimension(90,20));\r
+            jLabelPad = new JLabel();\r
+            jLabelPad.setText("                           ");\r
+            jLabelVarGuid = new JLabel();\r
+            jLabelVarGuid.setText("Variable GUID");\r
+            jLabelVarGuid.setPreferredSize(new java.awt.Dimension(100,20));\r
+            jLabelVarName = new JLabel();\r
+            jLabelVarName.setText("Variable Name");\r
+            jLabelVarName.setToolTipText("");\r
+            jLabelVarName.setPreferredSize(new java.awt.Dimension(90,20));\r
+            jPanelDynPcdValue = new JPanel();\r
+            jPanelDynPcdValue.setBorder(javax.swing.BorderFactory.createEtchedBorder(javax.swing.border.EtchedBorder.LOWERED));\r
+            jPanelDynPcdValue.setLayout(gridLayout);\r
+            jPanelDynPcdValue.setPreferredSize(new java.awt.Dimension(600,120));\r
+            jPanelDynPcdValue.add(getJRadioButtonHii(), null);\r
+            jPanelDynPcdValue.add(jLabelVarName, null);\r
+            jPanelDynPcdValue.add(getJTextFieldVarName(), null);\r
+            jPanelDynPcdValue.add(jLabelVarGuid, null);\r
+            jPanelDynPcdValue.add(getJTextFieldVarGuid(), null);\r
+            jPanelDynPcdValue.add(jLabelPad, null);\r
+            jPanelDynPcdValue.add(jLabelVarOffset, null);\r
+            jPanelDynPcdValue.add(getJTextFieldVarOffset(), null);\r
+            jPanelDynPcdValue.add(jLabelHiiDefaultValue, null);\r
+            jPanelDynPcdValue.add(getJTextFieldHiiDefaultValue(), null);\r
+            jPanelDynPcdValue.add(getJRadioButtonVpd(), null);\r
+            jPanelDynPcdValue.add(jLabelVpdOffset, null);\r
+            jLabelPadd = new JLabel();\r
+            jLabelPadd.setText("                           ");\r
+            jPanelDynPcdValue.add(getJTextFieldVpdOffset(), null);\r
+                       jLabelVarName.setEnabled(false);\r
+                       jLabelVarGuid.setEnabled(false);\r
+                       jLabelHiiDefaultValue.setEnabled(false);\r
+                       jLabelVarOffset.setEnabled(false);\r
+                       jLabelVpdOffset.setEnabled(false);\r
+                       jPanelDynPcdValue.add(jLabelPadd, null);\r
+                       jPanelDynPcdValue.add(jLabelPad1, null);\r
+                       jPanelDynPcdValue.add(getJRadioButtonDefaultValue(), null);\r
+                       jPanelDynPcdValue.add(getJTextFieldDefaultValue(), null);\r
+            bg.add(jRadioButtonHii);\r
+            bg.add(jRadioButtonVpd);\r
         }                      \r
 \r
-        return jPanel4;\r
+        return jPanelDynPcdValue;\r
     }\r
 \r
     /**\r
@@ -392,26 +371,26 @@ public class FpdDynamicPcdBuildDefinitions extends IInternalFrame {
      *         \r
      * @return javax.swing.JRadioButton        \r
      */\r
-    private JRadioButton getJRadioButton() {\r
-        if (jRadioButton == null) {\r
-            jRadioButton = new JRadioButton();\r
-            jRadioButton.setText("HII Enable");\r
-            jRadioButton.addItemListener(new java.awt.event.ItemListener() {\r
+    private JRadioButton getJRadioButtonHii() {\r
+        if (jRadioButtonHii == null) {\r
+            jRadioButtonHii = new JRadioButton();\r
+            jRadioButtonHii.setText("HII Enable");\r
+            jRadioButtonHii.addItemListener(new java.awt.event.ItemListener() {\r
                 public void itemStateChanged(java.awt.event.ItemEvent e) {\r
-                    boolean selected = jRadioButton.isSelected();\r
-                    jLabel.setEnabled(selected);\r
-                    jLabel1.setEnabled(selected);\r
-                    jLabel2.setEnabled(selected);\r
-                    jLabel3.setEnabled(selected);\r
-                    jLabel4.setEnabled(selected);\r
-                    jTextField.setEnabled(selected);\r
-                    jTextField1.setEnabled(selected);\r
-                    jTextField2.setEnabled(selected);\r
-                    jTextField3.setEnabled(selected);\r
+                    boolean selected = jRadioButtonHii.isSelected();\r
+                    jLabelVarName.setEnabled(selected);\r
+                    jLabelVarGuid.setEnabled(selected);\r
+                    jLabelPad.setEnabled(selected);\r
+                    jLabelVarOffset.setEnabled(selected);\r
+                    jLabelHiiDefaultValue.setEnabled(selected);\r
+                    jTextFieldVarName.setEnabled(selected);\r
+                    jTextFieldVarGuid.setEnabled(selected);\r
+                    jTextFieldVarOffset.setEnabled(selected);\r
+                    jTextFieldHiiDefaultValue.setEnabled(selected);\r
                 }\r
             });\r
         }\r
-        return jRadioButton;\r
+        return jRadioButtonHii;\r
     }\r
 \r
     /**\r
@@ -419,19 +398,19 @@ public class FpdDynamicPcdBuildDefinitions extends IInternalFrame {
      *         \r
      * @return javax.swing.JRadioButton        \r
      */\r
-    private JRadioButton getJRadioButton1() {\r
-        if (jRadioButton1 == null) {\r
-            jRadioButton1 = new JRadioButton();\r
-            jRadioButton1.setText("VPD Enable");\r
-            jRadioButton1.addItemListener(new java.awt.event.ItemListener() {\r
+    private JRadioButton getJRadioButtonVpd() {\r
+        if (jRadioButtonVpd == null) {\r
+            jRadioButtonVpd = new JRadioButton();\r
+            jRadioButtonVpd.setText("VPD Enable");\r
+            jRadioButtonVpd.addItemListener(new java.awt.event.ItemListener() {\r
                 public void itemStateChanged(java.awt.event.ItemEvent e) {\r
-                    boolean selected = jRadioButton1.isSelected();\r
-                    jTextField4.setEnabled(selected);\r
-                    jLabel5.setEnabled(selected);\r
+                    boolean selected = jRadioButtonVpd.isSelected();\r
+                    jTextFieldVpdOffset.setEnabled(selected);\r
+                    jLabelVpdOffset.setEnabled(selected);\r
                 }\r
             });\r
         }\r
-        return jRadioButton1;\r
+        return jRadioButtonVpd;\r
     }\r
 \r
     /**\r
@@ -439,13 +418,13 @@ public class FpdDynamicPcdBuildDefinitions extends IInternalFrame {
      *         \r
      * @return javax.swing.JScrollPane \r
      */\r
-    private JScrollPane getJScrollPane1() {\r
-        if (jScrollPane1 == null) {\r
-            jScrollPane1 = new JScrollPane();\r
-            jScrollPane1.setPreferredSize(new java.awt.Dimension(300,80));\r
-            jScrollPane1.setViewportView(getJTable1());\r
+    private JScrollPane getJScrollPaneSkuInfo() {\r
+        if (jScrollPaneSkuInfo == null) {\r
+            jScrollPaneSkuInfo = new JScrollPane();\r
+            jScrollPaneSkuInfo.setPreferredSize(new java.awt.Dimension(300,80));\r
+            jScrollPaneSkuInfo.setViewportView(getJTableSkuInfo());\r
         }\r
-        return jScrollPane1;\r
+        return jScrollPaneSkuInfo;\r
     }\r
 \r
     /**\r
@@ -453,17 +432,17 @@ public class FpdDynamicPcdBuildDefinitions extends IInternalFrame {
      *         \r
      * @return javax.swing.JTable      \r
      */\r
-    private JTable getJTable1() {\r
-        if (jTable1 == null) {\r
-            model1 = new DynPcdTableModel();\r
-            jTable1 = new JTable(model1);\r
-            model1.addColumn("SKU ID");\r
-            model1.addColumn("SKU Name");\r
+    private JTable getJTableSkuInfo() {\r
+        if (jTableSkuInfo == null) {\r
+            modelSku = new DynPcdTableModel();\r
+            jTableSkuInfo = new JTable(modelSku);\r
+            modelSku.addColumn("SKU ID");\r
+            modelSku.addColumn("SKU Name");\r
             \r
-            jTable1.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
-            jTable1.getSelectionModel().addListSelectionListener(new ListSelectionListener(){\r
+            jTableSkuInfo.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
+            jTableSkuInfo.getSelectionModel().addListSelectionListener(new ListSelectionListener(){\r
                 public void valueChanged(ListSelectionEvent e) {\r
-                    if (jTable.getSelectedRow() < 0) {\r
+                    if (jTableDynPcd.getSelectedRow() < 0) {\r
                         return;\r
                     }\r
                     if (e.getValueIsAdjusting()){\r
@@ -474,13 +453,19 @@ public class FpdDynamicPcdBuildDefinitions extends IInternalFrame {
                         return;\r
                     }\r
                     else{\r
+                        jTextFieldDefaultValue.setText("");\r
+                        jTextFieldVpdOffset.setText("");\r
+                        jTextFieldVarName.setText("");\r
+                        jTextFieldVarGuid.setText("");\r
+                        jTextFieldVarOffset.setText("");\r
+                        jTextFieldHiiDefaultValue.setText("");\r
                         int selected = lsm.getMinSelectionIndex();\r
                         displaySkuInfoDetails(selected);\r
                     }\r
                 }\r
             });\r
         }\r
-        return jTable1;\r
+        return jTableSkuInfo;\r
     }\r
 \r
     /**\r
@@ -488,14 +473,14 @@ public class FpdDynamicPcdBuildDefinitions extends IInternalFrame {
      *         \r
      * @return javax.swing.JButton     \r
      */\r
-    private JButton getJButton() {\r
-        if (jButton == null) {\r
-            jButton = new JButton();\r
-            jButton.setPreferredSize(new java.awt.Dimension(180,20));\r
-            jButton.setText(" Update SKU Information");\r
-            jButton.addActionListener(new java.awt.event.ActionListener() {\r
+    private JButton getJButtonSkuInfoUpdate() {\r
+        if (jButtonSkuInfoUpdate == null) {\r
+            jButtonSkuInfoUpdate = new JButton();\r
+            jButtonSkuInfoUpdate.setPreferredSize(new java.awt.Dimension(180,20));\r
+            jButtonSkuInfoUpdate.setText(" Update SKU Information");\r
+            jButtonSkuInfoUpdate.addActionListener(new java.awt.event.ActionListener() {\r
                 public void actionPerformed(java.awt.event.ActionEvent e) {\r
-                    int pcdSelected = jTable.getSelectedRow();\r
+                    int pcdSelected = jTableDynPcd.getSelectedRow();\r
                     if (pcdSelected < 0) {\r
                         return;\r
                     }\r
@@ -505,9 +490,9 @@ public class FpdDynamicPcdBuildDefinitions extends IInternalFrame {
                 }\r
             });\r
         }\r
-        return jButton;\r
+        return jButtonSkuInfoUpdate;\r
     }\r
-\r
+    \r
     private void updateSkuInfo (int pcdSelected) {\r
         int skuCount = ffc.getDynamicPcdSkuInfoCount(pcdSelected);\r
         \r
@@ -517,28 +502,52 @@ public class FpdDynamicPcdBuildDefinitions extends IInternalFrame {
         String hiiDefault = null;\r
         String value = null;\r
         String vpdOffset = null;\r
-        if (jRadioButton.isSelected()) {\r
-            varName = jTextField.getText();\r
-            varGuid = jTextField1.getText();\r
-            varOffset = jTextField2.getText();\r
-            hiiDefault = jTextField3.getText();\r
+        if (jRadioButtonHii.isSelected()) {\r
+            varName = Tools.convertStringToUnicodeHexString(jTextFieldVarName.getText());\r
+            if (varName.length() == 0) {\r
+                JOptionPane.showMessageDialog(this, "Variable Name is Empty.");\r
+                return;\r
+            }\r
+            varGuid = jTextFieldVarGuid.getText();\r
+            if (varGuid.length() == 0) {\r
+                JOptionPane.showMessageDialog(this, "Variable GUID is Empty.");\r
+                return;\r
+            }\r
+            varOffset = jTextFieldVarOffset.getText();\r
+            if (!DataValidation.isHex64BitDataType(varOffset)) {\r
+                JOptionPane.showMessageDialog(this, "Variable Offset is NOT Hex64BitDataType.");\r
+                return;\r
+            }\r
+            hiiDefault = jTextFieldHiiDefaultValue.getText();\r
+            if (!DataValidation.isDefaultValueType(hiiDefault)) {\r
+                JOptionPane.showMessageDialog(this, "Default Value is NOT DefaultValueType.");\r
+                return;\r
+            }\r
         }\r
-        if (jRadioButton1.isSelected()) {\r
-            vpdOffset = jTextField4.getText();\r
+        if (jRadioButtonVpd.isSelected()) {\r
+            vpdOffset = jTextFieldVpdOffset.getText();\r
+            if (!DataValidation.isHex64BitDataType(vpdOffset)) {\r
+                JOptionPane.showMessageDialog(this, "VPD Offset is NOT Hex64BitDataType.");\r
+                return;\r
+            }\r
         }\r
-        if (jRadioButton2.isSelected()) {\r
-            value = jTextField5.getText();\r
+        if (jRadioButtonDefaultValue.isSelected()) {\r
+            value = jTextFieldDefaultValue.getText();\r
+            if (!DataValidation.isDefaultValueType(value)) {\r
+                JOptionPane.showMessageDialog(this, "Value is NOT DefaultValueType.");\r
+                return;\r
+            }\r
         }\r
         //\r
         // SKU disabled. only modify data for default SKU.\r
         //\r
-        if (!jCheckBox.isSelected()) {\r
+        if (!jCheckBoxSkuEnable.isSelected()) {\r
             if (true) {\r
                 ffc.removeDynamicPcdBuildDataSkuInfo(pcdSelected);\r
-                if (jRadioButton.isSelected()) {\r
+                if (jRadioButtonHii.isSelected()) {\r
                     ffc.genDynamicPcdBuildDataSkuInfo("0", varName, varGuid, varOffset, hiiDefault, null, null, pcdSelected);\r
                 }\r
-                else if (jRadioButton1.isSelected()){\r
+                else if (jRadioButtonVpd.isSelected()){\r
                     ffc.genDynamicPcdBuildDataSkuInfo("0", null, null, null, null, vpdOffset, null, pcdSelected);\r
                 }\r
                 else{\r
@@ -549,19 +558,19 @@ public class FpdDynamicPcdBuildDefinitions extends IInternalFrame {
         //\r
         // SKU Enabled, need add data to all SKUs.\r
         //\r
-        if (jCheckBox.isSelected()) {\r
+        if (jCheckBoxSkuEnable.isSelected()) {\r
             if (skuCount == 1) {\r
                 \r
-                for (int i = 1; i < jTable1.getRowCount(); ++i) {\r
-                    ffc.genDynamicPcdBuildDataSkuInfo(jTable1.getValueAt(i, 0)+"", varName, varGuid, varOffset, hiiDefault, vpdOffset, value, pcdSelected);\r
+                for (int i = 1; i < jTableSkuInfo.getRowCount(); ++i) {\r
+                    ffc.genDynamicPcdBuildDataSkuInfo(jTableSkuInfo.getValueAt(i, 0)+"", varName, varGuid, varOffset, hiiDefault, vpdOffset, value, pcdSelected);\r
                 }\r
             }\r
             else {\r
-                int row = jTable1.getSelectedRow();\r
+                int row = jTableSkuInfo.getSelectedRow();\r
                 if (row < 0) {\r
                     return;\r
                 }\r
-                ffc.updateDynamicPcdBuildDataSkuInfo(jTable1.getValueAt(row, 0)+"", varName, varGuid, varOffset, hiiDefault, vpdOffset, value, pcdSelected);\r
+                ffc.updateDynamicPcdBuildDataSkuInfo(jTableSkuInfo.getValueAt(row, 0)+"", varName, varGuid, varOffset, hiiDefault, vpdOffset, value, pcdSelected);\r
             }\r
         }\r
     }\r
@@ -570,13 +579,13 @@ public class FpdDynamicPcdBuildDefinitions extends IInternalFrame {
      *         \r
      * @return javax.swing.JTextField  \r
      */\r
-    private JTextField getJTextField() {\r
-        if (jTextField == null) {\r
-            jTextField = new JTextField();\r
-            jTextField.setPreferredSize(new java.awt.Dimension(150,20));\r
-            jTextField.setEnabled(false);\r
+    private JTextField getJTextFieldVarName() {\r
+        if (jTextFieldVarName == null) {\r
+            jTextFieldVarName = new JTextField();\r
+            jTextFieldVarName.setPreferredSize(new java.awt.Dimension(150,20));\r
+            jTextFieldVarName.setEnabled(false);\r
         }\r
-        return jTextField;\r
+        return jTextFieldVarName;\r
     }\r
 \r
     /**\r
@@ -584,13 +593,13 @@ public class FpdDynamicPcdBuildDefinitions extends IInternalFrame {
      *         \r
      * @return javax.swing.JTextField  \r
      */\r
-    private JTextField getJTextField1() {\r
-        if (jTextField1 == null) {\r
-            jTextField1 = new JTextField();\r
-            jTextField1.setPreferredSize(new java.awt.Dimension(150,20));\r
-            jTextField1.setEnabled(false);\r
+    private JTextField getJTextFieldVarGuid() {\r
+        if (jTextFieldVarGuid == null) {\r
+            jTextFieldVarGuid = new JTextField();\r
+            jTextFieldVarGuid.setPreferredSize(new java.awt.Dimension(150,20));\r
+            jTextFieldVarGuid.setEnabled(false);\r
         }\r
-        return jTextField1;\r
+        return jTextFieldVarGuid;\r
     }\r
 \r
     /**\r
@@ -598,13 +607,13 @@ public class FpdDynamicPcdBuildDefinitions extends IInternalFrame {
      *         \r
      * @return javax.swing.JTextField  \r
      */\r
-    private JTextField getJTextField2() {\r
-        if (jTextField2 == null) {\r
-            jTextField2 = new JTextField();\r
-            jTextField2.setPreferredSize(new java.awt.Dimension(150,20));\r
-            jTextField2.setEnabled(false);\r
+    private JTextField getJTextFieldVarOffset() {\r
+        if (jTextFieldVarOffset == null) {\r
+            jTextFieldVarOffset = new JTextField();\r
+            jTextFieldVarOffset.setPreferredSize(new java.awt.Dimension(150,20));\r
+            jTextFieldVarOffset.setEnabled(false);\r
         }\r
-        return jTextField2;\r
+        return jTextFieldVarOffset;\r
     }\r
 \r
     /**\r
@@ -612,13 +621,13 @@ public class FpdDynamicPcdBuildDefinitions extends IInternalFrame {
      *         \r
      * @return javax.swing.JTextField  \r
      */\r
-    private JTextField getJTextField3() {\r
-        if (jTextField3 == null) {\r
-            jTextField3 = new JTextField();\r
-            jTextField3.setPreferredSize(new java.awt.Dimension(150,20));\r
-            jTextField3.setEnabled(false);\r
+    private JTextField getJTextFieldHiiDefaultValue() {\r
+        if (jTextFieldHiiDefaultValue == null) {\r
+            jTextFieldHiiDefaultValue = new JTextField();\r
+            jTextFieldHiiDefaultValue.setPreferredSize(new java.awt.Dimension(150,20));\r
+            jTextFieldHiiDefaultValue.setEnabled(false);\r
         }\r
-        return jTextField3;\r
+        return jTextFieldHiiDefaultValue;\r
     }\r
 \r
     /**\r
@@ -626,13 +635,13 @@ public class FpdDynamicPcdBuildDefinitions extends IInternalFrame {
      *         \r
      * @return javax.swing.JTextField  \r
      */\r
-    private JTextField getJTextField4() {\r
-        if (jTextField4 == null) {\r
-            jTextField4 = new JTextField();\r
-            jTextField4.setPreferredSize(new java.awt.Dimension(150,20));\r
-            jTextField4.setEnabled(false);\r
+    private JTextField getJTextFieldVpdOffset() {\r
+        if (jTextFieldVpdOffset == null) {\r
+            jTextFieldVpdOffset = new JTextField();\r
+            jTextFieldVpdOffset.setPreferredSize(new java.awt.Dimension(150,20));\r
+            jTextFieldVpdOffset.setEnabled(false);\r
         }\r
-        return jTextField4;\r
+        return jTextFieldVpdOffset;\r
     }\r
 \r
     /**\r
@@ -640,12 +649,12 @@ public class FpdDynamicPcdBuildDefinitions extends IInternalFrame {
      *         \r
      * @return javax.swing.JTextField  \r
      */\r
-    private JTextField getJTextField5() {\r
-        if (jTextField5 == null) {\r
-            jTextField5 = new JTextField();\r
-            jTextField5.setPreferredSize(new java.awt.Dimension(150,20));\r
+    private JTextField getJTextFieldDefaultValue() {\r
+        if (jTextFieldDefaultValue == null) {\r
+            jTextFieldDefaultValue = new JTextField();\r
+            jTextFieldDefaultValue.setPreferredSize(new java.awt.Dimension(150,20));\r
         }\r
-        return jTextField5;\r
+        return jTextFieldDefaultValue;\r
     }\r
 \r
     /**\r
@@ -653,20 +662,20 @@ public class FpdDynamicPcdBuildDefinitions extends IInternalFrame {
      *         \r
      * @return javax.swing.JRadioButton        \r
      */\r
-    private JRadioButton getJRadioButton2() {\r
-        if (jRadioButton2 == null) {\r
-            jRadioButton2 = new JRadioButton();\r
-            jRadioButton2.setText("Default PCD Value");\r
-            jRadioButton2.setSelected(true);\r
-            jRadioButton2.setPreferredSize(new java.awt.Dimension(175,20));\r
-            jRadioButton2.addItemListener(new java.awt.event.ItemListener() {\r
+    private JRadioButton getJRadioButtonDefaultValue() {\r
+        if (jRadioButtonDefaultValue == null) {\r
+            jRadioButtonDefaultValue = new JRadioButton();\r
+            jRadioButtonDefaultValue.setText("Default PCD Value");\r
+            jRadioButtonDefaultValue.setSelected(true);\r
+            jRadioButtonDefaultValue.setPreferredSize(new java.awt.Dimension(175,20));\r
+            jRadioButtonDefaultValue.addItemListener(new java.awt.event.ItemListener() {\r
                 public void itemStateChanged(java.awt.event.ItemEvent e) {\r
-                    jTextField5.setEnabled(jRadioButton2.isSelected());\r
+                    jTextFieldDefaultValue.setEnabled(jRadioButtonDefaultValue.isSelected());\r
                 }\r
             });\r
-            bg.add(jRadioButton2);\r
+            bg.add(jRadioButtonDefaultValue);\r
         }\r
-        return jRadioButton2;\r
+        return jRadioButtonDefaultValue;\r
     }\r
 \r
 }  //  @jve:decl-index=0:visual-constraint="10,10"\r