import java.util.Iterator;\r
import java.util.Map;\r
import java.util.Set;\r
+import java.util.Vector;\r
\r
public class FpdFrameworkModules extends IInternalFrame {\r
\r
* \r
*/\r
private static final long serialVersionUID = 1L;\r
+\r
static JFrame frame;\r
+\r
private JSplitPane jSplitPane = null;\r
- private JPanel jPanel = null;\r
- private JPanel jPanel1 = null;\r
+\r
+ private JPanel jPanelTop = null;\r
+\r
+ private JPanel jPanelBottom = null;\r
+\r
private JLabel jLabel = null;\r
- private JScrollPane jScrollPane = null;\r
- private JTable jTable = null;\r
- private JPanel jPanel2 = null;\r
- private JButton jButton = null;\r
- private JLabel jLabel1 = null;\r
- private JPanel jPanel3 = null;\r
- private JScrollPane jScrollPane1 = null;\r
- private JTable jTable1 = null;\r
- private JButton jButton1 = null;\r
- private JButton jButton2 = null;\r
- private NonEditableTableModel model = null;\r
- private NonEditableTableModel model1 = null;\r
- \r
+\r
+ private JScrollPane jScrollPaneAllModules = null;\r
+\r
+ private JTable jTableAllModules = null;\r
+\r
+ private JPanel jPanelTopSouth = null;\r
+\r
+ private JButton jButtonAddModule = null;\r
+\r
+ private JLabel jLabelModulesAdded = null;\r
+\r
+ private JPanel jPanelBottomSouth = null;\r
+\r
+ private JScrollPane jScrollPaneFpdModules = null;\r
+\r
+ private JTable jTableFpdModules = null;\r
+\r
+ private JButton jButtonSettings = null;\r
+\r
+ private JButton jButtonRemoveModule = null;\r
+\r
+ private NonEditableTableModel modelAllModules = null;\r
+\r
+ private NonEditableTableModel modelFpdModules = null;\r
+\r
private FpdModuleSA settingDlg = null;\r
- \r
+\r
private FpdFileContents ffc = null;\r
+\r
private OpeningPlatformType docConsole = null;\r
- private Map<String, String> fpdMsa = null;\r
- \r
+\r
+ private Map<String, ArrayList<String>> fpdMsa = null;\r
+\r
private ArrayList<ModuleIdentification> miList = null;\r
\r
+ private final int ModNameColForAllModTable = 0;\r
+ \r
+ private final int PkgNameColForAllModTable = 1;\r
+ \r
+ private final int PathColForAllModTable = 2;\r
+ \r
+ private final int PkgVerColForAllModTable = 3;\r
+ \r
+ private final int ModVerColForAllModTable = 4;\r
+ \r
+ private final int ModNameColForFpdModTable = 0;\r
+ \r
+ private final int PkgNameColForFpdModTable = 1;\r
+ \r
+ private final int PathColForFpdModTable = 2;\r
+ \r
+ private final int ArchColForFpdModTable = 3;\r
+ \r
+ private final int PkgVerColForFpdModTable = 4;\r
+\r
+ private final int ModVerColForFpdModTable = 5;\r
+\r
+ private final int ModNameMinWidth = 168;\r
+ \r
+ private final int ModNamePrefWidth = 200;\r
+\r
+ private final int PkgNameMinWidth = 100;\r
+ \r
+ private final int PkgNamePrefWidth = 110;\r
+ \r
+ private final int PkgNameMaxWidth = 150;\r
+ \r
+ private final int VerMinWidth = 50;\r
+ \r
+ private final int VerMaxWidth = 80;\r
+ \r
+ private final int VerPrefWidth = 60;\r
+ \r
+ private final int PathPrefWidth = 320;\r
+ \r
+ private final int PathMinWidth = 280;\r
+ \r
+ private final int ArchPrefWidth = 80;\r
+ \r
+ private final int ArchMinWidth = 60;\r
+ \r
+ private final int ArchMaxWidth = 100;\r
+ \r
/**\r
* This method initializes jSplitPane \r
* \r
jSplitPane = new JSplitPane();\r
jSplitPane.setOrientation(javax.swing.JSplitPane.VERTICAL_SPLIT);\r
jSplitPane.setDividerLocation(250);\r
- jSplitPane.setBottomComponent(getJPanel1());\r
- jSplitPane.setTopComponent(getJPanel());\r
+ jSplitPane.setBottomComponent(getJPanelBottom());\r
+ jSplitPane.setTopComponent(getJPanelTop());\r
}\r
return jSplitPane;\r
}\r
* \r
* @return javax.swing.JPanel \r
*/\r
- private JPanel getJPanel() {\r
- if (jPanel == null) {\r
+ private JPanel getJPanelTop() {\r
+ if (jPanelTop == null) {\r
jLabel = new JLabel();\r
jLabel.setText("Modules in Workspace");\r
- jPanel = new JPanel();\r
- jPanel.setLayout(new BorderLayout());\r
- jPanel.add(jLabel, java.awt.BorderLayout.NORTH);\r
- jPanel.add(getJScrollPane(), java.awt.BorderLayout.CENTER);\r
- jPanel.add(getJPanel2(), java.awt.BorderLayout.SOUTH);\r
+ jPanelTop = new JPanel();\r
+ jPanelTop.setLayout(new BorderLayout());\r
+ jPanelTop.add(jLabel, java.awt.BorderLayout.NORTH);\r
+ jPanelTop.add(getJScrollPaneAllModules(), java.awt.BorderLayout.CENTER);\r
+ jPanelTop.add(getJPanelTopSouth(), java.awt.BorderLayout.SOUTH);\r
}\r
- return jPanel;\r
+ return jPanelTop;\r
}\r
\r
/**\r
* \r
* @return javax.swing.JPanel \r
*/\r
- private JPanel getJPanel1() {\r
- if (jPanel1 == null) {\r
- jLabel1 = new JLabel();\r
- jLabel1.setText("Modules Added");\r
- jPanel1 = new JPanel();\r
- jPanel1.setLayout(new BorderLayout());\r
- jPanel1.add(jLabel1, java.awt.BorderLayout.NORTH);\r
- jPanel1.add(getJPanel3(), java.awt.BorderLayout.SOUTH);\r
- jPanel1.add(getJScrollPane1(), java.awt.BorderLayout.CENTER);\r
+ private JPanel getJPanelBottom() {\r
+ if (jPanelBottom == null) {\r
+ jLabelModulesAdded = new JLabel();\r
+ jLabelModulesAdded.setText("Modules Added");\r
+ jPanelBottom = new JPanel();\r
+ jPanelBottom.setLayout(new BorderLayout());\r
+ jPanelBottom.add(jLabelModulesAdded, java.awt.BorderLayout.NORTH);\r
+ jPanelBottom.add(getJPanelBottomSouth(), java.awt.BorderLayout.SOUTH);\r
+ jPanelBottom.add(getJScrollPaneFpdModules(), java.awt.BorderLayout.CENTER);\r
}\r
- return jPanel1;\r
+ return jPanelBottom;\r
}\r
\r
/**\r
* \r
* @return javax.swing.JScrollPane \r
*/\r
- private JScrollPane getJScrollPane() {\r
- if (jScrollPane == null) {\r
- jScrollPane = new JScrollPane();\r
- jScrollPane.setPreferredSize(new java.awt.Dimension(600,200));\r
- jScrollPane.setViewportView(getJTable());\r
+ private JScrollPane getJScrollPaneAllModules() {\r
+ if (jScrollPaneAllModules == null) {\r
+ jScrollPaneAllModules = new JScrollPane();\r
+ jScrollPaneAllModules.setPreferredSize(new java.awt.Dimension(600, 200));\r
+ jScrollPaneAllModules.setViewportView(getJTableAllModules());\r
}\r
- return jScrollPane;\r
+ return jScrollPaneAllModules;\r
}\r
\r
/**\r
* \r
* @return javax.swing.JTable \r
*/\r
- private JTable getJTable() {\r
- if (jTable == null) {\r
- model = new NonEditableTableModel();\r
- jTable = new JTable(model);\r
- jTable.setRowHeight(20);\r
- model.addColumn("ModuleName");\r
- model.addColumn("ModuleGUID");\r
- model.addColumn("ModuleVersion");\r
- model.addColumn("PackageGUID");\r
- model.addColumn("PackageVersion");\r
+ private JTable getJTableAllModules() {\r
+ if (jTableAllModules == null) {\r
+ modelAllModules = new NonEditableTableModel();\r
+ TableSorter sorter = new TableSorter(modelAllModules);\r
+ jTableAllModules = new JTable(sorter);\r
+ sorter.setTableHeader(jTableAllModules.getTableHeader());\r
+ jTableAllModules.setRowHeight(20);\r
+ modelAllModules.addColumn("<html>Module<br>Name</html>");\r
+ modelAllModules.addColumn("<html>Package<br>Name</html>");\r
+ modelAllModules.addColumn("Path");\r
+ modelAllModules.addColumn("<html>Package<br>Version</html>");\r
+ modelAllModules.addColumn("<html>Module<br>Version</html>");\r
\r
- jTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
+ javax.swing.table.TableColumn column = null;\r
+ column = jTableAllModules.getColumnModel().getColumn(ModNameColForAllModTable);\r
+ column.setPreferredWidth(ModNamePrefWidth);\r
+ column.setMinWidth(ModNameMinWidth);\r
+ column = jTableAllModules.getColumnModel().getColumn(ModVerColForAllModTable);\r
+ column.setPreferredWidth(VerPrefWidth);\r
+ column.setMaxWidth(VerMaxWidth);\r
+ column.setMinWidth(VerMinWidth);\r
+ column = jTableAllModules.getColumnModel().getColumn(PkgNameColForAllModTable);\r
+ column.setPreferredWidth(PkgNamePrefWidth);\r
+ column.setMinWidth(PkgNameMinWidth);\r
+ column.setMaxWidth(PkgNameMaxWidth);\r
+ column = jTableAllModules.getColumnModel().getColumn(PkgVerColForAllModTable);\r
+ column.setPreferredWidth(VerPrefWidth);\r
+ column.setMaxWidth(VerMaxWidth);\r
+ column.setMinWidth(VerMinWidth);\r
+ column = jTableAllModules.getColumnModel().getColumn(PathColForAllModTable);\r
+ column.setPreferredWidth(PathPrefWidth);\r
+ column.setMinWidth(PathMinWidth);\r
+\r
+ jTableAllModules.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
+ jTableAllModules.setAutoResizeMode(javax.swing.JTable.AUTO_RESIZE_OFF);\r
}\r
- return jTable;\r
+ return jTableAllModules;\r
}\r
\r
/**\r
* \r
* @return javax.swing.JPanel \r
*/\r
- private JPanel getJPanel2() {\r
- if (jPanel2 == null) {\r
+ private JPanel getJPanelTopSouth() {\r
+ if (jPanelTopSouth == null) {\r
FlowLayout flowLayout = new FlowLayout();\r
flowLayout.setAlignment(java.awt.FlowLayout.RIGHT);\r
- jPanel2 = new JPanel();\r
- jPanel2.setLayout(flowLayout);\r
- jPanel2.add(getJButton(), null);\r
+ jPanelTopSouth = new JPanel();\r
+ jPanelTopSouth.setLayout(flowLayout);\r
+ jPanelTopSouth.add(getJButtonAddModule(), null);\r
}\r
- return jPanel2;\r
+ return jPanelTopSouth;\r
}\r
\r
/**\r
* \r
* @return javax.swing.JButton \r
*/\r
- private JButton getJButton() {\r
- if (jButton == null) {\r
- jButton = new JButton();\r
- jButton.setPreferredSize(new java.awt.Dimension(130,20));\r
- jButton.setText("Add a Module");\r
- jButton.addActionListener(new java.awt.event.ActionListener() {\r
+ private JButton getJButtonAddModule() {\r
+ if (jButtonAddModule == null) {\r
+ jButtonAddModule = new JButton();\r
+ jButtonAddModule.setPreferredSize(new java.awt.Dimension(130, 20));\r
+ jButtonAddModule.setText("Add a Module");\r
+ jButtonAddModule.addActionListener(new java.awt.event.ActionListener() {\r
public void actionPerformed(java.awt.event.ActionEvent e) {\r
- int selectedRow = jTable.getSelectedRow();\r
- if (selectedRow < 0){\r
+ int selectedRow = jTableAllModules.getSelectedRow();\r
+ if (selectedRow < 0) {\r
return;\r
}\r
- \r
- String mg = (String)model.getValueAt(selectedRow, 1);\r
- String mv = (String)model.getValueAt(selectedRow, 2);\r
- String pg = (String)model.getValueAt(selectedRow, 3);\r
- String pv = (String)model.getValueAt(selectedRow, 4);\r
- if (fpdMsa.containsKey(mg + mv + pg + pv)) {\r
- JOptionPane.showMessageDialog(frame, "This Module Already Added.");\r
+\r
+ TableSorter sorter = (TableSorter) jTableAllModules.getModel();\r
+ selectedRow = sorter.modelIndex(selectedRow);\r
+ String path = modelAllModules.getValueAt(selectedRow, PathColForAllModTable) + "";\r
+ ModuleIdentification mi = miList.get(selectedRow);\r
+ Vector<String> vArchs = null;\r
+ try {\r
+ vArchs = GlobalData.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
- //ToDo put Arch instead of null\r
- fpdMsa.put(mg + mv + pg + pv, null);\r
- \r
- String[] row = {" ", mg, mv, pg, pv};\r
- ModuleIdentification mi = getModuleId(mg + " " + mv + " " + pg + " " + pv);\r
- if (mi != null) {\r
- row[0] = mi.getName();\r
- row[2] = mi.getVersion();\r
- row[4] = mi.getPackage().getVersion();\r
+\r
+ String archsAdded = "";\r
+ String mg = mi.getGuid();\r
+ String mv = mi.getVersion();\r
+ String pg = mi.getPackage().getGuid();\r
+ String pv = mi.getPackage().getVersion();\r
+\r
+ ArrayList<String> al = fpdMsa.get(mg + mv + pg + pv);\r
+ if (al == null) {\r
+ al = new ArrayList<String>();\r
+ fpdMsa.put(mg + mv + pg + pv, al);\r
}\r
- model1.addRow(row);\r
- \r
- docConsole.setSaved(false);\r
- try{\r
- ffc.addFrameworkModulesPcdBuildDefs(mi, null);\r
+ for (int i = 0; i < al.size(); ++i) {\r
+ vArchs.remove(al.get(i));\r
}\r
- catch (Exception exception) {\r
- JOptionPane.showMessageDialog(frame, "PCD Insertion Fail. " + exception.getMessage());\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
- JOptionPane.showMessageDialog(frame, "This Module Added Successfully.");\r
- jTable1.changeSelection(model1.getRowCount()-1, 0, false, false);\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.getPackage().getName();\r
+ row[PathColForFpdModTable] = path;\r
+ row[ArchColForFpdModTable] = arch;\r
+ row[PkgVerColForFpdModTable] = pv;\r
+ row[ModVerColForFpdModTable] = mv;\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 SupArch " + 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
+ jTableFpdModules.changeSelection(modelFpdModules.getRowCount() - 1, 0, false, false);\r
}\r
});\r
}\r
- return jButton;\r
+ return jButtonAddModule;\r
}\r
\r
/**\r
* \r
* @return javax.swing.JPanel \r
*/\r
- private JPanel getJPanel3() {\r
- if (jPanel3 == null) {\r
+ private JPanel getJPanelBottomSouth() {\r
+ if (jPanelBottomSouth == null) {\r
FlowLayout flowLayout1 = new FlowLayout();\r
flowLayout1.setAlignment(java.awt.FlowLayout.RIGHT);\r
- jPanel3 = new JPanel();\r
- jPanel3.setLayout(flowLayout1);\r
- jPanel3.add(getJButton1(), null);\r
- jPanel3.add(getJButton2(), null);\r
+ jPanelBottomSouth = new JPanel();\r
+ jPanelBottomSouth.setLayout(flowLayout1);\r
+ jPanelBottomSouth.add(getJButtonSettings(), null);\r
+ jPanelBottomSouth.add(getJButtonRemoveModule(), null);\r
}\r
- return jPanel3;\r
+ return jPanelBottomSouth;\r
}\r
\r
/**\r
* \r
* @return javax.swing.JScrollPane \r
*/\r
- private JScrollPane getJScrollPane1() {\r
- if (jScrollPane1 == null) {\r
- jScrollPane1 = new JScrollPane();\r
- jScrollPane1.setPreferredSize(new java.awt.Dimension(453,200));\r
- jScrollPane1.setViewportView(getJTable1());\r
+ private JScrollPane getJScrollPaneFpdModules() {\r
+ if (jScrollPaneFpdModules == null) {\r
+ jScrollPaneFpdModules = new JScrollPane();\r
+ jScrollPaneFpdModules.setPreferredSize(new java.awt.Dimension(453, 200));\r
+ jScrollPaneFpdModules.setViewportView(getJTableFpdModules());\r
}\r
- return jScrollPane1;\r
+ return jScrollPaneFpdModules;\r
}\r
\r
/**\r
* \r
* @return javax.swing.JTable \r
*/\r
- private JTable getJTable1() {\r
- if (jTable1 == null) {\r
- model1 = new NonEditableTableModel();\r
- jTable1 = new JTable(model1);\r
- jTable1.setRowHeight(20);\r
- model1.addColumn("ModuleName");\r
- model1.addColumn("ModuleGUID");\r
- model1.addColumn("ModuleVersion"); \r
- model1.addColumn("PackageGUID");\r
- model1.addColumn("PackageVersion");\r
-// model1.addColumn("SupportedArch");\r
+ private JTable getJTableFpdModules() {\r
+ if (jTableFpdModules == null) {\r
+ modelFpdModules = new NonEditableTableModel();\r
+ TableSorter sorter = new TableSorter(modelFpdModules);\r
+ jTableFpdModules = new JTable(sorter);\r
+ sorter.setTableHeader(jTableFpdModules.getTableHeader());\r
+ jTableFpdModules.setRowHeight(20);\r
+ modelFpdModules.addColumn("<html>Module<br>Name</html>");\r
+ modelFpdModules.addColumn("<html>Package<br>Name</html>");\r
+ modelFpdModules.addColumn("Path");\r
+ modelFpdModules.addColumn("<html>Supported<br>Architectures</html>");\r
+ modelFpdModules.addColumn("<html>Package<br>Version</html>");\r
+ modelFpdModules.addColumn("<html>Module<br>Version</html>");\r
\r
- jTable1.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
+ javax.swing.table.TableColumn column = null;\r
+ column = jTableFpdModules.getColumnModel().getColumn(ModNameColForFpdModTable);\r
+ column.setPreferredWidth(ModNamePrefWidth);\r
+ column.setMinWidth(ModNameMinWidth);\r
+ column = jTableFpdModules.getColumnModel().getColumn(ModVerColForFpdModTable);\r
+ column.setPreferredWidth(VerPrefWidth);\r
+ column.setMaxWidth(VerMaxWidth);\r
+ column.setMinWidth(VerMinWidth);\r
+ column = jTableFpdModules.getColumnModel().getColumn(PkgNameColForFpdModTable);\r
+ column.setPreferredWidth(PkgNamePrefWidth);\r
+ column.setMinWidth(PkgNameMinWidth);\r
+ column.setMaxWidth(PkgNameMaxWidth);\r
+ column = jTableFpdModules.getColumnModel().getColumn(PkgVerColForFpdModTable);\r
+ column.setPreferredWidth(VerPrefWidth);\r
+ column.setMaxWidth(VerMaxWidth);\r
+ column.setMinWidth(VerMinWidth);\r
+ column = jTableFpdModules.getColumnModel().getColumn(ArchColForFpdModTable);\r
+ column.setPreferredWidth(ArchPrefWidth);\r
+ column.setMaxWidth(ArchMaxWidth);\r
+ column.setMinWidth(ArchMinWidth);\r
+ column = jTableFpdModules.getColumnModel().getColumn(PathColForFpdModTable);\r
+ column.setPreferredWidth(PathPrefWidth);\r
+ column.setMinWidth(PathMinWidth);\r
+\r
+ jTableFpdModules.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
+ jTableFpdModules.setAutoResizeMode(javax.swing.JTable.AUTO_RESIZE_OFF);\r
}\r
- return jTable1;\r
+ return jTableFpdModules;\r
}\r
\r
/**\r
* \r
* @return javax.swing.JButton \r
*/\r
- private JButton getJButton1() {\r
- if (jButton1 == null) {\r
- jButton1 = new JButton();\r
- jButton1.setPreferredSize(new java.awt.Dimension(130,20));\r
- jButton1.setText("Settings");\r
- jButton1.addActionListener(new java.awt.event.ActionListener() {\r
+ private JButton getJButtonSettings() {\r
+ if (jButtonSettings == null) {\r
+ jButtonSettings = new JButton();\r
+ jButtonSettings.setPreferredSize(new java.awt.Dimension(130,20));\r
+ jButtonSettings.setText("Settings");\r
+ jButtonSettings.addActionListener(new java.awt.event.ActionListener() {\r
public void actionPerformed(java.awt.event.ActionEvent e) {\r
- int selectedRow = jTable1.getSelectedRow();\r
- if (selectedRow < 0){\r
+ int selectedRow = jTableFpdModules.getSelectedRow();\r
+ if (selectedRow < 0) {\r
+ return;\r
+ }\r
+\r
+ TableSorter sorter = (TableSorter) jTableFpdModules.getModel();\r
+ selectedRow = sorter.modelIndex(selectedRow);\r
+ try {\r
+ if (ffc.adjustPcd(selectedRow)) {\r
+ docConsole.setSaved(false);\r
+ }\r
+ }\r
+ catch (Exception exp) {\r
+ JOptionPane.showMessageDialog(frame, exp.getMessage());\r
return;\r
}\r
+ \r
if (settingDlg == null) {\r
settingDlg = new FpdModuleSA(ffc);\r
}\r
- docConsole.setSaved(false);\r
- String mg = model1.getValueAt(selectedRow, 1)+"";\r
- String mv = model1.getValueAt(selectedRow, 2)+"";\r
- String pg = model1.getValueAt(selectedRow, 3)+"";\r
- String pv = model1.getValueAt(selectedRow, 4)+"";\r
- settingDlg.setKey(mg + " " + mv + " " + pg + " " + pv, selectedRow);\r
+\r
+ String[] sa = new String[5];\r
+ ffc.getFrameworkModuleInfo(selectedRow, sa);\r
+ String mg = sa[0];\r
+ String mv = sa[1];\r
+ String pg = sa[2];\r
+ String pv = sa[3];\r
+ String arch = sa[4];\r
+ settingDlg.setKey(mg + " " + mv + " " + pg + " " + pv + " " + arch, selectedRow, docConsole);\r
settingDlg.setVisible(true);\r
}\r
});\r
}\r
- return jButton1;\r
+ return jButtonSettings;\r
}\r
\r
/**\r
* \r
* @return javax.swing.JButton \r
*/\r
- private JButton getJButton2() {\r
- if (jButton2 == null) {\r
- jButton2 = new JButton();\r
- jButton2.setPreferredSize(new java.awt.Dimension(130,20));\r
- jButton2.setText("Remove Module");\r
- jButton2.addActionListener(new java.awt.event.ActionListener() {\r
+ private JButton getJButtonRemoveModule() {\r
+ if (jButtonRemoveModule == null) {\r
+ jButtonRemoveModule = new JButton();\r
+ jButtonRemoveModule.setPreferredSize(new java.awt.Dimension(130, 20));\r
+ jButtonRemoveModule.setText("Remove Module");\r
+ jButtonRemoveModule.addActionListener(new java.awt.event.ActionListener() {\r
public void actionPerformed(java.awt.event.ActionEvent e) {\r
- int selectedRow = jTable1.getSelectedRow();\r
- if (selectedRow < 0){\r
+ int selectedRow = jTableFpdModules.getSelectedRow();\r
+ if (selectedRow < 0) {\r
return;\r
}\r
- String mg = model1.getValueAt(selectedRow, 1).toString();\r
- String mv = model1.getValueAt(selectedRow, 2).toString();\r
- String pg = model1.getValueAt(selectedRow, 3).toString();\r
- String pv = model1.getValueAt(selectedRow, 4).toString();\r
- model1.removeRow(selectedRow);\r
- fpdMsa.remove(mg+mv+pg+pv);\r
+\r
+ TableSorter sorter = (TableSorter) jTableFpdModules.getModel();\r
+ selectedRow = sorter.modelIndex(selectedRow);\r
+\r
+ String[] sa = new String[5];\r
+ ffc.getFrameworkModuleInfo(selectedRow, sa);\r
+ String mg = sa[0];\r
+ String mv = sa[1];\r
+ String pg = sa[2];\r
+ String pv = sa[3];\r
+ String arch = sa[4];\r
+ ModuleIdentification mi = GlobalData.getModuleId(sa[0] + " " + sa[1] + " "\r
+ + sa[2] + " " + sa[3] + " "\r
+ + sa[4]);\r
+ mv = mi.getVersion();\r
+ pv = mi.getPackage().getVersion();\r
+ modelFpdModules.removeRow(selectedRow);\r
+ if (arch == null) {\r
+ // if no arch specified in ModuleSA\r
+ fpdMsa.remove(mg + mv + pg + pv);\r
+ } else {\r
+ ArrayList<String> al = fpdMsa.get(mg + mv + pg + pv);\r
+ al.remove(arch);\r
+ if (al.size() == 0) {\r
+ fpdMsa.remove(mg + mv + pg + pv);\r
+ }\r
+ }\r
+\r
docConsole.setSaved(false);\r
ffc.removeModuleSA(selectedRow);\r
}\r
});\r
}\r
- return jButton2;\r
+ return jButtonRemoveModule;\r
}\r
\r
/**\r
initialize();\r
}\r
\r
- public FpdFrameworkModules(PlatformSurfaceAreaDocument.PlatformSurfaceArea fpd){\r
+ public FpdFrameworkModules(PlatformSurfaceAreaDocument.PlatformSurfaceArea fpd) {\r
this();\r
init(fpd);\r
- \r
+\r
}\r
- \r
+\r
public FpdFrameworkModules(OpeningPlatformType opt) {\r
this(opt.getXmlFpd());\r
docConsole = opt;\r
}\r
- \r
+\r
private void init(PlatformSurfaceAreaDocument.PlatformSurfaceArea fpd) {\r
try {\r
GlobalData.initInfo("Tools" + File.separator + "Conf" + File.separator + "FrameworkDatabase.db", System.getenv("WORKSPACE"));\r
catch(Exception e){\r
JOptionPane.showMessageDialog(frame, "Error occurred when getting module data.");\r
}\r
- \r
- if (ffc == null){\r
+\r
+ if (ffc == null) {\r
ffc = new FpdFileContents(fpd);\r
ffc.initDynPcdMap();\r
}\r
- \r
+\r
if (fpdMsa == null) {\r
- fpdMsa = new HashMap<String, String>();\r
+ fpdMsa = new HashMap<String, ArrayList<String>>();\r
}\r
- \r
+\r
if (ffc.getFrameworkModulesCount() > 0) {\r
String[][] saa = new String[ffc.getFrameworkModulesCount()][5];\r
ffc.getFrameworkModulesInfo(saa);\r
for (int i = 0; i < saa.length; ++i) {\r
- ModuleIdentification mi = getModuleId(saa[i][1]+ " "+saa[i][2]+" "+saa[i][3]+" "+saa[i][4]);\r
+ ModuleIdentification mi = GlobalData.getModuleId(saa[i][0] + " " + saa[i][1] + " "\r
+ + saa[i][2] + " " + saa[i][3]);\r
+ String[] row = { "", "", "", "", "", "" };\r
if (mi != null) {\r
- saa[i][0] = mi.getName();\r
- saa[i][2] = mi.getVersion();\r
- saa[i][4] = mi.getPackage().getVersion();\r
+ row[ModNameColForFpdModTable] = mi.getName();\r
+ row[ModVerColForFpdModTable] = mi.getVersion();\r
+ row[PkgNameColForFpdModTable] = mi.getPackage().getName();\r
+ row[PkgVerColForFpdModTable] = mi.getPackage().getVersion();\r
+ row[ArchColForFpdModTable] = saa[i][4];\r
+ try {\r
+ row[PathColForFpdModTable] = GlobalData.getMsaFile(mi).getPath().substring(\r
+ System.getenv("WORKSPACE")\r
+ .length() + 1);\r
+ } catch (Exception e) {\r
+ JOptionPane.showMessageDialog(frame, "Show FPD Modules:" + e.getMessage());\r
+ }\r
}\r
- model1.addRow(saa[i]);\r
- fpdMsa.put(saa[i][1]+saa[i][2]+saa[i][3]+saa[i][4], saa[i][0]);\r
+ modelFpdModules.addRow(row);\r
+ ArrayList<String> al = fpdMsa.get(saa[i][0] + saa[i][1]\r
+ + saa[i][2] + saa[i][3]);\r
+ if (al == null) {\r
+ al = new ArrayList<String>();\r
+ fpdMsa.put(saa[i][0] + saa[i][1] + saa[i][2] + saa[i][3], al);\r
+ }\r
+ al.add(saa[i][4]);\r
+\r
}\r
}\r
- \r
+\r
showAllModules();\r
- \r
+\r
}\r
- \r
+\r
private void showAllModules() {\r
- \r
+\r
if (miList == null) {\r
miList = new ArrayList<ModuleIdentification>();\r
}\r
Set<PackageIdentification> spi = GlobalData.getPackageList();\r
Iterator ispi = spi.iterator();\r
- \r
- while(ispi.hasNext()) {\r
- PackageIdentification pi = (PackageIdentification)ispi.next();\r
- String[] s = {"", "", "", "", ""};\r
- s[3] = pi.getGuid();\r
- s[4] = pi.getVersion();\r
+\r
+ while (ispi.hasNext()) {\r
+ PackageIdentification pi = (PackageIdentification) ispi.next();\r
+ String[] s = { "", "", "", "", "" };\r
+\r
Set<ModuleIdentification> smi = GlobalData.getModules(pi);\r
Iterator ismi = smi.iterator();\r
- while(ismi.hasNext()) {\r
- ModuleIdentification mi = (ModuleIdentification)ismi.next();\r
- s[0] = mi.getName();\r
- s[1] = mi.getGuid();\r
- s[2] = mi.getVersion();\r
- model.addRow(s);\r
+ while (ismi.hasNext()) {\r
+ ModuleIdentification mi = (ModuleIdentification) ismi.next();\r
+ s[ModNameColForAllModTable] = mi.getName();\r
+ s[ModVerColForAllModTable] = mi.getVersion();\r
+ s[PkgNameColForAllModTable] = pi.getName();\r
+ s[PkgVerColForAllModTable] = pi.getVersion();\r
+ try {\r
+ s[PathColForAllModTable] = GlobalData.getMsaFile(mi).getPath()\r
+ .substring(System.getenv("WORKSPACE").length() + 1);\r
+ } catch (Exception e) {\r
+ JOptionPane.showMessageDialog(frame, "Show All Modules:" + e.getMessage());\r
+ }\r
+ modelAllModules.addRow(s);\r
miList.add(mi);\r
}\r
}\r
}\r
+\r
/**\r
* This method initializes this\r
* \r
this.setTitle("Framework Modules");\r
this.setContentPane(getJSplitPane());\r
this.setVisible(true);\r
- \r
- }\r
- \r
- private ModuleIdentification getModuleId(String key){\r
- //\r
- // Get ModuleGuid, ModuleVersion, PackageGuid, PackageVersion into string array.\r
- //\r
- String[] keyPart = key.split(" ");\r
- Set<PackageIdentification> spi = GlobalData.getPackageList();\r
- Iterator ispi = spi.iterator();\r
- \r
- while(ispi.hasNext()) {\r
- PackageIdentification pi = (PackageIdentification)ispi.next();\r
- if ( !pi.getGuid().equals(keyPart[2])){ \r
\r
- continue;\r
- }\r
- if (keyPart[3] != null && keyPart[3].length() > 0 && !keyPart[3].equals("null")){\r
- if(!pi.getVersion().equals(keyPart[3])){\r
- continue;\r
- }\r
- }\r
- Set<ModuleIdentification> smi = GlobalData.getModules(pi);\r
- Iterator ismi = smi.iterator();\r
- while(ismi.hasNext()) {\r
- ModuleIdentification mi = (ModuleIdentification)ismi.next();\r
- if (mi.getGuid().equals(keyPart[0])){\r
- if (keyPart[1] != null && keyPart[1].length() > 0 && !keyPart[1].equals("null")){\r
- if(!mi.getVersion().equals(keyPart[1])){\r
- continue;\r
- }\r
- }\r
-\r
- return mi;\r
- }\r
- }\r
- }\r
- return null;\r
}\r
\r
-} // @jve:decl-index=0:visual-constraint="10,10"\r
+} // @jve:decl-index=0:visual-constraint="10,10"\r
\r
class NonEditableTableModel extends DefaultTableModel {\r
/**\r