From bc9a78f75ee9acea8f7815833eb2d612209e5520 Mon Sep 17 00:00:00 2001 From: Daniel Ratiu <ratiu@fortiss.org> Date: Sat, 5 Jan 2013 22:42:01 +0000 Subject: [PATCH] adding a tooltip with a hint about how to draw connections refs 1084 --- .../base/ui/editor/DiagramEditorBase.java | 20 +++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/editor/DiagramEditorBase.java b/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/editor/DiagramEditorBase.java index f7d0fadcf..d0d78aa9d 100644 --- a/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/editor/DiagramEditorBase.java +++ b/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/editor/DiagramEditorBase.java @@ -27,6 +27,7 @@ import static org.eclipse.gef.editparts.ZoomManager.FIT_WIDTH; import static org.fortiss.tooling.base.layout.DefaultLayoutConstants.DEFAULT_GRID_ORIGIN_X; import static org.fortiss.tooling.base.layout.DefaultLayoutConstants.DEFAULT_GRID_ORIGIN_Y; import static org.fortiss.tooling.base.layout.DefaultLayoutConstants.DEFAULT_GRID_SIZE; +import static org.fortiss.tooling.kernel.ui.util.EObjectSelectionUtils.getFirstElement; import java.util.ArrayList; import java.util.Arrays; @@ -35,6 +36,7 @@ import java.util.HashSet; import java.util.List; import java.util.Set; +import org.conqat.ide.commons.ui.selection.SelectionUtils; import org.eclipse.draw2d.ColorConstants; import org.eclipse.draw2d.IFigure; import org.eclipse.draw2d.geometry.Dimension; @@ -74,6 +76,7 @@ import org.eclipse.jface.viewers.ISelectionChangedListener; import org.eclipse.swt.SWT; import org.eclipse.swt.graphics.Color; import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Menu; import org.eclipse.ui.IActionBars; import org.eclipse.ui.IEditorInput; @@ -81,6 +84,8 @@ import org.eclipse.ui.IEditorSite; import org.eclipse.ui.ISelectionListener; import org.eclipse.ui.IWorkbenchPart; import org.eclipse.ui.PartInitException; +import org.fortiss.tooling.base.model.element.IConnector; +import org.fortiss.tooling.base.model.element.IHierarchicElement; import org.fortiss.tooling.base.ui.dnd.gef.ElementCompositionDropTargetListener; import org.fortiss.tooling.base.ui.editpart.ConnectorEditPartBase; import org.fortiss.tooling.base.ui.editpart.DiagramEditPartBase; @@ -91,7 +96,6 @@ import org.fortiss.tooling.kernel.ui.extension.base.EObjectActionBase; import org.fortiss.tooling.kernel.ui.extension.data.ContextMenuContextProvider; import org.fortiss.tooling.kernel.ui.service.IContextMenuService; import org.fortiss.tooling.kernel.ui.service.IEditPartFactoryService; -import org.fortiss.tooling.kernel.ui.util.EObjectSelectionUtils; /** * GEF editor base implementation for graphical viewer editors. @@ -101,7 +105,7 @@ import org.fortiss.tooling.kernel.ui.util.EObjectSelectionUtils; * @author hoelzl * @author $Author$ * @version $Rev$ - * @ConQAT.Rating YELLOW Hash: ED4D836D8777F3C81641AFB476504921 + * @ConQAT.Rating YELLOW Hash: 34AD598E80FD2507CF8EF5AD46AC9A9E */ public class DiagramEditorBase<T extends EObject> extends GEFEditorBase<T> implements IPostSelectionProvider, ContextMenuContextProvider { @@ -128,6 +132,15 @@ public class DiagramEditorBase<T extends EObject> extends GEFEditorBase<T> imple private final ISelectionListener selectionListener = new ISelectionListener() { @Override public void selectionChanged(IWorkbenchPart part, ISelection selection) { + EditPart ep = SelectionUtils.checkAndPickFirstSafe(selection, EditPart.class); + if(ep != null) { + Control control = ep.getViewer().getControl(); + if(ep.getModel() instanceof IConnector) { + control.setToolTipText("Link two connectors by pressing ALT and dragging from source to target."); + } else if(ep.getModel() instanceof IHierarchicElement) { + control.setToolTipText("Create a connection by pressing ALT and dragging."); + } + } updateActions(selectionActions); } }; @@ -146,8 +159,7 @@ public class DiagramEditorBase<T extends EObject> extends GEFEditorBase<T> imple @Override public EObject getSelectedModelElement() { if(getSite().getSelectionProvider() != null) { - return EObjectSelectionUtils.getFirstElement(getSite().getSelectionProvider() - .getSelection()); + return getFirstElement(getSite().getSelectionProvider().getSelection()); } return null; } -- GitLab