From 55afd48ec007c94c25ea2bd4871083b70e79b4a2 Mon Sep 17 00:00:00 2001 From: Marc Dumais Date: Wed, 23 Apr 2014 07:05:40 -0400 Subject: Turned-on API analysis for Visualizer and tweaked previous commits that broke API stability. Change-Id: Idda130776b54f9e984b4179a32532413f2972f5d Reviewed-on: https://git.eclipse.org/r/25410 Reviewed-by: Marc Khouzam Tested-by: Hudson CI --- visualizer/org.eclipse.cdt.visualizer.ui/.project | 6 +++++ .../META-INF/MANIFEST.MF | 2 +- visualizer/org.eclipse.cdt.visualizer.ui/pom.xml | 2 +- .../cdt/visualizer/ui/canvas/GraphicCanvas.java | 4 ++-- .../cdt/visualizer/ui/canvas/GraphicObject.java | 5 +++- .../cdt/visualizer/ui/canvas/IGraphicObject.java | 10 -------- .../cdt/visualizer/ui/canvas/ITooltipProvider.java | 28 ++++++++++++++++++++++ .../eclipse/cdt/visualizer/ui/util/GUIUtils.java | 9 ++++--- 8 files changed, 48 insertions(+), 18 deletions(-) create mode 100644 visualizer/org.eclipse.cdt.visualizer.ui/src/org/eclipse/cdt/visualizer/ui/canvas/ITooltipProvider.java (limited to 'visualizer') diff --git a/visualizer/org.eclipse.cdt.visualizer.ui/.project b/visualizer/org.eclipse.cdt.visualizer.ui/.project index a76968ea1d3..e89059272ad 100755 --- a/visualizer/org.eclipse.cdt.visualizer.ui/.project +++ b/visualizer/org.eclipse.cdt.visualizer.ui/.project @@ -20,9 +20,15 @@ + + org.eclipse.pde.api.tools.apiAnalysisBuilder + + + org.eclipse.pde.PluginNature org.eclipse.jdt.core.javanature + org.eclipse.pde.api.tools.apiAnalysisNature diff --git a/visualizer/org.eclipse.cdt.visualizer.ui/META-INF/MANIFEST.MF b/visualizer/org.eclipse.cdt.visualizer.ui/META-INF/MANIFEST.MF index a8bc4639c8d..3b1076dbf90 100755 --- a/visualizer/org.eclipse.cdt.visualizer.ui/META-INF/MANIFEST.MF +++ b/visualizer/org.eclipse.cdt.visualizer.ui/META-INF/MANIFEST.MF @@ -2,7 +2,7 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: %plugin.name Bundle-SymbolicName: org.eclipse.cdt.visualizer.ui;singleton:=true -Bundle-Version: 1.0.0.qualifier +Bundle-Version: 1.1.0.qualifier Bundle-Activator: org.eclipse.cdt.visualizer.ui.plugin.CDTVisualizerUIPlugin Bundle-Vendor: %provider.name Require-Bundle: org.eclipse.ui, diff --git a/visualizer/org.eclipse.cdt.visualizer.ui/pom.xml b/visualizer/org.eclipse.cdt.visualizer.ui/pom.xml index 5db64fc0312..90b91966a79 100644 --- a/visualizer/org.eclipse.cdt.visualizer.ui/pom.xml +++ b/visualizer/org.eclipse.cdt.visualizer.ui/pom.xml @@ -11,7 +11,7 @@ ../../pom.xml - 1.0.0-SNAPSHOT + 1.1.0-SNAPSHOT org.eclipse.cdt.visualizer.ui eclipse-plugin 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 20fc6c1058e..a249b52d83c 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 @@ -53,8 +53,8 @@ public class GraphicCanvas extends BufferedCanvas case SWT.MouseEnter: case SWT.MouseMove: IGraphicObject obj = getGraphicObject(event.x, event.y); - if (obj != null) { - String tooltip = obj.getTooltip(event.x, event.y); + if (obj instanceof ITooltipProvider) { + String tooltip = ((ITooltipProvider) obj).getTooltip(event.x, event.y); setToolTipText(tooltip); } break; diff --git a/visualizer/org.eclipse.cdt.visualizer.ui/src/org/eclipse/cdt/visualizer/ui/canvas/GraphicObject.java b/visualizer/org.eclipse.cdt.visualizer.ui/src/org/eclipse/cdt/visualizer/ui/canvas/GraphicObject.java index b62752e19eb..bc00108b78a 100755 --- a/visualizer/org.eclipse.cdt.visualizer.ui/src/org/eclipse/cdt/visualizer/ui/canvas/GraphicObject.java +++ b/visualizer/org.eclipse.cdt.visualizer.ui/src/org/eclipse/cdt/visualizer/ui/canvas/GraphicObject.java @@ -26,7 +26,7 @@ import org.eclipse.swt.graphics.Rectangle; * Base class for objects that can be displayed and manipulated on a GraphicCanvas. */ public class GraphicObject - implements IGraphicObject + implements IGraphicObject, ITooltipProvider { // --- members --- @@ -277,6 +277,9 @@ public class GraphicObject public void paintDecorations(GC gc) { } + /** + * @since 1.1 + */ @Override public String getTooltip(int x, int y) { return null; diff --git a/visualizer/org.eclipse.cdt.visualizer.ui/src/org/eclipse/cdt/visualizer/ui/canvas/IGraphicObject.java b/visualizer/org.eclipse.cdt.visualizer.ui/src/org/eclipse/cdt/visualizer/ui/canvas/IGraphicObject.java index 953b1e63af7..d6b624e169c 100755 --- a/visualizer/org.eclipse.cdt.visualizer.ui/src/org/eclipse/cdt/visualizer/ui/canvas/IGraphicObject.java +++ b/visualizer/org.eclipse.cdt.visualizer.ui/src/org/eclipse/cdt/visualizer/ui/canvas/IGraphicObject.java @@ -7,7 +7,6 @@ * * Contributors: * William R. Swanson (Tilera Corporation) - * Xavier Raynaud (Kalray) - Bug 430804 *******************************************************************************/ package org.eclipse.cdt.visualizer.ui.canvas; @@ -32,15 +31,6 @@ public interface IGraphicObject * If decorations is true, paints optional "decorations" layer. */ public void paint(GC gc, boolean decorations); - - /** - * Return the tooltip to display when mouse stays on this object. - * It may return null if there is nothing to display. - * @param x the x coordinate - * @param y the y coordinate - * @return the tooltip to display on this object. - */ - public String getTooltip(int x, int y); /** Returns true if object has decorations to paint. */ public boolean hasDecorations(); diff --git a/visualizer/org.eclipse.cdt.visualizer.ui/src/org/eclipse/cdt/visualizer/ui/canvas/ITooltipProvider.java b/visualizer/org.eclipse.cdt.visualizer.ui/src/org/eclipse/cdt/visualizer/ui/canvas/ITooltipProvider.java new file mode 100644 index 00000000000..27992b3d0bd --- /dev/null +++ b/visualizer/org.eclipse.cdt.visualizer.ui/src/org/eclipse/cdt/visualizer/ui/canvas/ITooltipProvider.java @@ -0,0 +1,28 @@ +/******************************************************************************* + * Copyright (c) 2014 Ericsson. + * 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: + * Marc Dumais (Ericsson) - initial API and implementation + * Xavier Raynaud (Kalray) - Bug 430804 + *******************************************************************************/ + +package org.eclipse.cdt.visualizer.ui.canvas; + +/** + * Interface that can be implemented by objects that want to provide tooltips. + * @since 1.1 + */ +public interface ITooltipProvider { + /** + * Return the tooltip to display when mouse stays on this object. + * It may return null if there is nothing to display. + * @param x the x coordinate + * @param y the y coordinate + * @return the tooltip to display on this object. + */ + public String getTooltip(int x, int y); +} diff --git a/visualizer/org.eclipse.cdt.visualizer.ui/src/org/eclipse/cdt/visualizer/ui/util/GUIUtils.java b/visualizer/org.eclipse.cdt.visualizer.ui/src/org/eclipse/cdt/visualizer/ui/util/GUIUtils.java index 138ad4fd1fd..b33c61dad25 100755 --- a/visualizer/org.eclipse.cdt.visualizer.ui/src/org/eclipse/cdt/visualizer/ui/util/GUIUtils.java +++ b/visualizer/org.eclipse.cdt.visualizer.ui/src/org/eclipse/cdt/visualizer/ui/util/GUIUtils.java @@ -89,7 +89,8 @@ public class GUIUtils { gc.drawText(text, x, y, SWT.DRAW_TRANSPARENT); } - /** Draws transparent text, with the default alignment (top/left). */ + /** Draws transparent text, with the default alignment (top/left). + * @since 1.1*/ static public void drawText(GC gc, String text, Rectangle clip, int x, int y) { Rectangle oldClip = gc.getClipping(); @@ -112,7 +113,8 @@ public class GUIUtils { } } - /** Draws transparent text, with the specified alignments. */ + /** Draws transparent text, with the specified alignments. + * @since 1.1*/ static public void drawTextAligned(GC gc, String text, Rectangle clip, int x, int y, boolean left, boolean top) { Rectangle oldClip = gc.getClipping(); @@ -130,7 +132,8 @@ public class GUIUtils { y - (int) Math.round(te.y / 2.0), SWT.DRAW_TRANSPARENT); } - /** Draws transparent text, centered on the specified point. */ + /** Draws transparent text, centered on the specified point. + * @since 1.1*/ static public void drawTextCentered(GC gc, String text, Rectangle clip, int x, int y) { Rectangle oldClip = gc.getClipping(); -- cgit v1.2.3