+ \r
+ private void addModuleIntoPlatform (int selectedRow) {\r
+ String path = modelAllModules.getValueAt(selectedRow, pathColForAllModTable) + "";\r
+ ModuleIdentification mi = miList.get(selectedRow);\r
+ Vector<String> vArchs = null;\r
+ try {\r
+ vArchs = WorkspaceProfile.getModuleSupArchs(mi);\r
+ }\r
+ catch (Exception exp) {\r
+ JOptionPane.showMessageDialog(frame, exp.getMessage());\r
+ }\r
+\r
+ if (vArchs == null) {\r
+ JOptionPane.showMessageDialog(frame, "No Supported Architectures specified in MSA file.");\r
+ return;\r
+ }\r
+\r
+ String archsAdded = "";\r
+ String mg = mi.getGuid();\r
+ String mv = mi.getVersion();\r
+ String pg = mi.getPackageId().getGuid();\r
+ String pv = mi.getPackageId().getVersion();\r
+ String mType = SurfaceAreaQuery.getModuleType(mi);\r
+\r
+ ArrayList<String> al = fpdMsa.get(mg + mv + pg + pv);\r
+ if (al == null) {\r
+ //\r
+ // if existing ModuleSA does not specify version info.\r
+ //\r
+ al = fpdMsa.get(mg + "null" + pg + "null");\r
+ if (al == null) {\r
+ al = fpdMsa.get(mg + "null" + pg + pv);\r
+ if (al == null){\r
+ al = fpdMsa.get(mg + mv + pg + "null");\r
+ if (al == null) {\r
+ al = new ArrayList<String>();\r
+ fpdMsa.put(mg + mv + pg + pv, al); \r
+ }\r
+ }\r
+ }\r
+ }\r
+ //\r
+ // filter from module SupArchs what archs has been added.\r
+ //\r
+ for (int i = 0; i < al.size(); ++i) {\r
+ vArchs.remove(al.get(i));\r
+ }\r
+ //\r
+ // check whether archs conform to SupArch of platform.\r
+ //\r
+ Vector<Object> platformSupArch = new Vector<Object>();\r
+ ffc.getPlatformDefsSupportedArchs(platformSupArch);\r
+ vArchs.retainAll(platformSupArch);\r
+ //\r
+ // Archs this Module supported have already been added.\r
+ //\r
+ if (vArchs.size() == 0) {\r
+ JOptionPane.showMessageDialog(frame, "This Module has already been added.");\r
+ return;\r
+ }\r
+ //ToDo put Arch instead of null\r
+ boolean errorOccurred = false;\r
+ for (int i = 0; i < vArchs.size(); ++i) {\r
+ String arch = vArchs.get(i);\r
+ al.add(arch);\r
+ archsAdded += arch + " ";\r
+ String[] row = { "", "", "", "", "", "", "" };\r
+\r
+ if (mi != null) {\r
+ row[modNameColForFpdModTable] = mi.getName();\r
+ row[pkgNameColForFpdModTable] = mi.getPackageId().getName();\r
+ row[pathColForFpdModTable] = path;\r
+ row[archColForFpdModTable] = arch;\r
+ row[pkgVerColForFpdModTable] = pv;\r
+ row[modVerColForFpdModTable] = mv;\r
+ row[typeColForFpdModTable] = mType;\r
+\r
+ }\r
+ modelFpdModules.addRow(row);\r
+\r
+ docConsole.setSaved(false);\r
+ try {\r
+ //ToDo : specify archs need to add.\r
+ ffc.addFrameworkModulesPcdBuildDefs(mi, arch, null);\r
+ } catch (Exception exception) {\r
+ JOptionPane.showMessageDialog(frame, "Adding " + row[modNameColForFpdModTable] + " with Supporting Architectures: " + arch\r
+ + ": " + exception.getMessage());\r
+ errorOccurred = true;\r
+ }\r
+ }\r
+\r
+ String s = "This Module with Architecture " + archsAdded;\r
+ if (errorOccurred) {\r
+ s += " was added with Error. Platform may NOT Build.";\r
+ } else {\r
+ s += " was added Successfully.";\r
+ }\r
+ JOptionPane.showMessageDialog(frame, s);\r
+ TableSorter sorterFpdModules = (TableSorter)jTableFpdModules.getModel();\r
+ int viewIndex = sorterFpdModules.getViewIndexArray()[modelFpdModules.getRowCount() - 1];\r
+ jTableFpdModules.changeSelection(viewIndex, 0, false, false);\r
+\r
+ }\r