From ef88803b17371eafe7f27396ec2e3b76c8f49bbf Mon Sep 17 00:00:00 2001 From: Florian Hoelzl <hoelzl@fortiss.org> Date: Thu, 2 Feb 2012 09:01:43 +0000 Subject: [PATCH] fixed refs 598 --- .../base/ui/editpart/ElementEditPartBase.java | 1 - .../ui/editpart/PositionedEditPartBase.java | 48 +++++++++++++------ 2 files changed, 33 insertions(+), 16 deletions(-) diff --git a/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/editpart/ElementEditPartBase.java b/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/editpart/ElementEditPartBase.java index da4c66432..1856d1c8d 100644 --- a/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/editpart/ElementEditPartBase.java +++ b/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/editpart/ElementEditPartBase.java @@ -85,7 +85,6 @@ public abstract class ElementEditPartBase<T extends ILayoutedModelElement & INam nameLabel.setIcon(IModelElementHandlerService.INSTANCE .getModelElementHandler(getModel()).getIcon()); return nameLabel; - } /** 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 d4d59c921..3620cc502 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 @@ -37,6 +37,7 @@ import org.eclipse.gef.tools.DragEditPartsTracker; 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.editpart.figure.TransparentLabel; 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; @@ -73,7 +74,7 @@ import org.fortiss.tooling.kernel.ui.service.IModelElementHandlerService; * @author hoelzl * @author $Author$ * @version $Rev$ - * @ConQAT.Rating GREEN Hash: A3E4A702B8E644BAA152153CBEC63DB2 + * @ConQAT.Rating YELLOW Hash: 5FE3D895F9E86F63B52B038EAF664C34 */ public abstract class PositionedEditPartBase<T extends ILayoutedModelElement> extends GraphicalEditPartBase<T> implements NodeEditPart { @@ -146,7 +147,7 @@ public abstract class PositionedEditPartBase<T extends ILayoutedModelElement> * a figure. */ protected Label createDecorationFigure() { - return new Label(); + return new TransparentLabel(); } /** @@ -184,9 +185,7 @@ public abstract class PositionedEditPartBase<T extends ILayoutedModelElement> baseFigure.getParent().setConstraint(baseFigure, baseBounds); baseFigure.setForegroundColor(getForegroundColor()); baseFigure.setBackgroundColor(getBackgroundColor()); - baseFigure.setToolTip(new Label( - IModelElementHandlerService.INSTANCE - .getWrappedNameDescription(getModel()))); + baseFigure.setToolTip(new Label(getBaseFigureTooltip())); } if (labelFigure != null && labelFigure.getParent() != null) { @@ -201,6 +200,23 @@ public abstract class PositionedEditPartBase<T extends ILayoutedModelElement> } } + /** Returns the current tooltip description. */ + protected String getBaseFigureTooltip() { + String message = IModelElementHandlerService.INSTANCE + .getWrappedNameDescription(getModel()); + ESeverity sev = IMarkerService.INSTANCE + .getHighestViolationSeverity(getModel()); + switch (sev) { + case ERROR: + message = getViolationMessage(sev); + break; + case WARNING: + message = getViolationMessage(sev); + break; + } + return message; + } + /** Refreshes the decoration figure using {@link IMarkerService} */ private void refreshDecorationFigure() { Rectangle decorationBounds = determineDecorationFigureBounds(); @@ -223,18 +239,20 @@ 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; - } + } + + /** Returns the message for the given severity of the model. */ + private String getViolationMessage(ESeverity sev) { + 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)); } + return message; } /** -- GitLab