From f20af9d97611a454ea6f251de0f848b0347555cb Mon Sep 17 00:00:00 2001 From: Bernd Hufmann Date: Thu, 29 Jan 2015 07:07:57 -0500 Subject: [PATCH] tmf: Missing delete action in Filter dialog of ColorsView (bug 458582) Change-Id: I1a4bc08ffe55484269ae3e26dcd49b60e66d2017 Signed-off-by: Bernd Hufmann Reviewed-on: https://git.eclipse.org/r/40615 Reviewed-by: Hudson CI Reviewed-by: Patrick Tasse Tested-by: Patrick Tasse --- .../internal/tmf/ui/Messages.java | 1 + .../internal/tmf/ui/messages.properties | 1 + .../tmf/ui/views/filter/FilterDialog.java | 2 +- .../tmf/ui/views/filter/FilterViewer.java | 28 +++++++++++++++++-- 4 files changed, 29 insertions(+), 3 deletions(-) diff --git a/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/internal/tmf/ui/Messages.java b/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/internal/tmf/ui/Messages.java index 9a67502bab..48e6ff0e16 100644 --- a/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/internal/tmf/ui/Messages.java +++ b/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/internal/tmf/ui/Messages.java @@ -258,6 +258,7 @@ public class Messages extends NLS { public static String FilterViewer_AlphaButtonText; public static String FilterViewer_AspectLabel; public static String FilterViewer_CommonCategory; + public static String FilterViewer_DeleteActionText; public static String FilterViewer_EmptyTreeHintText; public static String FilterViewer_FieldHint; public static String FilterViewer_FieldLabel; diff --git a/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/internal/tmf/ui/messages.properties b/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/internal/tmf/ui/messages.properties index b193ef90d0..4d234b7fff 100644 --- a/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/internal/tmf/ui/messages.properties +++ b/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/internal/tmf/ui/messages.properties @@ -257,6 +257,7 @@ FilterView_SaveActionToolTipText=Save filters FilterViewer_AlphaButtonText=Alpha FilterViewer_AspectLabel=aspect: FilterViewer_CommonCategory=[common] +FilterViewer_DeleteActionText=Delete FilterViewer_EmptyTreeHintText= FilterViewer_FieldHint=type field name FilterViewer_FieldLabel=field: diff --git a/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/views/filter/FilterDialog.java b/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/views/filter/FilterDialog.java index a02f75ca2a..36edf37c75 100644 --- a/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/views/filter/FilterDialog.java +++ b/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/views/filter/FilterDialog.java @@ -49,7 +49,7 @@ public class FilterDialog extends Dialog { getShell().setMinimumSize(getShell().computeSize(550, 250)); Composite composite = (Composite) super.createDialogArea(parent); - fViewer = new FilterViewer(composite, SWT.BORDER); + fViewer = new FilterViewer(composite, SWT.BORDER, true); fViewer.setInput(fRoot); return composite; } diff --git a/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/views/filter/FilterViewer.java b/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/views/filter/FilterViewer.java index fab45d592a..ff9c194014 100644 --- a/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/views/filter/FilterViewer.java +++ b/org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/views/filter/FilterViewer.java @@ -76,6 +76,8 @@ import org.eclipse.tracecompass.tmf.core.filter.model.TmfFilterTraceTypeNode; import org.eclipse.tracecompass.tmf.core.filter.model.TmfFilterTreeNode; import org.eclipse.tracecompass.tmf.core.project.model.TmfTraceType; import org.eclipse.tracecompass.tmf.core.project.model.TraceTypeHelper; +import org.eclipse.ui.ISharedImages; +import org.eclipse.ui.PlatformUI; class FilterViewer extends Composite { @@ -100,9 +102,17 @@ class FilterViewer extends Composite { private Composite fComposite; private MenuManager fMenuManager; + private boolean fIsDialog = false; + public FilterViewer(Composite parent, int style) { + this(parent, style, false); + } + + public FilterViewer(Composite parent, int style, boolean isDialog) { super(parent, style); + this.fIsDialog = isDialog; + setLayout(new FillLayout()); GridData gd = new GridData(SWT.FILL, SWT.FILL, true, true); setLayoutData(gd); @@ -201,10 +211,24 @@ class FilterViewer extends Composite { } } - if (filterTreeNode != null) { - fillContextMenuForNode(filterTreeNode, manager); + final ITmfFilterTreeNode selectedNode = filterTreeNode; + if (selectedNode != null) { + fillContextMenuForNode(selectedNode, manager); } + manager.add(new Separator("delete")); //$NON-NLS-1$ + + if (fIsDialog && (selectedNode != null)) { + Action deleteAction = new Action(Messages.FilterViewer_DeleteActionText) { + @Override + public void run() { + selectedNode.remove(); + fViewer.refresh(); + } + }; + deleteAction.setImageDescriptor(PlatformUI.getWorkbench().getSharedImages().getImageDescriptor(ISharedImages.IMG_TOOL_DELETE)); + manager.add(deleteAction); + } manager.add(new Separator("edit")); //$NON-NLS-1$ if (fViewer.getInput() instanceof TmfFilterRootNode || filterTreeNode == null) { -- 2.34.1