diff options
5 files changed, 299 insertions, 294 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 4783a74a25..0e1f4ccf89 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 @@ -104,7 +104,7 @@ public class FpdFileContents { continue;
}
String ModuleInfo = msa.getModuleGuid() + " " + msa.getModuleVersion() +
- " " + msa.getPackageGuid() + " " + msa.getPackageVersion();
+ " " + msa.getPackageGuid() + " " + msa.getPackageVersion() + " " + listToString(msa.getSupArchList());
List<PcdBuildDefinitionDocument.PcdBuildDefinition.PcdData> lp = msa.getPcdBuildDefinition().getPcdDataList();
ListIterator<PcdBuildDefinitionDocument.PcdBuildDefinition.PcdData> lpi = lp.listIterator();
while (lpi.hasNext()) {
@@ -194,16 +194,28 @@ public class FpdFileContents { int i = 0;
while(li.hasNext()) {
ModuleSADocument.ModuleSA msa = (ModuleSADocument.ModuleSA)li.next();
- saa[i][1] = msa.getModuleGuid();
- saa[i][2] = msa.getModuleVersion();
+ saa[i][0] = msa.getModuleGuid();
+ saa[i][1] = msa.getModuleVersion();
- saa[i][3] = msa.getPackageGuid();
- saa[i][4] = msa.getPackageVersion();
-// saa[i][4] = listToString(msa.getSupArchList());
+ saa[i][2] = msa.getPackageGuid();
+ saa[i][3] = msa.getPackageVersion();
+ saa[i][4] = listToString(msa.getSupArchList());
++i;
}
}
+ public void getFrameworkModuleInfo(int i, String[] sa) {
+ ModuleSADocument.ModuleSA msa = getModuleSA(i);
+ if (msa == null) {
+ return;
+ }
+ sa[0] = msa.getModuleGuid();
+ sa[1] = msa.getModuleVersion();
+ sa[2] = msa.getPackageGuid();
+ sa[3] = msa.getPackageVersion();
+ sa[4] = listToString(msa.getSupArchList());
+ }
+
public ModuleSADocument.ModuleSA getModuleSA(String key) {
String[] s = key.split(" ");
if (getfpdFrameworkModules().getModuleSAList() == null) {
@@ -223,11 +235,31 @@ public class FpdFileContents { continue;
}
}
+ //ToDo add arch check for s[4]
+ if (msa.getSupArchList() != null) {
+ if (!listToString(msa.getSupArchList()).equals(s[4])) {
+ continue;
+ }
+ }
return msa;
}
}
return null;
}
+
+ private ModuleSADocument.ModuleSA getModuleSA(int i) {
+ ModuleSADocument.ModuleSA msa = null;
+ XmlCursor cursor = getfpdFrameworkModules().newCursor();
+ if (cursor.toFirstChild()) {
+ for (int j = 0; j < i; ++j) {
+ cursor.toNextSibling();
+ }
+ msa = (ModuleSADocument.ModuleSA)cursor.getObject();
+ }
+ cursor.dispose();
+ return msa;
+ }
+
public void removeModuleSA(int i) {
XmlObject o = getfpdFrameworkModules();
if (o == null) {
@@ -244,7 +276,7 @@ public class FpdFileContents { //
ModuleSADocument.ModuleSA moduleSa = (ModuleSADocument.ModuleSA)cursor.getObject();
String moduleInfo = moduleSa.getModuleGuid() + " " + moduleSa.getModuleVersion() + " " +
- moduleSa.getPackageGuid()+ " " + moduleSa.getPackageVersion();
+ moduleSa.getPackageGuid()+ " " + moduleSa.getPackageVersion() + " " + listToString(moduleSa.getSupArchList());
PcdBuildDefinitionDocument.PcdBuildDefinition pcdBuildDef = moduleSa.getPcdBuildDefinition();
if (pcdBuildDef != null && pcdBuildDef.getPcdDataList() != null) {
ListIterator<PcdBuildDefinitionDocument.PcdBuildDefinition.PcdData> li = pcdBuildDef.getPcdDataList().listIterator();
@@ -272,6 +304,10 @@ public class FpdFileContents { for(int i = 0; i < al.size(); ++i){
String consumer = al.get(i);
if (consumer.contains(s[0]) && consumer.contains(s[2])){
+ String[] consumerPart = consumer.split(" ");
+ if (!consumerPart[4].equals(s[4])) {
+ continue;
+ }
al.remove(consumer);
break;
}
@@ -285,22 +321,10 @@ public class FpdFileContents { }
//
- // key for ModuleSA : "ModuleGuid ModuleVer PackageGuid PackageVer"
+ // key for ModuleSA : "ModuleGuid ModuleVer PackageGuid PackageVer Arch"
//
public int getPcdDataCount(int i){
- if (getfpdFrameworkModules().getModuleSAList() == null || getfpdFrameworkModules().getModuleSAList().size() == 0) {
- return 0;
- }
-
- XmlCursor cursor = getfpdFrameworkModules().newCursor();
- ModuleSADocument.ModuleSA msa = null;
- if (cursor.toFirstChild()) {
- for (int j = 0; j < i; ++j) {
- cursor.toNextSibling();
- }
- msa = (ModuleSADocument.ModuleSA)cursor.getObject();
- }
- cursor.dispose();
+ ModuleSADocument.ModuleSA msa = getModuleSA(i);
if (msa == null || msa.getPcdBuildDefinition() == null || msa.getPcdBuildDefinition().getPcdDataList() == null){
return 0;
@@ -310,19 +334,7 @@ public class FpdFileContents { }
public void getPcdData(int i, String[][] saa) {
- if (getfpdFrameworkModules().getModuleSAList() == null || getfpdFrameworkModules().getModuleSAList().size() == 0) {
- return;
- }
-
- XmlCursor cursor = getfpdFrameworkModules().newCursor();
- ModuleSADocument.ModuleSA msa = null;
- if (cursor.toFirstChild()) {
- for (int j = 0; j < i; ++j) {
- cursor.toNextSibling();
- }
- msa = (ModuleSADocument.ModuleSA)cursor.getObject();
- }
- cursor.dispose();
+ ModuleSADocument.ModuleSA msa = getModuleSA(i);
if (msa == null || msa.getPcdBuildDefinition() == null || msa.getPcdBuildDefinition().getPcdDataList() == null){
return;
@@ -463,7 +475,7 @@ public class FpdFileContents { }
}
//
- // key for ModuleSA : "ModuleGuid ModuleVer PackageGuid PackageVer"
+ // key for ModuleSA : "ModuleGuid ModuleVer PackageGuid PackageVer Arch"
//
public int getLibraryInstancesCount(String key) {
ModuleSADocument.ModuleSA msa = getModuleSA(key);
@@ -581,7 +593,7 @@ public class FpdFileContents { msa.addNewModuleSaBuildOptions().setFfsFormatKey(ffsKey);
return;
}
- msa.getModuleSaBuildOptions().setFvBinding(ffsKey);
+ msa.getModuleSaBuildOptions().setFfsFormatKey(ffsKey);
}
public void getModuleSAOptions(String moduleKey, String[][] saa) {
@@ -600,12 +612,14 @@ public class FpdFileContents { saa[i][0] = listToString(opt.getBuildTargets());
}
saa[i][1] = opt.getToolChainFamily();
+ saa[i][2] = opt.getTagName();
+ saa[i][3] = opt.getToolCode();
+
if (opt.getSupArchList() != null){
- saa[i][2] = listToString(opt.getSupArchList());
+ saa[i][4] = listToString(opt.getSupArchList());
}
- saa[i][3] = opt.getToolCode();
- saa[i][4] = opt.getTagName();
+
saa[i][5] = opt.getStringValue();
++i;
@@ -670,12 +684,12 @@ public class FpdFileContents { * @param mi
* @param moduleSa if null, generate a new ModuleSA.
*/
- public void addFrameworkModulesPcdBuildDefs(ModuleIdentification mi, ModuleSADocument.ModuleSA moduleSa) throws Exception {
+ public void addFrameworkModulesPcdBuildDefs(ModuleIdentification mi, String arch, ModuleSADocument.ModuleSA moduleSa) throws Exception {
//ToDo add Arch filter
try {
if (moduleSa == null) {
- moduleSa = genModuleSA(mi);
+ moduleSa = genModuleSA(mi, arch);
}
ModuleSurfaceAreaDocument.ModuleSurfaceArea msa = (ModuleSurfaceAreaDocument.ModuleSurfaceArea)GlobalData.getModuleXmlObject(mi);
@@ -747,13 +761,18 @@ public class FpdFileContents { return null;
}
- private ModuleSADocument.ModuleSA genModuleSA (ModuleIdentification mi) {
+ private ModuleSADocument.ModuleSA genModuleSA (ModuleIdentification mi, String arch) {
PackageIdentification pi = GlobalData.getPackageForModule(mi);
ModuleSADocument.ModuleSA msa = getfpdFrameworkModules().addNewModuleSA();
msa.setModuleGuid(mi.getGuid());
msa.setModuleVersion(mi.getVersion());
msa.setPackageGuid(pi.getGuid());
msa.setPackageVersion(pi.getVersion());
+ if (arch != null) {
+ Vector<String> v = new Vector<String>();
+ v.add(arch);
+ msa.setSupArchList(v);
+ }
return msa;
}
@@ -772,7 +791,7 @@ public class FpdFileContents { pcdConsumer = new ArrayList<String>();
}
String listValue = moduleSa.getModuleGuid() + " " + moduleSa.getModuleVersion()
- + " " + moduleSa.getPackageGuid() + " " + moduleSa.getPackageVersion()
+ + " " + moduleSa.getPackageGuid() + " " + moduleSa.getPackageVersion() + " " + listToString(moduleSa.getSupArchList())
+ " " + itemType;
pcdConsumer.add(listValue);
dynPcdMap.put(cName + " " + tsGuid, pcdConsumer);
@@ -1259,12 +1278,20 @@ public class FpdFileContents { private void setBuildOptionsUserDefAntTask(String id, String fileName, String execOrder, AntTaskDocument.AntTask at) {
at.setId(new Integer(id));
+ XmlCursor cursor = at.newCursor();
if (fileName != null){
at.setFilename(fileName);
}
+ else if (cursor.toChild(xmlNs, "Filename")) {
+ cursor.removeXml();
+ }
if (execOrder != null) {
at.setAntCmdOptions(execOrder);
}
+ else if (cursor.toChild(xmlNs, "AntCmdOptions")) {
+ cursor.removeXml();
+ }
+ cursor.dispose();
}
public void removeBuildOptionsUserDefAntTask(int i) {
@@ -1350,7 +1377,14 @@ public class FpdFileContents { opt.setTagName(tagName);
opt.setToolCode(toolCmd);
- opt.setSupArchList(archList);
+ if (archList != null) {
+ opt.setSupArchList(archList);
+ }
+ else {
+ if (opt.isSetSupArchList()) {
+ opt.unsetSupArchList();
+ }
+ }
}
public void removeBuildOptionsOpt(int i){
@@ -1783,7 +1817,16 @@ public class FpdFileContents { }
public void setPlatformDefsSupportedArchs(Vector<Object> archs) {
- getfpdPlatformDefs().setSupportedArchitectures(archs);
+ if (archs != null) {
+ getfpdPlatformDefs().setSupportedArchitectures(archs);
+ }
+// else {
+// XmlCursor cursor = getfpdPlatformDefs().newCursor();
+// if (cursor.toChild(xmlNs, "SupportedArchitectures")) {
+// cursor.removeXml();
+// }
+// cursor.dispose();
+// }
}
public void getPlatformDefsBuildTargets(Vector<Object> targets) {
diff --git a/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdFrameworkModules.java b/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdFrameworkModules.java index 27faa3644f..53a3396c93 100644 --- a/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdFrameworkModules.java +++ b/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdFrameworkModules.java @@ -27,6 +27,7 @@ import java.util.HashMap; import java.util.Iterator;
import java.util.Map;
import java.util.Set;
+import java.util.Vector;
public class FpdFrameworkModules extends IInternalFrame {
@@ -56,7 +57,7 @@ public class FpdFrameworkModules extends IInternalFrame { private FpdFileContents ffc = null;
private OpeningPlatformType docConsole = null;
- private Map<String, String> fpdMsa = null;
+ private Map<String, ArrayList<String>> fpdMsa = null;
private ArrayList<ModuleIdentification> miList = null;
@@ -137,10 +138,10 @@ public class FpdFrameworkModules extends IInternalFrame { jTable = new JTable(model);
jTable.setRowHeight(20);
model.addColumn("ModuleName");
- model.addColumn("ModuleGUID");
model.addColumn("ModuleVersion");
- model.addColumn("PackageGUID");
+ model.addColumn("PackageName");
model.addColumn("PackageVersion");
+ model.addColumn("Path");
jTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
}
@@ -180,34 +181,68 @@ public class FpdFrameworkModules extends IInternalFrame { return;
}
- String mg = (String)model.getValueAt(selectedRow, 1);
- String mv = (String)model.getValueAt(selectedRow, 2);
- String pg = (String)model.getValueAt(selectedRow, 3);
- String pv = (String)model.getValueAt(selectedRow, 4);
- if (fpdMsa.containsKey(mg + mv + pg + pv)) {
- JOptionPane.showMessageDialog(frame, "This Module Already Added.");
- return;
+ String path = model.getValueAt(selectedRow, 4)+"";
+ ModuleIdentification mi = miList.get(selectedRow);
+ Vector<String> vArchs = null;
+ try {
+ vArchs = GlobalData.getModuleSupArchs(mi);
+ }
+ catch (Exception exp) {
+ JOptionPane.showMessageDialog(frame, exp.getMessage());
}
- //ToDo put Arch instead of null
- fpdMsa.put(mg + mv + pg + pv, null);
- String[] row = {" ", mg, mv, pg, pv};
- ModuleIdentification mi = getModuleId(mg + " " + mv + " " + pg + " " + pv);
- if (mi != null) {
- row[0] = mi.getName();
- row[2] = mi.getVersion();
- row[4] = mi.getPackage().getVersion();
+ if (vArchs == null) {
+ JOptionPane.showMessageDialog(frame, "No supported Archs specified in MSA file.");
+ return;
}
- model1.addRow(row);
- docConsole.setSaved(false);
- try{
- ffc.addFrameworkModulesPcdBuildDefs(mi, null);
+ String archsAdded = "";
+ String mg = mi.getGuid();
+ String mv = mi.getVersion();
+ String pg = mi.getPackage().getGuid();
+ String pv = mi.getPackage().getVersion();
+
+ ArrayList<String> al = fpdMsa.get(mg + mv + pg + pv);
+ if (al == null) {
+ al = new ArrayList<String>();
+ fpdMsa.put(mg + mv + pg + pv, al);
+ }
+ for (int i = 0; i < al.size(); ++i) {
+ vArchs.remove(al.get(i));
}
- catch (Exception exception) {
- JOptionPane.showMessageDialog(frame, "PCD Insertion Fail. " + exception.getMessage());
+ //
+ // Archs this Module supported have already been added.
+ //
+ if (vArchs.size() == 0) {
+ JOptionPane.showMessageDialog(frame, "This Module Already Added.");
+ return;
}
- JOptionPane.showMessageDialog(frame, "This Module Added Successfully.");
+ //ToDo put Arch instead of null
+ for (int i = 0; i < vArchs.size(); ++i) {
+ String arch = vArchs.get(i);
+ al.add(arch);
+ archsAdded += arch + " ";
+ String[] row = {"", mv, "", pv, arch, path};
+
+ if (mi != null) {
+ row[0] = mi.getName();
+ row[2] = mi.getPackage().getName();
+
+ }
+ model1.addRow(row);
+
+ docConsole.setSaved(false);
+ try{
+ //ToDo : specify archs need to add.
+ ffc.addFrameworkModulesPcdBuildDefs(mi, arch, null);
+ }
+ catch (Exception exception) {
+ JOptionPane.showMessageDialog(frame, "PCD Insertion Fail. " + exception.getMessage());
+ }
+ }
+
+
+ JOptionPane.showMessageDialog(frame, "This Module with Arch "+ archsAdded +" Added Successfully.");
jTable1.changeSelection(model1.getRowCount()-1, 0, false, false);
}
});
@@ -257,11 +292,11 @@ public class FpdFrameworkModules extends IInternalFrame { jTable1 = new JTable(model1);
jTable1.setRowHeight(20);
model1.addColumn("ModuleName");
- model1.addColumn("ModuleGUID");
model1.addColumn("ModuleVersion");
- model1.addColumn("PackageGUID");
+ model1.addColumn("PackageName");
model1.addColumn("PackageVersion");
-// model1.addColumn("SupportedArch");
+ model1.addColumn("SupportedArch");
+ model1.addColumn("Path");
jTable1.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
}
@@ -288,11 +323,14 @@ public class FpdFrameworkModules extends IInternalFrame { settingDlg = new FpdModuleSA(ffc);
}
docConsole.setSaved(false);
- String mg = model1.getValueAt(selectedRow, 1)+"";
- String mv = model1.getValueAt(selectedRow, 2)+"";
- String pg = model1.getValueAt(selectedRow, 3)+"";
- String pv = model1.getValueAt(selectedRow, 4)+"";
- settingDlg.setKey(mg + " " + mv + " " + pg + " " + pv, selectedRow);
+ String[] sa = new String[5];
+ ffc.getFrameworkModuleInfo(selectedRow, sa);
+ String mg = sa[0];
+ String mv = sa[1];
+ String pg = sa[2];
+ String pv = sa[3];
+ String arch = sa[4];
+ settingDlg.setKey(mg + " " + mv + " " + pg + " " + pv + " " + arch, selectedRow);
settingDlg.setVisible(true);
}
});
@@ -316,12 +354,30 @@ public class FpdFrameworkModules extends IInternalFrame { if (selectedRow < 0){
return;
}
- String mg = model1.getValueAt(selectedRow, 1).toString();
- String mv = model1.getValueAt(selectedRow, 2).toString();
- String pg = model1.getValueAt(selectedRow, 3).toString();
- String pv = model1.getValueAt(selectedRow, 4).toString();
+ String[] sa = new String[5];
+ ffc.getFrameworkModuleInfo(selectedRow, sa);
+ String mg = sa[0];
+ String mv = sa[1];
+ String pg = sa[2];
+ String pv = sa[3];
+ String arch = sa[4];
+ ModuleIdentification mi = getModuleId(sa[0] + " " + sa[1] + " " + sa[2] + " " + sa[3] + " " + sa[4]);
+ mv = mi.getVersion();
+ pv = mi.getPackage().getVersion();
model1.removeRow(selectedRow);
- fpdMsa.remove(mg+mv+pg+pv);
+ if (arch == null) {
+ // if no arch specified in ModuleSA
+ fpdMsa.remove(mg+mv+pg+pv);
+ }
+ else {
+ ArrayList<String> al = fpdMsa.get(mg+mv+pg+pv);
+ al.remove(arch);
+ if (al.size() == 0) {
+ fpdMsa.remove(mg+mv+pg+pv);
+ }
+ }
+
+
docConsole.setSaved(false);
ffc.removeModuleSA(selectedRow);
}
@@ -371,21 +427,36 @@ public class FpdFrameworkModules extends IInternalFrame { }
if (fpdMsa == null) {
- fpdMsa = new HashMap<String, String>();
+ fpdMsa = new HashMap<String, ArrayList<String>>();
}
if (ffc.getFrameworkModulesCount() > 0) {
String[][] saa = new String[ffc.getFrameworkModulesCount()][5];
ffc.getFrameworkModulesInfo(saa);
for (int i = 0; i < saa.length; ++i) {
- ModuleIdentification mi = getModuleId(saa[i][1]+ " "+saa[i][2]+" "+saa[i][3]+" "+saa[i][4]);
+ ModuleIdentification mi = getModuleId(saa[i][0]+ " "+saa[i][1]+" "+saa[i][2]+" "+saa[i][3]);
+ String[] row = {"", "", "", "", "", ""};
if (mi != null) {
- saa[i][0] = mi.getName();
- saa[i][2] = mi.getVersion();
- saa[i][4] = mi.getPackage().getVersion();
+ row[0] = mi.getName();
+ row[1] = mi.getVersion();
+ row[2] = mi.getPackage().getName();
+ row[3] = mi.getPackage().getVersion();
+ row[4] = saa[i][4];
+ try{
+ row[5] = GlobalData.getMsaFile(mi).getPath().substring(System.getenv("WORKSPACE").length() + 1);
+ }
+ catch (Exception e) {
+ JOptionPane.showMessageDialog(frame, "ShowFPDModules:" + e.getMessage());
+ }
+ }
+ model1.addRow(row);
+ ArrayList<String> al = fpdMsa.get(saa[i][0]+row[1]+saa[i][2]+row[3]);
+ if (al == null) {
+ al = new ArrayList<String>();
+ fpdMsa.put(saa[i][0]+row[1]+saa[i][2]+row[3], al);
}
- model1.addRow(saa[i]);
- fpdMsa.put(saa[i][1]+saa[i][2]+saa[i][3]+saa[i][4], saa[i][0]);
+ al.add(saa[i][4]);
+
}
}
@@ -404,15 +475,21 @@ public class FpdFrameworkModules extends IInternalFrame { while(ispi.hasNext()) {
PackageIdentification pi = (PackageIdentification)ispi.next();
String[] s = {"", "", "", "", ""};
- s[3] = pi.getGuid();
- s[4] = pi.getVersion();
+
Set<ModuleIdentification> smi = GlobalData.getModules(pi);
Iterator ismi = smi.iterator();
while(ismi.hasNext()) {
ModuleIdentification mi = (ModuleIdentification)ismi.next();
s[0] = mi.getName();
- s[1] = mi.getGuid();
- s[2] = mi.getVersion();
+ s[1] = mi.getVersion();
+ s[2] = pi.getName();
+ s[3] = pi.getVersion();
+ try {
+ s[4] = GlobalData.getMsaFile(mi).getPath().substring(System.getenv("WORKSPACE").length() + 1);
+ }
+ catch (Exception e) {
+ JOptionPane.showMessageDialog(frame, "ShowAllModules:" + e.getMessage());
+ }
model.addRow(s);
miList.add(mi);
}
@@ -433,7 +510,7 @@ public class FpdFrameworkModules extends IInternalFrame { private ModuleIdentification getModuleId(String key){
//
- // Get ModuleGuid, ModuleVersion, PackageGuid, PackageVersion into string array.
+ // Get ModuleGuid, ModuleVersion, PackageGuid, PackageVersion, Arch into string array.
//
String[] keyPart = key.split(" ");
Set<PackageIdentification> spi = GlobalData.getPackageList();
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 7fd914adcc..80369a09a1 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 @@ -131,6 +131,7 @@ public class FpdModuleSA extends JDialog implements ActionListener { public void setKey(String k, int i){
this.moduleKey = k;
+
jTabbedPane.setSelectedIndex(0);
initPcdBuildDefinition(i);
}
@@ -158,7 +159,7 @@ public class FpdModuleSA extends JDialog implements ActionListener { //
// display library classes that need to be resolved. also potential instances for them.
//
- resolveLibraryInstances(key);
+ resolveLibraryInstances(moduleKey);
//
// display lib instances already selected for key
//
@@ -201,6 +202,13 @@ public class FpdModuleSA extends JDialog implements ActionListener { if (ffsKey != null) {
jTextField2.setText(ffsKey);
}
+
+ optionsTableModel.setRowCount(0);
+ String[][] saa = new String[ffc.getModuleSAOptionsCount(key)][6];
+ ffc.getModuleSAOptions(key, saa);
+ for (int i = 0; i < saa.length; ++i) {
+ optionsTableModel.addRow(saa[i]);
+ }
}
private void resolveLibraryInstances(String key) {
@@ -316,7 +324,7 @@ public class FpdModuleSA extends JDialog implements ActionListener { //
// remove pcd information of instance from current ModuleSA
//
- ffc.removePcdData(moduleKey, mi);
+ ffc.removePcdData(key, mi);
//
// remove class produced by this instance and add back these produced class to be bound.
//
@@ -349,7 +357,7 @@ public class FpdModuleSA extends JDialog implements ActionListener { private ModuleIdentification getModuleId(String key){
//
- // Get ModuleGuid, ModuleVersion, PackageGuid, PackageVersion into string array.
+ // Get ModuleGuid, ModuleVersion, PackageGuid, PackageVersion, Arch into string array.
//
String[] keyPart = key.split(" ");
Set<PackageIdentification> spi = GlobalData.getPackageList();
@@ -357,16 +365,26 @@ public class FpdModuleSA extends JDialog implements ActionListener { while(ispi.hasNext()) {
PackageIdentification pi = (PackageIdentification)ispi.next();
- if ( !pi.getGuid().equals(keyPart[2])){
-// || !pi.getVersion().equals(keyPart[3])){
+ if ( !pi.getGuid().equals(keyPart[2])){
+
continue;
}
+ if (keyPart[3] != null && keyPart[3].length() > 0 && !keyPart[3].equals("null")){
+ if(!pi.getVersion().equals(keyPart[3])){
+ continue;
+ }
+ }
Set<ModuleIdentification> smi = GlobalData.getModules(pi);
Iterator ismi = smi.iterator();
while(ismi.hasNext()) {
ModuleIdentification mi = (ModuleIdentification)ismi.next();
if (mi.getGuid().equals(keyPart[0])){
-// && mi.getVersion().equals(keyPart[1])){
+ if (keyPart[1] != null && keyPart[1].length() > 0 && !keyPart[1].equals("null")){
+ if(!mi.getVersion().equals(keyPart[1])){
+ continue;
+ }
+ }
+
return mi;
}
}
@@ -745,7 +763,7 @@ public class FpdModuleSA extends JDialog implements ActionListener { private JPanel getJPanel4() {
if (jPanel4 == null) {
jLabel1 = new JLabel();
- jLabel1.setText("Library Classes Consumed");
+ jLabel1.setText("Library Classes Uninstantiated");
jPanel4 = new JPanel();
jPanel4.add(jLabel1, null);
jPanel4.add(getJScrollPane3(), null);
@@ -1000,7 +1018,7 @@ public class FpdModuleSA extends JDialog implements ActionListener { // Add pcd information of selected instance to current moduleSA
//
try{
- ffc.addFrameworkModulesPcdBuildDefs(getModuleId(instanceValue), ffc.getModuleSA(moduleKey));
+ ffc.addFrameworkModulesPcdBuildDefs(getModuleId(instanceValue), null, ffc.getModuleSA(moduleKey));
}
catch (Exception exception) {
JOptionPane.showMessageDialog(frame, "PCD Insertion Fail. " + exception.getMessage());
@@ -1073,14 +1091,12 @@ public class FpdModuleSA extends JDialog implements ActionListener { public void actionPerformed(ActionEvent arg0) {
if (arg0.getSource() == jButton2) {
-// ffc.removeLibraryInstances(moduleKey);
-// for (int i = 0; i < model1.getRowCount(); ++i) {
-// String mg = model1.getValueAt(i, 1)+"";
-// String mv = model1.getValueAt(i, 2)+"";
-// String pg = model1.getValueAt(i, 3)+"";
-// String pv = model1.getValueAt(i, 4)+"";
-// ffc.genLibraryInstance(mg, mv, pg, pv, moduleKey);
-// }
+ if (jTable4.isEditing()) {
+ jTable4.getCellEditor().stopCellEditing();
+ }
+ ffc.setFvBinding(moduleKey, jTextField.getText());
+ ffc.setFfsFileNameGuid(moduleKey, jTextField1.getText());
+ ffc.setFfsFormatKey(moduleKey, jTextField2.getText());
this.setVisible(false);
}
}
@@ -1124,11 +1140,7 @@ public class FpdModuleSA extends JDialog implements ActionListener { if (jTextField == null) {
jTextField = new JTextField();
jTextField.setPreferredSize(new java.awt.Dimension(100,20));
- jTextField.addFocusListener(new java.awt.event.FocusAdapter() {
- public void focusLost(java.awt.event.FocusEvent e) {
- ffc.setFvBinding(moduleKey, jTextField.getText());
- }
- });
+
}
return jTextField;
}
@@ -1141,11 +1153,7 @@ public class FpdModuleSA extends JDialog implements ActionListener { if (jTextField1 == null) {
jTextField1 = new JTextField();
jTextField1.setPreferredSize(new java.awt.Dimension(100,20));
- jTextField1.addFocusListener(new java.awt.event.FocusAdapter() {
- public void focusLost(java.awt.event.FocusEvent e) {
- ffc.setFfsFileNameGuid(moduleKey, jTextField1.getText());
- }
- });
+
}
return jTextField1;
}
@@ -1158,11 +1166,7 @@ public class FpdModuleSA extends JDialog implements ActionListener { if (jTextField2 == null) {
jTextField2 = new JTextField();
jTextField2.setPreferredSize(new java.awt.Dimension(100,20));
- jTextField2.addFocusListener(new java.awt.event.FocusAdapter() {
- public void focusLost(java.awt.event.FocusEvent e) {
- ffc.setFfsFormatKey(moduleKey, jTextField2.getText());
- }
- });
+
}
return jTextField2;
}
@@ -1257,11 +1261,11 @@ public class FpdModuleSA extends JDialog implements ActionListener { jButton4.setText("New");
jButton4.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
- String[] row = {"", "", "", "", "IA32", ""};
+ String[] row = {"", "", "", "", "", ""};
optionsTableModel.addRow(row);
Vector<Object> v = new Vector<Object>();
- Vector<Object> v1 = new Vector<Object>();
- v1.add("IA32");
+ Vector<Object> v1 = null;
+
ffc.genModuleSAOptionsOpt(moduleKey, v, "", "", "", v1, "");
}
});
@@ -1443,7 +1447,7 @@ 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 = s[0] + " " + s[1]+ " " + s[2] + " " + s[3];
ffc.updatePcdData(mKey, cName, tsGuid, jComboBox.getSelectedItem()+"", jTextField3.getText(), jTextField4.isVisible() ? jTextField4.getText() : jComboBox1.getSelectedItem()+"");
s[4] = jComboBox.getSelectedItem()+"";
al.set(i, s[0]+" "+s[1]+" "+s[2]+" "+s[3]+" "+s[4]);
diff --git a/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdPlatformDefs.java b/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdPlatformDefs.java index c9538b7fd2..e6f18d17f3 100644 --- a/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdPlatformDefs.java +++ b/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdPlatformDefs.java @@ -29,6 +29,7 @@ import java.awt.FlowLayout; import javax.swing.JCheckBox;
+import javax.swing.JOptionPane;
import javax.swing.JTextField;
import javax.swing.JLabel;
import javax.swing.JScrollPane;
@@ -332,6 +333,7 @@ public class FpdPlatformDefs extends IInternalFrame { if (jCheckBox6.isSelected()) {
v.add("PPC");
}
+
}
/**
@@ -406,6 +408,10 @@ public class FpdPlatformDefs extends IInternalFrame { public void itemStateChanged(java.awt.event.ItemEvent e) {
Vector<Object> v = new Vector<Object>();
getToolChain(v);
+ if (v.size() == 0) {
+ JOptionPane.showMessageDialog(frame, "Platform must contain at least ONE supported Arch.");
+ return;
+ }
ffc.setPlatformDefsSupportedArchs(v);
}
});
@@ -426,6 +432,10 @@ public class FpdPlatformDefs extends IInternalFrame { public void itemStateChanged(java.awt.event.ItemEvent e) {
Vector<Object> v = new Vector<Object>();
getToolChain(v);
+ if (v.size() == 0) {
+ JOptionPane.showMessageDialog(frame, "Platform must contain at least ONE supported Arch.");
+ return;
+ }
ffc.setPlatformDefsSupportedArchs(v);
}
});
@@ -446,6 +456,10 @@ public class FpdPlatformDefs extends IInternalFrame { public void itemStateChanged(java.awt.event.ItemEvent e) {
Vector<Object> v = new Vector<Object>();
getToolChain(v);
+ if (v.size() == 0) {
+ JOptionPane.showMessageDialog(frame, "Platform must contain at least ONE supported Arch.");
+ return;
+ }
ffc.setPlatformDefsSupportedArchs(v);
}
});
@@ -700,6 +714,10 @@ public class FpdPlatformDefs extends IInternalFrame { public void itemStateChanged(java.awt.event.ItemEvent e) {
Vector<Object> v = new Vector<Object>();
getToolChain(v);
+ if (v.size() == 0) {
+ JOptionPane.showMessageDialog(frame, "Platform must contain at least ONE supported Arch.");
+ return;
+ }
ffc.setPlatformDefsSupportedArchs(v);
}
});
@@ -717,10 +735,15 @@ public class FpdPlatformDefs extends IInternalFrame { jCheckBox5 = new JCheckBox();
jCheckBox5.setPreferredSize(new java.awt.Dimension(52,20));
jCheckBox5.setText("ARM");
+ jCheckBox5.setVisible(false);
jCheckBox5.addItemListener(new java.awt.event.ItemListener() {
public void itemStateChanged(java.awt.event.ItemEvent e) {
Vector<Object> v = new Vector<Object>();
getToolChain(v);
+ if (v.size() == 0) {
+ JOptionPane.showMessageDialog(frame, "Platform must contain at least ONE supported Arch.");
+ return;
+ }
ffc.setPlatformDefsSupportedArchs(v);
}
});
@@ -738,10 +761,15 @@ public class FpdPlatformDefs extends IInternalFrame { jCheckBox6 = new JCheckBox();
jCheckBox6.setPreferredSize(new Dimension(50, 20));
jCheckBox6.setText("PPC");
+ jCheckBox6.setVisible(false);
jCheckBox6.addItemListener(new java.awt.event.ItemListener() {
public void itemStateChanged(java.awt.event.ItemEvent e) {
Vector<Object> v = new Vector<Object>();
getToolChain(v);
+ if (v.size() == 0) {
+ JOptionPane.showMessageDialog(frame, "Platform must contain at least ONE supported Arch.");
+ return;
+ }
ffc.setPlatformDefsSupportedArchs(v);
}
});
diff --git a/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/global/GlobalData.java b/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/global/GlobalData.java index 21e706bb43..4a325c21ff 100644 --- a/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/global/GlobalData.java +++ b/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/global/GlobalData.java @@ -32,8 +32,10 @@ import java.util.HashMap; import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
+import java.util.ListIterator;
import java.util.Map;
import java.util.Set;
+import java.util.Vector;
import java.util.logging.Logger;
/**
@@ -96,45 +98,6 @@ public class GlobalData { ///
private static Set<FpdModuleIdentification> builtModules = new HashSet<FpdModuleIdentification>();
- ///
- /// PCD memory database stored all PCD information which collected from FPD,MSA and SPD.
- ///
-// private static final MemoryDatabaseManager pcdDbManager = new MemoryDatabaseManager();
-
- ///
- /// build target + tool chain family/tag name + arch + command types + command options
- ///
- private static Map<String, Object> toolChainOptions;
- private static Map<String, Object> toolChainFamilyOptions;
- private static Map<String, String> toolChainDefinitions;
- ///
- ///
- ///
- private static Set<String> targets;
- ///
- ///
- ///
- private static Set<String> toolChainFamilies;
- ///
- ///
- ///
- private static Set<String> toolChains;
- ///
- /// keep track which toolchain family a toolchain tag belongs to
- ///
- private static Map<String, Set<String>> toolChainFamilyMap;
- private static Map<String, Set<String>> toolChainCommandMap;
-
- ///
- /// list of Arch: EBC, ARM, IA32, X64, IPF, PPC
- ///
- private static Set<String> archs;
-
- ///
- /// list of Command Type: CC, LIB, LINK, ASL, ASM, ASMLINK, PP
- ///
- private static Set<String> commandTypes;
-
/**
Parse framework database (DB) and all SPD files listed in DB to initialize
the environment for next build. This method will only be executed only once
@@ -465,134 +428,24 @@ public class GlobalData { return result;
}
- ////// Tool Chain Related, try to refine and put some logic process to ToolChainFactory
- public static void setBuildToolChainFamilyOptions(Map<String, Object> map) {
- toolChainFamilyOptions = map;
- }
-
- public static Map<String, Object> getToolChainFamilyOptions() {
- return toolChainFamilyOptions;
- }
-
- public static void setBuildToolChainOptions(Map<String, Object> map) {
- toolChainOptions = map;
- }
-
- public static Map<String, Object> getToolChainOptions() {
- return toolChainOptions;
- }
-
- public static void setTargets(Set<String> targetSet) {
- GlobalData.log.info("TargetSet: " + targetSet);
- targets = targetSet;
- }
-
- public static String[] getTargets() {
- return (String[])targets.toArray(new String[targets.size()]);
- }
-
- public static void setToolChains(Set<String> toolChainSet) {
- toolChains = toolChainSet;
- }
-
- public static String[] getToolChains() {
- String[] toolChainList = new String[toolChains.size()];
- return (String[])toolChains.toArray(toolChainList);
- }
-
- public static void setToolChainFamilies(Set<String> toolChainFamilySet) {
- toolChainFamilies = toolChainFamilySet;
- }
-
- public static void setToolChainFamiliyMap(Map<String, Set<String>> map) {
- /*
- Set<String> keys = map.keySet();
- Iterator it = keys.iterator();
- while (it.hasNext()) {
- String toolchain = (String)it.next();
- Set<String> familyMap = (Set<String>)map.get(toolchain);
- Iterator fit = familyMap.iterator();
- System.out.print(toolchain + ": ");
- while (fit.hasNext()) {
- System.out.print((String)fit.next() + " ");
- }
- System.out.println("");
+
+ public static Vector<String> getModuleSupArchs(ModuleIdentification mi) throws Exception{
+ Vector<String> vArchs = null;
+ ModuleSurfaceAreaDocument.ModuleSurfaceArea msa = (ModuleSurfaceAreaDocument.ModuleSurfaceArea)getModuleXmlObject(mi);
+ if (msa.getModuleDefinitions() == null || msa.getModuleDefinitions().getSupportedArchitectures() == null) {
+ return vArchs;
}
- */
- toolChainFamilyMap = map;
- }
-
- public static String[] getToolChainFamilies() {
- String[] toolChainFamilyList = new String[toolChainFamilies.size()];
- return (String[])toolChainFamilies.toArray(toolChainFamilyList);
- }
-
- public static String[] getToolChainFamilies(String toolChain) {
- Set<String> familySet = (Set<String>)toolChainFamilyMap.get(toolChain);
- String[] toolChainFamilyList = new String[familySet.size()];
- return (String[])familySet.toArray(toolChainFamilyList);
- }
-
- public static Set<String> getToolChainFamilySet(String toolChain) {
- return (Set<String>)toolChainFamilyMap.get(toolChain);
- }
-
- public static void setArchs(Set<String> archSet) {
- archs = archSet;
- }
-
- public static String[] getArchs() {
- String[] archList = new String[archs.size()];
- return (String[])archs.toArray(archList);
- }
- /*
-
- */
- public static void SetCommandTypes(Set<String> commandTypeSet) {
- commandTypes = commandTypeSet;
- }
- /*
-
- */
- public static void SetCommandTypes(Map<String, Set<String>> commandTypeMap) {
- toolChainCommandMap = commandTypeMap;
- }
- /*
-
- */
- public static String[] getCommandTypes() {
- String[] commandList = new String[commandTypes.size()];
- return (String[])commandTypes.toArray(commandList);
- }
- /*
-
- */
- public static String[] getCommandTypes(String toolChain) {
- Set<String> commands = (Set<String>)toolChainCommandMap.get(toolChain);
- if (commands == null) {
- return new String[0];
+ ListIterator li = msa.getModuleDefinitions().getSupportedArchitectures().listIterator();
+ while (li.hasNext()) {
+ if (vArchs == null) {
+ vArchs = new Vector<String>();
+ }
+ vArchs.add((String)li.next());
}
-
- String[] commandList = new String[commands.size()];
- return (String[])commands.toArray(commandList);
- }
- /*
-
- */
- public static String getCommandSetting(String commandDescString) {
- return (String)toolChainDefinitions.get(commandDescString);
- }
- /*
-
- */
- public static void setToolChainDefinitions(Map<String, String> def) {
- toolChainDefinitions = def;
- }
-
- public static Map<String, String> getToolChainDefinitions() {
- return toolChainDefinitions;
+
+ return vArchs;
}
-
+
}
final class KeyComparator implements Comparator<String> {
|