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