summaryrefslogtreecommitdiff
path: root/Tools/Source
diff options
context:
space:
mode:
authorjlin16 <jlin16@6f19259b-4bc3-4df7-8a09-765794883524>2006-09-13 14:51:47 +0000
committerjlin16 <jlin16@6f19259b-4bc3-4df7-8a09-765794883524>2006-09-13 14:51:47 +0000
commit73d9b1c494ac88a0e875a047fb3f11aa91e87c4d (patch)
tree294b2b87ac203f1d0acee158904caa72250552fd /Tools/Source
parent10e4f9901cf50906166832d0195ef84be8f56c9b (diff)
downloadedk2-73d9b1c494ac88a0e875a047fb3f11aa91e87c4d.zip
edk2-73d9b1c494ac88a0e875a047fb3f11aa91e87c4d.tar.gz
edk2-73d9b1c494ac88a0e875a047fb3f11aa91e87c4d.tar.bz2
For one library class, list all library instances from all packages in workspace.
Fix the PCD memory database inconsistency problem when changing PCD item type in platform. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@1531 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'Tools/Source')
-rw-r--r--Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdFileContents.java12
-rw-r--r--Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdModuleSA.java65
2 files changed, 39 insertions, 38 deletions
diff --git a/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdFileContents.java b/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdFileContents.java
index 9c60f15..b54715b 100644
--- a/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdFileContents.java
+++ b/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdFileContents.java
@@ -91,6 +91,11 @@ public class FpdFileContents {
private HashMap<String, String> defaultPcdValue = new HashMap<String, String>();
+ private String itemType (String pcdInfo) {
+
+ return pcdInfo.substring(pcdInfo.lastIndexOf(" ") + 1);
+ }
+
/**
* look through all pcd data in all ModuleSA, create pcd -> ModuleSA mappings.
*/
@@ -557,6 +562,9 @@ public class FpdFileContents {
do {
PcdBuildDefinitionDocument.PcdBuildDefinition.PcdData pcdData = (PcdBuildDefinitionDocument.PcdBuildDefinition.PcdData)cursor.getObject();
if (pcdData.getCName().equals(cName) && pcdData.getTokenSpaceGuidCName().equals(tsGuid)) {
+ //
+ // change item type while not updating dynPcdData????
+ //
pcdData.setItemType(PcdItemTypes.Enum.forString(itemType));
if(pcdData.getDatumType().equals("VOID*")) {
pcdData.setMaxDatumSize(new Integer(maxSize));
@@ -1193,8 +1201,8 @@ public class FpdFileContents {
// Using existing Pcd type, if this pcd already exists in other ModuleSA
//
if (pcdConsumer.size() > 0) {
- String[] valPart = pcdConsumer.get(0).split(" ");
- itemType = valPart[5];
+
+ itemType = itemType (pcdConsumer.get(0));
}
String listValue = moduleSa.getModuleGuid() + " " + moduleSa.getModuleVersion()
+ " " + moduleSa.getPackageGuid() + " " + moduleSa.getPackageVersion() + " " + listToString(moduleSa.getSupArchList())
diff --git a/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdModuleSA.java b/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdModuleSA.java
index 658138a..8cf2368 100644
--- a/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdModuleSA.java
+++ b/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdModuleSA.java
@@ -297,13 +297,13 @@ public class FpdModuleSA extends JDialog implements ActionListener {
private ArrayList<String> getInstancesForClass(String cls, PackageIdentification[] depPkgList) throws Exception{
ArrayList<String> al = new ArrayList<String>();
- for (int i = 0; i < depPkgList.length; ++i) {
+// for (int i = 0; i < depPkgList.length; ++i) {
Iterator ismi = GlobalData.vModuleList.iterator();
while(ismi.hasNext()) {
ModuleIdentification mi = (ModuleIdentification)ismi.next();
- if (!mi.getPackageId().getGuid().equalsIgnoreCase(depPkgList[i].getGuid())) {
- continue;
- }
+// if (!mi.getPackageId().getGuid().equalsIgnoreCase(depPkgList[i].getGuid())) {
+// continue;
+// }
String[] clsProduced = getClassProduced(mi);
boolean isPotential = false;
@@ -321,10 +321,10 @@ public class FpdModuleSA extends JDialog implements ActionListener {
}
if (isPotential) {
al.add(mi.getGuid() + " " + mi.getVersion() + " " +
- depPkgList[i].getGuid() + " " + depPkgList[i].getVersion());
+ mi.getPackageId().getGuid() + " " + mi.getPackageId().getVersion());
}
}
- }
+// }
return al;
}
@@ -570,13 +570,14 @@ public class FpdModuleSA extends JDialog implements ActionListener {
}
else{
int selectedRow = lsm.getMinSelectionIndex();
- String cName = jTablePcd.getValueAt(selectedRow, 0)+"";
- String tsGuid = jTablePcd.getValueAt(selectedRow, 1)+"";
+ String cName = model.getValueAt(selectedRow, 0)+"";
+ String tsGuid = model.getValueAt(selectedRow, 1)+"";
+ String itemType = model.getValueAt(selectedRow, 2)+"";
String[] pcdInfo = {"", ""};
getPcdInfo(cName, tsGuid, pcdInfo);
jTextAreaPcdHelp.setText(pcdInfo[0]);
initComboBox(pcdInfo[1]);
- jComboBoxItemType.setSelectedItem(pcdInfo[1]);
+ jComboBoxItemType.setSelectedItem(itemType);
jTextFieldMaxDatumSize.setEnabled(true);
jTextFieldMaxDatumSize.setVisible(true);
jTextFieldMaxDatumSize.setText(jTablePcd.getValueAt(selectedRow, 4)+"");
@@ -603,9 +604,9 @@ public class FpdModuleSA extends JDialog implements ActionListener {
jTextFieldMaxDatumSize.setEnabled(false);
}
- if (!jTablePcd.getValueAt(selectedRow, 2).equals("DYNAMIC") && !jTablePcd.getValueAt(selectedRow, 2).equals("DYNAMIC_EX")) {
- jTextFieldPcdDefault.setText(jTablePcd.getValueAt(selectedRow, 6)+"");
- if (jTablePcd.getValueAt(selectedRow, 2).equals("FEATURE_FLAG")){
+ if (!model.getValueAt(selectedRow, 2).equals("DYNAMIC") && !model.getValueAt(selectedRow, 2).equals("DYNAMIC_EX")) {
+ jTextFieldPcdDefault.setText(model.getValueAt(selectedRow, 6)+"");
+ if (model.getValueAt(selectedRow, 2).equals("FEATURE_FLAG")){
jTextFieldPcdDefault.setVisible(false);
jComboBoxFeatureFlagValue.setVisible(true);
jComboBoxFeatureFlagValue.setSelectedItem(jTablePcd.getValueAt(selectedRow, 6)+"");
@@ -625,18 +626,6 @@ public class FpdModuleSA extends JDialog implements ActionListener {
}
});
- jTablePcd.getModel().addTableModelListener(new TableModelListener() {
- public void tableChanged(TableModelEvent arg0) {
- // TODO Auto-generated method stub
-// int row = arg0.getFirstRow();
-// TableModel m = (TableModel)arg0.getSource();
-
- if (arg0.getType() == TableModelEvent.UPDATE){
- //update xml doc here.
-
- }
- }
- });
}
return jTablePcd;
}
@@ -1424,6 +1413,7 @@ private JPanel getJPanelPcdFieldsThirdRow() {
jPanelPcdFieldsThirdRow.add(jLabelPcdDefaultValue, null);
jPanelPcdFieldsThirdRow.add(getJTextFieldPcdDefault(), null);
jPanelPcdFieldsThirdRow.add(getJComboBoxFeatureFlagValue(), null);
+ jPanelPcdFieldsThirdRow.add(getJButtonUpdatePcd(), null);
}
return jPanelPcdFieldsThirdRow;
}
@@ -1443,7 +1433,6 @@ private JPanel getJPanelPcdFieldsFirstRow() {
jPanelPcdFieldsFirstRow.setLayout(flowLayout1);
jPanelPcdFieldsFirstRow.add(jLabelItemType, null);
jPanelPcdFieldsFirstRow.add(getJComboBoxItemType(), null);
- jPanelPcdFieldsFirstRow.add(getJButtonUpdatePcd(), null);
}
return jPanelPcdFieldsFirstRow;
}
@@ -1459,19 +1448,19 @@ private JComboBox getJComboBoxItemType() {
jComboBoxItemType.addItemListener(new java.awt.event.ItemListener() {
public void itemStateChanged(java.awt.event.ItemEvent e) {
int row = jTablePcd.getSelectedRow();
- if (row < 0 || jTablePcd.getValueAt(row, 2).equals(jComboBoxItemType.getSelectedItem())) {
+ if (row < 0 || model.getValueAt(row, 2).equals(jComboBoxItemType.getSelectedItem())) {
return;
}
if (jComboBoxItemType.getItemCount() == 3) {
if (!jComboBoxItemType.getSelectedItem().equals("DYNAMIC")) {
- pcdDynamicToNonDynamic(jTablePcd.getValueAt(row, 0)+"", jTablePcd.getValueAt(row, 1)+"");
+ pcdDynamicToNonDynamic(model.getValueAt(row, 0)+"", model.getValueAt(row, 1)+"");
if (jComboBoxItemType.getSelectedItem().equals("FIXED_AT_BUILD")) {
jTextFieldPcdDefault.setText("");
jTextFieldPcdDefault.setEnabled(true);
}
}
else{
- pcdNonDynamicToDynamic(jTablePcd.getValueAt(row, 0)+"", jTablePcd.getValueAt(row, 1)+"");
+ pcdNonDynamicToDynamic(model.getValueAt(row, 0)+"", model.getValueAt(row, 1)+"");
}
}
}
@@ -1495,11 +1484,10 @@ private void pcdDynamicToNonDynamic(String cName, String tsGuid) {
ArrayList<String> al = ffc.getDynPcdMapValue(cName + " " + tsGuid);
for (int i = 0; i < al.size(); ++i) {
- String[] s = al.get(i).split(" ");
- String mKey = s[0] + s[1] + s[2] + s[3];
+ String mKey = moduleInfo (al.get(i));
ffc.updatePcdData(mKey, cName, tsGuid, jComboBoxItemType.getSelectedItem()+"", maxSize, value);
- s[4] = jComboBoxItemType.getSelectedItem()+"";
- al.set(i, s[0]+" "+s[1]+" "+s[2]+" "+s[3]+" "+s[4]);
+ String itemType = jComboBoxItemType.getSelectedItem()+"";
+ al.set(i, mKey + " " + itemType);
}
ffc.removeDynamicPcdBuildData(cName, tsGuid);
@@ -1508,11 +1496,10 @@ private void pcdDynamicToNonDynamic(String cName, String tsGuid) {
private void pcdNonDynamicToDynamic(String cName, String tsGuid) {
ArrayList<String> al = ffc.getDynPcdMapValue(cName + " " + tsGuid);
for (int i = 0; i < al.size(); ++i) {
- String[] s = al.get(i).split(" ");
- String mKey = s[0] + " " + s[1]+ " " + s[2] + " " + s[3];
+ String mKey = moduleInfo (al.get(i));
ffc.updatePcdData(mKey, cName, tsGuid, jComboBoxItemType.getSelectedItem()+"", jTextFieldMaxDatumSize.getText(), jTextFieldPcdDefault.isVisible() ? jTextFieldPcdDefault.getText() : jComboBoxFeatureFlagValue.getSelectedItem()+"");
- s[4] = jComboBoxItemType.getSelectedItem()+"";
- al.set(i, s[0]+" "+s[1]+" "+s[2]+" "+s[3]+" "+s[4]);
+ String itemType = jComboBoxItemType.getSelectedItem()+"";
+ al.set(i, mKey + " " + itemType);
}
try{
ffc.addDynamicPcdBuildData(cName, jTablePcd.getValueAt(jTablePcd.getSelectedRow(), 3), tsGuid, "DYNAMIC", jTablePcd.getValueAt(jTablePcd.getSelectedRow(), 5)+"", jTextFieldPcdDefault.isVisible() ? jTextFieldPcdDefault.getText() : jComboBoxFeatureFlagValue.getSelectedItem()+"");
@@ -1521,6 +1508,12 @@ private void pcdNonDynamicToDynamic(String cName, String tsGuid) {
JOptionPane.showMessageDialog(frame, "PCD value format: " + e.getMessage());
}
}
+
+private String moduleInfo (String pcdInfo) {
+
+ return pcdInfo.substring(0, pcdInfo.lastIndexOf(" "));
+}
+
/**
* This method initializes jTextFieldMaxDatumSize
*