]> git.proxmox.com Git - mirror_edk2.git/blobdiff - Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdFrameworkModules.java
Fix EDKT337,Double click on modules in "Framework Modules" of Platforms should be...
[mirror_edk2.git] / Tools / Source / FrameworkWizard / src / org / tianocore / frameworkwizard / platform / ui / FpdFrameworkModules.java
index e0c1167925bb07095607dfa49e7527fc0e78d989..ae74471c21c6dcc0935eb55afa53d19e910601d2 100644 (file)
@@ -1,3 +1,17 @@
+/** @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
@@ -11,22 +25,24 @@ import javax.swing.JScrollPane;
 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.SurfaceAreaQuery;\r
 import org.tianocore.frameworkwizard.platform.ui.global.WorkspaceProfile;\r
-import org.tianocore.frameworkwizard.platform.ui.id.ModuleIdentification;\r
-import org.tianocore.frameworkwizard.platform.ui.id.PackageIdentification;\r
+import org.tianocore.frameworkwizard.module.Identifications.ModuleIdentification;\r
 \r
 import java.awt.FlowLayout;\r
-import java.io.File;\r
+import java.awt.event.MouseEvent;\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
@@ -35,6 +51,8 @@ public class FpdFrameworkModules extends IInternalFrame {
      * 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
@@ -68,7 +86,7 @@ public class FpdFrameworkModules extends IInternalFrame {
 \r
     private NonEditableTableModel modelAllModules = null;\r
 \r
-    private NonEditableTableModel modelFpdModules = null;\r
+    private FpdModulesTableModel modelFpdModules = null;\r
 \r
     private FpdModuleSA settingDlg = null;\r
 \r
@@ -190,7 +208,7 @@ public class FpdFrameworkModules extends IInternalFrame {
     private JPanel getJPanelTop() {\r
         if (jPanelTop == null) {\r
             jLabel = new JLabel();\r
-            jLabel.setText("Modules in Workspace");\r
+            jLabel.setText("  Modules in Workspace");\r
             jPanelTop = new JPanel();\r
             jPanelTop.setLayout(new BorderLayout());\r
             jPanelTop.add(jLabel, java.awt.BorderLayout.NORTH);\r
@@ -210,7 +228,7 @@ public class FpdFrameworkModules extends IInternalFrame {
     private JPanel getJPanelBottom() {\r
         if (jPanelBottom == null) {\r
             jLabelModulesAdded = new JLabel();\r
-            jLabelModulesAdded.setText("Modules Added");\r
+            jLabelModulesAdded.setText("  Modules Added into Platform");\r
             jPanelBottom = new JPanel();\r
             jPanelBottom.setLayout(new BorderLayout());\r
             jPanelBottom.add(jLabelModulesAdded, java.awt.BorderLayout.NORTH);\r
@@ -280,7 +298,19 @@ public class FpdFrameworkModules extends IInternalFrame {
 \r
             jTableAllModules.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
             jTableAllModules.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);\r
-\r
+            jTableAllModules.addMouseListener(new java.awt.event.MouseAdapter() {\r
+                public void mouseClicked(java.awt.event.MouseEvent e) {\r
+                    if (e.getButton() == MouseEvent.BUTTON1 && e.getClickCount() == 2) {\r
+                        java.awt.Point p = e.getPoint();\r
+                        int rowIndex = jTableAllModules.rowAtPoint(p);\r
+                        TableSorter sorter = (TableSorter) jTableAllModules.getModel();\r
+                        rowIndex = sorter.getModelRowIndex(rowIndex);\r
+                        addModuleIntoPlatform (rowIndex);\r
+                    }\r
+                }\r
+            });\r
+            \r
+            \r
         }\r
         return jTableAllModules;\r
     }\r
@@ -302,6 +332,109 @@ public class FpdFrameworkModules extends IInternalFrame {
         }\r
         return jPanelTopSouth;\r
     }\r
+    \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
 \r
     /**\r
      * This method initializes jButtonAddModule        \r
@@ -321,106 +454,8 @@ public class FpdFrameworkModules extends IInternalFrame {
                     }\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 = 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.getPackage().getGuid();\r
-                    String pv = mi.getPackage().getVersion();\r
-                    String mType = mi.getModuleType();\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.getPackage().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.getModelToView()[modelFpdModules.getRowCount() - 1];\r
-                    jTableFpdModules.changeSelection(viewIndex, 0, false, false);\r
+                    selectedRow = sorter.getModelRowIndex(selectedRow);\r
+                    addModuleIntoPlatform (selectedRow);    \r
                 }\r
             });\r
         }\r
@@ -467,7 +502,7 @@ public class FpdFrameworkModules extends IInternalFrame {
      */\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
@@ -479,7 +514,7 @@ public class FpdFrameworkModules extends IInternalFrame {
             modelFpdModules.addColumn("<html>Module<br>Type</html>");\r
             modelFpdModules.addColumn("<html>Module<br>Version</html>");\r
             modelFpdModules.addColumn("<html>Package<br>Version</html>");\r
-\r
+            modelFpdModules.addColumn("<html>Force<br>Debug</html>");\r
             \r
             javax.swing.table.TableColumn column = null;\r
             column = jTableFpdModules.getColumnModel().getColumn(modNameColForFpdModTable);\r
@@ -512,11 +547,65 @@ public class FpdFrameworkModules extends IInternalFrame {
 \r
             jTableFpdModules.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
             jTableFpdModules.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);\r
-\r
+            \r
+            jTableFpdModules.addMouseListener(new java.awt.event.MouseAdapter() {\r
+                public void mouseClicked(java.awt.event.MouseEvent e) {\r
+                    if (e.getButton() == MouseEvent.BUTTON1 && e.getClickCount() == 2) {\r
+                        java.awt.Point p = e.getPoint();\r
+                        int rowIndex = jTableFpdModules.rowAtPoint(p);\r
+                        TableSorter sorter = (TableSorter) jTableFpdModules.getModel();\r
+                        rowIndex = sorter.getModelRowIndex(rowIndex);\r
+                        showSettingsDlg (rowIndex);\r
+                    }\r
+                }\r
+            });\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
+    private void showSettingsDlg (int row) {\r
+        try {\r
+            if (ffc.adjustPcd(row)) {\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
+\r
+        String[] sa = new String[5];\r
+        ffc.getFrameworkModuleInfo(row, sa);\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, row, docConsole);\r
+        settingDlg.setVisible(true);\r
+    }\r
     /**\r
      * This method initializes jButtonSettings\r
      *         \r
@@ -535,30 +624,8 @@ public class FpdFrameworkModules extends IInternalFrame {
                     }\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
-\r
-                    String[] sa = new String[5];\r
-                    ffc.getFrameworkModuleInfo(selectedRow, sa);\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
+                    selectedRow = sorter.getModelRowIndex(selectedRow);\r
+                    showSettingsDlg (selectedRow);\r
                 }\r
             });\r
         }\r
@@ -581,10 +648,10 @@ public class FpdFrameworkModules extends IInternalFrame {
                     if (selectedRow < 0) {\r
                         return;\r
                     }\r
-                    docConsole.setSaved(false);\r
+                    \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
@@ -593,23 +660,48 @@ public class FpdFrameworkModules extends IInternalFrame {
                     String pg = sa[ffcPkgGuid];\r
                     String pv = sa[ffcPkgVer];\r
                     String arch = sa[ffcModArch];\r
+                    //\r
+                    // sync. module order list in BuildOptions-UserExtensions.\r
+                    //\r
+                    String moduleKey = mg + " " + mv + " " + pg + " " + pv + " " + arch;\r
+                    String fvBindings = ffc.getFvBinding(moduleKey);\r
+                    if (fvBindings != null) {\r
+                        String[] fvArray = fvBindings.split(" ");\r
+                        for (int i = 0; i < fvArray.length; ++i) {\r
+                            ffc.removeModuleInBuildOptionsUserExtensions(fvArray[i].trim(), mg, mv, pg, pv, arch);\r
+                        }\r
+                    }\r
+                    \r
                     ModuleIdentification mi = WorkspaceProfile.getModuleId(mg + " " + mv + " " + pg + " " + pv + " " + arch);\r
-                    mv = mi.getVersion();\r
-                    pv = mi.getPackage().getVersion();\r
-                    modelFpdModules.removeRow(selectedRow);\r
+                    if (mi != null) {\r
+                        mv = mi.getVersion();\r
+                        pv = mi.getPackageId().getVersion();\r
+                    }\r
+                    \r
+                    try {\r
+                        ffc.removeModuleSA(selectedRow);    \r
+                    }\r
+                    catch (Exception exp) {\r
+                        JOptionPane.showMessageDialog(frame, exp.getCause() + exp.getMessage());\r
+                        return;\r
+                    }\r
+                    \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
-                        if (al.size() == 0) {\r
-                            fpdMsa.remove(mg + mv + pg + pv);\r
+                        if (al != null) {\r
+                            al.remove(arch);\r
+                            if (al.size() == 0) {\r
+                                fpdMsa.remove(mg + mv + pg + pv);\r
+                            }\r
                         }\r
                     }\r
-\r
-                    ffc.removeModuleSA(selectedRow);\r
+                    \r
+                    modelFpdModules.removeRow(selectedRow);\r
+                    docConsole.setSaved(false);\r
                 }\r
             });\r
         }\r
@@ -645,12 +737,6 @@ public class FpdFrameworkModules extends IInternalFrame {
     }\r
 \r
     private void init(PlatformSurfaceAreaDocument.PlatformSurfaceArea fpd) {\r
-        try {\r
-            WorkspaceProfile.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
@@ -667,18 +753,16 @@ public class FpdFrameworkModules extends IInternalFrame {
             for (int i = 0; i < saa.length; ++i) {\r
                 ModuleIdentification mi = WorkspaceProfile.getModuleId(saa[i][ffcModGuid] + " " + saa[i][ffcModVer] + " "\r
                                                                  + saa[i][ffcPkgGuid] + " " + saa[i][ffcPkgVer]);\r
-                String[] row = { "", "", "", "", "", "", "" };\r
+                Object[] row = { "", "", "", "", "", "", "", "" };\r
                 if (mi != null) {\r
                     row[modNameColForFpdModTable] = mi.getName();\r
                     row[modVerColForFpdModTable] = mi.getVersion();\r
-                    row[typeColForFpdModTable] = mi.getModuleType();\r
-                    row[pkgNameColForFpdModTable] = mi.getPackage().getName();\r
-                    row[pkgVerColForFpdModTable] = mi.getPackage().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[pathColForFpdModTable] = WorkspaceProfile.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
@@ -692,11 +776,19 @@ public class FpdFrameworkModules extends IInternalFrame {
                     }\r
                     al.add(saa[i][ffcModArch]);\r
                 }\r
+                else {\r
+                    row[modNameColForFpdModTable] = saa[i][ffcModGuid];\r
+                    row[modVerColForFpdModTable] = saa[i][ffcModVer];\r
+                    row[pkgNameColForFpdModTable] = saa[i][ffcPkgGuid];\r
+                    row[pkgVerColForFpdModTable] = saa[i][ffcPkgVer];\r
+                    row[archColForFpdModTable] = saa[i][ffcModArch];\r
+                }\r
+                row[forceDbgColForFpdModTable] = ffc.getModuleSAForceDebug(i);\r
                 modelFpdModules.addRow(row);\r
 \r
             }\r
             TableSorter sorter = (TableSorter)jTableFpdModules.getModel();\r
-            sorter.setSortingStatus(modNameColForFpdModTable, TableSorter.ASCENDING);\r
+            sorter.setSortState(modNameColForFpdModTable, TableSorter.ASCENDING);\r
         }\r
 \r
         showAllModules();\r
@@ -708,35 +800,29 @@ public class FpdFrameworkModules extends IInternalFrame {
         if (miList == null) {\r
             miList = new ArrayList<ModuleIdentification>();\r
         }\r
-        Set<PackageIdentification> spi = WorkspaceProfile.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 = WorkspaceProfile.getModules(pi);\r
-            Iterator ismi = smi.iterator();\r
+            \r
+            Iterator ismi = GlobalData.vModuleList.iterator();\r
             while (ismi.hasNext()) {\r
                 ModuleIdentification mi = (ModuleIdentification) ismi.next();\r
                 s[modNameColForAllModTable] = mi.getName();\r
                 s[modVerColForAllModTable] = mi.getVersion();\r
-                s[typeColForAllModTable] = mi.getModuleType();\r
-                s[pkgNameColForAllModTable] = pi.getName();\r
-                s[pkgVerColForAllModTable] = pi.getVersion();\r
+                s[typeColForAllModTable] = SurfaceAreaQuery.getModuleType(mi);\r
+                s[pkgNameColForAllModTable] = mi.getPackageId().getName();\r
+                s[pkgVerColForAllModTable] = mi.getPackageId().getVersion();\r
                 try {\r
-                    s[pathColForAllModTable] = WorkspaceProfile.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.setSortingStatus(modNameColForAllModTable, TableSorter.ASCENDING);\r
+        sorter.setSortState(modNameColForAllModTable, TableSorter.ASCENDING);\r
     }\r
 \r
     /**\r
@@ -764,3 +850,25 @@ class NonEditableTableModel extends DefaultTableModel {
         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