]> git.proxmox.com Git - mirror_edk2.git/blobdiff - Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdFrameworkModules.java
Add no mouse support for table cell editors.
[mirror_edk2.git] / Tools / Source / FrameworkWizard / src / org / tianocore / frameworkwizard / platform / ui / FpdFrameworkModules.java
index ae74471c21c6dcc0935eb55afa53d19e910601d2..cd9d0dd825a96279970a09fdd5bb269074fd496c 100644 (file)
@@ -38,6 +38,7 @@ import org.tianocore.frameworkwizard.platform.ui.global.WorkspaceProfile;
 import org.tianocore.frameworkwizard.module.Identifications.ModuleIdentification;\r
 \r
 import java.awt.FlowLayout;\r
+import java.awt.event.KeyEvent;\r
 import java.awt.event.MouseEvent;\r
 import java.util.ArrayList;\r
 import java.util.HashMap;\r
@@ -52,6 +53,12 @@ public class FpdFrameworkModules extends IInternalFrame {
      */\r
     private static final long serialVersionUID = 1L;\r
     \r
+    private static final int timeToWait = 3000;\r
+    \r
+    private long savedMs = 0;\r
+    \r
+    String searchField = "";\r
+    \r
     public static final int forceDbgColForFpdModTable = 7;\r
 \r
     static JFrame frame;\r
@@ -309,11 +316,51 @@ public class FpdFrameworkModules extends IInternalFrame {
                     }\r
                 }\r
             });\r
+            jTableAllModules.addKeyListener(new java.awt.event.KeyAdapter() {\r
+                public void keyPressed(java.awt.event.KeyEvent e) {\r
+                    if (e.getKeyCode() == KeyEvent.VK_ENTER) {\r
+                        int selectedRow = jTableAllModules.getSelectedRow();\r
+                        if (selectedRow < 0) {\r
+                            return;\r
+                        }\r
+                        TableSorter sorter = (TableSorter) jTableAllModules.getModel();\r
+                        selectedRow = sorter.getModelRowIndex(selectedRow);\r
+                        addModuleIntoPlatform (selectedRow);\r
+                    }\r
+                }\r
+            });\r
+            \r
+            jTableAllModules.addKeyListener(new java.awt.event.KeyAdapter() {\r
+                public void keyTyped(java.awt.event.KeyEvent e) {\r
+\r
+                    if (System.currentTimeMillis() - savedMs < timeToWait) {\r
+                        searchField += e.getKeyChar();\r
+                    }\r
+                    else {\r
+                        searchField = "" + e.getKeyChar(); \r
+                    }\r
+                    \r
+                    int viewIndex = gotoFoundRow (searchField, (TableSorter) jTableAllModules.getModel());\r
+                    if (viewIndex >= 0){\r
+                        jTableAllModules.changeSelection(viewIndex, 0, false, false);\r
+                    }\r
+                    savedMs = System.currentTimeMillis();\r
+                }\r
+            });\r
             \r
             \r
         }\r
         return jTableAllModules;\r
     }\r
+    \r
+    private int gotoFoundRow (String s, TableSorter model) {\r
+        for (int i = 0; i < model.getRowCount(); ++i) {\r
+            if (model.getValueAt(i, 0) != null && model.getValueAt(i, 0).toString().regionMatches(true, 0, s, 0, s.length())) {\r
+                return model.getViewIndexArray()[i];\r
+            }\r
+        }\r
+        return -1;\r
+    }\r
 \r
     /**\r
      * This method initializes jPanelTopSouth\r
@@ -560,6 +607,38 @@ public class FpdFrameworkModules extends IInternalFrame {
                 }\r
             });\r
             \r
+            jTableFpdModules.addKeyListener(new java.awt.event.KeyAdapter() {\r
+                public void keyPressed(java.awt.event.KeyEvent e) {\r
+                    if (e.getKeyCode() == KeyEvent.VK_ENTER) {\r
+                        int selectedRow = jTableFpdModules.getSelectedRow();\r
+                        if (selectedRow < 0) {\r
+                            return;\r
+                        }\r
+                        TableSorter sorter = (TableSorter) jTableFpdModules.getModel();\r
+                        selectedRow = sorter.getModelRowIndex(selectedRow);\r
+                        showSettingsDlg (selectedRow);\r
+                    }\r
+                }\r
+            });\r
+            \r
+            jTableFpdModules.addKeyListener(new java.awt.event.KeyAdapter() {\r
+                public void keyTyped(java.awt.event.KeyEvent e) {\r
+\r
+                    if (System.currentTimeMillis() - savedMs < timeToWait) {\r
+                        searchField += e.getKeyChar();\r
+                    }\r
+                    else {\r
+                        searchField = "" + e.getKeyChar(); \r
+                    }\r
+                    \r
+                    int viewIndex = gotoFoundRow (searchField, (TableSorter) jTableFpdModules.getModel());\r
+                    if (viewIndex >= 0){\r
+                        jTableFpdModules.changeSelection(viewIndex, 0, false, false);\r
+                    }\r
+                    savedMs = System.currentTimeMillis();\r
+                }\r
+            });\r
+            \r
             jTableFpdModules.getModel().addTableModelListener(this);\r
         }\r
         return jTableFpdModules;\r