]> git.proxmox.com Git - mirror_edk2.git/blobdiff - Tools/Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/common/find/FindResult.java
1. Fix EDKT339 Library Class Search need to get info for selected library class
[mirror_edk2.git] / Tools / Java / Source / FrameworkWizard / src / org / tianocore / frameworkwizard / common / find / FindResult.java
index 5dcc7aa944570988da3484c8cfe14d28f3596ce7..da9a7de546cd105b3427d97d0c1e189b285d42da 100644 (file)
@@ -17,7 +17,8 @@ package org.tianocore.frameworkwizard.common.find;
 import java.awt.Dimension;\r
 import java.awt.event.ActionEvent;\r
 import java.awt.event.ComponentEvent;\r
-import java.awt.event.ComponentListener;\r
+import java.awt.event.MouseEvent;\r
+import java.awt.event.MouseListener;\r
 import java.awt.event.WindowEvent;\r
 import java.util.Vector;\r
 \r
@@ -28,6 +29,8 @@ import javax.swing.JScrollPane;
 import javax.swing.JTable;\r
 import javax.swing.ListSelectionModel;\r
 import javax.swing.SwingConstants;\r
+import javax.swing.event.ListSelectionEvent;\r
+import javax.swing.event.ListSelectionListener;\r
 import javax.swing.event.TableModelEvent;\r
 import javax.swing.event.TableModelListener;\r
 import javax.swing.table.DefaultTableCellRenderer;\r
@@ -37,8 +40,10 @@ import org.tianocore.frameworkwizard.common.IDefaultTableModel;
 import org.tianocore.frameworkwizard.common.Log;\r
 import org.tianocore.frameworkwizard.common.Tools;\r
 import org.tianocore.frameworkwizard.common.ui.IFrame;\r
+import org.tianocore.frameworkwizard.module.Identifications.ModuleIdentification;\r
+import org.tianocore.frameworkwizard.module.Identifications.LibraryClass.LibraryClassVector;\r
 \r
-public class FindResult extends IFrame implements TableModelListener, ComponentListener {\r
+public class FindResult extends IFrame implements TableModelListener, ListSelectionListener, MouseListener {\r
 \r
     ///\r
     /// Define class Serial Version UID\r
@@ -75,6 +80,12 @@ public class FindResult extends IFrame implements TableModelListener, ComponentL
 \r
     private static FindResult findLibraryClassResult = null;\r
 \r
+    private int selectedRow = -1;\r
+\r
+    private LibraryClassVector lcv = null;\r
+\r
+    private Vector<FindResultId> vLibraryClassFindResult = null;\r
+\r
     /**\r
      * This is the default constructor\r
      */\r
@@ -160,7 +171,9 @@ public class FindResult extends IFrame implements TableModelListener, ComponentL
             jTable.setAutoResizeMode(javax.swing.JTable.AUTO_RESIZE_OFF);\r
             jTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
 \r
+            jTable.getSelectionModel().addListSelectionListener(this);\r
             jTable.getModel().addTableModelListener(this);\r
+            jTable.addMouseListener(this);\r
 \r
             model.addColumn("Name");\r
             model.addColumn("Type");\r
@@ -173,12 +186,7 @@ public class FindResult extends IFrame implements TableModelListener, ComponentL
             jTable.getColumn("Produced by").setCellRenderer(new MyTableCellRenderer());\r
             jTable.getColumn("Consumed by").setCellRenderer(new MyTableCellRenderer());\r
             jTable.getColumn("Declared by").setCellRenderer(new MyTableCellRenderer());\r
-            \r
-//            jTable.getColumn("Name").setPreferredWidth((this.getSize().width - 30) / 5);\r
-//            jTable.getColumn("Type").setPreferredWidth((this.getSize().width - 30) / 5);\r
-//            jTable.getColumn("Produced by").setPreferredWidth((this.getSize().width - 30) / 5);\r
-//            jTable.getColumn("Consumed by").setPreferredWidth((this.getSize().width - 30) / 5);\r
-//            jTable.getColumn("Declared by").setPreferredWidth((this.getSize().width - 30) / 5);\r
+\r
             int columnWidth = (this.getSize().width - 28) / 5;\r
             jTable.getColumn("Name").setPreferredWidth(columnWidth);\r
             jTable.getColumn("Type").setPreferredWidth(columnWidth);\r
@@ -402,29 +410,49 @@ public class FindResult extends IFrame implements TableModelListener, ComponentL
         }\r
 \r
         if (this.method.equals("LIBRARY_CLASS")) {\r
-            Vector<LibraryClassId> vLibraryClass = Find.getAllLibraryClassForFind();\r
-\r
-            if (vLibraryClass.size() > 0) {\r
+            lcv = Find.getAllLibraryClassVector();\r
+            vLibraryClassFindResult = Find.getAllLibraryClassForFind(lcv);\r
 \r
-                for (int index = 0; index < vLibraryClass.size(); index++) {\r
+            if (vLibraryClassFindResult.size() > 0) {\r
+                for (int index = 0; index < vLibraryClassFindResult.size(); index++) {\r
                     Vector<String> v = new Vector<String>();\r
-                    v.addElement(vLibraryClass.elementAt(index).getName());\r
-                    v.addElement(vLibraryClass.elementAt(index).getType());\r
-                    String strProducedModules = vLibraryClass.elementAt(index).getProducedModules();\r
+                    v.addElement(vLibraryClassFindResult.elementAt(index).getName());\r
+                    v.addElement(vLibraryClassFindResult.elementAt(index).getType());\r
+\r
+                    //\r
+                    // Generate Produced Modules List\r
+                    //\r
+                    String strProducedModules = "";\r
+                    Vector<ModuleIdentification> vModule = vLibraryClassFindResult.elementAt(index)\r
+                                                                                  .getProducedModules();\r
+                    for (int indexOfPM = 0; indexOfPM < vModule.size(); indexOfPM++) {\r
+                        strProducedModules = strProducedModules + "<br>"\r
+                                             + vModule.get(indexOfPM).getPackageId().getName() + "."\r
+                                             + vModule.get(indexOfPM).getName();\r
+                    }\r
                     if (strProducedModules.indexOf("<br>") == 0) {\r
                         strProducedModules = strProducedModules.substring("<br>".length());\r
                     }\r
                     int line1 = Tools.getSpecificStringCount(strProducedModules, "<br>");\r
                     v.addElement("<html>" + strProducedModules + "</html>");\r
 \r
-                    String strConsumedModules = vLibraryClass.elementAt(index).getConsumedModules();\r
+                    //\r
+                    // Generate Consumed Modules List\r
+                    //\r
+                    String strConsumedModules = "";\r
+                    vModule = vLibraryClassFindResult.elementAt(index).getConsumedModules();\r
+                    for (int indexOfCM = 0; indexOfCM < vModule.size(); indexOfCM++) {\r
+                        strConsumedModules = strConsumedModules + "<br>"\r
+                                             + vModule.get(indexOfCM).getPackageId().getName() + "."\r
+                                             + vModule.get(indexOfCM).getName();\r
+                    }\r
                     if (strConsumedModules.indexOf("<br>") == 0) {\r
                         strConsumedModules = strConsumedModules.substring("<br>".length());\r
                     }\r
                     int line2 = Tools.getSpecificStringCount(strConsumedModules, "<br>");\r
                     v.addElement("<html>" + strConsumedModules + "</html>");\r
 \r
-                    v.addElement(vLibraryClass.elementAt(index).getDeclaredBy());\r
+                    v.addElement(vLibraryClassFindResult.elementAt(index).getDeclaredBy().getName());\r
 \r
                     model.addRow(v);\r
                     jTable.setRowHeight(index, (Math.max(line1, line2) > 1 ? Math.max(line1, line2) : 1) * 18);\r
@@ -443,9 +471,12 @@ public class FindResult extends IFrame implements TableModelListener, ComponentL
 \r
     }\r
 \r
+    /* (non-Javadoc)\r
+     * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)\r
+     *\r
+     */\r
     public void actionPerformed(ActionEvent arg0) {\r
         if (arg0.getSource() == this.jButtonClose) {\r
-\r
             this.dispose();\r
         }\r
     }\r
@@ -468,6 +499,39 @@ public class FindResult extends IFrame implements TableModelListener, ComponentL
         Tools.resizeTableColumn(this.jTable, this.getSize().width - 28);\r
     }\r
 \r
+    /* (non-Javadoc)\r
+     * @see javax.swing.event.ListSelectionListener#valueChanged(javax.swing.event.ListSelectionEvent)\r
+     *\r
+     */\r
+    public void valueChanged(ListSelectionEvent arg0) {\r
+        if (arg0.getValueIsAdjusting()) {\r
+            return;\r
+        }\r
+        ListSelectionModel lsm = (ListSelectionModel) arg0.getSource();\r
+        if (lsm.isSelectionEmpty()) {\r
+            return;\r
+        } else {\r
+            selectedRow = lsm.getMinSelectionIndex();\r
+        }\r
+    }\r
+\r
+    /* (non-Javadoc)\r
+     * @see java.awt.event.MouseListener#mouseClicked(java.awt.event.MouseEvent)\r
+     *\r
+     */\r
+    public void mouseClicked(MouseEvent arg0) {\r
+        if (arg0.getClickCount() == 2) {\r
+            if (this.selectedRow < 0) {\r
+                return;\r
+            } else {\r
+                if (this.method.equals("LIBRARY_CLASS")) {\r
+                    FindResultDetailInfo frdi = new FindResultDetailInfo(vLibraryClassFindResult.elementAt(selectedRow));\r
+                    frdi.setVisible(true);\r
+                }\r
+            }\r
+        }\r
+    }\r
+\r
     /* (non-Javadoc)\r
      * @see java.awt.event.WindowListener#windowClosing(java.awt.event.WindowEvent)\r
      *\r
@@ -480,7 +544,7 @@ public class FindResult extends IFrame implements TableModelListener, ComponentL
 \r
     class MyTableCellRenderer extends DefaultTableCellRenderer {\r
         ///\r
-        ///\r
+        /// Define Class Serial Version UID\r
         ///\r
         private static final long serialVersionUID = -2082787479305255946L;\r
 \r
@@ -490,4 +554,23 @@ public class FindResult extends IFrame implements TableModelListener, ComponentL
         }\r
     }\r
 \r
+    public void mousePressed(MouseEvent e) {\r
+        // TODO Auto-generated method stub\r
+\r
+    }\r
+\r
+    public void mouseReleased(MouseEvent e) {\r
+        // TODO Auto-generated method stub\r
+\r
+    }\r
+\r
+    public void mouseEntered(MouseEvent e) {\r
+        // TODO Auto-generated method stub\r
+\r
+    }\r
+\r
+    public void mouseExited(MouseEvent e) {\r
+        // TODO Auto-generated method stub\r
+\r
+    }\r
 }\r