]> git.proxmox.com Git - mirror_edk2.git/blobdiff - Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/ui/dialog/PCDsDlg.java
1. Fix the bug missing TokenSpaceGuidCName when editing a pcd entry in Msa
[mirror_edk2.git] / Tools / Source / FrameworkWizard / src / org / tianocore / frameworkwizard / module / ui / dialog / PCDsDlg.java
index 7972926d567936eff6fe3d15f4314c3ec02ac578..463cb3cb31d8c9661ae313b2db7055716c264a5c 100644 (file)
@@ -15,6 +15,8 @@
 package org.tianocore.frameworkwizard.module.ui.dialog;\r
 \r
 import java.awt.event.ActionEvent;\r
+import java.awt.event.ItemEvent;\r
+import java.awt.event.ItemListener;\r
 import java.util.Vector;\r
 \r
 import javax.swing.JButton;\r
@@ -26,7 +28,6 @@ import javax.swing.JTextField;
 \r
 import org.tianocore.frameworkwizard.common.DataType;\r
 import org.tianocore.frameworkwizard.common.DataValidation;\r
-import org.tianocore.frameworkwizard.common.EnumerationData;\r
 import org.tianocore.frameworkwizard.common.Log;\r
 import org.tianocore.frameworkwizard.common.Tools;\r
 import org.tianocore.frameworkwizard.common.ui.ArchCheckBox;\r
@@ -34,16 +35,15 @@ import org.tianocore.frameworkwizard.common.ui.IDialog;
 import org.tianocore.frameworkwizard.common.ui.IFrame;\r
 import org.tianocore.frameworkwizard.common.ui.StarLabel;\r
 import org.tianocore.frameworkwizard.module.Identifications.PcdCoded.PcdCodedIdentification;\r
+import org.tianocore.frameworkwizard.module.Identifications.PcdCoded.PcdVector;\r
 import org.tianocore.frameworkwizard.workspace.WorkspaceTools;\r
 \r
 /**\r
  The class is used to create, update PCD of MSA/MBD file\r
  It extends IInternalFrame\r
  \r
-\r
-\r
  **/\r
-public class PCDsDlg extends IDialog {\r
+public class PCDsDlg extends IDialog implements ItemListener {\r
 \r
     ///\r
     /// Define class Serial Version UID\r
@@ -100,10 +100,10 @@ public class PCDsDlg extends IDialog {
     //\r
     private PcdCodedIdentification id = null;\r
 \r
-    private EnumerationData ed = new EnumerationData();\r
-\r
     private WorkspaceTools wt = new WorkspaceTools();\r
 \r
+    private PcdVector pcd = wt.getAllPcdDeclarationsFromWorkspace();\r
+    \r
     /**\r
      This method initializes jComboBoxItemType \r
      \r
@@ -130,6 +130,8 @@ public class PCDsDlg extends IDialog {
             jComboBoxCName = new JComboBox();\r
             jComboBoxCName.setBounds(new java.awt.Rectangle(160, 10, 320, 20));\r
             jComboBoxCName.setPreferredSize(new java.awt.Dimension(320, 20));\r
+            jComboBoxCName.addItemListener(this);\r
+            //jComboBoxCName.addActionListener(this);\r
         }\r
         return jComboBoxCName;\r
     }\r
@@ -374,8 +376,11 @@ public class PCDsDlg extends IDialog {
      \r
      **/\r
     private void initFrame() {\r
-        Tools.generateComboBoxByVector(jComboBoxCName, wt.getAllPcdDeclarationsFromWorkspace());\r
-        Tools.generateComboBoxByVector(jComboBoxItemType, ed.getVPcdItemTypes());\r
+        for (int index = 0; index < pcd.size(); index++) {\r
+            jComboBoxCName.addItem(pcd.getPcd(index));\r
+        }\r
+        \r
+        //Tools.generateComboBoxByVector(jComboBoxItemType, ed.getVPcdItemTypes());\r
     }\r
 \r
     /* (non-Javadoc)\r
@@ -424,12 +429,12 @@ public class PCDsDlg extends IDialog {
         //\r
         // Check TokenSpaceGuid\r
         //\r
-        //        if (!isEmpty(this.jTextFieldTokenSpaceGuid.getText())) {\r
-        //            if (!DataValidation.isC_NameType(this.jTextFieldTokenSpaceGuid.getText())) {\r
-        //                Log.err("Incorrect data type for Token Space C_Name");\r
-        //                return false;\r
-        //            }\r
-        //        }\r
+        if (!isEmpty(this.jTextFieldTokenSpaceGuid.getText())) {\r
+            if (!DataValidation.isC_NameType(this.jTextFieldTokenSpaceGuid.getText())) {\r
+                Log.err("Incorrect data type for the selected pcd entry, please check in in spd file");\r
+                return false;\r
+            }\r
+        }\r
 \r
         //\r
         // Check DefaultValue\r
@@ -483,4 +488,26 @@ public class PCDsDlg extends IDialog {
     public void setId(PcdCodedIdentification id) {\r
         this.id = id;\r
     }\r
+\r
+    /* (non-Javadoc)\r
+     * @see java.awt.event.ItemListener#itemStateChanged(java.awt.event.ItemEvent)\r
+     *\r
+     * Reflesh the frame when selected item changed\r
+     * \r
+     */\r
+    public void itemStateChanged(ItemEvent arg0) {\r
+        int index = this.jComboBoxCName.getSelectedIndex();\r
+        if (arg0.getSource() == this.jComboBoxCName && arg0.getStateChange() == ItemEvent.SELECTED ) {\r
+            if (pcd.getPcd(index).getGuidCName() == null || isEmpty(pcd.getPcd(index).getGuidCName())\r
+                || pcd.getPcd(index).getType() == null || pcd.getPcd(index).getHelp() == null || isEmpty(pcd.getPcd(index).getHelp())) {\r
+                Log.err("select pcd entry when editing msa", "The selected is defined incorrectly.\r\nPlease check it in spd file");\r
+            } else {\r
+                this.jTextFieldTokenSpaceGuid.setText(pcd.getPcd(index).getGuidCName());\r
+                Tools.generateComboBoxByVector(this.jComboBoxItemType, pcd.getPcd(index).getType());\r
+                this.jTextFieldHelpText.setText(pcd.getPcd(index).getHelp());\r
+                this.jTextFieldHelpText.setSelectionStart(0);\r
+                this.jTextFieldHelpText.setSelectionEnd(0);\r
+            }\r
+        }\r
+    }\r
 }\r