From 1934d97adaa4d86853851cfd6d7f34da1b737616 Mon Sep 17 00:00:00 2001
From: Vincent Aravantinos <aravantinos@fortiss.org>
Date: Fri, 8 Jul 2016 11:54:57 +0000
Subject: [PATCH] makes use of the new service refs 2620

---
 .../ui/internal/views/ConstraintMenu.java     | 44 ++++++++++++-------
 1 file changed, 29 insertions(+), 15 deletions(-)

diff --git a/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/internal/views/ConstraintMenu.java b/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/internal/views/ConstraintMenu.java
index 82721b9b5..83b91934d 100644
--- a/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/internal/views/ConstraintMenu.java
+++ b/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/internal/views/ConstraintMenu.java
@@ -55,7 +55,7 @@ import org.fortiss.tooling.kernel.ui.service.IModelElementHandlerService;
  * @author hoelzl
  * @author $Author$
  * @version $Rev$
- * @ConQAT.Rating YELLOW Hash: B2B88D03669D73EC77D1D69F51E62B54
+ * @ConQAT.Rating YELLOW Hash: 265A5183E7E403DDC53A61F5B27D8B5A
  */
 public class ConstraintMenu implements IContextMenuContributor {
 
@@ -67,11 +67,22 @@ public class ConstraintMenu implements IContextMenuContributor {
 			return Collections.emptyList();
 		}
 		return ((IConstrained)selectedObject).getConstraints().stream()
-				.filter(c -> !(c.getVerificationStatus() instanceof SuccessVerificationStatus))
+				.filter(c -> shouldGetMenuEntry(c))
 				.map(c -> constraintToAction(c, (IConstrained)selectedObject))
 				.collect(Collectors.toList());
 	}
 
+	/**
+	 * @param c
+	 * @return <code>true</code> iff <code>c</code> should get a menu entry, i.e., if not successful
+	 *         and activated.
+	 */
+	private boolean shouldGetMenuEntry(IConstraint c) {
+		IConstraintVerificationStatus status =
+				IConstraintVerificationUIService.getInstance().getStatus(c);
+		return !(status == null || status instanceof SuccessVerificationStatus);
+	}
+
 	/**
 	 * @param c
 	 * @param elt
@@ -80,14 +91,18 @@ public class ConstraintMenu implements IContextMenuContributor {
 	 *         (not hurtful, but useless, since the user is already seeing it).
 	 */
 	private IContributionItem constraintToAction(IConstraint c, IConstrained elt) {
-		IConstraintVerificationStatus status = c.getVerificationStatus();
+		IConstraintVerificationStatus status =
+				IConstraintVerificationUIService.getInstance().getStatus(c);
 		ConstraintSubMenuBase m;
 		if(status instanceof FailVerificationStatus) {
 			m = new CheckFailingConstraintAction(c, elt);
 		} else if(status instanceof ErrorVerificationStatus) {
 			m = new CheckErrorConstraintAction(c, elt);
-		} else {
+		} else if(status instanceof OutdatedVerificationStatus) {
 			m = new CheckOutdatedConstraintAction(c, elt);
+		} else {
+			// should not happen
+			return null;
 		}
 		if(m.getItems().length > 1) {
 			return m;
@@ -194,19 +209,20 @@ public class ConstraintMenu implements IContextMenuContributor {
 			/** {@inheritDoc} */
 			@Override
 			public void run() {
-				IConstraintVerificationStatus status = c.getVerificationStatus();
-				if(c.getVerificationStatus() instanceof OutdatedVerificationStatus &&
-						IConstraintVerificationUIService.getInstance().canOpen(status)) {
+				IConstraintVerificationStatus status =
+						IConstraintVerificationUIService.getInstance().getStatus(c);
+				if(status instanceof OutdatedVerificationStatus &&
+						IConstraintVerificationUIService.getInstance().canOpen(c)) {
 					ICommandStackService.getInstance().runAsCommand(c, new Runnable() {
 						@Override
 						public void run() {
-							IConstraintVerificationUIService.getInstance().openStatus(status);
+							IConstraintVerificationUIService.getInstance().openStatus(c);
 						}
 					});
 					return;
 				}
-				if(IConstraintVerificationUIService.getInstance().canOpen(status)) {
-					IConstraintVerificationUIService.getInstance().openStatus(status);
+				if(IConstraintVerificationUIService.getInstance().canOpen(c)) {
+					IConstraintVerificationUIService.getInstance().openStatus(c);
 				} else {
 					// In the very rare cases where the status cannot be open (if the defaults are
 					// used, this should not happen), we provide some defaults.
@@ -221,8 +237,7 @@ public class ConstraintMenu implements IContextMenuContributor {
 						String msg = "There was an error while verifying ";
 						msg += (name == null ? "the " : "") + fullName + ".";
 						openError(sh, "Error while verifying constraint", msg);
-					}
-					if(status instanceof OutdatedVerificationStatus) {
+					} else if(status instanceof OutdatedVerificationStatus) {
 						String msg = (name == null ? "The " : fullName) + " is outdated.";
 						MessageDialog.openWarning(sh, "Outdated constraint", msg);
 					}
@@ -251,8 +266,7 @@ public class ConstraintMenu implements IContextMenuContributor {
 		public CheckUnsuccessfulConstraintAction(IConstraint c, IConstrained selectedElt,
 				String prefix) {
 			super(c, selectedElt, prefix, ESharedImages.ERROR_OVERLAY.getImageDescriptor());
-			List<IFix> fixes =
-					IConstraintVerificationService.getInstance().fixes(c.getVerificationStatus());
+			List<IFix> fixes = IConstraintVerificationService.getInstance().fixes(c);
 			if(fixes != null) {
 				for(IFix fix : fixes) {
 					this.add(new ActionContributionItem(new FixAction(fix)));
@@ -280,7 +294,7 @@ public class ConstraintMenu implements IContextMenuContributor {
 
 					@Override
 					public void run() {
-						fix.runFix(c.getVerificationStatus());
+						fix.runFix(IConstraintVerificationUIService.getInstance().getStatus(c));
 					}
 				});
 			}
-- 
GitLab