final IAction clearFiltersAction = new Action(Messages.TmfEventsTable_ClearFiltersActionText) {\r
@Override\r
public void run() {\r
- stopFilterThread();\r
- stopSearchThread();\r
clearFilters();\r
}\r
};\r
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
}\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
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
}\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
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
}\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