Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'visualizer/org.eclipse.cdt.visualizer.ui/src/org/eclipse/cdt/visualizer/ui/canvas/GraphicCanvas.java')
-rwxr-xr-xvisualizer/org.eclipse.cdt.visualizer.ui/src/org/eclipse/cdt/visualizer/ui/canvas/GraphicCanvas.java374
1 files changed, 187 insertions, 187 deletions
diff --git a/visualizer/org.eclipse.cdt.visualizer.ui/src/org/eclipse/cdt/visualizer/ui/canvas/GraphicCanvas.java b/visualizer/org.eclipse.cdt.visualizer.ui/src/org/eclipse/cdt/visualizer/ui/canvas/GraphicCanvas.java
index a249b52d83c..f1002ac0487 100755
--- a/visualizer/org.eclipse.cdt.visualizer.ui/src/org/eclipse/cdt/visualizer/ui/canvas/GraphicCanvas.java
+++ b/visualizer/org.eclipse.cdt.visualizer.ui/src/org/eclipse/cdt/visualizer/ui/canvas/GraphicCanvas.java
@@ -1,187 +1,187 @@
-/*******************************************************************************
- * Copyright (c) 2012, 2014 Tilera Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * William R. Swanson (Tilera Corporation)
- * Xavier Raynaud (Kalray) - Bug 430804
- *******************************************************************************/
-
-package org.eclipse.cdt.visualizer.ui.canvas;
-
-import java.util.ArrayList;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Listener;
-
-
-// ---------------------------------------------------------------------------
-// GraphicCanvas
-// ---------------------------------------------------------------------------
-
-/**
- * Viewer canvas -- base class for canvas that displays a collection
- * of persistent, repositionable graphic objects.
- *
- * Note: painting is done in order objects were added,
- * so objects added last are drawn "on top" of others.
- * Use raise/lower methods to change the object z-ordering, if needed.
- */
-public class GraphicCanvas extends BufferedCanvas
-{
- // --- members ---
-
- /** Viewer elements. */
- protected ArrayList<IGraphicObject> m_objects = null;
-
-
- // --- constructors/destructors ---
-
- /** Constructor. */
- public GraphicCanvas(Composite parent) {
- super(parent);
- m_objects = new ArrayList<IGraphicObject>();
- Listener mouseListener = new Listener() {
- public void handleEvent(Event event) {
- switch (event.type) {
- case SWT.MouseEnter:
- case SWT.MouseMove:
- IGraphicObject obj = getGraphicObject(event.x, event.y);
- if (obj instanceof ITooltipProvider) {
- String tooltip = ((ITooltipProvider) obj).getTooltip(event.x, event.y);
- setToolTipText(tooltip);
- }
- break;
- }
- }
- };
- addListener(SWT.MouseMove, mouseListener);
- addListener(SWT.MouseEnter, mouseListener);
- }
-
- /** Dispose method. */
- public void dispose() {
- if (m_objects != null) {
- m_objects.clear();
- m_objects = null;
- }
- super.dispose();
- }
-
-
- // --- object management methods ---
-
- /** Removes all elements */
- public void clear() {
- m_objects.clear();
- }
-
- /** Adds an element */
- public IGraphicObject add(IGraphicObject element) {
- if (! m_objects.contains(element)) {
- m_objects.add(element);
- }
- return element;
- }
-
- /** Removes an element */
- public void remove(IGraphicObject element) {
- m_objects.remove(element);
- }
-
- /** Raises an element to top of repaint z-ordering */
- public void raiseToFront(IGraphicObject element) {
- if (m_objects.contains(element)) {
- m_objects.remove(element);
- m_objects.add(element);
- }
- }
-
- /** Lowers an element to bottom of repaint z-ordering */
- public void lowerToBack(IGraphicObject element) {
- if (m_objects.contains(element)) {
- m_objects.remove(element);
- m_objects.add(0, element);
- }
- }
-
-
- // --- painting methods ---
-
- /** Paints elements on canvas. */
- public void paintCanvas(GC gc) {
- // paint background first
- clearCanvas(gc);
-
- // we paint object list from start to end,
- // so end of the list is "top" in z-ordering
-
- // allow objects to draw themselves
- for (IGraphicObject gobj : m_objects) {
- gobj.paint(gc, false);
- }
-
- // allow objects to paint any "decorations" on top of other stuff
- for (IGraphicObject gobj : m_objects) {
- if (gobj.hasDecorations())
- gobj.paint(gc, true);
- }
- }
-
-
- // --- point-to-object accessors ---
-
- /** Returns first graphic object found under specified point */
- public IGraphicObject getGraphicObject(int x, int y) {
- return getGraphicObject(null, x, y);
- }
-
- /** Returns first graphic object found under specified point.
- * If type argument is non-null, returns first object assignable to specified type.
- */
- public IGraphicObject getGraphicObject(Class<?> type, int x, int y) {
- IGraphicObject result = null;
-
- // note: have to search list in reverse order we draw it,
- // so we hit items "on top" in the z-ordering first
- int count = (m_objects == null) ? 0 : m_objects.size();
- for (int i=count-1; i>=0; i--) {
- IGraphicObject gobj = m_objects.get(i);
- if (gobj.contains(x, y)) {
- if (type != null) {
- Class<?> objType = gobj.getClass();
- if (! type.isAssignableFrom(objType)) continue;
- }
- result = gobj;
- break;
- }
- }
-
- return result;
- }
-
- // --- model data accessors ---
-
- /** Returns graphic object (if any) that has specified data value. */
- public IGraphicObject getGraphicObjectFor(Object value) {
- IGraphicObject result = null;
- for (IGraphicObject gobj : m_objects) {
- if (gobj.getData() == value) {
- result = gobj;
- break;
- }
- }
- return result;
- }
-
- /** Returns data value (if any) for the specified graphic element. */
- public Object getDataFor(IGraphicObject IGraphicObject) {
- return (IGraphicObject == null) ? null : IGraphicObject.getData();
- }
-}
+/*******************************************************************************
+ * Copyright (c) 2012, 2014 Tilera Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * William R. Swanson (Tilera Corporation)
+ * Xavier Raynaud (Kalray) - Bug 430804
+ *******************************************************************************/
+
+package org.eclipse.cdt.visualizer.ui.canvas;
+
+import java.util.ArrayList;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.GC;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Listener;
+
+
+// ---------------------------------------------------------------------------
+// GraphicCanvas
+// ---------------------------------------------------------------------------
+
+/**
+ * Viewer canvas -- base class for canvas that displays a collection
+ * of persistent, repositionable graphic objects.
+ *
+ * Note: painting is done in order objects were added,
+ * so objects added last are drawn "on top" of others.
+ * Use raise/lower methods to change the object z-ordering, if needed.
+ */
+public class GraphicCanvas extends BufferedCanvas
+{
+ // --- members ---
+
+ /** Viewer elements. */
+ protected ArrayList<IGraphicObject> m_objects = null;
+
+
+ // --- constructors/destructors ---
+
+ /** Constructor. */
+ public GraphicCanvas(Composite parent) {
+ super(parent);
+ m_objects = new ArrayList<IGraphicObject>();
+ Listener mouseListener = new Listener() {
+ public void handleEvent(Event event) {
+ switch (event.type) {
+ case SWT.MouseEnter:
+ case SWT.MouseMove:
+ IGraphicObject obj = getGraphicObject(event.x, event.y);
+ if (obj instanceof ITooltipProvider) {
+ String tooltip = ((ITooltipProvider) obj).getTooltip(event.x, event.y);
+ setToolTipText(tooltip);
+ }
+ break;
+ }
+ }
+ };
+ addListener(SWT.MouseMove, mouseListener);
+ addListener(SWT.MouseEnter, mouseListener);
+ }
+
+ /** Dispose method. */
+ public void dispose() {
+ if (m_objects != null) {
+ m_objects.clear();
+ m_objects = null;
+ }
+ super.dispose();
+ }
+
+
+ // --- object management methods ---
+
+ /** Removes all elements */
+ public void clear() {
+ m_objects.clear();
+ }
+
+ /** Adds an element */
+ public IGraphicObject add(IGraphicObject element) {
+ if (! m_objects.contains(element)) {
+ m_objects.add(element);
+ }
+ return element;
+ }
+
+ /** Removes an element */
+ public void remove(IGraphicObject element) {
+ m_objects.remove(element);
+ }
+
+ /** Raises an element to top of repaint z-ordering */
+ public void raiseToFront(IGraphicObject element) {
+ if (m_objects.contains(element)) {
+ m_objects.remove(element);
+ m_objects.add(element);
+ }
+ }
+
+ /** Lowers an element to bottom of repaint z-ordering */
+ public void lowerToBack(IGraphicObject element) {
+ if (m_objects.contains(element)) {
+ m_objects.remove(element);
+ m_objects.add(0, element);
+ }
+ }
+
+
+ // --- painting methods ---
+
+ /** Paints elements on canvas. */
+ public void paintCanvas(GC gc) {
+ // paint background first
+ clearCanvas(gc);
+
+ // we paint object list from start to end,
+ // so end of the list is "top" in z-ordering
+
+ // allow objects to draw themselves
+ for (IGraphicObject gobj : m_objects) {
+ gobj.paint(gc, false);
+ }
+
+ // allow objects to paint any "decorations" on top of other stuff
+ for (IGraphicObject gobj : m_objects) {
+ if (gobj.hasDecorations())
+ gobj.paint(gc, true);
+ }
+ }
+
+
+ // --- point-to-object accessors ---
+
+ /** Returns first graphic object found under specified point */
+ public IGraphicObject getGraphicObject(int x, int y) {
+ return getGraphicObject(null, x, y);
+ }
+
+ /** Returns first graphic object found under specified point.
+ * If type argument is non-null, returns first object assignable to specified type.
+ */
+ public IGraphicObject getGraphicObject(Class<?> type, int x, int y) {
+ IGraphicObject result = null;
+
+ // note: have to search list in reverse order we draw it,
+ // so we hit items "on top" in the z-ordering first
+ int count = (m_objects == null) ? 0 : m_objects.size();
+ for (int i=count-1; i>=0; i--) {
+ IGraphicObject gobj = m_objects.get(i);
+ if (gobj.contains(x, y)) {
+ if (type != null) {
+ Class<?> objType = gobj.getClass();
+ if (! type.isAssignableFrom(objType)) continue;
+ }
+ result = gobj;
+ break;
+ }
+ }
+
+ return result;
+ }
+
+ // --- model data accessors ---
+
+ /** Returns graphic object (if any) that has specified data value. */
+ public IGraphicObject getGraphicObjectFor(Object value) {
+ IGraphicObject result = null;
+ for (IGraphicObject gobj : m_objects) {
+ if (gobj.getData() == value) {
+ result = gobj;
+ break;
+ }
+ }
+ return result;
+ }
+
+ /** Returns data value (if any) for the specified graphic element. */
+ public Object getDataFor(IGraphicObject IGraphicObject) {
+ return (IGraphicObject == null) ? null : IGraphicObject.getData();
+ }
+}

Back to the top