Fixed Absolute position of fields, Added ToolTipText and made HelpText a Scrolling Text Area

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@1131 6f19259b-4bc3-4df7-8a09-765794883524
diff --git a/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/ui/dialog/HobsDlg.java b/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/ui/dialog/HobsDlg.java
index fb9381c..f6a76ee 100644
--- a/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/ui/dialog/HobsDlg.java
+++ b/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/ui/dialog/HobsDlg.java
@@ -23,6 +23,7 @@
 import javax.swing.JPanel;

 import javax.swing.JScrollPane;

 import javax.swing.JTextField;

+import javax.swing.JTextArea;

 

 import org.tianocore.frameworkwizard.common.DataType;

 import org.tianocore.frameworkwizard.common.DataValidation;

@@ -37,392 +38,433 @@
 import org.tianocore.frameworkwizard.workspace.WorkspaceTools;

 

 /**

- The class is used to create, update Hob of MSA/MBD file

- It extends IInternalFrame

- 

- **/

+ * The class is used to create, update Hob of the MSA file It extends JDialog

+ * 

+ */

 public class HobsDlg extends IDialog {

 

-    ///

-    /// Define class Serial Version UID

-    ///

-    private static final long serialVersionUID = -553473437579358325L;

+  // /

+  // / Define class Serial Version UID

+  // /

+  private static final long serialVersionUID = -553473437579358325L;

+

+  //

+  // Define class members

+  //

+  private JPanel jContentPane = null;

+

+  private JLabel jLabelC_Name = null;

+

+  private JComboBox jComboBoxGuidC_Name = null;

+

+  private JLabel jLabelUsage = null;

+

+  private JLabel jLabelHobType = null;

+

+  private JComboBox jComboBoxUsage = null;

+

+  private JComboBox jComboBoxHobType = null;

+

+  private StarLabel jStarLabel1 = null;

+

+  private StarLabel jStarLabel2 = null;

+

+  private StarLabel jStarLabel3 = null;

+

+  private JLabel jLabelArch = null;

+

+  private JScrollPane jScrollPane = null;

+

+  private JLabel jLabelFeatureFlag = null;

+

+  private JTextField jTextFieldFeatureFlag = null;

+

+  private JLabel jLabelHelpText = null;

+

+  private JTextArea jTextAreaHelpText = null;

+

+  private JScrollPane jScrollPaneHelpText = null;

+

+  private ArchCheckBox jArchCheckBox = null;

+

+  private JButton jButtonOk = null;

+

+  private JButton jButtonCancel = null;

+

+  //

+  // Not used by UI

+  //

+  private HobsIdentification id = null;

+

+  private EnumerationData ed = new EnumerationData();

+

+  private WorkspaceTools wt = new WorkspaceTools();

+

+  /**

+   * This method initializes jTextField

+   * 

+   * @return javax.swing.JTextField jTextFieldC_Name

+   * 

+   */

+  private JComboBox getJComboBoxGuidC_Name() {

+    if (jComboBoxGuidC_Name == null) {

+      jComboBoxGuidC_Name = new JComboBox();

+      jComboBoxGuidC_Name.setBounds(new java.awt.Rectangle(160, 10, 320, 20));

+      jComboBoxGuidC_Name.setPreferredSize(new java.awt.Dimension(320, 20));

+      jComboBoxGuidC_Name.setToolTipText("Select the GUID C Name of the Hob");

+    }

+    return jComboBoxGuidC_Name;

+  }

+

+  /**

+   * This method initializes jComboBoxHobType

+   * 

+   * @return javax.swing.JComboBox jComboBoxHobType

+   * 

+   */

+  private JComboBox getJComboBoxHobType() {

+    if (jComboBoxHobType == null) {

+      jComboBoxHobType = new JComboBox();

+      jComboBoxHobType.setBounds(new java.awt.Rectangle(160, 35, 320, 20));

+      jComboBoxHobType.setPreferredSize(new java.awt.Dimension(320, 20));

+      jComboBoxHobType.setToolTipText("<html><table><tr><td>PHIT</td><td>EFI_HOB_TYPE_HANDOFF</td></tr><tr><td>MEMORY_ALLOCATION</td><td>EFI_HOB_TYPE_MEMORY_ALLOCATION and $BaseName</td></tr><tr><td>RESOURCE_DESCRIPTOR</td><td>EFI_HOB_TYPE_RESOURCE_DESCRIPTOR</td></tr><tr><td>GUID_EXTENTION</td><td>EFI_HOB_TYPE_GUID_EXTENSION and BaseName of GUID</td></tr><tr><td>FIRMWARE_VOLUME</td><td>EFI_HOB_TYPE_FV</td></tr><tr><td>CPU</td><td>EFI_HOB_TYPE_CPU</td></tr><tr><td>POOL</td><td>EFI_HOB_TYPE_PEI_MEMORY_POOL</td></tr><tr><td>CAPSULE_VOLUME</td><td>EFI_HOB_TYPE_CV</td></tr></table></html>");

+    }

+    return jComboBoxHobType;

+  }

+

+  /**

+   * This method initializes jComboBoxUsage

+   * 

+   * @return javax.swing.JComboBox jComboBoxUsage

+   * 

+   */

+  private JComboBox getJComboBoxUsage() {

+    if (jComboBoxUsage == null) {

+      jComboBoxUsage = new JComboBox();

+      jComboBoxUsage.setBounds(new java.awt.Rectangle(160, 60, 320, 20));

+      jComboBoxUsage.setPreferredSize(new java.awt.Dimension(320, 20));

+      jComboBoxUsage.setToolTipText("<html><table><tr><td>ALWAYS_CONSUMED</td><td>HOB must be present in the system</td></tr><tr><td>SOMETIMES_CONSUMED</td><td>HOB will be used if it's present</td></tr><tr><td>ALWAYS_PRODUCED</td><td>HOB is always produced</td></tr><tr><td>SOMETIMES_PRODUCED</td><td>HOB will sometimes be produced by the module</td></tr></table></html>");

+    }

+    return jComboBoxUsage;

+  }

+

+  /**

+   * This method initializes jScrollPane

+   * 

+   * @return javax.swing.JScrollPane

+   */

+  private JScrollPane getJScrollPane() {

+    if (jScrollPane == null) {

+      jScrollPane = new JScrollPane();

+      jScrollPane.setViewportView(getJContentPane());

+    }

+    return jScrollPane;

+  }

+

+  /**

+   * This method initializes jTextFieldFeatureFlag

+   * 

+   * @return javax.swing.JTextField

+   */

+  private JTextField getJTextFieldFeatureFlag() {

+    if (jTextFieldFeatureFlag == null) {

+      jTextFieldFeatureFlag = new JTextField();

+      jTextFieldFeatureFlag

+          .setBounds(new java.awt.Rectangle(160, 130, 320, 20));

+      jTextFieldFeatureFlag.setPreferredSize(new java.awt.Dimension(320, 20));

+      jTextFieldFeatureFlag.setToolTipText("Postfix expression that must evaluate to TRUE or FALSE");

+    }

+    return jTextFieldFeatureFlag;

+  }

+

+  /**

+   * This method initializes jTextFieldHelpText

+   * 

+   * @return javax.swing.JTextField

+   * 

+   */

+  private JTextArea getJTextAreaHelpText() {

+    if (jTextAreaHelpText == null) {

+      jTextAreaHelpText = new JTextArea();

+      jTextAreaHelpText.setLineWrap(true);

+      jTextAreaHelpText.setWrapStyleWord(true);

+    }

+    return jTextAreaHelpText;

+  }

+

+  /**

+   * This method initializes jScrollPaneHelpText

+   * 

+   * @return javax.swing.JScrollPane

+   */

+  private JScrollPane getJScrollPaneHelpText() {

+    if (jScrollPaneHelpText == null) {

+      jScrollPaneHelpText = new JScrollPane();

+      jScrollPaneHelpText

+          .setHorizontalScrollBarPolicy(javax.swing.JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);

+      jScrollPaneHelpText.setSize(new java.awt.Dimension(320, 40));

+      jScrollPaneHelpText.setPreferredSize(new java.awt.Dimension(320, 40));

+      jScrollPaneHelpText.setLocation(new java.awt.Point(160, 85));

+      jScrollPaneHelpText.setViewportView(getJTextAreaHelpText());

+    }

+    return jScrollPaneHelpText;

+  }

+

+  /**

+   * This method initializes jButtonOk

+   * 

+   * @return javax.swing.JButton

+   * 

+   */

+  private JButton getJButtonOk() {

+    if (jButtonOk == null) {

+      jButtonOk = new JButton();

+      jButtonOk.setBounds(new java.awt.Rectangle(290, 182, 90, 20));

+      jButtonOk.setText("Ok");

+      jButtonOk.addActionListener(this);

+    }

+    return jButtonOk;

+  }

+

+  /**

+   * This method initializes jButtonCancel

+   * 

+   * @return javax.swing.JButton

+   * 

+   */

+  private JButton getJButtonCancel() {

+    if (jButtonCancel == null) {

+      jButtonCancel = new JButton();

+      jButtonCancel.setBounds(new java.awt.Rectangle(390, 182, 90, 20));

+      jButtonCancel.setText("Cancel");

+      jButtonCancel.addActionListener(this);

+    }

+    return jButtonCancel;

+  }

+

+  public static void main(String[] args) {

+

+  }

+

+  /**

+   * This method initializes this

+   * 

+   */

+  private void init() {

+    this.setSize(500, 255);

+    this.setContentPane(getJScrollPane());

+    this.setTitle("Hobs");

+    initFrame();

+    this.setViewMode(false);

+    this.centerWindow();

+  }

+

+  /**

+   * This method initializes this Fill values to all fields if these values are

+   * not empty

+   * 

+   * @param inHobsId

+   * 

+   */

+  private void init(HobsIdentification inHobsId) {

+    init();

+    this.id = inHobsId;

+

+    if (this.id != null) {

+      this.jComboBoxGuidC_Name.setSelectedItem(id.getName());

+      this.jComboBoxHobType.setSelectedItem(id.getType());

+      this.jComboBoxUsage.setSelectedItem(id.getUsage());

+      this.jTextAreaHelpText.setText(id.getHelp());

+      this.jTextFieldFeatureFlag.setText(id.getFeatureFlag());

+      this.jArchCheckBox.setSelectedItems(id.getSupArchList());

+    }

+  }

+

+  /**

+   * This is the override edit constructor

+   * 

+   * @param inHobsIdentification

+   * @param iFrame

+   * 

+   */

+  public HobsDlg(HobsIdentification inHobsIdentification, IFrame iFrame) {

+    super(iFrame, true);

+    init(inHobsIdentification);

+  }

+

+  /**

+   * Disable all components when the mode is view

+   * 

+   * @param isView

+   *          true - The view mode; false - The non-view mode

+   * 

+   */

+  public void setViewMode(boolean isView) {

+    if (isView) {

+      this.jComboBoxGuidC_Name.setEnabled(!isView);

+      this.jComboBoxUsage.setEnabled(!isView);

+      this.jComboBoxHobType.setEnabled(!isView);

+    }

+  }

+

+  /**

+   * This method initializes jContentPane

+   * 

+   * @return javax.swing.JPanel jContentPane

+   * 

+   */

+  public JPanel getJContentPane() {

+    if (jContentPane == null) {

+      jStarLabel1 = new StarLabel();

+      jStarLabel1.setLocation(new java.awt.Point(2, 10));

+      jLabelC_Name = new JLabel();

+      jLabelC_Name.setText("Hob's Guid C Name");

+      jLabelC_Name.setBounds(new java.awt.Rectangle(15, 10, 145, 20));

+

+      jStarLabel2 = new StarLabel();

+      jStarLabel2.setLocation(new java.awt.Point(2, 35));

+      jLabelHobType = new JLabel();

+      jLabelHobType.setText("Hob Type");

+      jLabelHobType.setBounds(new java.awt.Rectangle(15, 35, 145, 20));

+

+      jStarLabel3 = new StarLabel();

+      jStarLabel3.setLocation(new java.awt.Point(2, 60));

+      jLabelUsage = new JLabel();

+      jLabelUsage.setText("Usage");

+      jLabelUsage.setBounds(new java.awt.Rectangle(15, 60, 145, 20));

+

+      jLabelHelpText = new JLabel();

+      jLabelHelpText.setBounds(new java.awt.Rectangle(15, 85, 145, 20));

+      jLabelHelpText.setText("Help Text");

+

+      jLabelFeatureFlag = new JLabel();

+      jLabelFeatureFlag.setBounds(new java.awt.Rectangle(15, 130, 145, 20));

+      jLabelFeatureFlag.setText("Feature Flag Expression");

+

+      jLabelArch = new JLabel();

+      jLabelArch.setBounds(new java.awt.Rectangle(15, 155, 145, 20));

+      jLabelArch.setText("Supported Architectures");

+      jArchCheckBox = new ArchCheckBox();

+      jArchCheckBox.setBounds(new java.awt.Rectangle(160, 155, 320, 20));

+      jArchCheckBox.setPreferredSize(new java.awt.Dimension(320, 20));

+

+      jContentPane = new JPanel();

+      jContentPane.setLayout(null);

+      jContentPane.setPreferredSize(new java.awt.Dimension(485, 210));

+

+      jContentPane.add(jStarLabel1, null);

+      jContentPane.add(jLabelC_Name, null);

+      jContentPane.add(getJComboBoxGuidC_Name(), null);

+      jContentPane.add(jStarLabel2, null);

+      jContentPane.add(jLabelHobType, null);

+      jContentPane.add(getJComboBoxHobType(), null);

+      jContentPane.add(jStarLabel3, null);

+      jContentPane.add(jLabelUsage, null);

+      jContentPane.add(getJComboBoxUsage(), null);

+      jContentPane.add(jLabelHelpText, null);

+      jContentPane.add(getJScrollPaneHelpText(), null);

+      jContentPane.add(jLabelFeatureFlag, null);

+      jContentPane.add(getJTextFieldFeatureFlag(), null);

+      jContentPane.add(jLabelArch, null);

+      jContentPane.add(jArchCheckBox, null);

+      jContentPane.add(getJButtonOk(), null);

+      jContentPane.add(getJButtonCancel(), null);

+    }

+    return jContentPane;

+  }

+

+  /**

+   * This method initializes Usage type and Hob type

+   * 

+   */

+  private void initFrame() {

+    Tools.generateComboBoxByVector(jComboBoxUsage, ed.getVHobUsage());

+    Tools.generateComboBoxByVector(jComboBoxHobType, ed.getVHobType());

+    Tools.generateComboBoxByVector(jComboBoxGuidC_Name, wt

+        .getAllGuidDeclarationsFromWorkspace());

+  }

+

+  /*

+   * (non-Javadoc)

+   * 

+   * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)

+   * 

+   * Override actionPerformed to listen all actions

+   * 

+   */

+  public void actionPerformed(ActionEvent arg0) {

+    if (arg0.getSource() == jButtonOk) {

+      if (checkAdd()) {

+        getCurrentHobs();

+        this.returnType = DataType.RETURN_TYPE_OK;

+        this.setVisible(false);

+      }

+    }

+

+    if (arg0.getSource() == jButtonCancel) {

+      this.returnType = DataType.RETURN_TYPE_CANCEL;

+      this.setVisible(false);

+    }

+  }

+

+  /**

+   * Data validation for all fields

+   * 

+   * @retval true - All datas are valid

+   * @retval false - At least one data is invalid

+   * 

+   */

+  public boolean checkAdd() {

+    //

+    // Check if all fields have correct data types

+    //

 

     //

-    //Define class members

+    // Check Name

     //

-    private JPanel jContentPane = null;

+    if (isEmpty(this.jComboBoxGuidC_Name.getSelectedItem().toString())) {

+      Log.wrn("Update Hobs", "Hob Guid C Name must not be empty");

+      return false;

+    }

 

-    private JLabel jLabel = null;

-

-    private JComboBox jComboBoxGuidC_Name = null;

-

-    private JLabel jLabelUsage = null;

-

-    private JLabel jLabelHobType = null;

-

-    private JComboBox jComboBoxUsage = null;

-

-    private JComboBox jComboBoxHobType = null;

-

-    private StarLabel jStarLabel1 = null;

-

-    private JLabel jLabelArch = null;

-

-    private JScrollPane jScrollPane = null;

-

-    private JLabel jLabelFeatureFlag = null;

-

-    private JTextField jTextFieldFeatureFlag = null;

-

-    private JLabel jLabelHelpText = null;

-

-    private JTextField jTextFieldHelpText = null;

-

-    private ArchCheckBox jArchCheckBox = null;

-

-    private JButton jButtonOk = null;

-

-    private JButton jButtonCancel = null;

+    if (!isEmpty(this.jComboBoxGuidC_Name.getSelectedItem().toString())) {

+      if (!DataValidation.isC_NameType(this.jComboBoxGuidC_Name

+          .getSelectedItem().toString())) {

+        Log.wrn("Update Hobs", "Incorrect data type for Hob Name");

+        return false;

+      }

+    }

 

     //

-    // Not used by UI

+    // Check FeatureFlag

     //

-    private HobsIdentification id = null;

-

-    private EnumerationData ed = new EnumerationData();

-

-    private WorkspaceTools wt = new WorkspaceTools();

-

-    /**

-     This method initializes jTextField 

-     

-     @return javax.swing.JTextField jTextFieldC_Name

-     

-     **/

-    private JComboBox getJComboBoxGuidC_Name() {

-        if (jComboBoxGuidC_Name == null) {

-            jComboBoxGuidC_Name = new JComboBox();

-            jComboBoxGuidC_Name.setBounds(new java.awt.Rectangle(160, 10, 320, 20));

-            jComboBoxGuidC_Name.setPreferredSize(new java.awt.Dimension(320, 20));

-            jComboBoxGuidC_Name.setToolTipText("Select the GUID C Name of the Hob");

-        }

-        return jComboBoxGuidC_Name;

+    if (!isEmpty(this.jTextFieldFeatureFlag.getText())) {

+      if (!DataValidation.isFeatureFlag(this.jTextFieldFeatureFlag.getText())) {

+        Log.wrn("Update Hobs", "Incorrect data type for Feature Flag");

+        return false;

+      }

     }

 

-    /**

-     This method initializes jComboBoxUsage 

-     

-     @return javax.swing.JComboBox jComboBoxUsage

-     

-     **/

-    private JComboBox getJComboBoxUsage() {

-        if (jComboBoxUsage == null) {

-            jComboBoxUsage = new JComboBox();

-            jComboBoxUsage.setBounds(new java.awt.Rectangle(160, 60, 320, 20));

-            jComboBoxUsage.setPreferredSize(new java.awt.Dimension(320, 20));

-        }

-        return jComboBoxUsage;

-    }

+    return true;

+  }

 

-    /**

-     This method initializes jComboBoxHobType 

-     

-     @return javax.swing.JComboBox jComboBoxHobType

-     

-     **/

-    private JComboBox getJComboBoxHobType() {

-        if (jComboBoxHobType == null) {

-            jComboBoxHobType = new JComboBox();

-            jComboBoxHobType.setBounds(new java.awt.Rectangle(160, 35, 320, 20));

-            jComboBoxHobType.setPreferredSize(new java.awt.Dimension(320, 20));

-        }

-        return jComboBoxHobType;

-    }

+  private HobsIdentification getCurrentHobs() {

+    String arg0 = this.jComboBoxGuidC_Name.getSelectedItem().toString();

+    String arg1 = this.jComboBoxHobType.getSelectedItem().toString();

+    String arg2 = this.jComboBoxUsage.getSelectedItem().toString();

 

-    /**

-     This method initializes jScrollPane  

-     

-     @return javax.swing.JScrollPane  

-     */

-    private JScrollPane getJScrollPane() {

-        if (jScrollPane == null) {

-            jScrollPane = new JScrollPane();

-            jScrollPane.setViewportView(getJContentPane());

-        }

-        return jScrollPane;

-    }

+    String arg3 = this.jTextFieldFeatureFlag.getText();

+    Vector<String> arg4 = this.jArchCheckBox.getSelectedItemsVector();

+    String arg5 = this.jTextAreaHelpText.getText();

+    id = new HobsIdentification(arg0, arg1, arg2, arg3, arg4, arg5);

+    return id;

+  }

+  

+  public HobsIdentification getId() {

+    return id;

+  }

 

-    /**

-     * This method initializes jTextFieldFeatureFlag	

-     * 	

-     * @return javax.swing.JTextField	

-     */

-    private JTextField getJTextFieldFeatureFlag() {

-        if (jTextFieldFeatureFlag == null) {

-            jTextFieldFeatureFlag = new JTextField();

-            jTextFieldFeatureFlag.setBounds(new java.awt.Rectangle(160, 110, 320, 20));

-            jTextFieldFeatureFlag.setPreferredSize(new java.awt.Dimension(320, 20));

-        }

-        return jTextFieldFeatureFlag;

-    }

-

-    /**

-     This method initializes jTextFieldHelpText  

-     

-     @return javax.swing.JTextField  

-     

-     **/

-    private JTextField getJTextFieldHelpText() {

-        if (jTextFieldHelpText == null) {

-            jTextFieldHelpText = new JTextField();

-            jTextFieldHelpText.setBounds(new java.awt.Rectangle(160, 85, 320, 20));

-            jTextFieldHelpText.setPreferredSize(new java.awt.Dimension(320, 20));

-        }

-        return jTextFieldHelpText;

-    }

-

-    /**

-     This method initializes jButtonOk    

-     

-     @return javax.swing.JButton  

-     

-     **/

-    private JButton getJButtonOk() {

-        if (jButtonOk == null) {

-            jButtonOk = new JButton();

-            jButtonOk.setBounds(new java.awt.Rectangle(290, 165, 90, 20));

-            jButtonOk.setText("Ok");

-            jButtonOk.addActionListener(this);

-        }

-        return jButtonOk;

-    }

-

-    /**

-     This method initializes jButtonCancel    

-     

-     @return javax.swing.JButton  

-     

-     **/

-    private JButton getJButtonCancel() {

-        if (jButtonCancel == null) {

-            jButtonCancel = new JButton();

-            jButtonCancel.setBounds(new java.awt.Rectangle(390, 165, 90, 20));

-            jButtonCancel.setText("Cancel");

-            jButtonCancel.addActionListener(this);

-        }

-        return jButtonCancel;

-    }

-

-    public static void main(String[] args) {

-

-    }

-

-    /**

-     This method initializes this

-     

-     **/

-    private void init() {

-        this.setSize(510, 240);

-        this.setContentPane(getJScrollPane());

-        this.setTitle("Hobs");

-        initFrame();

-        this.setViewMode(false);

-        this.centerWindow();

-    }

-

-    /**

-     This method initializes this

-     Fill values to all fields if these values are not empty

-     

-     @param inHobsId

-

-     **/

-    private void init(HobsIdentification inHobsId) {

-        init();

-        this.id = inHobsId;

-

-        if (this.id != null) {

-            this.jComboBoxGuidC_Name.setSelectedItem(id.getName());

-            this.jComboBoxHobType.setSelectedItem(id.getType());

-            this.jComboBoxUsage.setSelectedItem(id.getUsage());

-            this.jTextFieldHelpText.setText(id.getHelp());

-            this.jTextFieldFeatureFlag.setText(id.getFeatureFlag());

-            this.jArchCheckBox.setSelectedItems(id.getSupArchList());

-        }

-    }

-

-    /**

-     This is the override edit constructor

-     

-     @param inHobsIdentification

-     @param iFrame

-     

-     **/

-    public HobsDlg(HobsIdentification inHobsIdentification, IFrame iFrame) {

-        super(iFrame, true);

-        init(inHobsIdentification);

-    }

-

-    /**

-     Disable all components when the mode is view

-     

-     @param isView true - The view mode; false - The non-view mode

-     

-     **/

-    public void setViewMode(boolean isView) {

-        if (isView) {

-            this.jComboBoxGuidC_Name.setEnabled(!isView);

-            this.jComboBoxUsage.setEnabled(!isView);

-            this.jComboBoxHobType.setEnabled(!isView);

-        }

-    }

-

-    /**

-     This method initializes jContentPane

-     

-     @return javax.swing.JPanel jContentPane

-     

-     **/

-    public JPanel getJContentPane() {

-        if (jContentPane == null) {

-            jArchCheckBox = new ArchCheckBox();

-            jArchCheckBox.setBounds(new java.awt.Rectangle(160, 135, 320, 20));

-            jArchCheckBox.setPreferredSize(new java.awt.Dimension(320, 20));

-            jLabelFeatureFlag = new JLabel();

-            jLabelFeatureFlag.setBounds(new java.awt.Rectangle(15, 110, 140, 20));

-            jLabelFeatureFlag.setText("Feature Flag");

-            jLabelArch = new JLabel();

-            jLabelArch.setBounds(new java.awt.Rectangle(15, 135, 140, 20));

-            jLabelArch.setText("Arch");

-            jLabelHobType = new JLabel();

-            jLabelHobType.setText("Hob Type");

-            jLabelHobType.setBounds(new java.awt.Rectangle(15, 35, 140, 20));

-            jLabelUsage = new JLabel();

-            jLabelUsage.setText("Usage");

-            jLabelUsage.setBounds(new java.awt.Rectangle(15, 60, 140, 20));

-            jLabel = new JLabel();

-            jLabel.setText("Guid C Name");

-            jLabel.setBounds(new java.awt.Rectangle(15, 10, 140, 20));

-            jLabelHelpText = new JLabel();

-            jLabelHelpText.setBounds(new java.awt.Rectangle(14, 85, 140, 20));

-            jLabelHelpText.setText("Help Text");

-

-            jContentPane = new JPanel();

-            jContentPane.setLayout(null);

-            jContentPane.setPreferredSize(new java.awt.Dimension(490, 190));

-

-            jContentPane.add(jLabel, null);

-            jContentPane.add(getJComboBoxGuidC_Name(), null);

-            jContentPane.add(jLabelUsage, null);

-            jContentPane.add(jLabelHobType, null);

-            jContentPane.add(getJComboBoxUsage(), null);

-            jContentPane.add(getJComboBoxHobType(), null);

-            jStarLabel1 = new StarLabel();

-            jStarLabel1.setLocation(new java.awt.Point(0, 10));

-            jContentPane.add(jStarLabel1, null);

-

-            jContentPane.add(jLabelArch, null);

-

-            jContentPane.add(jLabelFeatureFlag, null);

-            jContentPane.add(getJTextFieldFeatureFlag(), null);

-            jContentPane.add(jLabelHelpText, null);

-            jContentPane.add(getJTextFieldHelpText(), null);

-            jContentPane.add(jArchCheckBox, null);

-            jContentPane.add(getJButtonOk(), null);

-            jContentPane.add(getJButtonCancel(), null);

-        }

-        return jContentPane;

-    }

-

-    /**

-     This method initializes Usage type and Hob type

-     

-     **/

-    private void initFrame() {

-        Tools.generateComboBoxByVector(jComboBoxUsage, ed.getVHobUsage());

-        Tools.generateComboBoxByVector(jComboBoxHobType, ed.getVHobType());

-        Tools.generateComboBoxByVector(jComboBoxGuidC_Name, wt.getAllGuidDeclarationsFromWorkspace());

-    }

-

-    /* (non-Javadoc)

-     * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)

-     *

-     * Override actionPerformed to listen all actions

-     * 

-     */

-    public void actionPerformed(ActionEvent arg0) {

-        if (arg0.getSource() == jButtonOk) {

-            if (checkAdd()) {

-                getCurrentHobs();

-                this.returnType = DataType.RETURN_TYPE_OK;

-                this.setVisible(false);

-            }

-        }

-

-        if (arg0.getSource() == jButtonCancel) {

-            this.returnType = DataType.RETURN_TYPE_CANCEL;

-            this.setVisible(false);

-        }

-    }

-

-    /**

-     Data validation for all fields

-     

-     @retval true - All datas are valid

-     @retval false - At least one data is invalid

-     

-     **/

-    public boolean checkAdd() {

-        //

-        // Check if all fields have correct data types 

-        //

-

-        //

-        // Check Name 

-        //

-        if (isEmpty(this.jComboBoxGuidC_Name.getSelectedItem().toString())) {

-            Log.wrn("Update Hobs", "Hob Name couldn't be empty");

-            return false;

-        }

-

-        if (!isEmpty(this.jComboBoxGuidC_Name.getSelectedItem().toString())) {

-            if (!DataValidation.isC_NameType(this.jComboBoxGuidC_Name.getSelectedItem().toString())) {

-                Log.wrn("Update Hobs", "Incorrect data type for Hob Name");

-                return false;

-            }

-        }

-

-        //

-        // Check FeatureFlag

-        //

-        if (!isEmpty(this.jTextFieldFeatureFlag.getText())) {

-            if (!DataValidation.isFeatureFlag(this.jTextFieldFeatureFlag.getText())) {

-                Log.wrn("Update Hobs", "Incorrect data type for Feature Flag");

-                return false;

-            }

-        }

-

-        return true;

-    }

-

-    private HobsIdentification getCurrentHobs() {

-        String arg0 = this.jComboBoxGuidC_Name.getSelectedItem().toString();

-        String arg1 = this.jComboBoxHobType.getSelectedItem().toString();

-        String arg2 = this.jComboBoxUsage.getSelectedItem().toString();

-

-        String arg3 = this.jTextFieldFeatureFlag.getText();

-        Vector<String> arg4 = this.jArchCheckBox.getSelectedItemsVector();

-        String arg5 = this.jTextFieldHelpText.getText();

-        id = new HobsIdentification(arg0, arg1, arg2, arg3, arg4, arg5);

-        return id;

-    }

-

-    public HobsIdentification getId() {

-        return id;

-    }

-

-    public void setId(HobsIdentification id) {

-        this.id = id;

-    }

+  public void setId(HobsIdentification id) {

+    this.id = id;

+  }

 }

diff --git a/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/ui/dialog/PCDsDlg.java b/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/ui/dialog/PCDsDlg.java
index ecd4ee3..753b0e2 100644
--- a/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/ui/dialog/PCDsDlg.java
+++ b/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/ui/dialog/PCDsDlg.java
@@ -40,495 +40,525 @@
 import org.tianocore.frameworkwizard.workspace.WorkspaceTools;

 

 /**

- The class is used to create, update PCD of MSA/MBD file

- It extends IInternalFrame

- 

- **/

+ * The class is used to create, update PCD of MSA/MBD file It extends

+ * IInternalFrame

+ * 

+ */

 public class PCDsDlg extends IDialog implements ItemListener {

 

-    ///

-    /// Define class Serial Version UID

-    ///

-    private static final long serialVersionUID = 2227717658188438696L;

+  // /

+  // / Define class Serial Version UID

+  // /

+  private static final long serialVersionUID = 2227717658188438696L;

 

-    //

-    //Define class members

-    //

-    private JPanel jContentPane = null;

+  //

+  // Define class members

+  //

+  private JPanel jContentPane = null;

 

-    private JLabel jLabelItemType = null;

+  private JLabel jLabelItemType = null;

 

-    private JLabel jLabelC_Name = null;

+  private JLabel jLabelC_Name = null;

 

-    private JComboBox jComboBoxItemType = null;

+  private JComboBox jComboBoxItemType = null;

 

-    private JComboBox jComboBoxCName = null;

+  private JComboBox jComboBoxCName = null;

 

-    private JLabel jLabelDefaultValue = null;

+  private JLabel jLabelDefaultValue = null;

 

-    private JTextField jTextFieldDefaultValue = null;

+  private JTextField jTextFieldDefaultValue = null;

 

-    private StarLabel jStarLabel1 = null;

+  private StarLabel jStarLabel1 = null;

 

-    private StarLabel jStarLabel2 = null;

+  private StarLabel jStarLabel2 = null;

 

-    private StarLabel jStarLabel3 = null;

+  private StarLabel jStarLabel3 = null;

 

-    private JLabel jLabelHelpText = null;

+  private JLabel jLabelHelpText = null;

 

-    private JTextArea jTextAreaHelpText = null;

+  private JTextArea jTextAreaHelpText = null;

 

-    private JScrollPane jScrollPane = null;

+  private JScrollPane jScrollPane = null;

 

-    private JLabel jLabelTokenSpaceGuid = null;

+  private JLabel jLabelTokenSpaceGuid = null;

 

-    private JTextField jTextFieldTokenSpaceGuid = null;

+  private JTextField jTextFieldTokenSpaceGuid = null;

 

-    private JLabel jLabelFeatureFlag = null;

+  private JLabel jLabelFeatureFlag = null;

 

-    private JTextField jTextFieldFeatureFlag = null;

+  private JTextField jTextFieldFeatureFlag = null;

 

-    private JLabel jLabelArch = null;

+  private JLabel jLabelArch = null;

 

-    private ArchCheckBox jArchCheckBox = null;

+  private ArchCheckBox jArchCheckBox = null;

 

-    private JButton jButtonOk = null;

+  private JButton jButtonOk = null;

 

-    private JButton jButtonCancel = null;

+  private JButton jButtonCancel = null;

 

-    private JScrollPane jScrollPaneHelpText = null;

-    //

-    // Not used by UI

-    //

-    private PcdCodedIdentification id = null;

+  private JScrollPane jScrollPaneHelpText = null;

 

-    private WorkspaceTools wt = new WorkspaceTools();

+  //

+  // Not used by UI

+  //

+  private PcdCodedIdentification id = null;

 

-    private PcdVector pcd = wt.getAllPcdDeclarationsFromWorkspace();

-    

-    /**

-     This method initializes jComboBoxItemType 

-     

-     @return javax.swing.JComboBox jComboBoxItemType

-     

-     **/

-    private JComboBox getJComboBoxItemType() {

-        if (jComboBoxItemType == null) {

-            jComboBoxItemType = new JComboBox();

-            jComboBoxItemType.setBounds(new java.awt.Rectangle(160, 35, 320, 20));

-            jComboBoxItemType.setPreferredSize(new java.awt.Dimension(320, 20));

-        }

-        return jComboBoxItemType;

+  private WorkspaceTools wt = new WorkspaceTools();

+

+  private PcdVector pcd = wt.getAllPcdDeclarationsFromWorkspace();

+

+  /**

+   * This method initializes jComboBoxItemType

+   * 

+   * @return javax.swing.JComboBox jComboBoxItemType

+   * 

+   */

+  private JComboBox getJComboBoxItemType() {

+    if (jComboBoxItemType == null) {

+      jComboBoxItemType = new JComboBox();

+      jComboBoxItemType.setBounds(new java.awt.Rectangle(160, 35, 320, 20));

+      jComboBoxItemType.setPreferredSize(new java.awt.Dimension(320, 20));

+    }

+    return jComboBoxItemType;

+  }

+

+  /**

+   * This method initializes jTextFieldC_Name

+   * 

+   * @return javax.swing.JTextField jTextFieldC_Name

+   * 

+   */

+  private JComboBox getJComboBoxCName() {

+    if (jComboBoxCName == null) {

+      jComboBoxCName = new JComboBox();

+      jComboBoxCName.setBounds(new java.awt.Rectangle(160, 10, 320, 20));

+      jComboBoxCName.setPreferredSize(new java.awt.Dimension(320, 20));

+      jComboBoxCName.addItemListener(this);

+    }

+    return jComboBoxCName;

+  }

+

+  /**

+   * This method initializes jTextFieldDefaultValue

+   * 

+   * @return javax.swing.JTextField jTextFieldDefaultValue

+   * 

+   */

+  private JTextField getJTextFieldDefaultValue() {

+    if (jTextFieldDefaultValue == null) {

+      jTextFieldDefaultValue = new JTextField();

+      jTextFieldDefaultValue

+          .setBounds(new java.awt.Rectangle(160, 60, 320, 20));

+      jTextFieldDefaultValue.setPreferredSize(new java.awt.Dimension(320, 20));

+    }

+    return jTextFieldDefaultValue;

+  }

+

+  /**

+   * This method initializes jTextAreaHelpText

+   * 

+   * @return javax.swing.JTextArea

+   */

+  private JTextArea getJTextAreaHelpText() {

+    if (jTextAreaHelpText == null) {

+      jTextAreaHelpText = new JTextArea();

+      jTextAreaHelpText.setLineWrap(true);

+      jTextAreaHelpText.setWrapStyleWord(true);

+    }

+    return jTextAreaHelpText;

+  }

+

+  /**

+   * This method initializes jScrollPaneHelpText

+   * 

+   * @return javax.swing.JScrollPane

+   * 

+   */

+  private JScrollPane getJScrollPaneHelpText() {

+    if (jScrollPaneHelpText == null) {

+      jScrollPaneHelpText = new JScrollPane();

+      jScrollPaneHelpText

+          .setHorizontalScrollBarPolicy(javax.swing.JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);

+      jScrollPaneHelpText.setSize(new java.awt.Dimension(320, 40));

+      jScrollPaneHelpText.setPreferredSize(new java.awt.Dimension(320, 40));

+      jScrollPaneHelpText.setLocation(new java.awt.Point(160, 85));

+      jScrollPaneHelpText.setViewportView(getJTextAreaHelpText());

+    }

+    return jScrollPaneHelpText;

+  }

+

+  /**

+   * This method initializes jScrollPane

+   * 

+   * @return javax.swing.JScrollPane

+   */

+  private JScrollPane getJScrollPane() {

+    if (jScrollPane == null) {

+      jScrollPane = new JScrollPane();

+      jScrollPane.setViewportView(getJContentPane());

+    }

+    return jScrollPane;

+  }

+

+  /**

+   * This method initializes jTextFieldTokenSpaceGuid

+   * 

+   * @return javax.swing.JTextField

+   */

+  private JTextField getJTextFieldTokenSpaceGuid() {

+    if (jTextFieldTokenSpaceGuid == null) {

+      jTextFieldTokenSpaceGuid = new JTextField();

+      jTextFieldTokenSpaceGuid.setBounds(new java.awt.Rectangle(160, 60, 320,

+          20));

+      jTextFieldTokenSpaceGuid

+          .setPreferredSize(new java.awt.Dimension(320, 20));

+      jTextFieldTokenSpaceGuid.setVisible(false);

+    }

+    return jTextFieldTokenSpaceGuid;

+  }

+

+  /**

+   * This method initializes jTextFieldFeatureFlag

+   * 

+   * @return javax.swing.JTextField

+   */

+  private JTextField getJTextFieldFeatureFlag() {

+    if (jTextFieldFeatureFlag == null) {

+      jTextFieldFeatureFlag = new JTextField();

+      jTextFieldFeatureFlag

+          .setBounds(new java.awt.Rectangle(160, 130, 320, 20));

+      jTextFieldFeatureFlag.setPreferredSize(new java.awt.Dimension(320, 20));

+      jTextFieldFeatureFlag.setToolTipText("Postfix expression that must evaluate to TRUE or FALSE");

+    }

+    return jTextFieldFeatureFlag;

+  }

+

+  /**

+   * This method initializes jButtonOk

+   * 

+   * @return javax.swing.JButton

+   * 

+   */

+  private JButton getJButtonOk() {

+    if (jButtonOk == null) {

+      jButtonOk = new JButton();

+      jButtonOk.setBounds(new java.awt.Rectangle(290, 182, 90, 20));

+      jButtonOk.setText("Ok");

+      jButtonOk.addActionListener(this);

+    }

+    return jButtonOk;

+  }

+

+  /**

+   * This method initializes jButtonCancel

+   * 

+   * @return javax.swing.JButton

+   * 

+   */

+  private JButton getJButtonCancel() {

+    if (jButtonCancel == null) {

+      jButtonCancel = new JButton();

+      jButtonCancel.setBounds(new java.awt.Rectangle(390, 182, 90, 20));

+      jButtonCancel.setText("Cancel");

+      jButtonCancel.addActionListener(this);

+    }

+    return jButtonCancel;

+  }

+

+  public static void main(String[] args) {

+

+  }

+

+  /**

+   * This method initializes this

+   * 

+   */

+  private void init() {

+    this.setSize(500, 255);

+    this.setContentPane(getJScrollPane());

+    this.setTitle("Pcd Coded");

+    initFrame();

+    this.setViewMode(false);

+    this.centerWindow();

+  }

+

+  /**

+   * This method initializes this Fill values to all fields if these values are

+   * not empty

+   * 

+   * @param inPcdCodedId

+   * 

+   */

+  private void init(PcdCodedIdentification inPcdCodedId) {

+    init();

+    this.id = inPcdCodedId;

+

+    if (this.id != null) {

+      this.jComboBoxCName.setSelectedItem(id.getName());

+      this.jTextFieldTokenSpaceGuid.setText(id.getGuid());

+      this.jTextFieldDefaultValue.setText(id.getValue());

+      this.jTextAreaHelpText.setText(id.getHelp());

+      this.jComboBoxItemType.setSelectedItem(id.getType());

+      this.jTextFieldFeatureFlag.setText(id.getFeatureFlag());

+      this.jArchCheckBox.setSelectedItems(id.getSupArchList());

+    }

+  }

+

+  /**

+   * This is the override edit constructor

+   * 

+   * @param inPcdCodedId

+   * @param iFrame

+   * 

+   */

+  public PCDsDlg(PcdCodedIdentification inPcdCodedId, IFrame iFrame) {

+    super(iFrame, true);

+    init(inPcdCodedId);

+  }

+

+  /**

+   * Disable all components when the mode is view

+   * 

+   * @param isView

+   *          true - The view mode; false - The non-view mode

+   * 

+   */

+  public void setViewMode(boolean isView) {

+    if (isView) {

+      this.jTextFieldDefaultValue.setEnabled(!isView);

+      this.jComboBoxItemType.setEnabled(!isView);

+    }

+  }

+

+  /**

+   * This method initializes jContentPane

+   * 

+   * @return javax.swing.JPanel jContentPane

+   * 

+   */

+  private JPanel getJContentPane() {

+    if (jContentPane == null) {

+      jStarLabel1 = new StarLabel();

+      jStarLabel1.setLocation(new java.awt.Point(2, 10));

+      jLabelC_Name = new JLabel();

+      jLabelC_Name.setText("PCD C Name");

+      jLabelC_Name.setBounds(new java.awt.Rectangle(15, 10, 145, 20));

+

+      jStarLabel2 = new StarLabel();

+      jStarLabel2.setLocation(new java.awt.Point(2, 35));

+      jLabelItemType = new JLabel();

+      jLabelItemType.setText("PCD Item Type");

+      jLabelItemType.setBounds(new java.awt.Rectangle(15, 35, 145, 20));

+

+      jLabelDefaultValue = new JLabel();

+      jLabelDefaultValue.setText("Default Value");

+      jLabelDefaultValue.setBounds(new java.awt.Rectangle(15, 60, 145, 20));

+

+      jStarLabel3 = new StarLabel();

+      jStarLabel3.setLocation(new java.awt.Point(2, 85));

+      jLabelHelpText = new JLabel();

+      jLabelHelpText.setText("Help Text");

+      jLabelHelpText.setBounds(new java.awt.Rectangle(15, 85, 145, 20));

+

+      jLabelFeatureFlag = new JLabel();

+      jLabelFeatureFlag.setText("Feature Flag Expression");

+      jLabelFeatureFlag.setBounds(new java.awt.Rectangle(15, 130, 140, 20));

+

+      jLabelTokenSpaceGuid = new JLabel();

+      jLabelTokenSpaceGuid.setText("Token Space C Name");

+      jLabelTokenSpaceGuid.setVisible(false);

+

+      jLabelArch = new JLabel();

+      jLabelArch.setText("Supported Architectures");

+      jLabelArch.setBounds(new java.awt.Rectangle(15, 155, 145, 20));

+      jArchCheckBox = new ArchCheckBox();

+      jArchCheckBox.setPreferredSize(new java.awt.Dimension(320, 20));

+      jArchCheckBox.setBounds(new java.awt.Rectangle(160, 155, 320, 20));

+

+      // Hidden field

+      jLabelTokenSpaceGuid.setBounds(new java.awt.Rectangle(15, 60, 140, 20));

+

+      jContentPane = new JPanel();

+      jContentPane.setLayout(null);

+      jContentPane.setPreferredSize(new java.awt.Dimension(485, 210));

+

+      jContentPane.add(jStarLabel1, null);

+      jContentPane.add(jLabelC_Name, null);

+      jContentPane.add(getJComboBoxCName(), null);

+      jContentPane.add(jStarLabel2, null);

+      jContentPane.add(jLabelItemType, null);

+      jContentPane.add(getJComboBoxItemType(), null);

+      jContentPane.add(jLabelDefaultValue, null);

+      jContentPane.add(getJTextFieldDefaultValue(), null);

+      jContentPane.add(jStarLabel3, null);

+      jContentPane.add(jLabelHelpText, null);

+      jContentPane.add(getJScrollPaneHelpText(), null);

+      jContentPane.add(jLabelFeatureFlag, null);

+      jContentPane.add(getJTextFieldFeatureFlag(), null);

+      jContentPane.add(jLabelArch, null);

+      jContentPane.add(jArchCheckBox, null);

+      // Hidden

+      jContentPane.add(getJTextFieldTokenSpaceGuid(), null);

+      jContentPane.add(jLabelTokenSpaceGuid, null);

+      jContentPane.add(getJButtonOk(), null);

+      jContentPane.add(getJButtonCancel(), null);

+    }

+    return jContentPane;

+  }

+

+  /**

+   * This method initializes Usage type, Item type and Datum type

+   * 

+   */

+  private void initFrame() {

+    for (int index = 0; index < pcd.size(); index++) {

+      jComboBoxCName.addItem(pcd.getPcd(index));

     }

 

-    /**

-     This method initializes jTextFieldC_Name 

-     

-     @return javax.swing.JTextField jTextFieldC_Name

-     

-     **/

-    private JComboBox getJComboBoxCName() {

-        if (jComboBoxCName == null) {

-            jComboBoxCName = new JComboBox();

-            jComboBoxCName.setBounds(new java.awt.Rectangle(160, 10, 320, 20));

-            jComboBoxCName.setPreferredSize(new java.awt.Dimension(320, 20));

-            jComboBoxCName.addItemListener(this);

-            //jComboBoxCName.addActionListener(this);

-        }

-        return jComboBoxCName;

-    }

+    // Tools.generateComboBoxByVector(jComboBoxItemType, ed.getVPcdItemTypes());

+  }

 

-    /**

-     This method initializes jTextFieldDefaultValue 

-     

-     @return javax.swing.JTextField jTextFieldDefaultValue

-     

-     **/

-    private JTextField getJTextFieldDefaultValue() {

-        if (jTextFieldDefaultValue == null) {

-            jTextFieldDefaultValue = new JTextField();

-            jTextFieldDefaultValue.setBounds(new java.awt.Rectangle(160, 60, 320, 20));

-            jTextFieldDefaultValue.setPreferredSize(new java.awt.Dimension(320, 20));

-        }

-        return jTextFieldDefaultValue;

-    }

-

-    /**

-     * This method initializes jTextAreaHelpText	

-     * 	

-     * @return javax.swing.JTextArea	

-     */

-    private JTextArea getJTextAreaHelpText() {

-        if (jTextAreaHelpText == null) {

-            jTextAreaHelpText = new JTextArea();

-            jTextAreaHelpText.setLineWrap(true);

-            jTextAreaHelpText.setWrapStyleWord(true);

-//            jTextAreaHelpText.setBounds(new java.awt.Rectangle(160, 85, 320, 20));

-//            jTextAreaHelpText.setPreferredSize(new java.awt.Dimension(320, 20));

-        }

-        return jTextAreaHelpText;

-    }

-    private JScrollPane getJScrollPaneHelpText() {

-      if (jScrollPaneHelpText == null ) {

-        jScrollPaneHelpText = new JScrollPane();

-        jScrollPaneHelpText.setHorizontalScrollBarPolicy(javax.swing.JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);

-        jScrollPaneHelpText.setSize(new java.awt.Dimension(320, 40));

-        jScrollPaneHelpText.setPreferredSize(new java.awt.Dimension(320, 40));

-        jScrollPaneHelpText.setLocation(new java.awt.Point(160, 85));

-        jScrollPaneHelpText.setViewportView(getJTextAreaHelpText());

-

+  

+  /*

+   * (non-Javadoc)

+   * 

+   * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)

+   * 

+   * Override actionPerformed to listen all actions

+   * 

+   */

+  public void actionPerformed(ActionEvent arg0) {

+    if (arg0.getSource() == jButtonOk) {

+      if (checkAdd()) {

+        getCurrentPcdCoded();

+        this.returnType = DataType.RETURN_TYPE_OK;

+        this.setVisible(false);

       }

-      return jScrollPaneHelpText;

     }

 

+    if (arg0.getSource() == jButtonCancel) {

+      this.returnType = DataType.RETURN_TYPE_CANCEL;

+      this.setVisible(false);

+    }

+  }

 

-    /**

-     This method initializes jScrollPane  

-     

-     @return javax.swing.JScrollPane  

-     */

-    private JScrollPane getJScrollPane() {

-        if (jScrollPane == null) {

-            jScrollPane = new JScrollPane();

-            jScrollPane.setViewportView(getJContentPane());

-        }

-        return jScrollPane;

+  /**

+   * Data validation for all fields

+   * 

+   * @retval true - All datas are valid

+   * @retval false - At least one data is invalid

+   * 

+   */

+  public boolean checkAdd() {

+    //

+    // Check if all fields have correct data types

+    //

+

+    //

+    // Check C_Name

+    //

+    if (!isEmpty(this.jComboBoxCName.getSelectedItem().toString())) {

+      if (!DataValidation.isC_NameType(this.jComboBoxCName.getSelectedItem()

+          .toString())) {

+        Log.wrn("Update PcdCoded", "Incorrect data type for C Name");

+        return false;

+      }

     }

 

-    /**

-     * This method initializes jTextFieldTokenSpaceGuid	

-     * 	

-     * @return javax.swing.JTextField	

-     */

-    private JTextField getJTextFieldTokenSpaceGuid() {

-        if (jTextFieldTokenSpaceGuid == null) {

-            jTextFieldTokenSpaceGuid = new JTextField();

-            jTextFieldTokenSpaceGuid.setBounds(new java.awt.Rectangle(160, 60, 320, 20));

-            jTextFieldTokenSpaceGuid.setPreferredSize(new java.awt.Dimension(320, 20));

-            jTextFieldTokenSpaceGuid.setVisible(false);

-        }

-        return jTextFieldTokenSpaceGuid;

+    //

+    // Check TokenSpaceGuid

+    //

+    if (!isEmpty(this.jTextFieldTokenSpaceGuid.getText())) {

+      if (!DataValidation.isC_NameType(this.jTextFieldTokenSpaceGuid.getText())) {

+        Log

+            .wrn("Update PcdCoded",

+                "Incorrect data type for the selected pcd entry, please check in in spd file");

+        return false;

+      }

     }

 

-    /**

-     * This method initializes jTextFieldFeatureFlag	

-     * 	

-     * @return javax.swing.JTextField	

-     */

-    private JTextField getJTextFieldFeatureFlag() {

-        if (jTextFieldFeatureFlag == null) {

-            jTextFieldFeatureFlag = new JTextField();

-            jTextFieldFeatureFlag.setBounds(new java.awt.Rectangle(160, 130, 320, 20));

-            jTextFieldFeatureFlag.setPreferredSize(new java.awt.Dimension(320, 20));

-            //jLabelFeatureFlag.setBounds(new  java.awt.Rectangle(15, 130, 140, 20));

-        }

-        return jTextFieldFeatureFlag;

+    //

+    // Check DefaultValue

+    //

+    if (!isEmpty(this.jTextFieldDefaultValue.getText())) {

+      if (!DataValidation.isDefaultValueType(this.jTextFieldDefaultValue

+          .getText())) {

+        Log.wrn("Update PcdCoded", "Incorrect data type for Default Value");

+        return false;

+      }

     }

 

-    /**

-     This method initializes jButtonOk    

-     

-     @return javax.swing.JButton  

-     

-     **/

-    private JButton getJButtonOk() {

-        if (jButtonOk == null) {

-            jButtonOk = new JButton();

-            jButtonOk.setBounds(new java.awt.Rectangle(290, 185, 90, 20));

-            jButtonOk.setText("Ok");

-            jButtonOk.addActionListener(this);

-        }

-        return jButtonOk;

+    //

+    // Check HelpText

+    //

+    if (isEmpty(this.jTextAreaHelpText.getText())) {

+      Log.wrn("Update PcdCoded", "Help Text should not be empty");

+      return false;

     }

 

-    /**

-     This method initializes jButtonCancel    

-     

-     @return javax.swing.JButton  

-     

-     **/

-    private JButton getJButtonCancel() {

-        if (jButtonCancel == null) {

-            jButtonCancel = new JButton();

-            jButtonCancel.setBounds(new java.awt.Rectangle(390, 185, 90, 20));

-            jButtonCancel.setText("Cancel");

-            jButtonCancel.addActionListener(this);

-        }

-        return jButtonCancel;

+    //

+    // Check FeatureFlag

+    //

+    if (!isEmpty(this.jTextFieldFeatureFlag.getText())) {

+      if (!DataValidation.isFeatureFlag(this.jTextFieldFeatureFlag.getText())) {

+        Log.wrn("Update PcdCoded", "Incorrect data type for Feature Flag");

+        return false;

+      }

     }

 

-    public static void main(String[] args) {

+    return true;

+  }

 

+  private PcdCodedIdentification getCurrentPcdCoded() {

+    String arg0 = this.jComboBoxCName.getSelectedItem().toString();

+    String arg1 = this.jTextFieldTokenSpaceGuid.getText();

+

+    String arg2 = this.jTextFieldFeatureFlag.getText();

+    Vector<String> arg3 = this.jArchCheckBox.getSelectedItemsVector();

+

+    String arg4 = this.jTextFieldDefaultValue.getText();

+    String arg5 = this.jTextAreaHelpText.getText();

+    String arg6 = this.jComboBoxItemType.getSelectedItem().toString();

+    id = new PcdCodedIdentification(arg0, arg1, arg2, arg3, arg4, arg5, arg6);

+    return id;

+  }

+  

+  public PcdCodedIdentification getId() {

+    return id;

+  }

+

+  public void setId(PcdCodedIdentification id) {

+    this.id = id;

+  }

+

+  /*

+   * (non-Javadoc)

+   * 

+   * @see java.awt.event.ItemListener#itemStateChanged(java.awt.event.ItemEvent)

+   * 

+   * Reflesh the frame when selected item changed

+   * 

+   */

+  public void itemStateChanged(ItemEvent arg0) {

+    int index = this.jComboBoxCName.getSelectedIndex();

+    if (arg0.getSource() == this.jComboBoxCName

+        && arg0.getStateChange() == ItemEvent.SELECTED) {

+      if (pcd.getPcd(index).getGuidCName() == null

+          || isEmpty(pcd.getPcd(index).getGuidCName())

+          || pcd.getPcd(index).getType() == null

+          || pcd.getPcd(index).getHelp() == null

+          || isEmpty(pcd.getPcd(index).getHelp())) {

+        Log

+            .wrn("select pcd entry when editing msa",

+                "The selected is defined incorrectly.\r\nPlease check it in spd file");

+      } else {

+        this.jTextFieldTokenSpaceGuid.setText(pcd.getPcd(index).getGuidCName());

+        Tools.generateComboBoxByVector(this.jComboBoxItemType, pcd

+            .getPcd(index).getType());

+        this.jTextAreaHelpText.setText(pcd.getPcd(index).getHelp());

+        this.jTextAreaHelpText.setSelectionStart(0);

+        this.jTextAreaHelpText.setSelectionEnd(0);

+      }

     }

-

-    /**

-     This method initializes this

-     

-     **/

-    private void init() {

-        this.setSize(508, 260);

-        this.setContentPane(getJScrollPane());

-        this.setTitle("Pcd Coded");

-        initFrame();

-        this.setViewMode(false);

-        this.centerWindow();

-    }

-

-    /**

-     This method initializes this

-     Fill values to all fields if these values are not empty

-     

-     @param inPcdCodedId

-

-     **/

-    private void init(PcdCodedIdentification inPcdCodedId) {

-        init();

-        this.id = inPcdCodedId;

-

-        if (this.id != null) {

-            this.jComboBoxCName.setSelectedItem(id.getName());

-            this.jTextFieldTokenSpaceGuid.setText(id.getGuid());

-            this.jTextFieldDefaultValue.setText(id.getValue());

-            this.jTextAreaHelpText.setText(id.getHelp());

-            this.jComboBoxItemType.setSelectedItem(id.getType());

-            this.jTextFieldFeatureFlag.setText(id.getFeatureFlag());

-            this.jArchCheckBox.setSelectedItems(id.getSupArchList());

-        }

-    }

-

-    /**

-     This is the override edit constructor

-     

-     @param inPcdCodedId

-     @param iFrame

-     

-     **/

-    public PCDsDlg(PcdCodedIdentification inPcdCodedId, IFrame iFrame) {

-        super(iFrame, true);

-        init(inPcdCodedId);

-    }

-

-    /**

-     Disable all components when the mode is view

-     

-     @param isView true - The view mode; false - The non-view mode

-     

-     **/

-    public void setViewMode(boolean isView) {

-        if (isView) {

-            this.jTextFieldDefaultValue.setEnabled(!isView);

-            this.jComboBoxItemType.setEnabled(!isView);

-        }

-    }

-

-    /**

-     This method initializes jContentPane

-     

-     @return javax.swing.JPanel jContentPane

-     

-     **/

-    private JPanel getJContentPane() {

-        if (jContentPane == null) {

-            jArchCheckBox = new ArchCheckBox();

-            jArchCheckBox.setPreferredSize(new java.awt.Dimension(320, 20));

-            jLabelArch = new JLabel();

-            jLabelArch.setText("Sup Arch List");

-            jLabelFeatureFlag = new JLabel();

-            jLabelFeatureFlag.setText("Feature Flag");

-            jLabelTokenSpaceGuid = new JLabel();

-            jLabelTokenSpaceGuid.setText("Token Space C Name");

-            jLabelTokenSpaceGuid.setVisible(false);

-            jLabelHelpText = new JLabel();

-            jLabelHelpText.setText("Help Text");

-            jLabelC_Name = new JLabel();

-            jLabelC_Name.setText("C Name");

-            jLabelDefaultValue = new JLabel();

-            jLabelDefaultValue.setText("Default Value");

-            jLabelItemType = new JLabel();

-            jLabelItemType.setText("Item Type");

-

-            jLabelC_Name.setBounds(new       java.awt.Rectangle(15, 10, 140, 20));

-            jLabelItemType.setBounds(new     java.awt.Rectangle(15, 35, 140, 20));

-            jLabelDefaultValue.setBounds(new java.awt.Rectangle(15, 60, 140, 20));

-            jLabelHelpText.setBounds(new     java.awt.Rectangle(15, 85, 140, 20));

-            jLabelFeatureFlag.setBounds(new  java.awt.Rectangle(15, 130, 140, 20));

-            jLabelArch.setBounds(new java.awt.Rectangle(15, 155, 140, 20));

-

-            jArchCheckBox.setBounds(new      java.awt.Rectangle(160, 155, 320, 20));

-            jLabelTokenSpaceGuid.setBounds(new java.awt.Rectangle(15, 60, 140, 20));

-

-            jContentPane = new JPanel();

-            jContentPane.setLayout(null);

-            jContentPane.setPreferredSize(new java.awt.Dimension(490, 190));

-

-            jContentPane.add(jLabelItemType, null);

-            jContentPane.add(jLabelC_Name, null);

-            jContentPane.add(getJComboBoxCName(), null);

-            jContentPane.add(jLabelDefaultValue, null);

-            jContentPane.add(getJTextFieldDefaultValue(), null);

-            jContentPane.add(getJScrollPaneHelpText(), null);

-            jContentPane.add(getJComboBoxItemType(), null);

-            jStarLabel1 = new StarLabel();

-            jStarLabel1.setLocation(new java.awt.Point(0, 10));

-            jStarLabel2 = new StarLabel();

-            jStarLabel2.setLocation(new java.awt.Point(0, 35));

-            jStarLabel3 = new StarLabel();

-            jStarLabel3.setLocation(new java.awt.Point(0, 85));

-            jContentPane.add(jStarLabel1, null);

-            jContentPane.add(jStarLabel2, null);

-            jContentPane.add(jStarLabel3, null);

-            jContentPane.add(jLabelHelpText, null);

-//            jContentPane.add(getJTextFieldHelpText(), null);

-

-            jContentPane.add(jLabelTokenSpaceGuid, null);

-            jContentPane.add(getJTextFieldTokenSpaceGuid(), null);

-            jContentPane.add(jLabelFeatureFlag, null);

-            jContentPane.add(getJTextFieldFeatureFlag(), null);

-            jContentPane.add(jLabelArch, null);

-            jContentPane.add(jArchCheckBox, null);

-            jContentPane.add(getJButtonOk(), null);

-            jContentPane.add(getJButtonCancel(), null);

-        }

-        return jContentPane;

-    }

-

-    /**

-     This method initializes Usage type, Item type and Datum type

-     

-     **/

-    private void initFrame() {

-        for (int index = 0; index < pcd.size(); index++) {

-            jComboBoxCName.addItem(pcd.getPcd(index));

-        }

-        

-        //Tools.generateComboBoxByVector(jComboBoxItemType, ed.getVPcdItemTypes());

-    }

-

-    /* (non-Javadoc)

-     * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)

-     *

-     * Override actionPerformed to listen all actions

-     * 

-     */

-    public void actionPerformed(ActionEvent arg0) {

-        if (arg0.getSource() == jButtonOk) {

-            if (checkAdd()) {

-                getCurrentPcdCoded();

-                this.returnType = DataType.RETURN_TYPE_OK;

-                this.setVisible(false);

-            }

-        }

-

-        if (arg0.getSource() == jButtonCancel) {

-            this.returnType = DataType.RETURN_TYPE_CANCEL;

-            this.setVisible(false);

-        }

-    }

-

-    /**

-     Data validation for all fields

-     

-     @retval true - All datas are valid

-     @retval false - At least one data is invalid

-     

-     **/

-    public boolean checkAdd() {

-        //

-        // Check if all fields have correct data types 

-        //

-

-        //

-        // Check C_Name 

-        //

-        if (!isEmpty(this.jComboBoxCName.getSelectedItem().toString())) {

-            if (!DataValidation.isC_NameType(this.jComboBoxCName.getSelectedItem().toString())) {

-                Log.wrn("Update PcdCoded", "Incorrect data type for C Name");

-                return false;

-            }

-        }

-

-        //

-        // Check TokenSpaceGuid

-        //

-        if (!isEmpty(this.jTextFieldTokenSpaceGuid.getText())) {

-            if (!DataValidation.isC_NameType(this.jTextFieldTokenSpaceGuid.getText())) {

-                Log.wrn("Update PcdCoded", "Incorrect data type for the selected pcd entry, please check in in spd file");

-                return false;

-            }

-        }

-

-        //

-        // Check DefaultValue

-        //

-        if (!isEmpty(this.jTextFieldDefaultValue.getText())) {

-            if (!DataValidation.isDefaultValueType(this.jTextFieldDefaultValue.getText())) {

-                Log.wrn("Update PcdCoded", "Incorrect data type for Default Value");

-                return false;

-            }

-        }

-

-        //

-        // Check HelpText

-        //

-        if (isEmpty(this.jTextAreaHelpText.getText())) {

-            Log.wrn("Update PcdCoded", "Help Text should not be empty");

-            return false;

-        }

-

-        //

-        // Check FeatureFlag

-        //

-        if (!isEmpty(this.jTextFieldFeatureFlag.getText())) {

-            if (!DataValidation.isFeatureFlag(this.jTextFieldFeatureFlag.getText())) {

-                Log.wrn("Update PcdCoded", "Incorrect data type for Feature Flag");

-                return false;

-            }

-        }

-

-        return true;

-    }

-

-    private PcdCodedIdentification getCurrentPcdCoded() {

-        String arg0 = this.jComboBoxCName.getSelectedItem().toString();

-        String arg1 = this.jTextFieldTokenSpaceGuid.getText();

-

-        String arg2 = this.jTextFieldFeatureFlag.getText();

-        Vector<String> arg3 = this.jArchCheckBox.getSelectedItemsVector();

-

-        String arg4 = this.jTextFieldDefaultValue.getText();

-        String arg5 = this.jTextAreaHelpText.getText();

-        String arg6 = this.jComboBoxItemType.getSelectedItem().toString();

-        id = new PcdCodedIdentification(arg0, arg1, arg2, arg3, arg4, arg5, arg6);

-        return id;

-    }

-

-    public PcdCodedIdentification getId() {

-        return id;

-    }

-

-    public void setId(PcdCodedIdentification id) {

-        this.id = id;

-    }

-

-    /* (non-Javadoc)

-     * @see java.awt.event.ItemListener#itemStateChanged(java.awt.event.ItemEvent)

-     *

-     * Reflesh the frame when selected item changed

-     * 

-     */

-    public void itemStateChanged(ItemEvent arg0) {

-        int index = this.jComboBoxCName.getSelectedIndex();

-        if (arg0.getSource() == this.jComboBoxCName && arg0.getStateChange() == ItemEvent.SELECTED ) {

-            if (pcd.getPcd(index).getGuidCName() == null || isEmpty(pcd.getPcd(index).getGuidCName())

-                || pcd.getPcd(index).getType() == null || pcd.getPcd(index).getHelp() == null || isEmpty(pcd.getPcd(index).getHelp())) {

-                Log.wrn("select pcd entry when editing msa", "The selected is defined incorrectly.\r\nPlease check it in spd file");

-            } else {

-                this.jTextFieldTokenSpaceGuid.setText(pcd.getPcd(index).getGuidCName());

-                Tools.generateComboBoxByVector(this.jComboBoxItemType, pcd.getPcd(index).getType());

-                this.jTextAreaHelpText.setText(pcd.getPcd(index).getHelp());

-                this.jTextAreaHelpText.setSelectionStart(0);

-                this.jTextAreaHelpText.setSelectionEnd(0);

-            }

-        }

-    }

+  }

 }

diff --git a/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/ui/dialog/PpisDlg.java b/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/ui/dialog/PpisDlg.java
index 4ad12ee..c4e4151 100644
--- a/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/ui/dialog/PpisDlg.java
+++ b/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/ui/dialog/PpisDlg.java
@@ -25,6 +25,7 @@
 import javax.swing.JPanel;

 import javax.swing.JScrollPane;

 import javax.swing.JTextField;

+import javax.swing.JTextArea;

 

 import org.tianocore.frameworkwizard.common.DataType;

 import org.tianocore.frameworkwizard.common.DataValidation;

@@ -39,394 +40,436 @@
 import org.tianocore.frameworkwizard.workspace.WorkspaceTools;

 

 /**

- The class is used to create, update Ppi of MSA/MBD file

- It extends IInternalFrame

- 

- **/

+ * The class is used to create, update Ppi of MSA/MBD file It extends

+ * IInternalFrame

+ * 

+ */

 public class PpisDlg extends IDialog implements ItemListener {

 

-    ///

-    /// Define class Serial Version UID

-    ///

-    private static final long serialVersionUID = -4284901202357037724L;

+  // /

+  // / Define class Serial Version UID

+  // /

+  private static final long serialVersionUID = -4284901202357037724L;

+

+  //

+  // Define class members

+  //

+  private JPanel jContentPane = null;

+

+  private JLabel jLabelC_Name = null;

+

+  private JComboBox jComboBoxCName = null;

+

+  private JTextField jTextFieldFeatureFlag = null;

+

+  private JLabel jLabelFeatureFlag = null;

+

+  private JLabel jLabelUsage = null;

+

+  private JComboBox jComboBoxUsage = null;

+

+  private JLabel jLabelPpiType = null;

+

+  private StarLabel jStarLabel1 = null;

+

+  private StarLabel jStarLabel2 = null;

+

+  private StarLabel jStarLabel3 = null;

+

+  private JComboBox jComboBoxPpiType = null;

+

+  private JLabel jLabelArch = null;

+

+  private JScrollPane jScrollPane = null;

+

+  private JLabel jLabelHelpText = null;

+

+  private JTextArea jTextAreaHelpText = null;

+

+  private JScrollPane jScrollPaneHelpText = null;

+

+  private ArchCheckBox jArchCheckBox = null;

+

+  private JButton jButtonOk = null;

+

+  private JButton jButtonCancel = null;

+

+  //

+  // Not used by UI

+  //

+  private PpisIdentification id = null;

+

+  private WorkspaceTools wt = new WorkspaceTools();

+

+  private EnumerationData ed = new EnumerationData();

+

+  /**

+   * This method initializes jComboBoxPpiType

+   * 

+   * @return javax.swing.JComboBox

+   */

+  private JComboBox getJComboBoxPpiType() {

+    if (jComboBoxPpiType == null) {

+      jComboBoxPpiType = new JComboBox();

+      jComboBoxPpiType.setBounds(new java.awt.Rectangle(160, 10, 320, 20));

+      jComboBoxPpiType.setPreferredSize(new java.awt.Dimension(320, 20));

+      jComboBoxPpiType.addItemListener(this);

+      jComboBoxPpiType.setToolTipText("<html>PPIs are named by GUID.<br>PPI Notify is consumed via a register PPI Notify mechanism");

+    }

+    return jComboBoxPpiType;

+  }

+

+  /**

+   * This method initializes jTextFieldC_Name

+   * 

+   * @return javax.swing.JTextField jTextFieldC_Name

+   * 

+   */

+  private JComboBox getJComboBoxCName() {

+    if (jComboBoxCName == null) {

+      jComboBoxCName = new JComboBox();

+      jComboBoxCName.setBounds(new java.awt.Rectangle(160, 35, 320, 20));

+      jComboBoxCName.setPreferredSize(new java.awt.Dimension(320, 20));

+      jComboBoxCName.setToolTipText("Select Guid C Name of PPI");

+    }

+    return jComboBoxCName;

+  }

+

+  /**

+   * This method initializes jComboBoxUsage

+   * 

+   * @return javax.swing.JComboBox jComboBoxUsage

+   * 

+   */

+  private JComboBox getJComboBoxUsage() {

+    if (jComboBoxUsage == null) {

+      jComboBoxUsage = new JComboBox();

+      jComboBoxUsage.setBounds(new java.awt.Rectangle(160, 60, 320, 20));

+      jComboBoxUsage.setPreferredSize(new java.awt.Dimension(320, 20));

+      jComboBoxUsage.setToolTipText("<html><table><tr><td colspan=2 align=center><b>PPI</b></td></tr><tr><td>ALWAYS_CONSUMED</td><td>Module always consumes the PPI</td></tr><tr><td>SOMETIMES_CONSUMED</td><td>Module sometimes consumes the PPI</td></tr><tr><td>ALWAYS_PRODUCED</td><td>Module always produces the PPI</td></tr><tr><td>SOMETIMES_PRODUCED</td><td>Module sometimes produces the PPI</td></tr><tr><td colspan=2 align=center><b>PPI Notify</b></td></tr><tr><td>SOMETIMES_CONSUMED</td><td>Module will consume the PPI if it is produced. Consumption<br>is defined by executing the PPI notify function</td></tr></table></html>");

+    }

+    return jComboBoxUsage;

+  }

+

+  /**

+   * This method initializes jTextFieldFeatureFlag

+   * 

+   * @return javax.swing.JTextField jTextFieldFeatureFlag

+   * 

+   */

+  private JTextField getJTextFieldFeatureFlag() {

+    if (jTextFieldFeatureFlag == null) {

+      jTextFieldFeatureFlag = new JTextField();

+      jTextFieldFeatureFlag

+          .setBounds(new java.awt.Rectangle(160, 130, 320, 20));

+      jTextFieldFeatureFlag.setPreferredSize(new java.awt.Dimension(320, 20));

+      jTextFieldFeatureFlag

+          .setToolTipText("Postfix expression that must evaluate to TRUE or FALSE");

+    }

+    return jTextFieldFeatureFlag;

+  }

+

+  /**

+   * This method initializes jScrollPane

+   * 

+   * @return javax.swing.JScrollPane

+   */

+  private JScrollPane getJScrollPane() {

+    if (jScrollPane == null) {

+      jScrollPane = new JScrollPane();

+      jScrollPane.setViewportView(getJContentPane());

+    }

+    return jScrollPane;

+  }

+

+  /**

+   * This method initializes jTextAreaHelpText

+   * 

+   * @return javax.swing.JTextArea

+   * 

+   */

+  private JTextArea getJTextAreaHelpText() {

+    if (jTextAreaHelpText == null) {

+      jTextAreaHelpText = new JTextArea();

+      jTextAreaHelpText.setLineWrap(true);

+      jTextAreaHelpText.setWrapStyleWord(true);

+    }

+    return jTextAreaHelpText;

+  }

+

+  /**

+   * This method initializes jScrollPaneHelpText

+   * 

+   * @return javax.swing.JScrollPane

+   * 

+   */

+  private JScrollPane getJScrollPaneHelpText() {

+    if (jScrollPaneHelpText == null) {

+      jScrollPaneHelpText = new JScrollPane();

+      jScrollPaneHelpText

+          .setHorizontalScrollBarPolicy(javax.swing.JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);

+      jScrollPaneHelpText.setSize(new java.awt.Dimension(320, 40));

+      jScrollPaneHelpText.setPreferredSize(new java.awt.Dimension(320, 40));

+      jScrollPaneHelpText.setLocation(new java.awt.Point(160, 85));

+      jScrollPaneHelpText.setViewportView(getJTextAreaHelpText());

+    }

+    return jScrollPaneHelpText;

+  }

+

+  /**

+   * This method initializes jButtonOk

+   * 

+   * @return javax.swing.JButton

+   * 

+   */

+  private JButton getJButtonOk() {

+    if (jButtonOk == null) {

+      jButtonOk = new JButton();

+      jButtonOk.setBounds(new java.awt.Rectangle(290, 182, 90, 20));

+      jButtonOk.setText("Ok");

+      jButtonOk.addActionListener(this);

+    }

+    return jButtonOk;

+  }

+

+  /**

+   * This method initializes jButtonCancel

+   * 

+   * @return javax.swing.JButton

+   * 

+   */

+  private JButton getJButtonCancel() {

+    if (jButtonCancel == null) {

+      jButtonCancel = new JButton();

+      jButtonCancel.setBounds(new java.awt.Rectangle(390, 182, 90, 20));

+      jButtonCancel.setText("Cancel");

+      jButtonCancel.addActionListener(this);

+    }

+    return jButtonCancel;

+  }

+

+  public static void main(String[] args) {

+

+  }

+

+  /**

+   * This method initializes this

+   * 

+   */

+  private void init() {

+    this.setSize(500, 255);

+    this.setContentPane(getJScrollPane());

+    this.setTitle("PPI Definitions");

+    initFrame();

+    this.centerWindow();

+  }

+

+  /**

+   * This method initializes this Fill values to all fields if these values are

+   * not empty

+   * 

+   * @param inProtocolsId

+   * 

+   */

+  private void init(PpisIdentification inPpisId) {

+    init();

+    this.id = inPpisId;

+

+    if (this.id != null) {

+      this.jComboBoxCName.setSelectedItem(id.getName());

+      this.jComboBoxPpiType.setSelectedItem(id.getType());

+      this.jComboBoxUsage.setSelectedItem(id.getUsage());

+      this.jTextAreaHelpText.setText(id.getHelp());

+      this.jTextFieldFeatureFlag.setText(id.getFeatureFlag());

+      this.jArchCheckBox.setSelectedItems(id.getSupArchList());

+    }

+  }

+

+  /**

+   * This is the override edit constructor

+   * 

+   * @param inProtocolsIdentification

+   * @param iFrame

+   * 

+   */

+  public PpisDlg(PpisIdentification inPpisIdentification, IFrame iFrame) {

+    super(iFrame, true);

+    init(inPpisIdentification);

+  }

+

+  /**

+   * This method initializes jContentPane

+   * 

+   * @return javax.swing.JPanel jContentPane

+   * 

+   */

+  private JPanel getJContentPane() {

+    if (jContentPane == null) {

+      jStarLabel1 = new StarLabel();

+      jStarLabel1.setLocation(new java.awt.Point(2, 10));

+      jLabelPpiType = new JLabel();

+      jLabelPpiType.setBounds(new java.awt.Rectangle(15, 10, 145, 20));

+      jLabelPpiType.setText("Ppi Type");

+

+      jStarLabel2 = new StarLabel();

+      jStarLabel2.setLocation(new java.awt.Point(2, 35));

+      jLabelC_Name = new JLabel();

+      jLabelC_Name.setText("PPI GUID C Name");

+      jLabelC_Name.setBounds(new java.awt.Rectangle(15, 35, 145, 20));

+

+      jStarLabel3 = new StarLabel();

+      jStarLabel3.setLocation(new java.awt.Point(2, 60));

+      jLabelUsage = new JLabel();

+      jLabelUsage.setText("Usage");

+      jLabelUsage.setBounds(new java.awt.Rectangle(15, 60, 145, 20));

+

+      jLabelHelpText = new JLabel();

+      jLabelHelpText.setBounds(new java.awt.Rectangle(14, 85, 145, 20));

+      jLabelHelpText.setText("Help Text");

+

+      jLabelFeatureFlag = new JLabel();

+      jLabelFeatureFlag.setText("Feature Flag");

+      jLabelFeatureFlag.setBounds(new java.awt.Rectangle(15, 130, 145, 20));

+

+      jLabelArch = new JLabel();

+      jLabelArch.setBounds(new java.awt.Rectangle(15, 155, 145, 20));

+      jLabelArch.setText("Arch");

+      jArchCheckBox = new ArchCheckBox();

+      jArchCheckBox.setBounds(new java.awt.Rectangle(160, 155, 320, 20));

+      jArchCheckBox.setPreferredSize(new java.awt.Dimension(320, 20));

+

+      jContentPane = new JPanel();

+      jContentPane.setLayout(null);

+      jContentPane.setPreferredSize(new java.awt.Dimension(485, 210));

+

+      jContentPane.add(jStarLabel1, null);

+      jContentPane.add(jLabelPpiType, null);

+      jContentPane.add(getJComboBoxPpiType(), null);

+      jContentPane.add(jStarLabel2, null);

+      jContentPane.add(jLabelC_Name, null);

+      jContentPane.add(getJComboBoxCName(), null);

+      jContentPane.add(jStarLabel3, null);

+      jContentPane.add(jLabelUsage, null);

+      jContentPane.add(getJComboBoxUsage(), null);

+      jContentPane.add(jLabelHelpText, null);

+      jContentPane.add(getJScrollPaneHelpText(), null);

+      jContentPane.add(jLabelFeatureFlag, null);

+      jContentPane.add(getJTextFieldFeatureFlag(), null);

+      jContentPane.add(jLabelArch, null);

+      jContentPane.add(jArchCheckBox, null);

+      jContentPane.add(getJButtonOk(), null);

+      jContentPane.add(getJButtonCancel(), null);

+    }

+    return jContentPane;

+  }

+

+  /**

+   * This method initializes Usage type

+   * 

+   */

+  private void initFrame() {

+    Tools.generateComboBoxByVector(jComboBoxCName, wt

+        .getAllPpiDeclarationsFromWorkspace());

+    Tools.generateComboBoxByVector(jComboBoxPpiType, ed.getVPpiType());

+    Tools.generateComboBoxByVector(jComboBoxUsage, ed.getVPpiUsage());

+  }

+

+  /*

+   * (non-Javadoc)

+   * 

+   * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)

+   * 

+   * Override actionPerformed to listen all actions

+   * 

+   */

+  public void actionPerformed(ActionEvent arg0) {

+    if (arg0.getSource() == jButtonOk) {

+      if (checkAdd()) {

+        getCurrentPpis();

+        this.returnType = DataType.RETURN_TYPE_OK;

+        this.setVisible(false);

+      }

+    }

+

+    if (arg0.getSource() == jButtonCancel) {

+      this.returnType = DataType.RETURN_TYPE_CANCEL;

+      this.setVisible(false);

+    }

+  }

+

+  /**

+   * Data validation for all fields

+   * 

+   * @retval true - All datas are valid

+   * @retval false - At least one data is invalid

+   * 

+   */

+  public boolean checkAdd() {

+    //

+    // Check if all fields have correct data types

+    //

 

     //

-    //Define class members

+    // Check Name

     //

-    private JPanel jContentPane = null;

-

-    private JLabel jLabelC_Name = null;

-

-    private JComboBox jComboBoxCName = null;

-

-    private JTextField jTextFieldFeatureFlag = null;

-

-    private JLabel jLabelFeatureFlag = null;

-

-    private JLabel jLabelUsage = null;

-

-    private JComboBox jComboBoxUsage = null;

-

-    private JLabel jLabelPpiType = null;

-

-    private StarLabel jStarLabel1 = null;

-

-    private StarLabel jStarLabel2 = null;

-

-    private JComboBox jComboBoxPpiType = null;

-

-    private JLabel jLabelArch = null;

-

-    private JScrollPane jScrollPane = null;

-

-    private JLabel jLabelHelpText = null;

-

-    private JTextField jTextFieldHelpText = null;

-

-    private ArchCheckBox jArchCheckBox = null;

-

-    private JButton jButtonOk = null;

-

-    private JButton jButtonCancel = null;

+    if (!isEmpty(this.jComboBoxCName.getSelectedItem().toString())) {

+      if (!DataValidation.isC_NameType(this.jComboBoxCName.getSelectedItem()

+          .toString())) {

+        Log.wrn("Update Ppis", "Incorrect data type for Ppi/PpiNotify Name");

+        return false;

+      }

+    }

 

     //

-    // Not used by UI

+    // Check FeatureFlag

     //

-    private PpisIdentification id = null;

-

-    private WorkspaceTools wt = new WorkspaceTools();

-

-    private EnumerationData ed = new EnumerationData();

-

-    /**

-     This method initializes jTextFieldC_Name 

-     

-     @return javax.swing.JTextField jTextFieldC_Name

-     

-     **/

-    private JComboBox getJComboBoxCName() {

-        if (jComboBoxCName == null) {

-            jComboBoxCName = new JComboBox();

-            jComboBoxCName.setBounds(new java.awt.Rectangle(160, 35, 320, 20));

-            jComboBoxCName.setPreferredSize(new java.awt.Dimension(320, 20));

-        }

-        return jComboBoxCName;

+    if (!isEmpty(this.jTextFieldFeatureFlag.getText())) {

+      if (!DataValidation.isFeatureFlag(this.jTextFieldFeatureFlag.getText())) {

+        Log.wrn("Update Ppis", "Incorrect data type for Feature Flag");

+        return false;

+      }

     }

 

-    /**

-     This method initializes jTextFieldFeatureFlag 

-     

-     @return javax.swing.JTextField jTextFieldFeatureFlag

-     

-     **/

-    private JTextField getJTextFieldFeatureFlag() {

-        if (jTextFieldFeatureFlag == null) {

-            jTextFieldFeatureFlag = new JTextField();

-            jTextFieldFeatureFlag.setBounds(new java.awt.Rectangle(160, 110, 320, 20));

-            jTextFieldFeatureFlag.setPreferredSize(new java.awt.Dimension(320, 20));

-        }

-        return jTextFieldFeatureFlag;

-    }

+    return true;

+  }

 

-    /**

-     This method initializes jComboBox

-     

-     @return javax.swing.JComboBox jComboBoxUsage

-     

-     **/

-    private JComboBox getJComboBox() {

-        if (jComboBoxUsage == null) {

-            jComboBoxUsage = new JComboBox();

-            jComboBoxUsage.setBounds(new java.awt.Rectangle(160, 60, 320, 20));

-            jComboBoxUsage.setPreferredSize(new java.awt.Dimension(320, 20));

-        }

-        return jComboBoxUsage;

-    }

-

-    /**

-     * This method initializes jComboBoxPpiType	

-     * 	

-     * @return javax.swing.JComboBox	

-     */

-    private JComboBox getJComboBoxPpiType() {

-        if (jComboBoxPpiType == null) {

-            jComboBoxPpiType = new JComboBox();

-            jComboBoxPpiType.setBounds(new java.awt.Rectangle(160, 10, 320, 20));

-            jComboBoxPpiType.setPreferredSize(new java.awt.Dimension(320, 20));

-            jComboBoxPpiType.addItemListener(this);

-        }

-        return jComboBoxPpiType;

-    }

-

-    /**

-     This method initializes jScrollPane  

-     

-     @return javax.swing.JScrollPane  

-     */

-    private JScrollPane getJScrollPane() {

-        if (jScrollPane == null) {

-            jScrollPane = new JScrollPane();

-            jScrollPane.setViewportView(getJContentPane());

-        }

-        return jScrollPane;

-    }

-

-    /**

-     This method initializes jTextFieldHelpText  

-     

-     @return javax.swing.JTextField  

-     

-     **/

-    private JTextField getJTextFieldHelpText() {

-        if (jTextFieldHelpText == null) {

-            jTextFieldHelpText = new JTextField();

-            jTextFieldHelpText.setBounds(new java.awt.Rectangle(160, 85, 320, 20));

-            jTextFieldHelpText.setPreferredSize(new java.awt.Dimension(320, 20));

-        }

-        return jTextFieldHelpText;

-    }

-

-    /**

-     This method initializes jButtonOk    

-     

-     @return javax.swing.JButton  

-     

-     **/

-    private JButton getJButtonOk() {

-        if (jButtonOk == null) {

-            jButtonOk = new JButton();

-            jButtonOk.setBounds(new java.awt.Rectangle(290, 165, 90, 20));

-            jButtonOk.setText("Ok");

-            jButtonOk.addActionListener(this);

-        }

-        return jButtonOk;

-    }

-

-    /**

-     This method initializes jButtonCancel    

-     

-     @return javax.swing.JButton  

-     

-     **/

-    private JButton getJButtonCancel() {

-        if (jButtonCancel == null) {

-            jButtonCancel = new JButton();

-            jButtonCancel.setBounds(new java.awt.Rectangle(390, 165, 90, 20));

-            jButtonCancel.setText("Cancel");

-            jButtonCancel.addActionListener(this);

-        }

-        return jButtonCancel;

-    }

-

-    public static void main(String[] args) {

-

-    }

-

-    /**

-     This method initializes this

-     

-     **/

-    private void init() {

-        this.setSize(510, 240);

-        this.setContentPane(getJScrollPane());

-        this.setTitle("Ppis");

-        initFrame();

-        this.centerWindow();

-    }

-

-    /**

-     This method initializes this

-     Fill values to all fields if these values are not empty

-     

-     @param inProtocolsId

-

-     **/

-    private void init(PpisIdentification inPpisId) {

-        init();

-        this.id = inPpisId;

-

-        if (this.id != null) {

-            this.jComboBoxCName.setSelectedItem(id.getName());

-            this.jComboBoxPpiType.setSelectedItem(id.getType());

-            this.jComboBoxUsage.setSelectedItem(id.getUsage());

-            this.jTextFieldHelpText.setText(id.getHelp());

-            this.jTextFieldFeatureFlag.setText(id.getFeatureFlag());

-            this.jArchCheckBox.setSelectedItems(id.getSupArchList());

-        }

-    }

-

-    /**

-     This is the override edit constructor

-     

-     @param inProtocolsIdentification

-     @param iFrame

-     

-     **/

-    public PpisDlg(PpisIdentification inPpisIdentification, IFrame iFrame) {

-        super(iFrame, true);

-        init(inPpisIdentification);

-    }

-

-    /**

-     This method initializes jContentPane

-     

-     @return javax.swing.JPanel jContentPane

-     

-     **/

-    private JPanel getJContentPane() {

-        if (jContentPane == null) {

-            jArchCheckBox = new ArchCheckBox();

-            jArchCheckBox.setBounds(new java.awt.Rectangle(160, 135, 320, 20));

-            jArchCheckBox.setPreferredSize(new java.awt.Dimension(320, 20));

-            jLabelArch = new JLabel();

-            jLabelArch.setBounds(new java.awt.Rectangle(15, 135, 140, 20));

-            jLabelArch.setText("Arch");

-            jLabelPpiType = new JLabel();

-            jLabelPpiType.setBounds(new java.awt.Rectangle(15, 10, 140, 20));

-            jLabelPpiType.setText("Ppi Type");

-            jLabelUsage = new JLabel();

-            jLabelUsage.setText("Usage");

-            jLabelUsage.setBounds(new java.awt.Rectangle(15, 60, 140, 20));

-            jLabelFeatureFlag = new JLabel();

-            jLabelFeatureFlag.setText("Feature Flag");

-            jLabelFeatureFlag.setBounds(new java.awt.Rectangle(15, 110, 140, 20));

-            jLabelC_Name = new JLabel();

-            jLabelC_Name.setText("C Name Type");

-            jLabelC_Name.setBounds(new java.awt.Rectangle(15, 35, 140, 20));

-            jLabelHelpText = new JLabel();

-            jLabelHelpText.setBounds(new java.awt.Rectangle(14, 85, 140, 20));

-            jLabelHelpText.setText("Help Text");

-

-            jContentPane = new JPanel();

-            jContentPane.setLayout(null);

-            jContentPane.setPreferredSize(new java.awt.Dimension(490, 190));

-

-            jContentPane.add(jLabelC_Name, null);

-            jContentPane.add(getJComboBoxCName(), null);

-            jContentPane.add(getJTextFieldFeatureFlag(), null);

-            jContentPane.add(jLabelFeatureFlag, null);

-            jContentPane.add(jLabelUsage, null);

-            jContentPane.add(getJComboBox(), null);

-            jContentPane.add(getJComboBoxPpiType(), null);

-            jContentPane.add(jLabelArch, null);

-            jContentPane.add(jLabelPpiType, null);

-            jStarLabel1 = new StarLabel();

-            jStarLabel1.setBounds(new java.awt.Rectangle(0, 10, 10, 20));

-            jStarLabel2 = new StarLabel();

-            jStarLabel2.setBounds(new java.awt.Rectangle(0, 35, 10, 20));

-

-            jContentPane.add(jStarLabel1, null);

-            jContentPane.add(jStarLabel2, null);

-

-            jContentPane.add(jLabelHelpText, null);

-            jContentPane.add(getJTextFieldHelpText(), null);

-            jContentPane.add(jArchCheckBox, null);

-            jContentPane.add(getJButtonOk(), null);

-            jContentPane.add(getJButtonCancel(), null);

-        }

-        return jContentPane;

-    }

-

-    /**

-     This method initializes Usage type

-     

-     **/

-    private void initFrame() {

-        Tools.generateComboBoxByVector(jComboBoxCName, wt.getAllPpiDeclarationsFromWorkspace());

-        Tools.generateComboBoxByVector(jComboBoxPpiType, ed.getVPpiType());

-        Tools.generateComboBoxByVector(jComboBoxUsage, ed.getVPpiUsage());

-    }

-

-    /* (non-Javadoc)

-     * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)

-     *

-     * Override actionPerformed to listen all actions

-     * 

-     */

-    public void actionPerformed(ActionEvent arg0) {

-        if (arg0.getSource() == jButtonOk) {

-            if (checkAdd()) {

-                getCurrentPpis();

-                this.returnType = DataType.RETURN_TYPE_OK;

-                this.setVisible(false);

-            }

-        }

-

-        if (arg0.getSource() == jButtonCancel) {

-            this.returnType = DataType.RETURN_TYPE_CANCEL;

-            this.setVisible(false);

-        }

-    }

-

-    /**

-     Data validation for all fields

-     

-     @retval true - All datas are valid

-     @retval false - At least one data is invalid

-     

-     **/

-    public boolean checkAdd() {

-        //

-        // Check if all fields have correct data types 

-        //

-

-        //

-        // Check Name 

-        //

-        if (!isEmpty(this.jComboBoxCName.getSelectedItem().toString())) {

-            if (!DataValidation.isC_NameType(this.jComboBoxCName.getSelectedItem().toString())) {

-                Log.wrn("Update Ppis", "Incorrect data type for Ppi/PpiNotify Name");

-                return false;

-            }

-        }

-

-        //

-        // Check FeatureFlag

-        //

-        if (!isEmpty(this.jTextFieldFeatureFlag.getText())) {

-            if (!DataValidation.isFeatureFlag(this.jTextFieldFeatureFlag.getText())) {

-                Log.wrn("Update Ppis", "Incorrect data type for Feature Flag");

-                return false;

-            }

-        }

-

-        return true;

-    }

-

-    private PpisIdentification getCurrentPpis() {

+private PpisIdentification getCurrentPpis() {

         String arg0 = this.jComboBoxCName.getSelectedItem().toString();

         String arg1 = this.jComboBoxPpiType.getSelectedItem().toString();

         String arg2 = this.jComboBoxUsage.getSelectedItem().toString();

 

         String arg3 = this.jTextFieldFeatureFlag.getText();

         Vector<String> arg4 = this.jArchCheckBox.getSelectedItemsVector();

-        String arg5 = this.jTextFieldHelpText.getText();

+        String arg5 = this.jTextAreaHelpText.getText();

 

         id = new PpisIdentification(arg0, arg1, arg2, arg3, arg4, arg5);

         return id;

+    }  /*

+         * (non-Javadoc)

+         * 

+         * @see java.awt.event.ItemListener#itemStateChanged(java.awt.event.ItemEvent)

+         * 

+         * Reflesh the frame when selected item changed

+         * 

+         */

+  public void itemStateChanged(ItemEvent arg0) {

+    if (arg0.getSource() == this.jComboBoxPpiType

+        && arg0.getStateChange() == ItemEvent.SELECTED) {

+      if (this.jComboBoxPpiType.getSelectedItem().toString().equals(

+          ed.getVPpiType().get(0))) {

+        Tools.generateComboBoxByVector(this.jComboBoxUsage, ed.getVPpiUsage());

+      } else {

+        Tools.generateComboBoxByVector(this.jComboBoxUsage, ed

+            .getVPpiNotifyUsage());

+      }

     }

+  }

 

-    /* (non-Javadoc)

-     * @see java.awt.event.ItemListener#itemStateChanged(java.awt.event.ItemEvent)

-     *

-     * Reflesh the frame when selected item changed

-     * 

-     */

-    public void itemStateChanged(ItemEvent arg0) {

-        if (arg0.getSource() == this.jComboBoxPpiType && arg0.getStateChange() == ItemEvent.SELECTED) {

-            if (this.jComboBoxPpiType.getSelectedItem().toString().equals(ed.getVPpiType().get(0))) {

-                Tools.generateComboBoxByVector(this.jComboBoxUsage, ed.getVPpiUsage());

-            } else {

-                Tools.generateComboBoxByVector(this.jComboBoxUsage, ed.getVPpiNotifyUsage());

-            }

-        }

-    }

+  public PpisIdentification getId() {

+    return id;

+  }

 

-    public PpisIdentification getId() {

-        return id;

-    }

-

-    public void setId(PpisIdentification id) {

-        this.id = id;

-    }

+  public void setId(PpisIdentification id) {

+    this.id = id;

+  }

 }