From 7102254b013de0590e4a3759e7de21f4dca38f6f Mon Sep 17 00:00:00 2001 From: Oleg Besedin Date: Thu, 24 Nov 2011 11:12:36 -0500 Subject: Bug 364039 - [Markers] Add "Delete All Markers" in severity group context menu in Problems view --- bundles/org.eclipse.ui.ide/plugin.xml | 7 +++-- .../views/markers/EditablePropertyTester.java | 31 +++++++++++++++++++--- .../views/markers/ExtendedMarkersView.java | 12 +++++++-- 3 files changed, 42 insertions(+), 8 deletions(-) diff --git a/bundles/org.eclipse.ui.ide/plugin.xml b/bundles/org.eclipse.ui.ide/plugin.xml index 5771e2700d4..ff6b24a423f 100644 --- a/bundles/org.eclipse.ui.ide/plugin.xml +++ b/bundles/org.eclipse.ui.ide/plugin.xml @@ -2155,7 +2155,10 @@ - + + + + @@ -2241,7 +2244,7 @@ id="org.eclipse.ui.ide.editable" namespace="org.eclipse.ui.ide" properties="editable" - type="org.eclipse.ui.internal.views.markers.MarkerEntry"> + type="org.eclipse.ui.internal.views.markers.MarkerSupportItem"> */ markers = new HashSet(); + if (item.isConcrete()) { + markers.add(((MarkerEntry) receiver).getMarker()); + } else { + MarkerSupportItem[] children = item.getChildren(); + for (int i = 0; i < children.length; i++) { + if (children[i].isConcrete()) + markers.add(((MarkerEntry) children[i]).getMarker()); + } + } + + if (!markers.isEmpty()) { + Iterator elements = markers.iterator(); + while (elements.hasNext()) { + IMarker marker = (IMarker) elements.next(); + if (!marker.getAttribute(IMarker.USER_EDITABLE, true)) + return false; + } + return true; + } } return false; } diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/views/markers/ExtendedMarkersView.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/views/markers/ExtendedMarkersView.java index e466a6eda58..2bafef81800 100644 --- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/views/markers/ExtendedMarkersView.java +++ b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/views/markers/ExtendedMarkersView.java @@ -7,6 +7,7 @@ * * Contributors: * IBM Corporation - initial API and implementation + * Andrew Gvozdev - Bug 364039 - Add "Delete All Markers" *******************************************************************************/ package org.eclipse.ui.internal.views.markers; @@ -891,11 +892,18 @@ public class ExtendedMarkersView extends ViewPart { if (selection instanceof IStructuredSelection) { IStructuredSelection structured = (IStructuredSelection) selection; Iterator elements = structured.iterator(); - Collection result = new ArrayList(); + Collection result = new HashSet(); while (elements.hasNext()) { MarkerSupportItem next = (MarkerSupportItem) elements.next(); - if (next.isConcrete()) + if (next.isConcrete()) { result.add(((MarkerEntry) next).getMarker()); + } else { + MarkerSupportItem[] children = next.getChildren(); + for (int i = 0; i < children.length; i++) { + if (children[i].isConcrete()) + result.add(((MarkerEntry) children[i]).getMarker()); + } + } } if (result.isEmpty()) return MarkerSupportInternalUtilities.EMPTY_MARKER_ARRAY; -- cgit v1.2.3