+/** @file\r
+ \r
+ The file is used to create, update FrameworkModules of Fpd file\r
+ \r
+ Copyright (c) 2006, Intel Corporation\r
+ All rights reserved. This program and the accompanying materials\r
+ are licensed and made available under the terms and conditions of the BSD License\r
+ which accompanies this distribution. The full text of the license may be found at\r
+ http://opensource.org/licenses/bsd-license.php\r
+ \r
+ THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+ \r
+ **/\r
package org.tianocore.frameworkwizard.platform.ui;\r
\r
import java.awt.BorderLayout;\r
import javax.swing.JTable;\r
import javax.swing.JButton;\r
import javax.swing.ListSelectionModel;\r
+import javax.swing.event.TableModelEvent;\r
import javax.swing.table.DefaultTableModel;\r
+import javax.swing.table.TableModel;\r
\r
import org.tianocore.PlatformSurfaceAreaDocument;\r
+import org.tianocore.frameworkwizard.common.GlobalData;\r
import org.tianocore.frameworkwizard.common.Identifications.OpeningPlatformType;\r
import org.tianocore.frameworkwizard.common.ui.IInternalFrame;\r
-import org.tianocore.frameworkwizard.platform.ui.global.GlobalData;\r
-import org.tianocore.frameworkwizard.platform.ui.id.ModuleIdentification;\r
-import org.tianocore.frameworkwizard.platform.ui.id.PackageIdentification;\r
+import org.tianocore.frameworkwizard.platform.ui.global.SurfaceAreaQuery;\r
+import org.tianocore.frameworkwizard.platform.ui.global.WorkspaceProfile;\r
+import org.tianocore.frameworkwizard.module.Identifications.ModuleIdentification;\r
\r
import java.awt.FlowLayout;\r
-import java.io.File;\r
import java.util.ArrayList;\r
import java.util.HashMap;\r
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
+ * Initialize Globals\r
*/\r
private static final long serialVersionUID = 1L;\r
+ \r
+ public static final int forceDbgColForFpdModTable = 7;\r
\r
static JFrame frame;\r
\r
\r
private NonEditableTableModel modelAllModules = null;\r
\r
- private NonEditableTableModel modelFpdModules = null;\r
+ private FpdModulesTableModel modelFpdModules = null;\r
\r
private FpdModuleSA settingDlg = null;\r
\r
private Map<String, ArrayList<String>> fpdMsa = null;\r
\r
private ArrayList<ModuleIdentification> miList = null;\r
+ \r
+ /**\r
+ * Column settings for displaying all modules in workspace\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 typeColForAllModTable = 3;\r
+ \r
+ private final int pkgVerColForAllModTable = 5;\r
+ \r
+ private final int modVerColForAllModTable = 4;\r
+ \r
+ /**\r
+ * Column settings for display modules in the FPD file\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 = 6;\r
\r
- private final int ModNameCol = 0;\r
-\r
- private final int ModVerCol = 1;\r
-\r
- private final int PkgNameCol = 2;\r
-\r
- private final int PkgVerCol = 3;\r
-\r
- private final int ArchCol = 4;\r
-\r
- private final int Path4Col = 4;\r
-\r
- private final int Path5Col = 5;\r
+ private final int modVerColForFpdModTable = 5;\r
\r
- private final int ModNameMinWidth = 168;\r
+ private final int typeColForFpdModTable = 4;\r
\r
- private final int ModNamePrefWidth = 200;\r
+ /**\r
+ * FpdFileContents structure\r
+ */\r
+ private final int ffcModGuid = 0;\r
+ \r
+ private final int ffcModVer = 1;\r
+ \r
+ private final int ffcPkgGuid = 2;\r
+ \r
+ private final int ffcPkgVer = 3;\r
+ \r
+ private final int ffcModArch = 4;\r
+ \r
+ /**\r
+ * Set Column Widths, Only the PATH should not have a max width.\r
+ */\r
+ private final int modNameMinWidth = 168;\r
+ \r
+ private final int modNamePrefWidth = 200;\r
+ \r
+ private final int modNameMaxWidth = 350;\r
\r
- private final int PkgNameMinWidth = 100;\r
+ private final int pkgNameMinWidth = 100;\r
\r
- private final int PkgNamePrefWidth = 110;\r
+ private final int pkgNamePrefWidth = 130;\r
\r
- private final int PkgNameMaxWidth = 150;\r
+ private final int pkgNameMaxWidth = 150;\r
\r
- private final int VerMinWidth = 50;\r
+ private final int verMinWidth = 60;\r
\r
- private final int VerMaxWidth = 80;\r
+ private final int verMaxWidth = 80;\r
\r
- private final int VerPrefWidth = 60;\r
+ private final int verPrefWidth = 70;\r
\r
- private final int PathPrefWidth = 320;\r
+ private final int pathPrefWidth = 600;\r
\r
- private final int PathMinWidth = 280;\r
+ private final int pathMinWidth = 280;\r
\r
- private final int ArchPrefWidth = 80;\r
+ private final int archPrefWidth = 80;\r
\r
- private final int ArchMinWidth = 60;\r
+ private final int archMinWidth = 60;\r
\r
- private final int ArchMaxWidth = 100;\r
+ private final int archMaxWidth = 100;\r
+ \r
+ private final int typePrefWidth = 145;\r
+ \r
+ private final int typeMinWidth = 100;\r
+ \r
+ private final int typeMaxWidth = 155;\r
\r
/**\r
- * This method initializes jSplitPane \r
+ * This method initializes jSplitPane\r
+ * \r
+ * This is the main edit window\r
* \r
- * @return javax.swing.JSplitPane \r
+ * @return javax.swing.JSplitPane jSplitPane \r
*/\r
private JSplitPane getJSplitPane() {\r
if (jSplitPane == null) {\r
}\r
\r
/**\r
- * This method initializes jPanel \r
+ * This method initializes jPanelTop\r
+ * \r
+ * This panel contains the All Modules Table \r
* \r
- * @return javax.swing.JPanel \r
+ * @return javax.swing.JPanel jPanelTop\r
*/\r
private JPanel getJPanelTop() {\r
if (jPanelTop == null) {\r
}\r
\r
/**\r
- * This method initializes jPanel1 \r
+ * This method initializes jPanelBottom\r
* \r
- * @return javax.swing.JPanel \r
+ * This panel contains the FPD Modules Table\r
+ * \r
+ * @return javax.swing.JPanel jPanelBottom\r
*/\r
private JPanel getJPanelBottom() {\r
if (jPanelBottom == null) {\r
}\r
\r
/**\r
- * This method initializes jScrollPane \r
+ * This method initializes jScrollPaneAllModules \r
* \r
- * @return javax.swing.JScrollPane \r
+ * @return javax.swing.JScrollPane jScrollPaneAllModules\r
*/\r
private JScrollPane getJScrollPaneAllModules() {\r
if (jScrollPaneAllModules == null) {\r
}\r
\r
/**\r
- * This method initializes jTable \r
+ * This method initializes jTableAllModules\r
* \r
- * @return javax.swing.JTable \r
+ * @return javax.swing.JTable jTableAllModules\r
*/\r
private JTable getJTableAllModules() {\r
if (jTableAllModules == null) {\r
sorter.setTableHeader(jTableAllModules.getTableHeader());\r
jTableAllModules.setRowHeight(20);\r
modelAllModules.addColumn("<html>Module<br>Name</html>");\r
- modelAllModules.addColumn("<html>Module<br>Version</html>");\r
modelAllModules.addColumn("<html>Package<br>Name</html>");\r
- modelAllModules.addColumn("<html>Package<br>Version</html>");\r
modelAllModules.addColumn("Path");\r
+ modelAllModules.addColumn("<html>Module<br>Type</html>");\r
+ modelAllModules.addColumn("<html>Module<br>Version</html>");\r
+ modelAllModules.addColumn("<html>Package<br>Version</html>");\r
+ \r
javax.swing.table.TableColumn column = null;\r
- column = jTableAllModules.getColumnModel().getColumn(ModNameCol);\r
- column.setPreferredWidth(ModNamePrefWidth);\r
- column.setMinWidth(ModNameMinWidth);\r
- column = jTableAllModules.getColumnModel().getColumn(ModVerCol);\r
- column.setPreferredWidth(VerPrefWidth);\r
- column.setMaxWidth(VerMaxWidth);\r
- column.setMinWidth(VerMinWidth);\r
- column = jTableAllModules.getColumnModel().getColumn(PkgNameCol);\r
- column.setPreferredWidth(PkgNamePrefWidth);\r
- column.setMinWidth(PkgNameMinWidth);\r
- column.setMaxWidth(PkgNameMaxWidth);\r
- column = jTableAllModules.getColumnModel().getColumn(PkgVerCol);\r
- column.setPreferredWidth(VerPrefWidth);\r
- column.setMaxWidth(VerMaxWidth);\r
- column.setMinWidth(VerMinWidth);\r
- column = jTableAllModules.getColumnModel().getColumn(Path4Col);\r
- column.setPreferredWidth(PathPrefWidth);\r
- column.setMinWidth(PathMinWidth);\r
+ column = jTableAllModules.getColumnModel().getColumn(modNameColForAllModTable);\r
+ column.setPreferredWidth(modNamePrefWidth);\r
+ column.setMinWidth(modNameMinWidth);\r
+ column.setMaxWidth(modNameMaxWidth);\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(typeColForAllModTable);\r
+ column.setPreferredWidth(typePrefWidth);\r
+ column.setMaxWidth(typeMaxWidth);\r
+ column.setMinWidth(typeMinWidth);\r
+ column = jTableAllModules.getColumnModel().getColumn(pathColForAllModTable);\r
+ column.setPreferredWidth(pathPrefWidth);\r
+ column.setMinWidth(pathMinWidth);\r
\r
jTableAllModules.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
+ jTableAllModules.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);\r
+\r
}\r
return jTableAllModules;\r
}\r
\r
/**\r
- * This method initializes jPanel2 \r
- * \r
- * @return javax.swing.JPanel \r
+ * This method initializes jPanelTopSouth\r
+ * \r
+ * This panel contains the ADD button\r
+ * \r
+ * @return javax.swing.JPanel jPanelTopSouth\r
*/\r
private JPanel getJPanelTopSouth() {\r
if (jPanelTopSouth == null) {\r
}\r
\r
/**\r
- * This method initializes jButton \r
+ * This method initializes jButtonAddModule \r
* \r
- * @return javax.swing.JButton \r
+ * @return javax.swing.JButton jButtonAddModule\r
*/\r
private JButton getJButtonAddModule() {\r
if (jButtonAddModule == null) {\r
}\r
\r
TableSorter sorter = (TableSorter) jTableAllModules.getModel();\r
- selectedRow = sorter.modelIndex(selectedRow);\r
- String path = modelAllModules.getValueAt(selectedRow, Path4Col) + "";\r
+ selectedRow = sorter.getModelRowIndex(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
+ vArchs = WorkspaceProfile.getModuleSupArchs(mi);\r
}\r
catch (Exception exp) {\r
JOptionPane.showMessageDialog(frame, exp.getMessage());\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
+ 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
- al = new ArrayList<String>();\r
- fpdMsa.put(mg + mv + pg + pv, al);\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
String arch = vArchs.get(i);\r
al.add(arch);\r
archsAdded += arch + " ";\r
- String[] row = { "", mv, "", pv, arch, path };\r
+ String[] row = { "", "", "", "", "", "", "" };\r
\r
if (mi != null) {\r
- row[ModNameCol] = mi.getName();\r
- row[PkgNameCol] = mi.getPackage().getName();\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
//ToDo : specify archs need to add.\r
ffc.addFrameworkModulesPcdBuildDefs(mi, arch, null);\r
} catch (Exception exception) {\r
- JOptionPane.showMessageDialog(frame, "Adding " + row[ModNameCol] + " with SupArch " + arch\r
+ JOptionPane.showMessageDialog(frame, "Adding " + row[modNameColForFpdModTable] + " with Supporting Architectures: " + arch\r
+ ": " + exception.getMessage());\r
errorOccurred = true;\r
}\r
s += " was added Successfully.";\r
}\r
JOptionPane.showMessageDialog(frame, s);\r
- jTableFpdModules.changeSelection(modelFpdModules.getRowCount() - 1, 0, false, false);\r
+ TableSorter sorterFpdModules = (TableSorter)jTableFpdModules.getModel();\r
+ int viewIndex = sorterFpdModules.getViewIndexArray()[modelFpdModules.getRowCount() - 1];\r
+ jTableFpdModules.changeSelection(viewIndex, 0, false, false);\r
}\r
});\r
}\r
}\r
\r
/**\r
- * This method initializes jPanel3 \r
+ * This method initializes jPanelBottomSouth\r
+ * \r
+ * This panel contains the Settings and Remove Buttons\r
* \r
- * @return javax.swing.JPanel \r
+ * @return javax.swing.JPanel jPanelBottomSouth\r
*/\r
private JPanel getJPanelBottomSouth() {\r
if (jPanelBottomSouth == null) {\r
}\r
\r
/**\r
- * This method initializes jScrollPane1 \r
+ * This method initializes jScrollPaneFpdModules\r
* \r
- * @return javax.swing.JScrollPane \r
+ * @return javax.swing.JScrollPane jScrollPaneFpdModules\r
*/\r
private JScrollPane getJScrollPaneFpdModules() {\r
if (jScrollPaneFpdModules == null) {\r
}\r
\r
/**\r
- * This method initializes jTable1 \r
+ * This method initializes jTableFpdModules\r
* \r
- * @return javax.swing.JTable \r
+ * @return javax.swing.JTable jTableFpdModules\r
*/\r
private JTable getJTableFpdModules() {\r
if (jTableFpdModules == null) {\r
- modelFpdModules = new NonEditableTableModel();\r
+ modelFpdModules = new FpdModulesTableModel();\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>Module<br>Version</html>");\r
modelFpdModules.addColumn("<html>Package<br>Name</html>");\r
- modelFpdModules.addColumn("<html>Package<br>Version</html>");\r
- modelFpdModules.addColumn("<html>Supported<br>Architectures</html>");\r
modelFpdModules.addColumn("Path");\r
+ modelFpdModules.addColumn("<html>Supported<br>Architectures</html>");\r
+ modelFpdModules.addColumn("<html>Module<br>Type</html>");\r
+ modelFpdModules.addColumn("<html>Module<br>Version</html>");\r
+ modelFpdModules.addColumn("<html>Package<br>Version</html>");\r
+ modelFpdModules.addColumn("<html>Force<br>Debug</html>");\r
+ \r
javax.swing.table.TableColumn column = null;\r
- column = jTableFpdModules.getColumnModel().getColumn(ModNameCol);\r
- column.setPreferredWidth(ModNamePrefWidth);\r
- column.setMinWidth(ModNameMinWidth);\r
- column = jTableFpdModules.getColumnModel().getColumn(ModVerCol);\r
- column.setPreferredWidth(VerPrefWidth);\r
- column.setMaxWidth(VerMaxWidth);\r
- column.setMinWidth(VerMinWidth);\r
- column = jTableFpdModules.getColumnModel().getColumn(PkgNameCol);\r
- column.setPreferredWidth(PkgNamePrefWidth);\r
- column.setMinWidth(PkgNameMinWidth);\r
- column.setMaxWidth(PkgNameMaxWidth);\r
- column = jTableFpdModules.getColumnModel().getColumn(PkgVerCol);\r
- column.setPreferredWidth(VerPrefWidth);\r
- column.setMaxWidth(VerMaxWidth);\r
- column.setMinWidth(VerMinWidth);\r
- column = jTableFpdModules.getColumnModel().getColumn(ArchCol);\r
- column.setPreferredWidth(ArchPrefWidth);\r
- column.setMaxWidth(ArchMaxWidth);\r
- column.setMinWidth(ArchMinWidth);\r
- column = jTableFpdModules.getColumnModel().getColumn(Path5Col);\r
- column.setPreferredWidth(PathPrefWidth);\r
- column.setMinWidth(PathMinWidth);\r
+ column = jTableFpdModules.getColumnModel().getColumn(modNameColForFpdModTable);\r
+ column.setPreferredWidth(modNamePrefWidth);\r
+ column.setMinWidth(modNameMinWidth);\r
+ column.setMaxWidth(modNameMaxWidth);\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
+ column = jTableFpdModules.getColumnModel().getColumn(typeColForFpdModTable);\r
+ column.setPreferredWidth(typePrefWidth);\r
+ column.setMaxWidth(typeMaxWidth);\r
+ column.setMinWidth(typeMinWidth);\r
\r
jTableFpdModules.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
+ jTableFpdModules.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);\r
+ \r
+ jTableFpdModules.getModel().addTableModelListener(this);\r
}\r
return jTableFpdModules;\r
}\r
\r
+ public void tableChanged(TableModelEvent arg0) {\r
+ if (arg0.getType() == TableModelEvent.UPDATE){\r
+ int row = arg0.getFirstRow();\r
+ int column = arg0.getColumn();\r
+ TableModel m = (TableModel)arg0.getSource();\r
+ \r
+ if (column != forceDbgColForFpdModTable) {\r
+ return;\r
+ }\r
+ String s = m.getValueAt(row, column)+"";\r
+ boolean dbgEnable = new Boolean(s);\r
+ ffc.setModuleSAForceDebug(row, dbgEnable);\r
+ docConsole.setSaved(false);\r
+ }\r
+ }\r
/**\r
- * This method initializes jButton1 \r
+ * This method initializes jButtonSettings\r
* \r
- * @return javax.swing.JButton \r
+ * @return javax.swing.JButton jButtonSettings\r
*/\r
private JButton getJButtonSettings() {\r
if (jButtonSettings == null) {\r
}\r
\r
TableSorter sorter = (TableSorter) jTableFpdModules.getModel();\r
- selectedRow = sorter.modelIndex(selectedRow);\r
+ selectedRow = sorter.getModelRowIndex(selectedRow);\r
try {\r
if (ffc.adjustPcd(selectedRow)) {\r
docConsole.setSaved(false);\r
\r
String[] sa = new String[5];\r
ffc.getFrameworkModuleInfo(selectedRow, sa);\r
- String mg = sa[ModNameCol];\r
- String mv = sa[ModVerCol];\r
- String pg = sa[PkgNameCol];\r
- String pv = sa[PkgVerCol];\r
- String arch = sa[ArchCol];\r
+ String mg = sa[ffcModGuid];\r
+ String mv = sa[ffcModVer];\r
+ String pg = sa[ffcPkgGuid];\r
+ String pv = sa[ffcPkgVer];\r
+ String arch = sa[ffcModArch];\r
settingDlg.setKey(mg + " " + mv + " " + pg + " " + pv + " " + arch, selectedRow, docConsole);\r
settingDlg.setVisible(true);\r
}\r
}\r
\r
/**\r
- * This method initializes jButton2 \r
+ * This method initializes jButtonRemoveModule\r
* \r
- * @return javax.swing.JButton \r
+ * @return javax.swing.JButton jButtonRemoveModule\r
*/\r
private JButton getJButtonRemoveModule() {\r
if (jButtonRemoveModule == null) {\r
if (selectedRow < 0) {\r
return;\r
}\r
+ docConsole.setSaved(false);\r
\r
TableSorter sorter = (TableSorter) jTableFpdModules.getModel();\r
- selectedRow = sorter.modelIndex(selectedRow);\r
+ selectedRow = sorter.getModelRowIndex(selectedRow);\r
\r
String[] sa = new String[5];\r
ffc.getFrameworkModuleInfo(selectedRow, sa);\r
- String mg = sa[ModNameCol];\r
- String mv = sa[ModVerCol];\r
- String pg = sa[PkgNameCol];\r
- String pv = sa[PkgVerCol];\r
- String arch = sa[ArchCol];\r
- ModuleIdentification mi = GlobalData.getModuleId(sa[ModNameCol] + " " + sa[ModVerCol] + " "\r
- + sa[PkgNameCol] + " " + sa[PkgVerCol] + " "\r
- + sa[ArchCol]);\r
+ String mg = sa[ffcModGuid];\r
+ String mv = sa[ffcModVer];\r
+ String pg = sa[ffcPkgGuid];\r
+ String pv = sa[ffcPkgVer];\r
+ String arch = sa[ffcModArch];\r
+ ModuleIdentification mi = WorkspaceProfile.getModuleId(mg + " " + mv + " " + pg + " " + pv + " " + arch);\r
mv = mi.getVersion();\r
- pv = mi.getPackage().getVersion();\r
+ pv = mi.getPackageId().getVersion();\r
modelFpdModules.removeRow(selectedRow);\r
if (arch == null) {\r
// if no arch specified in ModuleSA\r
fpdMsa.remove(mg + mv + pg + pv);\r
+ \r
} else {\r
ArrayList<String> al = fpdMsa.get(mg + mv + pg + pv);\r
al.remove(arch);\r
}\r
}\r
\r
- docConsole.setSaved(false);\r
ffc.removeModuleSA(selectedRow);\r
}\r
});\r
}\r
\r
/**\r
+ * \r
* @param args\r
*/\r
public static void main(String[] args) {\r
- // TODO Auto-generated method stub\r
+ // Set the pane visable\r
new FpdFrameworkModules().setVisible(true);\r
}\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
- }\r
- catch(Exception e){\r
- JOptionPane.showMessageDialog(frame, "Error occurred when getting module data.");\r
- }\r
\r
if (ffc == null) {\r
ffc = new FpdFileContents(fpd);\r
String[][] saa = new String[ffc.getFrameworkModulesCount()][5];\r
ffc.getFrameworkModulesInfo(saa);\r
for (int i = 0; i < saa.length; ++i) {\r
- ModuleIdentification mi = GlobalData.getModuleId(saa[i][ModNameCol] + " " + saa[i][ModVerCol] + " "\r
- + saa[i][PkgNameCol] + " " + saa[i][PkgVerCol]);\r
- String[] row = { "", "", "", "", "", "" };\r
+ ModuleIdentification mi = WorkspaceProfile.getModuleId(saa[i][ffcModGuid] + " " + saa[i][ffcModVer] + " "\r
+ + saa[i][ffcPkgGuid] + " " + saa[i][ffcPkgVer]);\r
+ Object[] row = { "", "", "", "", "", "", "", "" };\r
if (mi != null) {\r
- row[ModNameCol] = mi.getName();\r
- row[ModVerCol] = mi.getVersion();\r
- row[PkgNameCol] = mi.getPackage().getName();\r
- row[PkgVerCol] = mi.getPackage().getVersion();\r
- row[ArchCol] = saa[i][ArchCol];\r
+ row[modNameColForFpdModTable] = mi.getName();\r
+ row[modVerColForFpdModTable] = mi.getVersion();\r
+ row[typeColForFpdModTable] = SurfaceAreaQuery.getModuleType(mi);\r
+ row[pkgNameColForFpdModTable] = mi.getPackageId().getName();\r
+ row[pkgVerColForFpdModTable] = mi.getPackageId().getVersion();\r
+ row[archColForFpdModTable] = saa[i][ffcModArch];\r
try {\r
- row[Path5Col] = GlobalData.getMsaFile(mi).getPath().substring(\r
- System.getenv("WORKSPACE")\r
- .length() + 1);\r
+ row[pathColForFpdModTable] = mi.getPath().substring(System.getenv("WORKSPACE").length() + 1);\r
} catch (Exception e) {\r
JOptionPane.showMessageDialog(frame, "Show FPD Modules:" + e.getMessage());\r
}\r
+ \r
+ String fpdMsaKey = saa[i][ffcModGuid] + row[modVerColForFpdModTable]\r
+ + saa[i][ffcPkgGuid] + row[pkgVerColForFpdModTable];\r
+ ArrayList<String> al = fpdMsa.get(fpdMsaKey);\r
+ if (al == null) {\r
+ al = new ArrayList<String>();\r
+ fpdMsa.put(fpdMsaKey, al);\r
+ }\r
+ al.add(saa[i][ffcModArch]);\r
}\r
+ row[forceDbgColForFpdModTable] = ffc.getModuleSAForceDebug(i);\r
modelFpdModules.addRow(row);\r
- ArrayList<String> al = fpdMsa.get(saa[i][ModNameCol] + row[ModVerCol] + saa[i][PkgNameCol]\r
- + row[PkgVerCol]);\r
- if (al == null) {\r
- al = new ArrayList<String>();\r
- fpdMsa.put(saa[i][ModNameCol] + row[ModVerCol] + saa[i][PkgNameCol] + row[PkgVerCol], al);\r
- }\r
- al.add(saa[i][Path4Col]);\r
\r
}\r
+ TableSorter sorter = (TableSorter)jTableFpdModules.getModel();\r
+ sorter.setSortState(modNameColForFpdModTable, TableSorter.ASCENDING);\r
}\r
\r
showAllModules();\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
-\r
- Set<ModuleIdentification> smi = GlobalData.getModules(pi);\r
- Iterator ismi = smi.iterator();\r
+ String[] s = { "", "", "", "", "", "" };\r
+ \r
+ Iterator ismi = GlobalData.vModuleList.iterator();\r
while (ismi.hasNext()) {\r
ModuleIdentification mi = (ModuleIdentification) ismi.next();\r
- s[ModNameCol] = mi.getName();\r
- s[ModVerCol] = mi.getVersion();\r
- s[PkgNameCol] = pi.getName();\r
- s[PkgVerCol] = pi.getVersion();\r
+ s[modNameColForAllModTable] = mi.getName();\r
+ s[modVerColForAllModTable] = mi.getVersion();\r
+ s[typeColForAllModTable] = SurfaceAreaQuery.getModuleType(mi);\r
+ s[pkgNameColForAllModTable] = mi.getPackageId().getName();\r
+ s[pkgVerColForAllModTable] = mi.getPackageId().getVersion();\r
try {\r
- s[Path4Col] = GlobalData.getMsaFile(mi).getPath()\r
- .substring(System.getenv("WORKSPACE").length() + 1);\r
+ s[pathColForAllModTable] = mi.getPath().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
+ TableSorter sorter = (TableSorter)jTableAllModules.getModel();\r
+ sorter.setSortState(modNameColForAllModTable, TableSorter.ASCENDING);\r
}\r
\r
/**\r
return false;\r
}\r
}\r
+\r
+class FpdModulesTableModel extends DefaultTableModel {\r
+\r
+ /**\r
+ * \r
+ */\r
+ private static final long serialVersionUID = 1L;\r
+ \r
+ public Class<?> getColumnClass (int c) {\r
+ if (getValueAt(0, c) != null){\r
+ return getValueAt(0, c).getClass();\r
+ }\r
+ return String.class;\r
+ }\r
+ \r
+ public boolean isCellEditable (int row, int col) {\r
+ if (col == FpdFrameworkModules.forceDbgColForFpdModTable) {\r
+ return true;\r
+ }\r
+ return false;\r
+ }\r
+}\r