diff --git a/visualizer/org.eclipse.cdt.visualizer.examples/plugin.xml b/visualizer/org.eclipse.cdt.visualizer.examples/plugin.xml index f4e51561dd2..55d329cf0bb 100644 --- a/visualizer/org.eclipse.cdt.visualizer.examples/plugin.xml +++ b/visualizer/org.eclipse.cdt.visualizer.examples/plugin.xml @@ -4,8 +4,8 @@ + class="org.eclipse.cdt.visualizer.examples.ProblemVisualizer.ProblemVisualizer" + id="org.eclipse.cdt.visualizer.examples.ProblemVisualizer"> diff --git a/visualizer/org.eclipse.cdt.visualizer.examples/src/org/eclipse/cdt/visualizer/examples/Messages.java b/visualizer/org.eclipse.cdt.visualizer.examples/src/org/eclipse/cdt/visualizer/examples/ProblemVisualizer/Messages.java similarity index 94% rename from visualizer/org.eclipse.cdt.visualizer.examples/src/org/eclipse/cdt/visualizer/examples/Messages.java rename to visualizer/org.eclipse.cdt.visualizer.examples/src/org/eclipse/cdt/visualizer/examples/ProblemVisualizer/Messages.java index 34bd6eb80f0..d4932dd748a 100644 --- a/visualizer/org.eclipse.cdt.visualizer.examples/src/org/eclipse/cdt/visualizer/examples/Messages.java +++ b/visualizer/org.eclipse.cdt.visualizer.examples/src/org/eclipse/cdt/visualizer/examples/ProblemVisualizer/Messages.java @@ -8,7 +8,7 @@ * Contributors: * Marc Khouzam (Ericsson) - initial API and implementation *******************************************************************************/ -package org.eclipse.cdt.visualizer.examples; +package org.eclipse.cdt.visualizer.examples.ProblemVisualizer; import org.eclipse.osgi.util.NLS; diff --git a/visualizer/org.eclipse.cdt.visualizer.examples/src/org/eclipse/cdt/visualizer/examples/Messages.properties b/visualizer/org.eclipse.cdt.visualizer.examples/src/org/eclipse/cdt/visualizer/examples/ProblemVisualizer/Messages.properties similarity index 90% rename from visualizer/org.eclipse.cdt.visualizer.examples/src/org/eclipse/cdt/visualizer/examples/Messages.properties rename to visualizer/org.eclipse.cdt.visualizer.examples/src/org/eclipse/cdt/visualizer/examples/ProblemVisualizer/Messages.properties index e8ad66d2a4f..0f4271ed214 100644 --- a/visualizer/org.eclipse.cdt.visualizer.examples/src/org/eclipse/cdt/visualizer/examples/Messages.properties +++ b/visualizer/org.eclipse.cdt.visualizer.examples/src/org/eclipse/cdt/visualizer/examples/ProblemVisualizer/Messages.properties @@ -7,7 +7,6 @@ # # Contributors: # Marc Khouzam (Ericsson) - initial API and implementation -############################################################################### ProblemCountVisualizer_Name=ProblemCounter ProblemCountVisualizer_DisplayName=Problem Count diff --git a/visualizer/org.eclipse.cdt.visualizer.examples/src/org/eclipse/cdt/visualizer/examples/ProblemVisualizer.java b/visualizer/org.eclipse.cdt.visualizer.examples/src/org/eclipse/cdt/visualizer/examples/ProblemVisualizer/ProblemVisualizer.java similarity index 92% rename from visualizer/org.eclipse.cdt.visualizer.examples/src/org/eclipse/cdt/visualizer/examples/ProblemVisualizer.java rename to visualizer/org.eclipse.cdt.visualizer.examples/src/org/eclipse/cdt/visualizer/examples/ProblemVisualizer/ProblemVisualizer.java index 91d2a4bdfe8..47a2a69e6ed 100644 --- a/visualizer/org.eclipse.cdt.visualizer.examples/src/org/eclipse/cdt/visualizer/examples/ProblemVisualizer.java +++ b/visualizer/org.eclipse.cdt.visualizer.examples/src/org/eclipse/cdt/visualizer/examples/ProblemVisualizer/ProblemVisualizer.java @@ -8,7 +8,9 @@ * Contributors: * Marc Khouzam (Ericsson) - initial API and implementation *******************************************************************************/ -package org.eclipse.cdt.visualizer.examples; +package org.eclipse.cdt.visualizer.examples.ProblemVisualizer; + +import java.util.List; import org.eclipse.cdt.visualizer.ui.canvas.GraphicCanvas; import org.eclipse.cdt.visualizer.ui.canvas.GraphicCanvasVisualizer; @@ -176,17 +178,6 @@ public class ProblemVisualizer extends GraphicCanvasVisualizer { m_canvas = null; } } - - @Override - public int handlesSelection(ISelection selection) { - Object sel = SelectionUtils.getSelectedObject(selection); - - if (sel instanceof IResource) { - return 2; - } - - return 0; - } @Override public void visualizerDeselected() { @@ -257,14 +248,19 @@ public class ProblemVisualizer extends GraphicCanvasVisualizer { } /** - * Get the count of problem markers for each severity for the - * specified resource. + * Clear the marker count array. */ - private void setMarkerCount(IResource resource) { + private void clearMarkerCount() { m_markerCount[IMarker.SEVERITY_ERROR] = 0; m_markerCount[IMarker.SEVERITY_WARNING] = 0; m_markerCount[IMarker.SEVERITY_INFO] = 0; - + } + + /** + * Add the count of problem markers for each severity for the + * specified resource. + */ + private void addToMarkerCount(IResource resource) { IMarker[] problems = null; try { problems = resource.findMarkers(IMarker.PROBLEM, true, IResource.DEPTH_INFINITE); @@ -305,12 +301,32 @@ public class ProblemVisualizer extends GraphicCanvasVisualizer { m_canvas.redraw(); } + @Override + public int handlesSelection(ISelection selection) { + List selections = SelectionUtils.getSelectedObjects(selection); + + // As long as we support at least one element of the selection + // that is good enough + for (Object sel : selections) { + if (sel instanceof IResource) { + return 2; + } + } + + return 0; + } + @Override public void workbenchSelectionChanged(ISelection selection) { - Object sel = SelectionUtils.getSelectedObject(selection); - if (sel instanceof IResource) { - // Update the data - setMarkerCount((IResource)sel); + clearMarkerCount(); + + List selections = SelectionUtils.getSelectedObjects(selection); + + for (Object sel : selections) { + if (sel instanceof IResource) { + // Update the data + addToMarkerCount((IResource)sel); + } } refresh();