From d438b7c3f0c084c8d681bc7972cb29321d3aa71c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Christoph=20D=C3=B6bber?= <doebber@in.tum.de>
Date: Mon, 23 Jan 2012 13:09:52 +0000
Subject: [PATCH] added tooltip to error markers in gef editors - code is
 YELLOW refs 504

---
 .../ui/editpart/PositionedEditPartBase.java    | 18 +++++++++++++++++-
 1 file changed, 17 insertions(+), 1 deletion(-)

diff --git a/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/editpart/PositionedEditPartBase.java b/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/editpart/PositionedEditPartBase.java
index 5153ec5d2..6dfb5d68e 100644
--- a/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/editpart/PositionedEditPartBase.java
+++ b/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/editpart/PositionedEditPartBase.java
@@ -20,10 +20,13 @@ package org.fortiss.tooling.base.ui.editpart;
 import static org.fortiss.tooling.base.ui.editpart.ExtendedLayerRootEditPart.DECORATION_LAYER;
 import static org.fortiss.tooling.base.ui.editpart.ExtendedLayerRootEditPart.LABEL_LAYER;
 
+import java.util.Collection;
+
 import org.eclipse.draw2d.ConnectionAnchor;
 import org.eclipse.draw2d.IFigure;
 import org.eclipse.draw2d.Label;
 import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.emf.ecore.EObject;
 import org.eclipse.gef.ConnectionEditPart;
 import org.eclipse.gef.DragTracker;
 import org.eclipse.gef.NodeEditPart;
@@ -35,6 +38,7 @@ import org.eclipse.swt.graphics.Color;
 import org.eclipse.swt.graphics.Image;
 import org.fortiss.tooling.base.model.layout.ILayoutedModelElement;
 import org.fortiss.tooling.base.ui.layout.IDiagramLayoutConfiguration;
+import org.fortiss.tooling.kernel.extension.data.IConstraintViolation;
 import org.fortiss.tooling.kernel.extension.data.IConstraintViolation.ESeverity;
 import org.fortiss.tooling.kernel.ui.service.IMarkerService;
 import org.fortiss.tooling.kernel.ui.service.IModelElementHandlerService;
@@ -69,7 +73,7 @@ import org.fortiss.tooling.kernel.ui.service.IModelElementHandlerService;
  * @author hoelzl
  * @author $Author$
  * @version $Rev$
- * @ConQAT.Rating GREEN Hash: A01B2CB842D388DAAC38F6B9A2D853B8
+ * @ConQAT.Rating YELLOW Hash: AA7E698D18A510E82F864B9CEE5667FD
  */
 public abstract class PositionedEditPartBase<T extends ILayoutedModelElement>
 		extends GraphicalEditPartBase<T> implements NodeEditPart {
@@ -219,6 +223,18 @@ public abstract class PositionedEditPartBase<T extends ILayoutedModelElement>
 		default:
 		}
 		decorationFigure.setIcon(icon);
+		if (icon != null) {
+			String message = "";
+			Collection<IConstraintViolation<? extends EObject>> violations = IMarkerService.INSTANCE
+					.getViolations(getModel());
+			for (IConstraintViolation<? extends EObject> viol : violations) {
+				if (viol.getSeverity() == sev) {
+					message = viol.getExplanation();
+					break;
+				}
+			}
+			decorationFigure.setToolTip(new Label(message));
+		}
 	}
 
 	/**
-- 
GitLab