Fix for custom parsers
[deliverable/tracecompass.git] / org.eclipse.linuxtools.tmf.ui / src / org / eclipse / linuxtools / tmf / ui / views / filter / FilterViewer.java
index db8a97f804c65418e06da714f03eacc868e2d2ce..1d15d9dc80f139f5003f4f585fe1a4dcb11962cb 100644 (file)
@@ -17,6 +17,8 @@ import java.util.LinkedHashMap;
 import java.util.Map;\r
 import java.util.Map.Entry;\r
 \r
+import org.eclipse.core.runtime.CoreException;\r
+import org.eclipse.core.runtime.IConfigurationElement;\r
 import org.eclipse.jface.action.Action;\r
 import org.eclipse.jface.action.IMenuListener;\r
 import org.eclipse.jface.action.IMenuManager;\r
@@ -28,6 +30,8 @@ import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.jface.viewers.SelectionChangedEvent;\r
 import org.eclipse.jface.viewers.StructuredSelection;\r
 import org.eclipse.jface.viewers.TreeViewer;\r
+import org.eclipse.linuxtools.tmf.event.TmfEvent;\r
+import org.eclipse.linuxtools.tmf.event.TmfEventType;\r
 import org.eclipse.linuxtools.tmf.filter.model.ITmfFilterTreeNode;\r
 import org.eclipse.linuxtools.tmf.filter.model.TmfFilterAndNode;\r
 import org.eclipse.linuxtools.tmf.filter.model.TmfFilterCompareNode;\r
@@ -40,7 +44,14 @@ import org.eclipse.linuxtools.tmf.filter.model.TmfFilterNode;
 import org.eclipse.linuxtools.tmf.filter.model.TmfFilterOrNode;\r
 import org.eclipse.linuxtools.tmf.filter.model.TmfFilterRootNode;\r
 import org.eclipse.linuxtools.tmf.ui.internal.Messages;\r
-import org.eclipse.linuxtools.tmf.ui.parsers.ParserProviderManager;\r
+import org.eclipse.linuxtools.tmf.ui.parsers.custom.CustomTraceDefinition.OutputColumn;\r
+import org.eclipse.linuxtools.tmf.ui.parsers.custom.CustomTxtEvent;\r
+import org.eclipse.linuxtools.tmf.ui.parsers.custom.CustomTxtTrace;\r
+import org.eclipse.linuxtools.tmf.ui.parsers.custom.CustomTxtTraceDefinition;\r
+import org.eclipse.linuxtools.tmf.ui.parsers.custom.CustomXmlEvent;\r
+import org.eclipse.linuxtools.tmf.ui.parsers.custom.CustomXmlTrace;\r
+import org.eclipse.linuxtools.tmf.ui.parsers.custom.CustomXmlTraceDefinition;\r
+import org.eclipse.linuxtools.tmf.util.TmfTraceType;\r
 import org.eclipse.swt.SWT;\r
 import org.eclipse.swt.custom.SashForm;\r
 import org.eclipse.swt.events.FocusEvent;\r
@@ -64,907 +75,999 @@ import org.eclipse.swt.widgets.TreeItem;
 \r
 class FilterViewer extends Composite {\r
 \r
-       private static final Map<String, Entry<String, String>> EVENT_TYPES_MAP;\r
-       static {\r
-               Map<String, Entry<String, String>> eventTypesMap = new LinkedHashMap<String, Entry<String, String>>();\r
-               for (Entry<String, Map<String, String>> categoryEntry : ParserProviderManager.getParserMap().entrySet()) {\r
-               for (Entry<String, String> parserEntry : categoryEntry.getValue().entrySet()) {\r
-                       String prefix = categoryEntry.getKey() + " - " + parserEntry.getKey() + " - "; //$NON-NLS-1$ //$NON-NLS-2$\r
-                       for (Entry<String, String> eventTypeEntry : ParserProviderManager.getEventTypeMapForParser(parserEntry.getValue()).entrySet()) {\r
-                               eventTypesMap.put(prefix + eventTypeEntry.getKey(), eventTypeEntry);\r
-                       }\r
-               }\r
-               }\r
-               EVENT_TYPES_MAP = eventTypesMap;\r
-       }\r
-       \r
-       private static final String[] FIELDS_LIST;\r
-       static {\r
-               ArrayList<String> fieldsList = new ArrayList<String>();\r
-               for (Entry<String, Map<String, String>> categoryEntry : ParserProviderManager.getParserMap().entrySet()) {\r
-                       for (Entry<String, String> parserEntry : categoryEntry.getValue().entrySet()) {\r
-                               fieldsList.add(""); //$NON-NLS-1$\r
-                               fieldsList.add("["+ categoryEntry.getKey() +" - " + parserEntry.getKey() +"]"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$\r
-                               for (String eventType : ParserProviderManager.getEventTypeMapForParser(parserEntry.getValue()).values()) {\r
-                                       for (String field : ParserProviderManager.getFieldLabelsForEventType(eventType)) {\r
-                                               fieldsList.add(field);\r
-                                       }\r
-                               }\r
-                       }\r
-               }\r
-               FIELDS_LIST = fieldsList.toArray(new String[0]);\r
-       }\r
-       \r
+    private static final String CUSTOM_TXT_CATEGORY = "Custom Text"; //$NON-NLS-1$\r
+    private static final String CUSTOM_XML_CATEGORY = "Custom XML"; //$NON-NLS-1$\r
+\r
     private TreeViewer fViewer;\r
     private Composite fComposite;\r
     \r
-       public FilterViewer(Composite parent, int style) {\r
-               super(parent, style);\r
+    public FilterViewer(Composite parent, int style) {\r
+        super(parent, style);\r
 \r
-               setLayout(new FillLayout());\r
-               GridData gd = new GridData(SWT.FILL, SWT.FILL, true, true);\r
-               setLayoutData(gd);\r
-               \r
+        setLayout(new FillLayout());\r
+        GridData gd = new GridData(SWT.FILL, SWT.FILL, true, true);\r
+        setLayoutData(gd);\r
+        \r
         final SashForm sash = new SashForm(this, SWT.HORIZONTAL);\r
 \r
-           // Create the tree viewer to display the filter tree\r
-               fViewer = new TreeViewer(sash, SWT.NONE);\r
-               fViewer.setContentProvider(new FilterTreeContentProvider());\r
-               fViewer.setLabelProvider(new FilterTreeLabelProvider());\r
-               fViewer.setInput(new TmfFilterRootNode());\r
-               \r
-               // Create the empty filter node properties panel\r
-               fComposite = new Composite(sash, SWT.NONE);\r
-               GridLayout gl = new GridLayout();\r
-               gl.marginHeight = 0;\r
-               gl.marginWidth = 0;\r
-               fComposite.setLayout(gl);\r
+        // Create the tree viewer to display the filter tree\r
+        fViewer = new TreeViewer(sash, SWT.NONE);\r
+        fViewer.setContentProvider(new FilterTreeContentProvider());\r
+        fViewer.setLabelProvider(new FilterTreeLabelProvider());\r
+        fViewer.setInput(new TmfFilterRootNode());\r
+        \r
+        // Create the empty filter node properties panel\r
+        fComposite = new Composite(sash, SWT.NONE);\r
+        GridLayout gl = new GridLayout();\r
+        gl.marginHeight = 0;\r
+        gl.marginWidth = 0;\r
+        fComposite.setLayout(gl);\r
 \r
-               createContextMenu();\r
-               \r
-               fViewer.addSelectionChangedListener(new ISelectionChangedListener() {\r
-                       @Override\r
+        createContextMenu();\r
+        \r
+        fViewer.addSelectionChangedListener(new ISelectionChangedListener() {\r
+            @Override\r
             public void selectionChanged(SelectionChangedEvent event) {\r
-                               if (!(event.getSelection().isEmpty()) && event.getSelection() instanceof IStructuredSelection) {\r
-                                       // Update the filter node properties panel to the selection\r
-                                       IStructuredSelection selection = (IStructuredSelection) event.getSelection();\r
-                                       ITmfFilterTreeNode node = (ITmfFilterTreeNode) selection.getFirstElement();\r
-                                       updateFilterNodeComposite(node);\r
-                                       // Highlight the selection's children\r
-                                       highlightTreeItems(fViewer.getTree().getSelection()[0].getItems());\r
-                               } else {\r
-                                       updateFilterNodeComposite(null);\r
-                               }\r
-                       }\r
-               });\r
-       }\r
-       \r
-       /**\r
-        * Create the context menu for the tree viewer\r
-        */\r
-       private void createContextMenu() {\r
-               // Adds root context menu\r
-               MenuManager menuManager = new MenuManager();\r
-               menuManager.setRemoveAllWhenShown(true);\r
-               menuManager.addMenuListener(new IMenuListener() {\r
-                       @Override\r
+                if (!(event.getSelection().isEmpty()) && event.getSelection() instanceof IStructuredSelection) {\r
+                    // Update the filter node properties panel to the selection\r
+                    IStructuredSelection selection = (IStructuredSelection) event.getSelection();\r
+                    ITmfFilterTreeNode node = (ITmfFilterTreeNode) selection.getFirstElement();\r
+                    updateFilterNodeComposite(node);\r
+                    // Highlight the selection's children\r
+                    highlightTreeItems(fViewer.getTree().getSelection()[0].getItems());\r
+                } else {\r
+                    updateFilterNodeComposite(null);\r
+                }\r
+            }\r
+        });\r
+    }\r
+    \r
+    /**\r
+     * Create the context menu for the tree viewer\r
+     */\r
+    private void createContextMenu() {\r
+        // Adds root context menu\r
+        MenuManager menuManager = new MenuManager();\r
+        menuManager.setRemoveAllWhenShown(true);\r
+        menuManager.addMenuListener(new IMenuListener() {\r
+            @Override\r
             public void menuAboutToShow(IMenuManager manager) {\r
-                               fillContextMenu(manager);\r
-                       }\r
-               });\r
+                fillContextMenu(manager);\r
+            }\r
+        });\r
 \r
-               // Context\r
-               Menu contextMenu = menuManager.createContextMenu(fViewer.getTree());\r
+        // Context\r
+        Menu contextMenu = menuManager.createContextMenu(fViewer.getTree());\r
 \r
-               // Publish it\r
-               fViewer.getTree().setMenu(contextMenu);\r
-       }\r
-       \r
-       /**\r
-        * Fill the context menu for the tree viewer\r
-        */\r
-       protected void fillContextMenu(IMenuManager manager) {\r
-               final ISelection selection = fViewer.getSelection();\r
-               ITmfFilterTreeNode filterTreeNode = null;\r
-               if (selection instanceof StructuredSelection) {\r
-                       Object element = ((StructuredSelection) selection).getFirstElement();\r
-                       if (element instanceof ITmfFilterTreeNode) {\r
-                               filterTreeNode = (ITmfFilterTreeNode) element;\r
-                       }\r
-               }\r
+        // Publish it\r
+        fViewer.getTree().setMenu(contextMenu);\r
+    }\r
+    \r
+    /**\r
+     * Fill the context menu for the tree viewer\r
+     */\r
+    protected void fillContextMenu(IMenuManager manager) {\r
+        final ISelection selection = fViewer.getSelection();\r
+        ITmfFilterTreeNode filterTreeNode = null;\r
+        if (selection instanceof StructuredSelection) {\r
+            Object element = ((StructuredSelection) selection).getFirstElement();\r
+            if (element instanceof ITmfFilterTreeNode) {\r
+                filterTreeNode = (ITmfFilterTreeNode) element;\r
+            }\r
+        }\r
 \r
-               final ITmfFilterTreeNode selectedNode = filterTreeNode;\r
-               \r
-               if (selectedNode != null) {\r
-                       \r
-                       fillContextMenuForNode(selectedNode, manager);\r
-                       \r
-                       if (selectedNode.getValidChildren().size() > 0) {\r
-                               manager.add(new Separator());\r
-                       }\r
+        final ITmfFilterTreeNode selectedNode = filterTreeNode;\r
+        \r
+        if (selectedNode != null) {\r
+            \r
+            fillContextMenuForNode(selectedNode, manager);\r
+            \r
+            if (selectedNode.getValidChildren().size() > 0) {\r
+                manager.add(new Separator());\r
+            }\r
 \r
-                       Action deleteAction = new Action() {\r
-                               @Override\r
-                               public void run() {\r
-                                       selectedNode.remove();\r
-                                       fViewer.refresh();\r
-                               }\r
-                       };\r
-                       deleteAction.setText(Messages.FilterViewer_DeleteActionText);\r
-                       manager.add(deleteAction);\r
-                       \r
-                       manager.add(new Separator());\r
-               }\r
+            Action deleteAction = new Action() {\r
+                @Override\r
+                public void run() {\r
+                    selectedNode.remove();\r
+                    fViewer.refresh();\r
+                }\r
+            };\r
+            deleteAction.setText(Messages.FilterViewer_DeleteActionText);\r
+            manager.add(deleteAction);\r
+            \r
+            manager.add(new Separator());\r
+        }\r
 \r
-               if (fViewer.getInput() instanceof TmfFilterRootNode || selectedNode == null) {\r
-                       final ITmfFilterTreeNode root = (ITmfFilterTreeNode) fViewer.getInput();\r
-                       \r
-                       fillContextMenuForNode(root, manager);\r
-               }\r
-       }\r
-       \r
-       /**\r
-        * Fill the context menu with the valid children of the provided node\r
-        */\r
-       protected void fillContextMenuForNode(final ITmfFilterTreeNode node, IMenuManager manager) {\r
-               for (final String child : node.getValidChildren()) {\r
-                       final Action action = new Action() {\r
-                               @Override\r
-                               public void run() {\r
-                                       ITmfFilterTreeNode newNode = null;\r
-                                       if (TmfFilterNode.NODE_NAME.equals(child)) {\r
-                                               newNode = new TmfFilterNode(node, ""); //$NON-NLS-1$\r
-                                       } else if (TmfFilterEventTypeNode.NODE_NAME.equals(child)) {\r
-                                               newNode = new TmfFilterEventTypeNode(node);\r
-                                       } else if (TmfFilterAndNode.NODE_NAME.equals(child)) {\r
-                                               newNode = new TmfFilterAndNode(node);\r
-                                       } else if (TmfFilterOrNode.NODE_NAME.equals(child)) {\r
-                                               newNode = new TmfFilterOrNode(node);\r
-                                       } else if (TmfFilterContainsNode.NODE_NAME.equals(child)) {\r
-                                               newNode = new TmfFilterContainsNode(node);\r
-                                       } else if (TmfFilterEqualsNode.NODE_NAME.equals(child)) {\r
-                                               newNode = new TmfFilterEqualsNode(node);\r
-                                       } else if (TmfFilterMatchesNode.NODE_NAME.equals(child)) {\r
-                                               newNode = new TmfFilterMatchesNode(node);\r
-                                       } else if (TmfFilterCompareNode.NODE_NAME.equals(child)) {\r
-                                               newNode = new TmfFilterCompareNode(node);\r
-                                       }\r
-                                       if (newNode != null) {\r
-                                               fViewer.refresh();\r
-                                               fViewer.setSelection(new StructuredSelection(newNode), true);\r
-                                       }\r
-                               }\r
-                       };\r
-                       if (TmfFilterNode.NODE_NAME.equals(child)) {\r
-                               action.setText(Messages.FilterViewer_NewPrefix + " " + child); //$NON-NLS-1$\r
-                       } else {\r
-                               action.setText(child);\r
-                       }\r
-                       manager.add(action);\r
-               }\r
-       }\r
-       \r
-       /**\r
-        * Create the appropriate filter node properties composite\r
-        */\r
-       private void updateFilterNodeComposite(ITmfFilterTreeNode node) {\r
-               for (Control control : fComposite.getChildren()) {\r
-                       control.dispose();\r
-               }\r
-               \r
-               if (node instanceof TmfFilterNode) {\r
-                       new FilterNodeComposite(fComposite, (TmfFilterNode) node);\r
-               } else if (node instanceof TmfFilterEventTypeNode) {\r
-                       new FilterEventTypeNodeComposite(fComposite, (TmfFilterEventTypeNode) node);\r
-               } else if (node instanceof TmfFilterAndNode) {\r
-                       new FilterAndNodeComposite(fComposite, (TmfFilterAndNode) node);\r
-               } else if (node instanceof TmfFilterOrNode) {\r
-                       new FilterOrNodeComposite(fComposite, (TmfFilterOrNode) node);\r
-               } else if (node instanceof TmfFilterContainsNode) {\r
-                       new FilterContainsNodeComposite(fComposite, (TmfFilterContainsNode) node);\r
-               } else if (node instanceof TmfFilterEqualsNode) {\r
-                       new FilterEqualsNodeComposite(fComposite, (TmfFilterEqualsNode) node);\r
-               } else if (node instanceof TmfFilterMatchesNode) {\r
-                       new FilterMatchesNodeComposite(fComposite, (TmfFilterMatchesNode) node);\r
-               } else if (node instanceof TmfFilterCompareNode) {\r
-                       new FilterCompareNodeComposite(fComposite, (TmfFilterCompareNode) node);\r
-               } else {\r
-                       new FilterBaseNodeComposite(fComposite);\r
-               }\r
-               fComposite.layout();\r
-       }\r
-       \r
-       /**\r
-        * Highlight the provided tree items\r
-        */\r
-       private void highlightTreeItems(TreeItem[] items) {\r
-               resetTreeItems(fViewer.getTree().getItems());\r
-               for (TreeItem item : items) {\r
-                       item.setForeground(Display.getCurrent().getSystemColor(SWT.COLOR_BLUE));\r
-               }\r
+        if (fViewer.getInput() instanceof TmfFilterRootNode || selectedNode == null) {\r
+            final ITmfFilterTreeNode root = (ITmfFilterTreeNode) fViewer.getInput();\r
+            \r
+            fillContextMenuForNode(root, manager);\r
+        }\r
+    }\r
+    \r
+    /**\r
+     * Fill the context menu with the valid children of the provided node\r
+     */\r
+    protected void fillContextMenuForNode(final ITmfFilterTreeNode node, IMenuManager manager) {\r
+        for (final String child : node.getValidChildren()) {\r
+            final Action action = new Action() {\r
+                @Override\r
+                public void run() {\r
+                    ITmfFilterTreeNode newNode = null;\r
+                    if (TmfFilterNode.NODE_NAME.equals(child)) {\r
+                        newNode = new TmfFilterNode(node, ""); //$NON-NLS-1$\r
+                    } else if (TmfFilterEventTypeNode.NODE_NAME.equals(child)) {\r
+                        newNode = new TmfFilterEventTypeNode(node);\r
+                    } else if (TmfFilterAndNode.NODE_NAME.equals(child)) {\r
+                        newNode = new TmfFilterAndNode(node);\r
+                    } else if (TmfFilterOrNode.NODE_NAME.equals(child)) {\r
+                        newNode = new TmfFilterOrNode(node);\r
+                    } else if (TmfFilterContainsNode.NODE_NAME.equals(child)) {\r
+                        newNode = new TmfFilterContainsNode(node);\r
+                    } else if (TmfFilterEqualsNode.NODE_NAME.equals(child)) {\r
+                        newNode = new TmfFilterEqualsNode(node);\r
+                    } else if (TmfFilterMatchesNode.NODE_NAME.equals(child)) {\r
+                        newNode = new TmfFilterMatchesNode(node);\r
+                    } else if (TmfFilterCompareNode.NODE_NAME.equals(child)) {\r
+                        newNode = new TmfFilterCompareNode(node);\r
+                    }\r
+                    if (newNode != null) {\r
+                        fViewer.refresh();\r
+                        fViewer.setSelection(new StructuredSelection(newNode), true);\r
+                    }\r
+                }\r
+            };\r
+            if (TmfFilterNode.NODE_NAME.equals(child)) {\r
+                action.setText(Messages.FilterViewer_NewPrefix + " " + child); //$NON-NLS-1$\r
+            } else {\r
+                action.setText(child);\r
+            }\r
+            manager.add(action);\r
+        }\r
+    }\r
+    \r
+    /**\r
+     * Create the appropriate filter node properties composite\r
+     */\r
+    private void updateFilterNodeComposite(ITmfFilterTreeNode node) {\r
+        for (Control control : fComposite.getChildren()) {\r
+            control.dispose();\r
+        }\r
+        \r
+        if (node instanceof TmfFilterNode) {\r
+            new FilterNodeComposite(fComposite, (TmfFilterNode) node);\r
+        } else if (node instanceof TmfFilterEventTypeNode) {\r
+            new FilterEventTypeNodeComposite(fComposite, (TmfFilterEventTypeNode) node);\r
+        } else if (node instanceof TmfFilterAndNode) {\r
+            new FilterAndNodeComposite(fComposite, (TmfFilterAndNode) node);\r
+        } else if (node instanceof TmfFilterOrNode) {\r
+            new FilterOrNodeComposite(fComposite, (TmfFilterOrNode) node);\r
+        } else if (node instanceof TmfFilterContainsNode) {\r
+            new FilterContainsNodeComposite(fComposite, (TmfFilterContainsNode) node);\r
+        } else if (node instanceof TmfFilterEqualsNode) {\r
+            new FilterEqualsNodeComposite(fComposite, (TmfFilterEqualsNode) node);\r
+        } else if (node instanceof TmfFilterMatchesNode) {\r
+            new FilterMatchesNodeComposite(fComposite, (TmfFilterMatchesNode) node);\r
+        } else if (node instanceof TmfFilterCompareNode) {\r
+            new FilterCompareNodeComposite(fComposite, (TmfFilterCompareNode) node);\r
+        } else {\r
+            new FilterBaseNodeComposite(fComposite);\r
+        }\r
+        fComposite.layout();\r
+    }\r
+    \r
+    /**\r
+     * Highlight the provided tree items\r
+     */\r
+    private void highlightTreeItems(TreeItem[] items) {\r
+        resetTreeItems(fViewer.getTree().getItems());\r
+        for (TreeItem item : items) {\r
+            item.setForeground(Display.getCurrent().getSystemColor(SWT.COLOR_BLUE));\r
+        }\r
 \r
-       }\r
-       \r
-       /**\r
-        * Reset the provided tree items (remove highlight)\r
-        */\r
-       private void resetTreeItems(TreeItem[] items) {\r
-               for (TreeItem item : items) {\r
-                       item.setForeground(Display.getCurrent().getSystemColor(SWT.COLOR_BLACK));\r
-                       resetTreeItems(item.getItems());\r
-               }\r
-       }\r
-       \r
-       public void setInput(ITmfFilterTreeNode root) {\r
-               fViewer.setInput(root);\r
-               fViewer.expandAll();\r
-               \r
-               updateFilterNodeComposite(null);\r
-       }\r
-       \r
-       public ITmfFilterTreeNode getInput() {\r
-               return (ITmfFilterTreeNode) fViewer.getInput();\r
-       }\r
-       \r
-       public void refresh() {\r
-               fViewer.refresh();\r
-       }\r
+    }\r
+    \r
+    /**\r
+     * Reset the provided tree items (remove highlight)\r
+     */\r
+    private void resetTreeItems(TreeItem[] items) {\r
+        for (TreeItem item : items) {\r
+            item.setForeground(Display.getCurrent().getSystemColor(SWT.COLOR_BLACK));\r
+            resetTreeItems(item.getItems());\r
+        }\r
+    }\r
+    \r
+    public void setInput(ITmfFilterTreeNode root) {\r
+        fViewer.setInput(root);\r
+        fViewer.expandAll();\r
+        \r
+        updateFilterNodeComposite(null);\r
+    }\r
+    \r
+    public ITmfFilterTreeNode getInput() {\r
+        return (ITmfFilterTreeNode) fViewer.getInput();\r
+    }\r
+    \r
+    public void refresh() {\r
+        fViewer.refresh();\r
+    }\r
 \r
-       public void setSelection(ITmfFilterTreeNode node, boolean reveal) {\r
-               fViewer.setSelection(new StructuredSelection(node), reveal);\r
-       }\r
+    public void setSelection(ITmfFilterTreeNode node, boolean reveal) {\r
+        fViewer.setSelection(new StructuredSelection(node), reveal);\r
+    }\r
 \r
-       public void setSelection(ITmfFilterTreeNode node) {\r
-               fViewer.setSelection(new StructuredSelection(node));\r
-       }\r
-       \r
-       public ITmfFilterTreeNode getSelection() {\r
-               final ISelection selection = fViewer.getSelection();\r
-               ITmfFilterTreeNode filterTreeNode = null;\r
-               if (selection instanceof StructuredSelection) {\r
-                       Object element = ((StructuredSelection) selection).getFirstElement();\r
-                       if (element instanceof ITmfFilterTreeNode) {\r
-                               filterTreeNode = (ITmfFilterTreeNode) element;\r
-                       }\r
-               }\r
+    public void setSelection(ITmfFilterTreeNode node) {\r
+        fViewer.setSelection(new StructuredSelection(node));\r
+    }\r
+    \r
+    public ITmfFilterTreeNode getSelection() {\r
+        final ISelection selection = fViewer.getSelection();\r
+        ITmfFilterTreeNode filterTreeNode = null;\r
+        if (selection instanceof StructuredSelection) {\r
+            Object element = ((StructuredSelection) selection).getFirstElement();\r
+            if (element instanceof ITmfFilterTreeNode) {\r
+                filterTreeNode = (ITmfFilterTreeNode) element;\r
+            }\r
+        }\r
 \r
-               final ITmfFilterTreeNode selectedNode = filterTreeNode;\r
-               return selectedNode;\r
-       }\r
-       \r
-       public void addSelectionChangedListener(ISelectionChangedListener listener) {\r
-               fViewer.addSelectionChangedListener(listener);\r
-       }\r
-       \r
-       public void removeSelectionChangedListener(ISelectionChangedListener listener) {\r
-               fViewer.removeSelectionChangedListener(listener);\r
-       }\r
-       \r
-       private class FilterBaseNodeComposite extends Composite {\r
-               \r
-               FilterBaseNodeComposite(Composite parent) {\r
-                       super(parent, SWT.NONE);\r
-                       setLayout(new GridLayout(2, false));\r
-                       setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));\r
-                       setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));\r
-               }\r
-               \r
-               protected String[] getFieldsList(ITmfFilterTreeNode node) {\r
-                       while (node != null) {\r
-                               if (node instanceof TmfFilterEventTypeNode) {\r
-                                       TmfFilterEventTypeNode eventTypeNode = (TmfFilterEventTypeNode) node;\r
-                                       return ParserProviderManager.getFieldLabelsForEventType(eventTypeNode.getEventType());\r
-                               }\r
-                               node = node.getParent();\r
-                       }\r
-                       return FIELDS_LIST;\r
-               }\r
-       }\r
+        final ITmfFilterTreeNode selectedNode = filterTreeNode;\r
+        return selectedNode;\r
+    }\r
+    \r
+    public void addSelectionChangedListener(ISelectionChangedListener listener) {\r
+        fViewer.addSelectionChangedListener(listener);\r
+    }\r
+    \r
+    public void removeSelectionChangedListener(ISelectionChangedListener listener) {\r
+        fViewer.removeSelectionChangedListener(listener);\r
+    }\r
+    \r
+    private class FilterBaseNodeComposite extends Composite {\r
+        \r
+        FilterBaseNodeComposite(Composite parent) {\r
+            super(parent, SWT.NONE);\r
+            setLayout(new GridLayout(2, false));\r
+            setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));\r
+            setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));\r
+        }\r
+        \r
+        protected String[] getFieldsList(ITmfFilterTreeNode node) {\r
+            ArrayList<String> fieldsList = new ArrayList<String>();\r
+            while (node != null) {\r
+                if (node instanceof TmfFilterEventTypeNode) {\r
+                    TmfFilterEventTypeNode eventTypeNode = (TmfFilterEventTypeNode) node;\r
+                    for (IConfigurationElement ce : TmfTraceType.getTypeElements()) {\r
+                        if (ce.getAttribute(TmfTraceType.EVENT_TYPE_ATTR).equals(eventTypeNode.getEventType())) {\r
+                            try {\r
+                                TmfEvent event = (TmfEvent) ce.createExecutableExtension(TmfTraceType.EVENT_TYPE_ATTR);\r
+                                TmfEventType eventType = event.getType();\r
+                                if (eventType != null) {\r
+                                    for (String field : eventType.getLabels()) {\r
+                                        fieldsList.add(field);\r
+                                    }\r
+                                }\r
+                            } catch (CoreException e) {\r
+                            }\r
+                            return fieldsList.toArray(new String[0]);\r
+                        }\r
+                    }\r
+                    if (eventTypeNode.getEventType().startsWith(CustomTxtEvent.class.getCanonicalName())) {\r
+                        for (CustomTxtTraceDefinition def : CustomTxtTraceDefinition.loadAll()) {\r
+                            if (eventTypeNode.getEventType().equals(CustomTxtEvent.class.getCanonicalName() + ":" + def.definitionName)) { //$NON-NLS-1$\r
+                                for (OutputColumn output : def.outputs) {\r
+                                    fieldsList.add(output.name);\r
+                                }\r
+                                return fieldsList.toArray(new String[0]);\r
+                            }\r
+                        }\r
+                    }\r
+                    if (eventTypeNode.getEventType().startsWith(CustomXmlEvent.class.getCanonicalName())) {\r
+                        for (CustomXmlTraceDefinition def : CustomXmlTraceDefinition.loadAll()) {\r
+                            if (eventTypeNode.getEventType().equals(CustomXmlEvent.class.getCanonicalName() + ":" + def.definitionName)) { //$NON-NLS-1$\r
+                                for (OutputColumn output : def.outputs) {\r
+                                    fieldsList.add(output.name);\r
+                                }\r
+                                return fieldsList.toArray(new String[0]);\r
+                            }\r
+                        }\r
+                    }\r
+                }\r
+                node = node.getParent();\r
+            }\r
+            for (IConfigurationElement ce : TmfTraceType.getTypeElements()) {\r
+                try {\r
+                    TmfEvent event = (TmfEvent) ce.createExecutableExtension(TmfTraceType.EVENT_TYPE_ATTR);\r
+                    TmfEventType eventType = event.getType();\r
+                    if (eventType != null) {\r
+                        fieldsList.add("[" + TmfTraceType.getCategoryName(ce.getAttribute(TmfTraceType.CATEGORY_ATTR)) + //$NON-NLS-1$\r
+                                " : " + ce.getAttribute(TmfTraceType.NAME_ATTR) + "]"); //$NON-NLS-1$ //$NON-NLS-2$\r
+                        for (String field : eventType.getLabels()) {\r
+                            fieldsList.add(field);\r
+                        }\r
+                        fieldsList.add(""); //$NON-NLS-1$\r
+                    }\r
+                } catch (CoreException e) {\r
+                }\r
+            }\r
+            for (CustomTxtTraceDefinition def : CustomTxtTraceDefinition.loadAll()) {\r
+                fieldsList.add("[" + CUSTOM_TXT_CATEGORY + //$NON-NLS-1$\r
+                        " : " + def.definitionName + "]"); //$NON-NLS-1$ //$NON-NLS-2$\r
+                for (OutputColumn output : def.outputs) {\r
+                    fieldsList.add(output.name);\r
+                }\r
+                fieldsList.add(""); //$NON-NLS-1$\r
+            }\r
+            for (CustomXmlTraceDefinition def : CustomXmlTraceDefinition.loadAll()) {\r
+                fieldsList.add("[" + CUSTOM_XML_CATEGORY + //$NON-NLS-1$\r
+                        " : " + def.definitionName + "]"); //$NON-NLS-1$ //$NON-NLS-2$\r
+                for (OutputColumn output : def.outputs) {\r
+                    fieldsList.add(output.name);\r
+                }\r
+                fieldsList.add(""); //$NON-NLS-1$\r
+            }\r
+            return fieldsList.toArray(new String[0]);\r
+        }\r
+    }\r
 \r
-       private class FilterNodeComposite extends FilterBaseNodeComposite {\r
-               TmfFilterNode fNode;\r
-               Text fNameText;\r
-               \r
-               FilterNodeComposite(Composite parent, TmfFilterNode node) {\r
-                       super(parent);\r
-                       fNode = node;\r
-                       \r
-                       Label label = new Label(this, SWT.NONE);\r
-                       label.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));\r
-                       label.setText(Messages.FilterViewer_NameLabel);\r
-                       \r
-                       fNameText = new Text(this, SWT.BORDER);\r
-                       fNameText.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));\r
-                       if (node.getFilterName() != null && node.getFilterName().length() > 0) {\r
-                               fNameText.setText(node.getFilterName());\r
-                       } else {\r
-                               fNameText.setForeground(Display.getCurrent().getSystemColor(SWT.COLOR_GRAY));\r
-                               fNameText.setText(Messages.FilterViewer_FilterNameHint);\r
-                       }\r
-                       fNameText.addFocusListener(new FocusListener() {\r
-                               @Override\r
+    private class FilterNodeComposite extends FilterBaseNodeComposite {\r
+        TmfFilterNode fNode;\r
+        Text fNameText;\r
+        \r
+        FilterNodeComposite(Composite parent, TmfFilterNode node) {\r
+            super(parent);\r
+            fNode = node;\r
+            \r
+            Label label = new Label(this, SWT.NONE);\r
+            label.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));\r
+            label.setText(Messages.FilterViewer_NameLabel);\r
+            \r
+            fNameText = new Text(this, SWT.BORDER);\r
+            fNameText.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));\r
+            if (node.getFilterName() != null && node.getFilterName().length() > 0) {\r
+                fNameText.setText(node.getFilterName());\r
+            } else {\r
+                fNameText.setForeground(Display.getCurrent().getSystemColor(SWT.COLOR_GRAY));\r
+                fNameText.setText(Messages.FilterViewer_FilterNameHint);\r
+            }\r
+            fNameText.addFocusListener(new FocusListener() {\r
+                @Override\r
                 public void focusLost(FocusEvent e) {\r
-                                       if (fNode.getFilterName() == null || fNode.getFilterName().length() == 0) {\r
-                                               fNameText.setForeground(Display.getCurrent().getSystemColor(SWT.COLOR_GRAY));\r
-                                               fNameText.setText(Messages.FilterViewer_FilterNameHint);\r
-                                       }\r
-                               }\r
-                               @Override\r
+                    if (fNode.getFilterName() == null || fNode.getFilterName().length() == 0) {\r
+                        fNameText.setForeground(Display.getCurrent().getSystemColor(SWT.COLOR_GRAY));\r
+                        fNameText.setText(Messages.FilterViewer_FilterNameHint);\r
+                    }\r
+                }\r
+                @Override\r
                 public void focusGained(FocusEvent e) {\r
-                                       if (fNameText.getForeground().equals(Display.getCurrent().getSystemColor(SWT.COLOR_GRAY))) {\r
-                                               fNameText.setText(""); //$NON-NLS-1$\r
-                                       }\r
-                                       fNameText.setForeground(Display.getCurrent().getSystemColor(SWT.COLOR_BLACK));\r
-                               }\r
-                       });\r
-                       fNameText.addModifyListener(new ModifyListener() {\r
-                               @Override\r
+                    if (fNameText.getForeground().equals(Display.getCurrent().getSystemColor(SWT.COLOR_GRAY))) {\r
+                        fNameText.setText(""); //$NON-NLS-1$\r
+                    }\r
+                    fNameText.setForeground(Display.getCurrent().getSystemColor(SWT.COLOR_BLACK));\r
+                }\r
+            });\r
+            fNameText.addModifyListener(new ModifyListener() {\r
+                @Override\r
                 public void modifyText(ModifyEvent e) {\r
-                                       if (! fNameText.getForeground().equals(Display.getCurrent().getSystemColor(SWT.COLOR_GRAY))) {\r
-                                               fNode.setFilterName(fNameText.getText());\r
-                                               fViewer.refresh(fNode);\r
-                                       }\r
-                               }\r
-                       });\r
-               }\r
-       }\r
+                    if (! fNameText.getForeground().equals(Display.getCurrent().getSystemColor(SWT.COLOR_GRAY))) {\r
+                        fNode.setFilterName(fNameText.getText());\r
+                        fViewer.refresh(fNode);\r
+                    }\r
+                }\r
+            });\r
+        }\r
+    }\r
 \r
-       private class FilterEventTypeNodeComposite extends FilterBaseNodeComposite {\r
-               TmfFilterEventTypeNode fNode;\r
-               Combo fTypeCombo;\r
-               \r
-               FilterEventTypeNodeComposite(Composite parent, TmfFilterEventTypeNode node) {\r
-                       super(parent);\r
-                       fNode = node;\r
+    private class FilterEventTypeNodeComposite extends FilterBaseNodeComposite {\r
+        TmfFilterEventTypeNode fNode;\r
+        Combo fTypeCombo;\r
+        Map<String, Object> fEventsTypeMap;\r
+        \r
+        FilterEventTypeNodeComposite(Composite parent, TmfFilterEventTypeNode node) {\r
+            super(parent);\r
+            fNode = node;\r
+            fEventsTypeMap = getEventsTypeMap();\r
 \r
-                       Label label = new Label(this, SWT.NONE);\r
-                       label.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));\r
-                       label.setText(Messages.FilterViewer_TypeLabel);\r
-                       \r
-                       fTypeCombo = new Combo(this, SWT.DROP_DOWN | SWT.READ_ONLY);\r
-                       fTypeCombo.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));\r
-                       fTypeCombo.setItems(EVENT_TYPES_MAP.keySet().toArray(new String[0]));\r
-                       if (fNode.getEventType() != null) {\r
-                               for (Entry <String, Entry<String, String>> eventTypeEntry : EVENT_TYPES_MAP.entrySet()) {\r
-                                       if (eventTypeEntry.getValue().getValue().equals(fNode.getEventType())) {\r
-                                               fTypeCombo.setText(eventTypeEntry.getKey());\r
-                                       }\r
-                               }\r
-                       }\r
-                       fTypeCombo.addModifyListener(new ModifyListener() {\r
-                               @Override\r
+            Label label = new Label(this, SWT.NONE);\r
+            label.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));\r
+            label.setText(Messages.FilterViewer_TypeLabel);\r
+            \r
+            fTypeCombo = new Combo(this, SWT.DROP_DOWN | SWT.READ_ONLY);\r
+            fTypeCombo.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));\r
+            fTypeCombo.setItems(fEventsTypeMap.keySet().toArray(new String[0]));\r
+            if (fNode.getEventType() != null) {\r
+                for (Entry <String, Object> eventTypeEntry : fEventsTypeMap.entrySet()) {\r
+                    Object value = eventTypeEntry.getValue();\r
+                    if (value instanceof IConfigurationElement) {\r
+                        IConfigurationElement ce = (IConfigurationElement) value;\r
+                        if (ce.getAttribute(TmfTraceType.EVENT_TYPE_ATTR).equals(fNode.getEventType())) {\r
+                            fTypeCombo.setText(eventTypeEntry.getKey());\r
+                        }\r
+                    } else if (value instanceof CustomTxtTraceDefinition) {\r
+                        CustomTxtTraceDefinition def = (CustomTxtTraceDefinition) value;\r
+                        String eventType = CustomTxtEvent.class.getCanonicalName() + ":" + def.definitionName; //$NON-NLS-1$\r
+                        if (eventType.equals(fNode.getEventType())) {\r
+                            fTypeCombo.setText(eventTypeEntry.getKey());\r
+                        }\r
+                    } else if (value instanceof CustomXmlTraceDefinition) {\r
+                        CustomXmlTraceDefinition def = (CustomXmlTraceDefinition) value;\r
+                        String eventType = CustomXmlEvent.class.getCanonicalName() + ":" + def.definitionName; //$NON-NLS-1$\r
+                        if (eventType.equals(fNode.getEventType())) {\r
+                            fTypeCombo.setText(eventTypeEntry.getKey());\r
+                        }\r
+                    }\r
+                }\r
+            }\r
+            fTypeCombo.addModifyListener(new ModifyListener() {\r
+                @Override\r
                 public void modifyText(ModifyEvent e) {\r
-                                       for (Entry <String, Entry<String, String>> eventTypeEntry : EVENT_TYPES_MAP.entrySet()) {\r
-                                               if (eventTypeEntry.getKey().equals(fTypeCombo.getText())) {\r
-                                                       fNode.setEventType(eventTypeEntry.getValue().getValue());\r
-                                                       fNode.setName(eventTypeEntry.getValue().getKey());\r
-                                                       fViewer.refresh(fNode);\r
-                                                       break;\r
-                                               }\r
-                                       }\r
-                               }\r
-                       });\r
-               }\r
-       }\r
-       \r
-       private class FilterAndNodeComposite extends FilterBaseNodeComposite {\r
-               TmfFilterAndNode fNode;\r
-               Button fNotButton;\r
-               \r
-               FilterAndNodeComposite(Composite parent, TmfFilterAndNode node) {\r
-                       super(parent);\r
-                       fNode = node;\r
-                       \r
-                       Label label = new Label(this, SWT.NONE);\r
-                       label.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));\r
-                       label.setText(Messages.FilterViewer_NotLabel);\r
-                       \r
-                       fNotButton = new Button(this, SWT.CHECK);\r
-                       fNotButton.setSelection(fNode.isNot());\r
-                       fNotButton.addSelectionListener(new SelectionAdapter() {\r
-                               @Override\r
-                               public void widgetSelected(SelectionEvent e) {\r
-                                       fNode.setNot(fNotButton.getSelection());\r
-                                       fViewer.refresh(fNode);\r
-                               }\r
-                       });\r
-               }\r
-       }\r
+                    for (Entry <String, Object> eventTypeEntry : fEventsTypeMap.entrySet()) {\r
+                        if (eventTypeEntry.getKey().equals(fTypeCombo.getText())) {\r
+                            Object value = eventTypeEntry.getValue();\r
+                            if (value instanceof IConfigurationElement) {\r
+                                IConfigurationElement ce = (IConfigurationElement) value;\r
+                                fNode.setEventType(ce.getAttribute(TmfTraceType.EVENT_TYPE_ATTR));\r
+                                fNode.setName(ce.getAttribute(TmfTraceType.NAME_ATTR));\r
+                            } else if (value instanceof CustomTxtTraceDefinition) {\r
+                                CustomTxtTraceDefinition def = (CustomTxtTraceDefinition) value;\r
+                                fNode.setEventType(CustomTxtEvent.class.getCanonicalName() + ":" + def.definitionName); //$NON-NLS-1$\r
+                                fNode.setName(def.definitionName);\r
+                            } else if (value instanceof CustomXmlTraceDefinition) {\r
+                                CustomXmlTraceDefinition def = (CustomXmlTraceDefinition) value;\r
+                                fNode.setEventType(CustomXmlEvent.class.getCanonicalName() + ":" + def.definitionName); //$NON-NLS-1$\r
+                                fNode.setName(def.definitionName);\r
+                            }\r
+                            fViewer.refresh(fNode);\r
+                            break;\r
+                        }\r
+                    }\r
+                }\r
+            });\r
+        }\r
+\r
+        protected Map<String, Object> getEventsTypeMap() {\r
+            Map<String, Object> eventsTypeMap = new LinkedHashMap<String, Object>();\r
+            for (IConfigurationElement ce : TmfTraceType.getTypeElements()) {\r
+                String categoryName = TmfTraceType.getCategoryName(ce.getAttribute(TmfTraceType.CATEGORY_ATTR));\r
+                String text = categoryName + " : " + ce.getAttribute(TmfTraceType.NAME_ATTR); //$NON-NLS-1$\r
+                eventsTypeMap.put(text, ce);\r
+            }\r
+            for (CustomTxtTraceDefinition def : CustomTxtTraceDefinition.loadAll()) {\r
+                String text = CUSTOM_TXT_CATEGORY + " : " + def.definitionName; //$NON-NLS-1$\r
+                eventsTypeMap.put(text, def);\r
+            }\r
+            for (CustomXmlTraceDefinition def : CustomXmlTraceDefinition.loadAll()) {\r
+                String text = CUSTOM_XML_CATEGORY + " : " + def.definitionName; //$NON-NLS-1$\r
+                eventsTypeMap.put(text, def);\r
+            }\r
+            return eventsTypeMap;\r
+        }\r
+    }\r
+    \r
+    private class FilterAndNodeComposite extends FilterBaseNodeComposite {\r
+        TmfFilterAndNode fNode;\r
+        Button fNotButton;\r
+        \r
+        FilterAndNodeComposite(Composite parent, TmfFilterAndNode node) {\r
+            super(parent);\r
+            fNode = node;\r
+            \r
+            Label label = new Label(this, SWT.NONE);\r
+            label.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));\r
+            label.setText(Messages.FilterViewer_NotLabel);\r
+            \r
+            fNotButton = new Button(this, SWT.CHECK);\r
+            fNotButton.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));\r
+            fNotButton.setSelection(fNode.isNot());\r
+            fNotButton.addSelectionListener(new SelectionAdapter() {\r
+                @Override\r
+                public void widgetSelected(SelectionEvent e) {\r
+                    fNode.setNot(fNotButton.getSelection());\r
+                    fViewer.refresh(fNode);\r
+                }\r
+            });\r
+        }\r
+    }\r
 \r
-       private class FilterOrNodeComposite extends FilterBaseNodeComposite {\r
-               TmfFilterOrNode fNode;\r
-               Button fNotButton;\r
-               \r
-               FilterOrNodeComposite(Composite parent, TmfFilterOrNode node) {\r
-                       super(parent);\r
-                       fNode = node;\r
-                       \r
-                       Label label = new Label(this, SWT.NONE);\r
-                       label.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));\r
-                       label.setText(Messages.FilterViewer_NotLabel);\r
-                       \r
-                       fNotButton = new Button(this, SWT.CHECK);\r
-                       fNotButton.setSelection(fNode.isNot());\r
-                       fNotButton.addSelectionListener(new SelectionAdapter() {\r
-                               @Override\r
-                               public void widgetSelected(SelectionEvent e) {\r
-                                       fNode.setNot(fNotButton.getSelection());\r
-                                       fViewer.refresh(fNode);\r
-                               }\r
-                       });\r
-               }\r
-       }\r
-       \r
-       private class FilterContainsNodeComposite extends FilterBaseNodeComposite {\r
-               TmfFilterContainsNode fNode;\r
-               Button fNotButton;\r
-               Combo fFieldCombo;\r
-               Text fValueText;\r
-               Button fIgnoreCaseButton;\r
-               \r
-               FilterContainsNodeComposite(Composite parent, TmfFilterContainsNode node) {\r
-                       super(parent);\r
-                       fNode = node;\r
-                       \r
-                       Label label = new Label(this, SWT.NONE);\r
-                       label.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));\r
-                       label.setText(Messages.FilterViewer_NotLabel);\r
-                       \r
-                       fNotButton = new Button(this, SWT.CHECK);\r
-                       fNotButton.setSelection(fNode.isNot());\r
-                       fNotButton.addSelectionListener(new SelectionAdapter() {\r
-                               @Override\r
-                               public void widgetSelected(SelectionEvent e) {\r
-                                       fNode.setNot(fNotButton.getSelection());\r
-                                       fViewer.refresh(fNode);\r
-                               }\r
-                       });\r
-                       \r
-                       label = new Label(this, SWT.NONE);\r
-                       label.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));\r
-                       label.setText(Messages.FilterViewer_FieldLabel);\r
-                       \r
-                       fFieldCombo = new Combo(this, SWT.DROP_DOWN);\r
-                       fFieldCombo.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));\r
-                       fFieldCombo.setItems(getFieldsList(fNode));\r
-                       if (fNode.getField() != null) {\r
-                               fFieldCombo.setText(fNode.getField());\r
-                       }\r
-                       fFieldCombo.addModifyListener(new ModifyListener() {\r
-                               @Override\r
+    private class FilterOrNodeComposite extends FilterBaseNodeComposite {\r
+        TmfFilterOrNode fNode;\r
+        Button fNotButton;\r
+        \r
+        FilterOrNodeComposite(Composite parent, TmfFilterOrNode node) {\r
+            super(parent);\r
+            fNode = node;\r
+            \r
+            Label label = new Label(this, SWT.NONE);\r
+            label.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));\r
+            label.setText(Messages.FilterViewer_NotLabel);\r
+            \r
+            fNotButton = new Button(this, SWT.CHECK);\r
+            fNotButton.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));\r
+            fNotButton.setSelection(fNode.isNot());\r
+            fNotButton.addSelectionListener(new SelectionAdapter() {\r
+                @Override\r
+                public void widgetSelected(SelectionEvent e) {\r
+                    fNode.setNot(fNotButton.getSelection());\r
+                    fViewer.refresh(fNode);\r
+                }\r
+            });\r
+        }\r
+    }\r
+    \r
+    private class FilterContainsNodeComposite extends FilterBaseNodeComposite {\r
+        TmfFilterContainsNode fNode;\r
+        Button fNotButton;\r
+        Combo fFieldCombo;\r
+        Text fValueText;\r
+        Button fIgnoreCaseButton;\r
+        \r
+        FilterContainsNodeComposite(Composite parent, TmfFilterContainsNode node) {\r
+            super(parent);\r
+            fNode = node;\r
+            \r
+            Label label = new Label(this, SWT.NONE);\r
+            label.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));\r
+            label.setText(Messages.FilterViewer_NotLabel);\r
+            \r
+            fNotButton = new Button(this, SWT.CHECK);\r
+            fNotButton.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));\r
+            fNotButton.setSelection(fNode.isNot());\r
+            fNotButton.addSelectionListener(new SelectionAdapter() {\r
+                @Override\r
+                public void widgetSelected(SelectionEvent e) {\r
+                    fNode.setNot(fNotButton.getSelection());\r
+                    fViewer.refresh(fNode);\r
+                }\r
+            });\r
+            \r
+            label = new Label(this, SWT.NONE);\r
+            label.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));\r
+            label.setText(Messages.FilterViewer_FieldLabel);\r
+            \r
+            fFieldCombo = new Combo(this, SWT.DROP_DOWN);\r
+            fFieldCombo.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));\r
+            fFieldCombo.setItems(getFieldsList(fNode));\r
+            if (fNode.getField() != null) {\r
+                fFieldCombo.setText(fNode.getField());\r
+            }\r
+            fFieldCombo.addModifyListener(new ModifyListener() {\r
+                @Override\r
                 public void modifyText(ModifyEvent e) {\r
-                                       fNode.setField(fFieldCombo.getText());\r
-                                       fViewer.refresh(fNode);\r
-                               }\r
-                       });\r
-                       \r
-                       label = new Label(this, SWT.NONE);\r
-                       label.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));\r
-                       label.setText(Messages.FilterViewer_ValueLabel);\r
-                       \r
-                       fValueText = new Text(this, SWT.BORDER);\r
-                       fValueText.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));\r
-                       if (node.getValue() != null && node.getValue().length() > 0) {\r
-                               fValueText.setText(node.getValue());\r
-                       } else {\r
-                               fValueText.setForeground(Display.getCurrent().getSystemColor(SWT.COLOR_GRAY));\r
-                               fValueText.setText(Messages.FilterViewer_ValueHint);\r
-                       }\r
-                       fValueText.addFocusListener(new FocusListener() {\r
-                               @Override\r
+                    fNode.setField(fFieldCombo.getText());\r
+                    fViewer.refresh(fNode);\r
+                }\r
+            });\r
+            \r
+            label = new Label(this, SWT.NONE);\r
+            label.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));\r
+            label.setText(Messages.FilterViewer_ValueLabel);\r
+            \r
+            fValueText = new Text(this, SWT.BORDER);\r
+            fValueText.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));\r
+            if (node.getValue() != null && node.getValue().length() > 0) {\r
+                fValueText.setText(node.getValue());\r
+            } else {\r
+                fValueText.setForeground(Display.getCurrent().getSystemColor(SWT.COLOR_GRAY));\r
+                fValueText.setText(Messages.FilterViewer_ValueHint);\r
+            }\r
+            fValueText.addFocusListener(new FocusListener() {\r
+                @Override\r
                 public void focusLost(FocusEvent e) {\r
-                                       if (fNode.getValue() == null || fNode.getValue().length() == 0) {\r
-                                               fValueText.setForeground(Display.getCurrent().getSystemColor(SWT.COLOR_GRAY));\r
-                                               fValueText.setText(Messages.FilterViewer_ValueHint);\r
-                                       }\r
-                               }\r
-                               @Override\r
+                    if (fNode.getValue() == null || fNode.getValue().length() == 0) {\r
+                        fValueText.setForeground(Display.getCurrent().getSystemColor(SWT.COLOR_GRAY));\r
+                        fValueText.setText(Messages.FilterViewer_ValueHint);\r
+                    }\r
+                }\r
+                @Override\r
                 public void focusGained(FocusEvent e) {\r
-                                       if (fValueText.getForeground().equals(Display.getCurrent().getSystemColor(SWT.COLOR_GRAY))) {\r
-                                               fValueText.setText(""); //$NON-NLS-1$\r
-                                       }\r
-                                       fValueText.setForeground(Display.getCurrent().getSystemColor(SWT.COLOR_BLACK));\r
-                               }\r
-                       });\r
-                       fValueText.addModifyListener(new ModifyListener() {\r
-                               @Override\r
+                    if (fValueText.getForeground().equals(Display.getCurrent().getSystemColor(SWT.COLOR_GRAY))) {\r
+                        fValueText.setText(""); //$NON-NLS-1$\r
+                    }\r
+                    fValueText.setForeground(Display.getCurrent().getSystemColor(SWT.COLOR_BLACK));\r
+                }\r
+            });\r
+            fValueText.addModifyListener(new ModifyListener() {\r
+                @Override\r
                 public void modifyText(ModifyEvent e) {\r
-                                       if (! fValueText.getForeground().equals(Display.getCurrent().getSystemColor(SWT.COLOR_GRAY))) {\r
-                                               fNode.setValue(fValueText.getText());\r
-                                               fViewer.refresh(fNode);\r
-                                       }\r
-                               }\r
-                       });\r
-                       \r
-                       label = new Label(this, SWT.NONE);\r
-                       label.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));\r
-                       \r
-                       fIgnoreCaseButton = new Button(this, SWT.CHECK);\r
-                       fIgnoreCaseButton.setSelection(fNode.isIgnoreCase());\r
-                       fIgnoreCaseButton.setText(Messages.FilterViewer_IgnoreCaseButtonText);\r
-                       fIgnoreCaseButton.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));\r
-                       fIgnoreCaseButton.addSelectionListener(new SelectionAdapter() {\r
-                               @Override\r
-                               public void widgetSelected(SelectionEvent e) {\r
-                                       fNode.setIgnoreCase(fIgnoreCaseButton.getSelection());\r
-                                       fViewer.refresh(fNode);\r
-                               }\r
-                       });\r
-               }\r
-       }\r
+                    if (! fValueText.getForeground().equals(Display.getCurrent().getSystemColor(SWT.COLOR_GRAY))) {\r
+                        fNode.setValue(fValueText.getText());\r
+                        fViewer.refresh(fNode);\r
+                    }\r
+                }\r
+            });\r
+            \r
+            label = new Label(this, SWT.NONE);\r
+            label.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));\r
+            \r
+            fIgnoreCaseButton = new Button(this, SWT.CHECK);\r
+            fIgnoreCaseButton.setSelection(fNode.isIgnoreCase());\r
+            fIgnoreCaseButton.setText(Messages.FilterViewer_IgnoreCaseButtonText);\r
+            fIgnoreCaseButton.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));\r
+            fIgnoreCaseButton.addSelectionListener(new SelectionAdapter() {\r
+                @Override\r
+                public void widgetSelected(SelectionEvent e) {\r
+                    fNode.setIgnoreCase(fIgnoreCaseButton.getSelection());\r
+                    fViewer.refresh(fNode);\r
+                }\r
+            });\r
+        }\r
+    }\r
 \r
-       private class FilterEqualsNodeComposite extends FilterBaseNodeComposite {\r
-               TmfFilterEqualsNode fNode;\r
-               Button fNotButton;\r
-               Combo fFieldCombo;\r
-               Text fValueText;\r
-               Button fIgnoreCaseButton;\r
-               \r
-               FilterEqualsNodeComposite(Composite parent, TmfFilterEqualsNode node) {\r
-                       super(parent);\r
-                       fNode = node;\r
-                       \r
-                       Label label = new Label(this, SWT.NONE);\r
-                       label.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));\r
-                       label.setText(Messages.FilterViewer_NotLabel);\r
-                       \r
-                       fNotButton = new Button(this, SWT.CHECK);\r
-                       fNotButton.setSelection(fNode.isNot());\r
-                       fNotButton.addSelectionListener(new SelectionAdapter() {\r
-                               @Override\r
-                               public void widgetSelected(SelectionEvent e) {\r
-                                       fNode.setNot(fNotButton.getSelection());\r
-                                       fViewer.refresh(fNode);\r
-                               }\r
-                       });\r
-                       \r
-                       label = new Label(this, SWT.NONE);\r
-                       label.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));\r
-                       label.setText(Messages.FilterViewer_FieldLabel);\r
-                       \r
-                       fFieldCombo = new Combo(this, SWT.DROP_DOWN);\r
-                       fFieldCombo.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));\r
-                       fFieldCombo.setItems(getFieldsList(fNode));\r
-                       if (fNode.getField() != null) {\r
-                               fFieldCombo.setText(fNode.getField());\r
-                       }\r
-                       fFieldCombo.addModifyListener(new ModifyListener() {\r
-                               @Override\r
+    private class FilterEqualsNodeComposite extends FilterBaseNodeComposite {\r
+        TmfFilterEqualsNode fNode;\r
+        Button fNotButton;\r
+        Combo fFieldCombo;\r
+        Text fValueText;\r
+        Button fIgnoreCaseButton;\r
+        \r
+        FilterEqualsNodeComposite(Composite parent, TmfFilterEqualsNode node) {\r
+            super(parent);\r
+            fNode = node;\r
+            \r
+            Label label = new Label(this, SWT.NONE);\r
+            label.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));\r
+            label.setText(Messages.FilterViewer_NotLabel);\r
+            \r
+            fNotButton = new Button(this, SWT.CHECK);\r
+            fNotButton.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));\r
+            fNotButton.setSelection(fNode.isNot());\r
+            fNotButton.addSelectionListener(new SelectionAdapter() {\r
+                @Override\r
+                public void widgetSelected(SelectionEvent e) {\r
+                    fNode.setNot(fNotButton.getSelection());\r
+                    fViewer.refresh(fNode);\r
+                }\r
+            });\r
+            \r
+            label = new Label(this, SWT.NONE);\r
+            label.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));\r
+            label.setText(Messages.FilterViewer_FieldLabel);\r
+            \r
+            fFieldCombo = new Combo(this, SWT.DROP_DOWN);\r
+            fFieldCombo.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));\r
+            fFieldCombo.setItems(getFieldsList(fNode));\r
+            if (fNode.getField() != null) {\r
+                fFieldCombo.setText(fNode.getField());\r
+            }\r
+            fFieldCombo.addModifyListener(new ModifyListener() {\r
+                @Override\r
                 public void modifyText(ModifyEvent e) {\r
-                                       fNode.setField(fFieldCombo.getText());\r
-                                       fViewer.refresh(fNode);\r
-                               }\r
-                       });\r
-                       \r
-                       label = new Label(this, SWT.NONE);\r
-                       label.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));\r
-                       label.setText(Messages.FilterViewer_ValueLabel);\r
-                       \r
-                       fValueText = new Text(this, SWT.BORDER);\r
-                       fValueText.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));\r
-                       if (node.getValue() != null && node.getValue().length() > 0) {\r
-                               fValueText.setText(node.getValue());\r
-                       } else {\r
-                               fValueText.setForeground(Display.getCurrent().getSystemColor(SWT.COLOR_GRAY));\r
-                               fValueText.setText(Messages.FilterViewer_ValueHint);\r
-                       }\r
-                       fValueText.addFocusListener(new FocusListener() {\r
-                               @Override\r
+                    fNode.setField(fFieldCombo.getText());\r
+                    fViewer.refresh(fNode);\r
+                }\r
+            });\r
+            \r
+            label = new Label(this, SWT.NONE);\r
+            label.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));\r
+            label.setText(Messages.FilterViewer_ValueLabel);\r
+            \r
+            fValueText = new Text(this, SWT.BORDER);\r
+            fValueText.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));\r
+            if (node.getValue() != null && node.getValue().length() > 0) {\r
+                fValueText.setText(node.getValue());\r
+            } else {\r
+                fValueText.setForeground(Display.getCurrent().getSystemColor(SWT.COLOR_GRAY));\r
+                fValueText.setText(Messages.FilterViewer_ValueHint);\r
+            }\r
+            fValueText.addFocusListener(new FocusListener() {\r
+                @Override\r
                 public void focusLost(FocusEvent e) {\r
-                                       if (fNode.getValue() == null || fNode.getValue().length() == 0) {\r
-                                               fValueText.setForeground(Display.getCurrent().getSystemColor(SWT.COLOR_GRAY));\r
-                                               fValueText.setText(Messages.FilterViewer_ValueHint);\r
-                                       }\r
-                               }\r
-                               @Override\r
+                    if (fNode.getValue() == null || fNode.getValue().length() == 0) {\r
+                        fValueText.setForeground(Display.getCurrent().getSystemColor(SWT.COLOR_GRAY));\r
+                        fValueText.setText(Messages.FilterViewer_ValueHint);\r
+                    }\r
+                }\r
+                @Override\r
                 public void focusGained(FocusEvent e) {\r
-                                       if (fValueText.getForeground().equals(Display.getCurrent().getSystemColor(SWT.COLOR_GRAY))) {\r
-                                               fValueText.setText(""); //$NON-NLS-1$\r
-                                       }\r
-                                       fValueText.setForeground(Display.getCurrent().getSystemColor(SWT.COLOR_BLACK));\r
-                               }\r
-                       });\r
-                       fValueText.addModifyListener(new ModifyListener() {\r
-                               @Override\r
+                    if (fValueText.getForeground().equals(Display.getCurrent().getSystemColor(SWT.COLOR_GRAY))) {\r
+                        fValueText.setText(""); //$NON-NLS-1$\r
+                    }\r
+                    fValueText.setForeground(Display.getCurrent().getSystemColor(SWT.COLOR_BLACK));\r
+                }\r
+            });\r
+            fValueText.addModifyListener(new ModifyListener() {\r
+                @Override\r
                 public void modifyText(ModifyEvent e) {\r
-                                       if (! fValueText.getForeground().equals(Display.getCurrent().getSystemColor(SWT.COLOR_GRAY))) {\r
-                                               fNode.setValue(fValueText.getText());\r
-                                               fViewer.refresh(fNode);\r
-                                       }\r
-                               }\r
-                       });\r
-                       \r
-                       label = new Label(this, SWT.NONE);\r
-                       label.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));\r
-                       \r
-                       fIgnoreCaseButton = new Button(this, SWT.CHECK);\r
-                       fIgnoreCaseButton.setSelection(fNode.isIgnoreCase());\r
-                       fIgnoreCaseButton.setText(Messages.FilterViewer_IgnoreCaseButtonText);\r
-                       fIgnoreCaseButton.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));\r
-                       fIgnoreCaseButton.addSelectionListener(new SelectionAdapter() {\r
-                               @Override\r
-                               public void widgetSelected(SelectionEvent e) {\r
-                                       fNode.setIgnoreCase(fIgnoreCaseButton.getSelection());\r
-                                       fViewer.refresh(fNode);\r
-                               }\r
-                       });\r
-               }\r
-       }\r
+                    if (! fValueText.getForeground().equals(Display.getCurrent().getSystemColor(SWT.COLOR_GRAY))) {\r
+                        fNode.setValue(fValueText.getText());\r
+                        fViewer.refresh(fNode);\r
+                    }\r
+                }\r
+            });\r
+            \r
+            label = new Label(this, SWT.NONE);\r
+            label.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));\r
+            \r
+            fIgnoreCaseButton = new Button(this, SWT.CHECK);\r
+            fIgnoreCaseButton.setSelection(fNode.isIgnoreCase());\r
+            fIgnoreCaseButton.setText(Messages.FilterViewer_IgnoreCaseButtonText);\r
+            fIgnoreCaseButton.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));\r
+            fIgnoreCaseButton.addSelectionListener(new SelectionAdapter() {\r
+                @Override\r
+                public void widgetSelected(SelectionEvent e) {\r
+                    fNode.setIgnoreCase(fIgnoreCaseButton.getSelection());\r
+                    fViewer.refresh(fNode);\r
+                }\r
+            });\r
+        }\r
+    }\r
 \r
-       private class FilterMatchesNodeComposite extends FilterBaseNodeComposite {\r
-               TmfFilterMatchesNode fNode;\r
-               Button fNotButton;\r
-               Combo fFieldCombo;\r
-               Text fRegexText;\r
-               \r
-               FilterMatchesNodeComposite(Composite parent, TmfFilterMatchesNode node) {\r
-                       super(parent);\r
-                       fNode = node;\r
-                       \r
-                       Label label = new Label(this, SWT.NONE);\r
-                       label.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));\r
-                       label.setText(Messages.FilterViewer_NotLabel);\r
-                       \r
-                       fNotButton = new Button(this, SWT.CHECK);\r
-                       fNotButton.setSelection(fNode.isNot());\r
-                       fNotButton.addSelectionListener(new SelectionAdapter() {\r
-                               @Override\r
-                               public void widgetSelected(SelectionEvent e) {\r
-                                       fNode.setNot(fNotButton.getSelection());\r
-                                       fViewer.refresh(fNode);\r
-                               }\r
-                       });\r
-                       \r
-                       label = new Label(this, SWT.NONE);\r
-                       label.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));\r
-                       label.setText(Messages.FilterViewer_FieldLabel);\r
-                       \r
-                       fFieldCombo = new Combo(this, SWT.DROP_DOWN);\r
-                       fFieldCombo.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));\r
-                       fFieldCombo.setItems(getFieldsList(fNode));\r
-                       if (fNode.getField() != null) {\r
-                               fFieldCombo.setText(fNode.getField());\r
-                       }\r
-                       fFieldCombo.addModifyListener(new ModifyListener() {\r
-                               @Override\r
+    private class FilterMatchesNodeComposite extends FilterBaseNodeComposite {\r
+        TmfFilterMatchesNode fNode;\r
+        Button fNotButton;\r
+        Combo fFieldCombo;\r
+        Text fRegexText;\r
+        \r
+        FilterMatchesNodeComposite(Composite parent, TmfFilterMatchesNode node) {\r
+            super(parent);\r
+            fNode = node;\r
+            \r
+            Label label = new Label(this, SWT.NONE);\r
+            label.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));\r
+            label.setText(Messages.FilterViewer_NotLabel);\r
+            \r
+            fNotButton = new Button(this, SWT.CHECK);\r
+            fNotButton.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));\r
+            fNotButton.setSelection(fNode.isNot());\r
+            fNotButton.addSelectionListener(new SelectionAdapter() {\r
+                @Override\r
+                public void widgetSelected(SelectionEvent e) {\r
+                    fNode.setNot(fNotButton.getSelection());\r
+                    fViewer.refresh(fNode);\r
+                }\r
+            });\r
+            \r
+            label = new Label(this, SWT.NONE);\r
+            label.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));\r
+            label.setText(Messages.FilterViewer_FieldLabel);\r
+            \r
+            fFieldCombo = new Combo(this, SWT.DROP_DOWN);\r
+            fFieldCombo.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));\r
+            fFieldCombo.setItems(getFieldsList(fNode));\r
+            if (fNode.getField() != null) {\r
+                fFieldCombo.setText(fNode.getField());\r
+            }\r
+            fFieldCombo.addModifyListener(new ModifyListener() {\r
+                @Override\r
                 public void modifyText(ModifyEvent e) {\r
-                                       fNode.setField(fFieldCombo.getText());\r
-                                       fViewer.refresh(fNode);\r
-                               }\r
-                       });\r
-                       \r
-                       label = new Label(this, SWT.NONE);\r
-                       label.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));\r
-                       label.setText(Messages.FilterViewer_RegexLabel);\r
-                       \r
-                       fRegexText = new Text(this, SWT.BORDER);\r
-                       fRegexText.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));\r
-                       if (node.getRegex() != null && node.getRegex().length() > 0) {\r
-                               fRegexText.setText(node.getRegex());\r
-                       } else {\r
-                               fRegexText.setForeground(Display.getCurrent().getSystemColor(SWT.COLOR_GRAY));\r
-                               fRegexText.setText(Messages.FilterViewer_RegexHint);\r
-                       }\r
-                       fRegexText.addFocusListener(new FocusListener() {\r
-                               @Override\r
+                    fNode.setField(fFieldCombo.getText());\r
+                    fViewer.refresh(fNode);\r
+                }\r
+            });\r
+            \r
+            label = new Label(this, SWT.NONE);\r
+            label.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));\r
+            label.setText(Messages.FilterViewer_RegexLabel);\r
+            \r
+            fRegexText = new Text(this, SWT.BORDER);\r
+            fRegexText.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));\r
+            if (node.getRegex() != null && node.getRegex().length() > 0) {\r
+                fRegexText.setText(node.getRegex());\r
+            } else {\r
+                fRegexText.setForeground(Display.getCurrent().getSystemColor(SWT.COLOR_GRAY));\r
+                fRegexText.setText(Messages.FilterViewer_RegexHint);\r
+            }\r
+            fRegexText.addFocusListener(new FocusListener() {\r
+                @Override\r
                 public void focusLost(FocusEvent e) {\r
-                                       if (fNode.getRegex() == null || fNode.getRegex().length() == 0) {\r
-                                               fRegexText.setForeground(Display.getCurrent().getSystemColor(SWT.COLOR_GRAY));\r
-                                               fRegexText.setText(Messages.FilterViewer_RegexHint);\r
-                                       }\r
-                               }\r
-                               @Override\r
+                    if (fNode.getRegex() == null || fNode.getRegex().length() == 0) {\r
+                        fRegexText.setForeground(Display.getCurrent().getSystemColor(SWT.COLOR_GRAY));\r
+                        fRegexText.setText(Messages.FilterViewer_RegexHint);\r
+                    }\r
+                }\r
+                @Override\r
                 public void focusGained(FocusEvent e) {\r
-                                       if (fRegexText.getForeground().equals(Display.getCurrent().getSystemColor(SWT.COLOR_GRAY))) {\r
-                                               fRegexText.setText(""); //$NON-NLS-1$\r
-                                       }\r
-                                       fRegexText.setForeground(Display.getCurrent().getSystemColor(SWT.COLOR_BLACK));\r
-                               }\r
-                       });\r
-                       fRegexText.addModifyListener(new ModifyListener() {\r
-                               @Override\r
+                    if (fRegexText.getForeground().equals(Display.getCurrent().getSystemColor(SWT.COLOR_GRAY))) {\r
+                        fRegexText.setText(""); //$NON-NLS-1$\r
+                    }\r
+                    fRegexText.setForeground(Display.getCurrent().getSystemColor(SWT.COLOR_BLACK));\r
+                }\r
+            });\r
+            fRegexText.addModifyListener(new ModifyListener() {\r
+                @Override\r
                 public void modifyText(ModifyEvent e) {\r
-                                       if (! fRegexText.getForeground().equals(Display.getCurrent().getSystemColor(SWT.COLOR_GRAY))) {\r
-                                               fNode.setRegex(fRegexText.getText());\r
-                                               fViewer.refresh(fNode);\r
-                                       }\r
-                               }\r
-                       });\r
-               }\r
-       }\r
+                    if (! fRegexText.getForeground().equals(Display.getCurrent().getSystemColor(SWT.COLOR_GRAY))) {\r
+                        fNode.setRegex(fRegexText.getText());\r
+                        fViewer.refresh(fNode);\r
+                    }\r
+                }\r
+            });\r
+        }\r
+    }\r
 \r
-       private class FilterCompareNodeComposite extends FilterBaseNodeComposite {\r
-               TmfFilterCompareNode fNode;\r
-               Button fNotButton;\r
-               Combo fFieldCombo;\r
-               Text fValueText;\r
-               Button fLTButton;\r
-               Button fEQButton;\r
-               Button fGTButton;\r
-               Button fNumButton;\r
-               Button fAlphaButton;\r
-               Button fTimestampButton;\r
-               \r
-               FilterCompareNodeComposite(Composite parent, TmfFilterCompareNode node) {\r
-                       super(parent);\r
-                       fNode = node;\r
-                       \r
-                       Label label = new Label(this, SWT.NONE);\r
-                       label.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));\r
-                       label.setText(Messages.FilterViewer_NotLabel);\r
-                       \r
-                       fNotButton = new Button(this, SWT.CHECK);\r
-                       fNotButton.setSelection(fNode.isNot());\r
-                       fNotButton.addSelectionListener(new SelectionAdapter() {\r
-                               @Override\r
-                               public void widgetSelected(SelectionEvent e) {\r
-                                       fNode.setNot(fNotButton.getSelection());\r
-                                       fViewer.refresh(fNode);\r
-                               }\r
-                       });\r
-                       \r
-                       label = new Label(this, SWT.NONE);\r
-                       label.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));\r
-                       label.setText(Messages.FilterViewer_FieldLabel);\r
-                       \r
-                       fFieldCombo = new Combo(this, SWT.DROP_DOWN);\r
-                       fFieldCombo.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));\r
-                       fFieldCombo.setItems(getFieldsList(fNode));\r
-                       if (fNode.getField() != null) {\r
-                               fFieldCombo.setText(fNode.getField());\r
-                       }\r
-                       fFieldCombo.addModifyListener(new ModifyListener() {\r
-                               @Override\r
+    private class FilterCompareNodeComposite extends FilterBaseNodeComposite {\r
+        TmfFilterCompareNode fNode;\r
+        Button fNotButton;\r
+        Combo fFieldCombo;\r
+        Text fValueText;\r
+        Button fLTButton;\r
+        Button fEQButton;\r
+        Button fGTButton;\r
+        Button fNumButton;\r
+        Button fAlphaButton;\r
+        Button fTimestampButton;\r
+        \r
+        FilterCompareNodeComposite(Composite parent, TmfFilterCompareNode node) {\r
+            super(parent);\r
+            fNode = node;\r
+            \r
+            Label label = new Label(this, SWT.NONE);\r
+            label.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));\r
+            label.setText(Messages.FilterViewer_NotLabel);\r
+            \r
+            fNotButton = new Button(this, SWT.CHECK);\r
+            fNotButton.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));\r
+            fNotButton.setSelection(fNode.isNot());\r
+            fNotButton.addSelectionListener(new SelectionAdapter() {\r
+                @Override\r
+                public void widgetSelected(SelectionEvent e) {\r
+                    fNode.setNot(fNotButton.getSelection());\r
+                    fViewer.refresh(fNode);\r
+                }\r
+            });\r
+            \r
+            label = new Label(this, SWT.NONE);\r
+            label.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));\r
+            label.setText(Messages.FilterViewer_FieldLabel);\r
+            \r
+            fFieldCombo = new Combo(this, SWT.DROP_DOWN);\r
+            fFieldCombo.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));\r
+            fFieldCombo.setItems(getFieldsList(fNode));\r
+            if (fNode.getField() != null) {\r
+                fFieldCombo.setText(fNode.getField());\r
+            }\r
+            fFieldCombo.addModifyListener(new ModifyListener() {\r
+                @Override\r
                 public void modifyText(ModifyEvent e) {\r
-                                       fNode.setField(fFieldCombo.getText());\r
-                                       fViewer.refresh(fNode);\r
-                               }\r
-                       });\r
-                       \r
-                       label = new Label(this, SWT.NONE);\r
-                       label.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));\r
-                       label.setText(Messages.FilterViewer_ResultLabel);\r
-                       \r
-               Composite resultGroup = new Composite(this, SWT.NONE);\r
-               GridLayout rggl = new GridLayout(3, true);\r
-               rggl.marginHeight = 0;\r
-               rggl.marginWidth = 0;\r
-               resultGroup.setLayout(rggl);\r
-                       resultGroup.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));\r
-               \r
-                       fLTButton = new Button(resultGroup, SWT.RADIO);\r
-                       fLTButton.setSelection(fNode.getResult() < 0);\r
-                       fLTButton.setText("<"); //$NON-NLS-1$\r
-                       fLTButton.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));\r
-                       fLTButton.addSelectionListener(new SelectionAdapter() {\r
-                               @Override\r
-                               public void widgetSelected(SelectionEvent e) {\r
-                                       if (fLTButton.getSelection()) {\r
-                                               fNode.setResult(-1);\r
-                                       }\r
-                                       fViewer.refresh(fNode);\r
-                               }\r
-                       });\r
-                       \r
-                       fEQButton = new Button(resultGroup, SWT.RADIO);\r
-                       fEQButton.setSelection(fNode.getResult() == 0);\r
-                       fEQButton.setText("="); //$NON-NLS-1$\r
-                       fEQButton.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));\r
-                       fEQButton.addSelectionListener(new SelectionAdapter() {\r
-                               @Override\r
-                               public void widgetSelected(SelectionEvent e) {\r
-                                       if (fEQButton.getSelection()) {\r
-                                               fNode.setResult(0);\r
-                                       }\r
-                                       fViewer.refresh(fNode);\r
-                               }\r
-                       });\r
-                       \r
-                       fGTButton = new Button(resultGroup, SWT.RADIO);\r
-                       fGTButton.setSelection(fNode.getResult() > 0);\r
-                       fGTButton.setText(">"); //$NON-NLS-1$\r
-                       fGTButton.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));\r
-                       fGTButton.addSelectionListener(new SelectionAdapter() {\r
-                               @Override\r
-                               public void widgetSelected(SelectionEvent e) {\r
-                                       if (fGTButton.getSelection()) {\r
-                                               fNode.setResult(1);\r
-                                       }\r
-                                       fViewer.refresh(fNode);\r
-                               }\r
-                       });\r
-                       \r
-                       label = new Label(this, SWT.NONE);\r
-                       label.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));\r
-                       label.setText(Messages.FilterViewer_TypeLabel);\r
-                       \r
-               Composite typeGroup = new Composite(this, SWT.NONE);\r
-               GridLayout tggl = new GridLayout(3, false);\r
-               tggl.marginHeight = 0;\r
-               tggl.marginWidth = 0;\r
-               typeGroup.setLayout(tggl);\r
-                       typeGroup.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));\r
-               \r
-                       fNumButton = new Button(typeGroup, SWT.RADIO);\r
-                       fNumButton.setSelection(fNode.getType() == Type.NUM);\r
-                       fNumButton.setText(Messages.FilterViewer_NumButtonText);\r
-                       fNumButton.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));\r
-                       fNumButton.addSelectionListener(new SelectionAdapter() {\r
-                               @Override\r
-                               public void widgetSelected(SelectionEvent e) {\r
-                                       if (fNumButton.getSelection()) {\r
-                                               fNode.setType(Type.NUM);\r
-                                       }\r
-                                       fViewer.refresh(fNode);\r
-                               }\r
-                       });\r
-                       \r
-                       fAlphaButton = new Button(typeGroup, SWT.RADIO);\r
-                       fAlphaButton.setSelection(fNode.getType() == Type.ALPHA);\r
-                       fAlphaButton.setText(Messages.FilterViewer_AlphaButtonText);\r
-                       fAlphaButton.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));\r
-                       fAlphaButton.addSelectionListener(new SelectionAdapter() {\r
-                               @Override\r
-                               public void widgetSelected(SelectionEvent e) {\r
-                                       if (fAlphaButton.getSelection()) {\r
-                                               fNode.setType(Type.ALPHA);\r
-                                       }\r
-                                       fViewer.refresh(fNode);\r
-                               }\r
-                       });\r
-                       \r
-                       fTimestampButton = new Button(typeGroup, SWT.RADIO);\r
-                       fTimestampButton.setSelection(fNode.getType() == Type.TIMESTAMP);\r
-                       fTimestampButton.setText(Messages.FilterViewer_TimestampButtonText);\r
-                       fTimestampButton.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));\r
-                       fTimestampButton.addSelectionListener(new SelectionAdapter() {\r
-                               @Override\r
-                               public void widgetSelected(SelectionEvent e) {\r
-                                       if (fTimestampButton.getSelection()) {\r
-                                               fNode.setType(Type.TIMESTAMP);\r
-                                       }\r
-                                       fViewer.refresh(fNode);\r
-                               }\r
-                       });\r
-                       \r
-                       label = new Label(this, SWT.NONE);\r
-                       label.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));\r
-                       label.setText(Messages.FilterViewer_ValueLabel);\r
-                       \r
-                       fValueText = new Text(this, SWT.BORDER);\r
-                       fValueText.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));\r
-                       if (node.getValue() != null && node.getValue().length() > 0) {\r
-                               fValueText.setText(node.getValue());\r
-                       } else {\r
-                               fValueText.setForeground(Display.getCurrent().getSystemColor(SWT.COLOR_GRAY));\r
-                               fValueText.setText(Messages.FilterViewer_ValueHint);\r
-                       }\r
-                       fValueText.addFocusListener(new FocusListener() {\r
-                               @Override\r
+                    fNode.setField(fFieldCombo.getText());\r
+                    fViewer.refresh(fNode);\r
+                }\r
+            });\r
+            \r
+            label = new Label(this, SWT.NONE);\r
+            label.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));\r
+            label.setText(Messages.FilterViewer_ResultLabel);\r
+            \r
+            Composite resultGroup = new Composite(this, SWT.NONE);\r
+            GridLayout rggl = new GridLayout(3, true);\r
+            rggl.marginHeight = 0;\r
+            rggl.marginWidth = 0;\r
+            resultGroup.setLayout(rggl);\r
+            resultGroup.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));\r
+            \r
+            fLTButton = new Button(resultGroup, SWT.RADIO);\r
+            fLTButton.setSelection(fNode.getResult() < 0);\r
+            fLTButton.setText("<"); //$NON-NLS-1$\r
+            fLTButton.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));\r
+            fLTButton.addSelectionListener(new SelectionAdapter() {\r
+                @Override\r
+                public void widgetSelected(SelectionEvent e) {\r
+                    if (fLTButton.getSelection()) {\r
+                        fNode.setResult(-1);\r
+                    }\r
+                    fViewer.refresh(fNode);\r
+                }\r
+            });\r
+            \r
+            fEQButton = new Button(resultGroup, SWT.RADIO);\r
+            fEQButton.setSelection(fNode.getResult() == 0);\r
+            fEQButton.setText("="); //$NON-NLS-1$\r
+            fEQButton.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));\r
+            fEQButton.addSelectionListener(new SelectionAdapter() {\r
+                @Override\r
+                public void widgetSelected(SelectionEvent e) {\r
+                    if (fEQButton.getSelection()) {\r
+                        fNode.setResult(0);\r
+                    }\r
+                    fViewer.refresh(fNode);\r
+                }\r
+            });\r
+            \r
+            fGTButton = new Button(resultGroup, SWT.RADIO);\r
+            fGTButton.setSelection(fNode.getResult() > 0);\r
+            fGTButton.setText(">"); //$NON-NLS-1$\r
+            fGTButton.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));\r
+            fGTButton.addSelectionListener(new SelectionAdapter() {\r
+                @Override\r
+                public void widgetSelected(SelectionEvent e) {\r
+                    if (fGTButton.getSelection()) {\r
+                        fNode.setResult(1);\r
+                    }\r
+                    fViewer.refresh(fNode);\r
+                }\r
+            });\r
+            \r
+            label = new Label(this, SWT.NONE);\r
+            label.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));\r
+            label.setText(Messages.FilterViewer_TypeLabel);\r
+            \r
+            Composite typeGroup = new Composite(this, SWT.NONE);\r
+            GridLayout tggl = new GridLayout(3, false);\r
+            tggl.marginHeight = 0;\r
+            tggl.marginWidth = 0;\r
+            typeGroup.setLayout(tggl);\r
+            typeGroup.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));\r
+            \r
+            fNumButton = new Button(typeGroup, SWT.RADIO);\r
+            fNumButton.setSelection(fNode.getType() == Type.NUM);\r
+            fNumButton.setText(Messages.FilterViewer_NumButtonText);\r
+            fNumButton.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));\r
+            fNumButton.addSelectionListener(new SelectionAdapter() {\r
+                @Override\r
+                public void widgetSelected(SelectionEvent e) {\r
+                    if (fNumButton.getSelection()) {\r
+                        fNode.setType(Type.NUM);\r
+                    }\r
+                    fViewer.refresh(fNode);\r
+                }\r
+            });\r
+            \r
+            fAlphaButton = new Button(typeGroup, SWT.RADIO);\r
+            fAlphaButton.setSelection(fNode.getType() == Type.ALPHA);\r
+            fAlphaButton.setText(Messages.FilterViewer_AlphaButtonText);\r
+            fAlphaButton.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));\r
+            fAlphaButton.addSelectionListener(new SelectionAdapter() {\r
+                @Override\r
+                public void widgetSelected(SelectionEvent e) {\r
+                    if (fAlphaButton.getSelection()) {\r
+                        fNode.setType(Type.ALPHA);\r
+                    }\r
+                    fViewer.refresh(fNode);\r
+                }\r
+            });\r
+            \r
+            fTimestampButton = new Button(typeGroup, SWT.RADIO);\r
+            fTimestampButton.setSelection(fNode.getType() == Type.TIMESTAMP);\r
+            fTimestampButton.setText(Messages.FilterViewer_TimestampButtonText);\r
+            fTimestampButton.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));\r
+            fTimestampButton.addSelectionListener(new SelectionAdapter() {\r
+                @Override\r
+                public void widgetSelected(SelectionEvent e) {\r
+                    if (fTimestampButton.getSelection()) {\r
+                        fNode.setType(Type.TIMESTAMP);\r
+                    }\r
+                    fViewer.refresh(fNode);\r
+                }\r
+            });\r
+            \r
+            label = new Label(this, SWT.NONE);\r
+            label.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));\r
+            label.setText(Messages.FilterViewer_ValueLabel);\r
+            \r
+            fValueText = new Text(this, SWT.BORDER);\r
+            fValueText.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));\r
+            if (node.getValue() != null && node.getValue().length() > 0) {\r
+                fValueText.setText(node.getValue());\r
+            } else {\r
+                fValueText.setForeground(Display.getCurrent().getSystemColor(SWT.COLOR_GRAY));\r
+                fValueText.setText(Messages.FilterViewer_ValueHint);\r
+            }\r
+            fValueText.addFocusListener(new FocusListener() {\r
+                @Override\r
                 public void focusLost(FocusEvent e) {\r
-                                       if (fNode.getValue() == null || fNode.getValue().length() == 0) {\r
-                                               fValueText.setForeground(Display.getCurrent().getSystemColor(SWT.COLOR_GRAY));\r
-                                               fValueText.setText(Messages.FilterViewer_ValueHint);\r
-                                       }\r
-                               }\r
-                               @Override\r
+                    if (fNode.getValue() == null || fNode.getValue().length() == 0) {\r
+                        fValueText.setForeground(Display.getCurrent().getSystemColor(SWT.COLOR_GRAY));\r
+                        fValueText.setText(Messages.FilterViewer_ValueHint);\r
+                    }\r
+                }\r
+                @Override\r
                 public void focusGained(FocusEvent e) {\r
-                                       if (fValueText.getForeground().equals(Display.getCurrent().getSystemColor(SWT.COLOR_GRAY))) {\r
-                                               fValueText.setText(""); //$NON-NLS-1$\r
-                                       }\r
-                                       fValueText.setForeground(Display.getCurrent().getSystemColor(SWT.COLOR_BLACK));\r
-                               }\r
-                       });\r
-                       fValueText.addModifyListener(new ModifyListener() {\r
-                               @Override\r
+                    if (fValueText.getForeground().equals(Display.getCurrent().getSystemColor(SWT.COLOR_GRAY))) {\r
+                        fValueText.setText(""); //$NON-NLS-1$\r
+                    }\r
+                    fValueText.setForeground(Display.getCurrent().getSystemColor(SWT.COLOR_BLACK));\r
+                }\r
+            });\r
+            fValueText.addModifyListener(new ModifyListener() {\r
+                @Override\r
                 public void modifyText(ModifyEvent e) {\r
-                                       if (! fValueText.getForeground().equals(Display.getCurrent().getSystemColor(SWT.COLOR_GRAY))) {\r
-                                               fNode.setValue(fValueText.getText());\r
-                                               fViewer.refresh(fNode);\r
-                                       }\r
-                               }\r
-                       });\r
-               }\r
-       }\r
+                    if (! fValueText.getForeground().equals(Display.getCurrent().getSystemColor(SWT.COLOR_GRAY))) {\r
+                        fNode.setValue(fValueText.getText());\r
+                        fViewer.refresh(fNode);\r
+                    }\r
+                }\r
+            });\r
+        }\r
+    }\r
 \r
 }\r
This page took 0.067547 seconds and 5 git commands to generate.