/** @file\r
\r
- The file is used to create, update PCD of MSA/MBD file\r
+ The file is used to create, update PcdCode section of the MSA file\r
\r
Copyright (c) 2006, Intel Corporation\r
All rights reserved. This program and the accompanying materials\r
import org.tianocore.frameworkwizard.common.ui.IDialog;\r
import org.tianocore.frameworkwizard.common.ui.IFrame;\r
import org.tianocore.frameworkwizard.common.ui.StarLabel;\r
+import org.tianocore.frameworkwizard.module.Identifications.ModuleIdentification;\r
import org.tianocore.frameworkwizard.module.Identifications.PcdCoded.PcdCodedIdentification;\r
import org.tianocore.frameworkwizard.module.Identifications.PcdCoded.PcdVector;\r
+import org.tianocore.frameworkwizard.packaging.PackageIdentification;\r
import org.tianocore.frameworkwizard.workspace.WorkspaceTools;\r
\r
/**\r
- * The class is used to create, update PCD of MSA/MBD file It extends\r
- * IInternalFrame\r
+ * The class is used to create, update PcdCoded section of the MSA file\r
+ * \r
+ * It extends IDialog\r
* \r
*/\r
public class PCDsDlg extends IDialog implements ItemListener {\r
private JButton jButtonCancel = null;\r
\r
private JScrollPane jScrollPaneHelpText = null;\r
- \r
+\r
private JLabel jLabelUsage = null;\r
\r
private JComboBox jComboBoxUsage = null;\r
// Not used by UI\r
//\r
private PcdCodedIdentification id = null;\r
- \r
+\r
private EnumerationData ed = new EnumerationData();\r
\r
private WorkspaceTools wt = new WorkspaceTools();\r
private JComboBox getJComboBoxItemType() {\r
if (jComboBoxItemType == null) {\r
jComboBoxItemType = new JComboBox();\r
- jComboBoxItemType.setBounds(new java.awt.Rectangle(160, 35, 320, 20));\r
+ jComboBoxItemType.setBounds(new java.awt.Rectangle(168, 37, 320, 20));\r
jComboBoxItemType.setPreferredSize(new java.awt.Dimension(320, 20));\r
}\r
return jComboBoxItemType;\r
private JComboBox getJComboBoxCName() {\r
if (jComboBoxCName == null) {\r
jComboBoxCName = new JComboBox();\r
- jComboBoxCName.setBounds(new java.awt.Rectangle(160, 10, 320, 20));\r
+ jComboBoxCName.setBounds(new java.awt.Rectangle(168, 12, 320, 20));\r
jComboBoxCName.setPreferredSize(new java.awt.Dimension(320, 20));\r
jComboBoxCName.addItemListener(this);\r
}\r
private JTextField getJTextFieldDefaultValue() {\r
if (jTextFieldDefaultValue == null) {\r
jTextFieldDefaultValue = new JTextField();\r
- jTextFieldDefaultValue.setBounds(new java.awt.Rectangle(160, 60, 320, 20));\r
+ jTextFieldDefaultValue.setBounds(new java.awt.Rectangle(168, 62, 320, 20));\r
jTextFieldDefaultValue.setPreferredSize(new java.awt.Dimension(320, 20));\r
}\r
return jTextFieldDefaultValue;\r
jScrollPaneHelpText.setHorizontalScrollBarPolicy(javax.swing.JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);\r
jScrollPaneHelpText.setSize(new java.awt.Dimension(320, 40));\r
jScrollPaneHelpText.setPreferredSize(new java.awt.Dimension(320, 40));\r
- jScrollPaneHelpText.setLocation(new java.awt.Point(160, 110));\r
+ jScrollPaneHelpText.setLocation(new java.awt.Point(168, 112));\r
jScrollPaneHelpText.setViewportView(getJTextAreaHelpText());\r
}\r
return jScrollPaneHelpText;\r
private JTextField getJTextFieldTokenSpaceGuid() {\r
if (jTextFieldTokenSpaceGuid == null) {\r
jTextFieldTokenSpaceGuid = new JTextField();\r
- jTextFieldTokenSpaceGuid.setBounds(new java.awt.Rectangle(160, 60, 320, 20));\r
+ jTextFieldTokenSpaceGuid.setBounds(new java.awt.Rectangle(168, 62, 320, 20));\r
jTextFieldTokenSpaceGuid.setPreferredSize(new java.awt.Dimension(320, 20));\r
jTextFieldTokenSpaceGuid.setVisible(false);\r
}\r
private JTextField getJTextFieldFeatureFlag() {\r
if (jTextFieldFeatureFlag == null) {\r
jTextFieldFeatureFlag = new JTextField();\r
- jTextFieldFeatureFlag.setBounds(new java.awt.Rectangle(160, 155, 320, 20));\r
+ jTextFieldFeatureFlag.setBounds(new java.awt.Rectangle(168, 182, 320, 20));\r
jTextFieldFeatureFlag.setPreferredSize(new java.awt.Dimension(320, 20));\r
jTextFieldFeatureFlag.setToolTipText("Postfix expression that must evaluate to TRUE or FALSE");\r
+ jTextFieldFeatureFlag.setEnabled(false);\r
}\r
return jTextFieldFeatureFlag;\r
}\r
private JButton getJButtonOk() {\r
if (jButtonOk == null) {\r
jButtonOk = new JButton();\r
- jButtonOk.setBounds(new java.awt.Rectangle(290, 205, 90, 20));\r
+ jButtonOk.setBounds(new java.awt.Rectangle(290, 212, 90, 20));\r
jButtonOk.setText("Ok");\r
jButtonOk.addActionListener(this);\r
}\r
private JButton getJButtonCancel() {\r
if (jButtonCancel == null) {\r
jButtonCancel = new JButton();\r
- jButtonCancel.setBounds(new java.awt.Rectangle(390, 205, 90, 20));\r
+ jButtonCancel.setBounds(new java.awt.Rectangle(390, 212, 90, 20));\r
jButtonCancel.setText("Cancel");\r
jButtonCancel.addActionListener(this);\r
}\r
private JComboBox getJComboBoxUsage() {\r
if (jComboBoxUsage == null) {\r
jComboBoxUsage = new JComboBox();\r
- jComboBoxUsage.setBounds(new java.awt.Rectangle(160, 85, 320, 20));\r
+ jComboBoxUsage.setBounds(new java.awt.Rectangle(168, 87, 320, 20));\r
jComboBoxUsage.setPreferredSize(new java.awt.Dimension(320, 20));\r
}\r
return jComboBoxUsage;\r
* \r
*/\r
private void init() {\r
- this.setSize(500, 270);\r
+ this.setSize(505, 280);\r
this.setContentPane(getJScrollPane());\r
this.setTitle("Pcd Coded");\r
initFrame();\r
* @param inPcdCodedId\r
* \r
*/\r
- private void init(PcdCodedIdentification inPcdCodedId) {\r
+ private void init(PcdCodedIdentification inPcdCodedId, ModuleIdentification mid) {\r
init();\r
this.id = inPcdCodedId;\r
+ \r
+ //\r
+ // Init arch with module's arch\r
+ //\r
+ this.jArchCheckBox.setEnabledItems(wt.getModuleArch(mid));\r
+ \r
+ //\r
+ // Get defined pcds from dependent packages\r
+ //\r
+ Vector<PackageIdentification> vpid = wt.getPackageDependenciesOfModule(mid);\r
+ if (vpid.size() <= 0) {\r
+ Log.wrn("Init Pcd", "This module hasn't defined any package dependency, so there is no pcd can be added");\r
+ }\r
+\r
+ pcd = wt.getAllPcdDeclarationsFromPackages(wt.getPackageDependenciesOfModule(mid));\r
+ for (int index = 0; index < pcd.size(); index++) {\r
+ jComboBoxCName.addItem(pcd.getPcd(index));\r
+ }\r
\r
if (this.id != null) {\r
- this.jComboBoxCName.setSelectedItem(id.getName());\r
+ for (int index = 0; index < this.jComboBoxCName.getItemCount(); index++) {\r
+ if (this.jComboBoxCName.getItemAt(index).toString().equals(id.getName())) {\r
+ this.jComboBoxCName.setSelectedIndex(index);\r
+ break;\r
+ }\r
+ }\r
this.jTextFieldTokenSpaceGuid.setText(id.getGuid());\r
this.jTextFieldDefaultValue.setText(id.getValue());\r
this.jComboBoxUsage.setSelectedItem(id.getUsage());\r
* @param iFrame\r
* \r
*/\r
- public PCDsDlg(PcdCodedIdentification inPcdCodedId, IFrame iFrame) {\r
+ public PCDsDlg(PcdCodedIdentification inPcdCodedId, IFrame iFrame, ModuleIdentification mid) {\r
super(iFrame, true);\r
- init(inPcdCodedId);\r
+ init(inPcdCodedId, mid);\r
}\r
\r
/**\r
private JPanel getJContentPane() {\r
if (jContentPane == null) {\r
jLabelUsage = new JLabel();\r
- jLabelUsage.setBounds(new java.awt.Rectangle(15, 85, 140, 20));\r
+ jLabelUsage.setBounds(new java.awt.Rectangle(12, 87, 168, 20));\r
jLabelUsage.setText("Usge");\r
jStarLabel1 = new StarLabel();\r
- jStarLabel1.setLocation(new java.awt.Point(2, 10));\r
+ jStarLabel1.setLocation(new java.awt.Point(2, 12));\r
jLabelC_Name = new JLabel();\r
jLabelC_Name.setText("PCD C Name");\r
- jLabelC_Name.setBounds(new java.awt.Rectangle(15, 10, 145, 20));\r
+ jLabelC_Name.setBounds(new java.awt.Rectangle(12, 12, 168, 20));\r
\r
jStarLabel2 = new StarLabel();\r
- jStarLabel2.setLocation(new java.awt.Point(2, 35));\r
+ jStarLabel2.setLocation(new java.awt.Point(2, 37));\r
jLabelItemType = new JLabel();\r
jLabelItemType.setText("PCD Item Type");\r
- jLabelItemType.setBounds(new java.awt.Rectangle(15, 35, 145, 20));\r
+ jLabelItemType.setBounds(new java.awt.Rectangle(12, 37, 168, 20));\r
\r
jLabelDefaultValue = new JLabel();\r
jLabelDefaultValue.setText("Default Value");\r
- jLabelDefaultValue.setBounds(new java.awt.Rectangle(15, 60, 145, 20));\r
+ jLabelDefaultValue.setBounds(new java.awt.Rectangle(12, 62, 168, 20));\r
\r
jStarLabel3 = new StarLabel();\r
- jStarLabel3.setLocation(new java.awt.Point(2, 110));\r
+ jStarLabel3.setLocation(new java.awt.Point(2, 112));\r
jLabelHelpText = new JLabel();\r
jLabelHelpText.setText("Help Text");\r
- jLabelHelpText.setBounds(new java.awt.Rectangle(15, 110, 145, 20));\r
+ jLabelHelpText.setBounds(new java.awt.Rectangle(12, 112, 168, 20));\r
\r
jLabelFeatureFlag = new JLabel();\r
jLabelFeatureFlag.setText("Feature Flag Expression");\r
- jLabelFeatureFlag.setBounds(new java.awt.Rectangle(15, 155, 140, 20));\r
+ jLabelFeatureFlag.setBounds(new java.awt.Rectangle(12, 182, 168, 20));\r
+ jLabelFeatureFlag.setEnabled(false);\r
\r
jLabelTokenSpaceGuid = new JLabel();\r
jLabelTokenSpaceGuid.setText("Token Space C Name");\r
\r
jLabelArch = new JLabel();\r
jLabelArch.setText("Supported Architectures");\r
- jLabelArch.setBounds(new java.awt.Rectangle(15, 180, 145, 20));\r
+ jLabelArch.setBounds(new java.awt.Rectangle(12, 157, 168, 20));\r
jArchCheckBox = new ArchCheckBox();\r
jArchCheckBox.setPreferredSize(new java.awt.Dimension(320, 20));\r
- jArchCheckBox.setBounds(new java.awt.Rectangle(160, 180, 320, 20));\r
+ jArchCheckBox.setBounds(new java.awt.Rectangle(168, 157, 320, 20));\r
\r
// Hidden field\r
- jLabelTokenSpaceGuid.setBounds(new java.awt.Rectangle(15, 60, 140, 20));\r
+ jLabelTokenSpaceGuid.setBounds(new java.awt.Rectangle(12, 62, 140, 20));\r
\r
jContentPane = new JPanel();\r
jContentPane.setLayout(null);\r
* \r
*/\r
private void initFrame() {\r
- for (int index = 0; index < pcd.size(); index++) {\r
- jComboBoxCName.addItem(pcd.getPcd(index));\r
- }\r
-\r
Tools.generateComboBoxByVector(jComboBoxUsage, ed.getVPcdUsage());\r
}\r
\r
//\r
// Check C_Name\r
//\r
+ if (this.jComboBoxCName.getSelectedItem() == null) {\r
+ Log.wrn("Update Pcd", "Please select one Pcd Name");\r
+ return false;\r
+ }\r
+\r
if (!isEmpty(this.jComboBoxCName.getSelectedItem().toString())) {\r
if (!DataValidation.isC_NameType(this.jComboBoxCName.getSelectedItem().toString())) {\r
Log.wrn("Update PcdCoded", "Incorrect data type for C Name");\r
if (!isEmpty(this.jTextFieldTokenSpaceGuid.getText())) {\r
if (!DataValidation.isC_NameType(this.jTextFieldTokenSpaceGuid.getText())) {\r
Log.wrn("Update PcdCoded",\r
- "Incorrect data type for the selected pcd entry, please check in in spd file");\r
+ "Incorrect data type for the selected pcd entry, please check the datatype specified in the spd file");\r
return false;\r
}\r
}\r
|| pcd.getPcd(index).getType() == null || pcd.getPcd(index).getHelp() == null\r
|| isEmpty(pcd.getPcd(index).getHelp())) {\r
Log.wrn("select pcd entry when editing msa",\r
- "The selected is defined incorrectly.\r\nPlease check it in spd file");\r
+ "The selected value is defined incorrectly.\r\nPlease check it in the spd file");\r
} else {\r
this.jTextFieldTokenSpaceGuid.setText(pcd.getPcd(index).getGuidCName());\r
Tools.generateComboBoxByVector(this.jComboBoxItemType, pcd.getPcd(index).getType());\r