]> 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 3fd3f9edb78a6ec455a52d64f2c7fbca99b6b47a..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,9 +32,6 @@ public class FpdDynamicPcdBuildDefinitions extends IInternalFrame {
      */\r
     private static final long serialVersionUID = 1L;\r
     private JPanel jContentPane = null;\r
-    private JPanel jPanelContentNorth = null;\r
-    private JPanel jPanelContentCenter = null;\r
-    private JPanel jPanelContentSouth = null;\r
     private JScrollPane jScrollPaneDynPcd = null;\r
     private JTable jTableDynPcd = null;\r
     private DynPcdTableModel modelPcd = null; \r
@@ -60,6 +61,7 @@ public class FpdDynamicPcdBuildDefinitions extends IInternalFrame {
     private JRadioButton jRadioButtonDefaultValue = null;\r
     private ButtonGroup bg = new ButtonGroup();\r
     private JLabel jLabelPadd = null;\r
+    private JLabel jLabelPad1 = null;\r
     /**\r
      * This is the default constructor\r
      */\r
@@ -116,52 +118,13 @@ public class FpdDynamicPcdBuildDefinitions extends IInternalFrame {
         if (jContentPane == null) {\r
             jContentPane = new JPanel();\r
             jContentPane.setLayout(new BorderLayout());\r
-            jContentPane.add(getJPanelContentNorth(), java.awt.BorderLayout.NORTH);\r
-            jContentPane.add(getJPanelContentCenter(), java.awt.BorderLayout.CENTER);\r
-            jContentPane.add(getJPanelContentSouth(), 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 getJPanelContentNorth() {\r
-        if (jPanelContentNorth == null) {\r
-            jPanelContentNorth = new JPanel();\r
-        }\r
-        return jPanelContentNorth;\r
-    }\r
-\r
-    /**\r
-     * This method initializes jPanel1 \r
-     *         \r
-     * @return javax.swing.JPanel      \r
-     */\r
-    private JPanel getJPanelContentCenter() {\r
-        if (jPanelContentCenter == null) {\r
-            jPanelContentCenter = new JPanel();\r
-            jPanelContentCenter.add(getJScrollPaneDynPcd(), null);\r
-            jPanelContentCenter.add(getJPanelSkuInfo(), null);\r
-            jPanelContentCenter.add(getJPanelDynPcdValue(), null);\r
-        }\r
-        return jPanelContentCenter;\r
-    }\r
-\r
-    /**\r
-     * This method initializes jPanel2 \r
-     *         \r
-     * @return javax.swing.JPanel      \r
-     */\r
-    private JPanel getJPanelContentSouth() {\r
-        if (jPanelContentSouth == null) {\r
-            jPanelContentSouth = new JPanel();\r
-        }\r
-        return jPanelContentSouth;\r
-    }\r
-\r
     /**\r
      * This method initializes jScrollPane     \r
      *         \r
@@ -170,7 +133,7 @@ public class FpdDynamicPcdBuildDefinitions extends IInternalFrame {
     private JScrollPane getJScrollPaneDynPcd() {\r
         if (jScrollPaneDynPcd == null) {\r
             jScrollPaneDynPcd = new JScrollPane();\r
-            jScrollPaneDynPcd.setPreferredSize(new java.awt.Dimension(600,200));\r
+            jScrollPaneDynPcd.setPreferredSize(new java.awt.Dimension(100,300));\r
             jScrollPaneDynPcd.setViewportView(getJTableDynPcd());\r
         }\r
         return jScrollPaneDynPcd;\r
@@ -203,7 +166,12 @@ 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
@@ -244,7 +212,10 @@ public class FpdDynamicPcdBuildDefinitions extends IInternalFrame {
             jRadioButtonHii.setSelected(true);\r
             String[][] saa = new String[ffc.getDynamicPcdSkuInfoCount(i)][7];\r
             ffc.getDynamicPcdSkuInfos(i, saa);\r
-            jTextFieldVarName.setText(saa[0][1]);\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
@@ -274,7 +245,8 @@ public class FpdDynamicPcdBuildDefinitions extends IInternalFrame {
         \r
         else if (saa[i][1] != null) {\r
             jRadioButtonHii.setSelected(true);\r
-            jTextFieldVarName.setText(saa[i][1]);\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
@@ -333,6 +305,14 @@ public class FpdDynamicPcdBuildDefinitions extends IInternalFrame {
      */\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
@@ -351,11 +331,9 @@ public class FpdDynamicPcdBuildDefinitions extends IInternalFrame {
             jLabelVarName.setText("Variable Name");\r
             jLabelVarName.setToolTipText("");\r
             jLabelVarName.setPreferredSize(new java.awt.Dimension(90,20));\r
-            FlowLayout flowLayout1 = new FlowLayout();\r
-            flowLayout1.setAlignment(java.awt.FlowLayout.LEFT);\r
             jPanelDynPcdValue = new JPanel();\r
             jPanelDynPcdValue.setBorder(javax.swing.BorderFactory.createEtchedBorder(javax.swing.border.EtchedBorder.LOWERED));\r
-            jPanelDynPcdValue.setLayout(flowLayout1);\r
+            jPanelDynPcdValue.setLayout(gridLayout);\r
             jPanelDynPcdValue.setPreferredSize(new java.awt.Dimension(600,120));\r
             jPanelDynPcdValue.add(getJRadioButtonHii(), null);\r
             jPanelDynPcdValue.add(jLabelVarName, null);\r
@@ -369,15 +347,16 @@ public class FpdDynamicPcdBuildDefinitions extends IInternalFrame {
             jPanelDynPcdValue.add(getJTextFieldHiiDefaultValue(), null);\r
             jPanelDynPcdValue.add(getJRadioButtonVpd(), null);\r
             jPanelDynPcdValue.add(jLabelVpdOffset, null);\r
-            jPanelDynPcdValue.add(getJTextFieldVpdOffset(), null);\r
             jLabelPadd = new JLabel();\r
             jLabelPadd.setText("                           ");\r
-            jPanelDynPcdValue.add(jLabelPadd, null);\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
@@ -474,6 +453,12 @@ 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
@@ -507,7 +492,7 @@ public class FpdDynamicPcdBuildDefinitions extends IInternalFrame {
         }\r
         return jButtonSkuInfoUpdate;\r
     }\r
-\r
+    \r
     private void updateSkuInfo (int pcdSelected) {\r
         int skuCount = ffc.getDynamicPcdSkuInfoCount(pcdSelected);\r
         \r
@@ -518,16 +503,40 @@ public class FpdDynamicPcdBuildDefinitions extends IInternalFrame {
         String value = null;\r
         String vpdOffset = null;\r
         if (jRadioButtonHii.isSelected()) {\r
-            varName = jTextFieldVarName.getText();\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 (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 (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