fix #382023 [TMF] apply filter programmatically in TmfEventsTable
authorXavier Raynaud <xavier.raynaud@kalray.eu>
Mon, 11 Jun 2012 07:39:44 +0000 (09:39 +0200)
committerXavier Raynaud <xavier.raynaud@kalray.eu>
Mon, 11 Jun 2012 07:39:44 +0000 (09:39 +0200)
org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/viewers/events/TmfEventsTable.java

index 0df48185747ca2039ae9b166fda101ed8f6e2d39..9143e124d6b9998423773d1f1cd72d9359193abd 100644 (file)
@@ -508,8 +508,6 @@ ITmfEventsFilterProvider {
         final IAction clearFiltersAction = new Action(Messages.TmfEventsTable_ClearFiltersActionText) {\r
             @Override\r
             public void run() {\r
-                stopFilterThread();\r
-                stopSearchThread();\r
                 clearFilters();\r
             }\r
         };\r
@@ -582,15 +580,7 @@ ITmfEventsFilterProvider {
                             subMenu.add(new Action(filter.getFilterName()) {\r
                                 @Override\r
                                 public void run() {\r
-                                    stopFilterThread();\r
-                                    fFilterMatchCount = 0;\r
-                                    fFilterCheckCount = 0;\r
-                                    fCache.applyFilter(filter);\r
-                                    fTable.clearAll();\r
-                                    fTable.setData(Key.FILTER_OBJ, filter);\r
-                                    fTable.setItemCount(3); // +1 for header row, +2 for top and bottom filter status rows\r
-                                    startFilterThread();\r
-                                    fireFilterApplied(filter);\r
+                                    applyFilter(filter);\r
                                 }\r
                             });\r
                         }\r
@@ -907,8 +897,8 @@ ITmfEventsFilterProvider {
             }\r
 \r
             private void applyHeader() {\r
-                stopSearchThread();\r
                 if (fHeaderState == HeaderState.SEARCH) {\r
+                    stopSearchThread();\r
                     final TmfFilterAndNode filter = new TmfFilterAndNode(null);\r
                     for (final TableColumn column : fTable.getColumns()) {\r
                         final Object filterObj = column.getData(Key.SEARCH_OBJ);\r
@@ -927,9 +917,6 @@ ITmfEventsFilterProvider {
                         fireSearchApplied(null);\r
                     }\r
                 } else if (fHeaderState == HeaderState.FILTER) {\r
-                    stopFilterThread();\r
-                    fFilterMatchCount = 0;\r
-                    fFilterCheckCount = 0;\r
                     final TmfFilterAndNode filter = new TmfFilterAndNode(null);\r
                     for (final TableColumn column : fTable.getColumns()) {\r
                         final Object filterObj = column.getData(Key.FILTER_OBJ);\r
@@ -938,23 +925,9 @@ ITmfEventsFilterProvider {
                         }\r
                     }\r
                     if (filter.getChildrenCount() > 0) {\r
-                        fCache.applyFilter(filter);\r
-                        fTable.clearAll();\r
-                        fTable.setData(Key.FILTER_OBJ, filter);\r
-                        fTable.setItemCount(3); // +1 for header row, +2 for top and bottom filter status rows\r
-                        startFilterThread();\r
-                        fireFilterApplied(filter);\r
+                        applyFilter(filter);\r
                     } else {\r
-                        fCache.clearFilter();\r
-                        stopFilterThread();\r
-                        fTable.clearAll();\r
-                        fTable.setData(Key.FILTER_OBJ, null);\r
-                        if (fTrace != null) {\r
-                            fTable.setItemCount((int) fTrace.getNbEvents() + 1); // +1 for header row\r
-                        } else {\r
-                            fTable.setItemCount(1); // +1 for header row\r
-                        }\r
-                        fireFilterApplied(null);\r
+                        clearFilters();\r
                     }\r
                 }\r
 \r
@@ -971,9 +944,8 @@ ITmfEventsFilterProvider {
                     stopSearchThread();\r
                     fTable.refresh();\r
                 } else if (e.character == SWT.DEL) {\r
-                    stopFilterThread();\r
-                    stopSearchThread();\r
                     if (fHeaderState == HeaderState.SEARCH) {\r
+                        stopSearchThread();\r
                         for (final TableColumn column : fTable.getColumns()) {\r
                             column.setData(Key.SEARCH_OBJ, null);\r
                             column.setData(Key.SEARCH_TXT, null);\r
@@ -1025,11 +997,26 @@ ITmfEventsFilterProvider {
             }\r
         }\r
     }\r
+    \r
+    protected void applyFilter(ITmfFilter filter) {\r
+       stopFilterThread();\r
+       stopSearchThread();\r
+        fFilterMatchCount = 0;\r
+        fFilterCheckCount = 0;\r
+        fCache.applyFilter(filter);\r
+        fTable.clearAll();\r
+        fTable.setData(Key.FILTER_OBJ, filter);\r
+        fTable.setItemCount(3); // +1 for header row, +2 for top and bottom filter status rows\r
+        startFilterThread();\r
+        fireFilterApplied(filter);\r
+    }\r
 \r
     protected void clearFilters() {\r
         if (fTable.getData(Key.FILTER_OBJ) == null) {\r
             return;\r
         }\r
+        stopFilterThread();\r
+        stopSearchThread();\r
         fCache.clearFilter();\r
         fTable.clearAll();\r
         for (final TableColumn column : fTable.getColumns()) {\r
This page took 0.02789 seconds and 5 git commands to generate.