From 345b65fd9d88835949f85811471b8c46f853e058 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Christoph=20D=C3=B6bber?= <doebber@in.tum.de>
Date: Thu, 5 Jan 2012 18:08:27 +0000
Subject: [PATCH] pair programming, pair review refs 307

---
 .../ui/editpart/ConnectorEditPartBase.java    |   8 ++-
 .../ui/editpart/PositionedEditPartBase.java   |  55 +++++++++++++++---
 .../trunk/icons/error_small.gif               | Bin 0 -> 84 bytes
 .../trunk/icons/warning_small.gif             | Bin 0 -> 111 bytes
 .../kernel/ui/internal/MarkerService.java     |  38 +++++++++++-
 .../ui/internal/views/MarkerViewPart.java     |  34 ++---------
 .../kernel/ui/service/IMarkerService.java     |  10 +++-
 7 files changed, 104 insertions(+), 41 deletions(-)
 create mode 100644 org.fortiss.tooling.kernel.ui/trunk/icons/error_small.gif
 create mode 100644 org.fortiss.tooling.kernel.ui/trunk/icons/warning_small.gif

diff --git a/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/editpart/ConnectorEditPartBase.java b/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/editpart/ConnectorEditPartBase.java
index a9ab81f97..2f1d37831 100644
--- a/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/editpart/ConnectorEditPartBase.java
+++ b/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/editpart/ConnectorEditPartBase.java
@@ -58,7 +58,7 @@ import org.fortiss.tooling.kernel.model.INamedCommentedElement;
  * @author hoelzl
  * @author $Author$
  * @version $Rev$
- * @ConQAT.Rating GREEN Hash: 16D079AEA83E96E84B22409E8808778B
+ * @ConQAT.Rating GREEN Hash: 361B8046D1032664F3A2CAC657D30493
  */
 public abstract class ConnectorEditPartBase<T extends ILayoutedModelElement & IConnector & INamedCommentedElement>
 		extends PositionedEditPartBase<T> {
@@ -128,6 +128,12 @@ public abstract class ConnectorEditPartBase<T extends ILayoutedModelElement & IC
 		return "";
 	}
 
+	/** {@inheritDoc} */
+	@Override
+	protected boolean useSmallDecorationImage() {
+		return true;
+	}
+
 	/** Returns background color for target role. */
 	protected Color getTargetForegroundColor() {
 		return getForegroundColor();
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 3f53a7a95..6ad550a12 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
@@ -32,8 +32,11 @@ import org.eclipse.gef.requests.SelectionRequest;
 import org.eclipse.gef.tools.ConnectionDragCreationTool;
 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.layout.IDiagramLayoutConfiguration;
+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;
 
 /**
@@ -66,7 +69,7 @@ import org.fortiss.tooling.kernel.ui.service.IModelElementHandlerService;
  * @author hoelzl
  * @author $Author$
  * @version $Rev$
- * @ConQAT.Rating GREEN Hash: A7CE6740ADDD2F321FA24E2C5689F3D8
+ * @ConQAT.Rating GREEN Hash: 3B050D7FB691B8F17BBADB932EFF2BF2
  */
 public abstract class PositionedEditPartBase<T extends ILayoutedModelElement>
 		extends GraphicalEditPartBase<T> implements NodeEditPart {
@@ -78,7 +81,7 @@ public abstract class PositionedEditPartBase<T extends ILayoutedModelElement>
 	protected Label labelFigure;
 
 	/** The decoration figure. */
-	protected IFigure decorationFigure;
+	protected Label decorationFigure;
 
 	/** Constructor. */
 	protected PositionedEditPartBase(T modelElement) {
@@ -138,8 +141,8 @@ public abstract class PositionedEditPartBase<T extends ILayoutedModelElement>
 	 * Creates the decoration figure. The default implementation does not create
 	 * a figure.
 	 */
-	protected IFigure createDecorationFigure() {
-		return null;
+	protected Label createDecorationFigure() {
+		return new Label();
 	}
 
 	/**
@@ -148,7 +151,12 @@ public abstract class PositionedEditPartBase<T extends ILayoutedModelElement>
 	 * bounds were determined first.
 	 */
 	protected Rectangle determineDecorationFigureBounds() {
-		return new Rectangle();
+		Rectangle r = determineBaseFigureBounds();
+		r.x += 4;
+		r.y += 4;
+		r.width = useSmallDecorationImage() ? 8 : 16;
+		r.height = useSmallDecorationImage() ? 8 : 16;
+		return r;
 	}
 
 	/** Returns the foreground color used. */
@@ -185,13 +193,42 @@ public abstract class PositionedEditPartBase<T extends ILayoutedModelElement>
 		}
 
 		if (decorationFigure != null && decorationFigure.getParent() != null) {
-			Rectangle decorationBounds = determineDecorationFigureBounds();
-			decorationFigure.setBounds(decorationBounds);
-			decorationFigure.getParent().setConstraint(decorationFigure,
-					decorationBounds);
+			refreshDecorationFigure();
 		}
 	}
 
+	/** Refreshes the decoration figure using {@link IMarkerService} */
+	private void refreshDecorationFigure() {
+		Rectangle decorationBounds = determineDecorationFigureBounds();
+		decorationFigure.setBounds(decorationBounds);
+		decorationFigure.getParent().setConstraint(decorationFigure,
+				decorationBounds);
+
+		ESeverity sev = IMarkerService.INSTANCE
+				.getHighestViolationSeverity(getModel());
+
+		Image icon = null;
+		switch (sev) {
+		case ERROR:
+			icon = IMarkerService.INSTANCE.getImageFor(ESeverity.ERROR,
+					useSmallDecorationImage()).createImage();
+			break;
+		case WARNING:
+			icon = IMarkerService.INSTANCE.getImageFor(ESeverity.WARNING,
+					useSmallDecorationImage()).createImage();
+			break;
+		}
+		decorationFigure.setIcon(icon);
+	}
+
+	/**
+	 * Returns whether to use small or big decoration image. Default
+	 * implementation uses big image.
+	 */
+	protected boolean useSmallDecorationImage() {
+		return false;
+	}
+
 	/** {@inheritDoc} */
 	@Override
 	public void addNotify() {
diff --git a/org.fortiss.tooling.kernel.ui/trunk/icons/error_small.gif b/org.fortiss.tooling.kernel.ui/trunk/icons/error_small.gif
new file mode 100644
index 0000000000000000000000000000000000000000..8612eaff5994f2b70514365e717d6ce1597020c2
GIT binary patch
literal 84
zcmZ?wbhEHbWM|-DSj52apMhb&y?wpC{r~#<{qgbl_wWA?28usf7#SGY8FUzc0Hl_I
iSu$edYO{nHswagRBbYXr$%Mro6!z^}z~;)tU=0A^iW{c@

literal 0
HcmV?d00001

diff --git a/org.fortiss.tooling.kernel.ui/trunk/icons/warning_small.gif b/org.fortiss.tooling.kernel.ui/trunk/icons/warning_small.gif
new file mode 100644
index 0000000000000000000000000000000000000000..27c0cfb7c450c07874ec07f41b41b5bbebda6ad9
GIT binary patch
literal 111
zcmZ?wbhEHbWM|-D*v!E2@5{A+Z;$+Yd-U=mhxa=?|2<mu@6qaiXG;E^E%|q?@89*l
z1%-Mc76uFq4FCWC2a<|ESr{1@_!xA6YzB}S3@kDQCp8--*+MRL#4#QeXbOpGQ&g2%
O=;2<YAR@}hU=09!!Ynxe

literal 0
HcmV?d00001

diff --git a/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/internal/MarkerService.java b/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/internal/MarkerService.java
index 9fe9edb94..755ce286d 100644
--- a/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/internal/MarkerService.java
+++ b/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/internal/MarkerService.java
@@ -32,6 +32,7 @@ import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Status;
 import org.eclipse.core.runtime.jobs.Job;
 import org.eclipse.emf.ecore.EObject;
+import org.eclipse.jface.resource.ImageDescriptor;
 import org.eclipse.jface.viewers.IDecoration;
 import org.eclipse.jface.viewers.ILabelProviderListener;
 import org.eclipse.jface.viewers.ILightweightLabelDecorator;
@@ -44,6 +45,7 @@ import org.fortiss.tooling.kernel.service.IConstraintCheckerService;
 import org.fortiss.tooling.kernel.service.IPersistencyService;
 import org.fortiss.tooling.kernel.service.listener.IPersistencyServiceListener;
 import org.fortiss.tooling.kernel.ui.ESharedImages;
+import org.fortiss.tooling.kernel.ui.ToolingKernelUIActivator;
 import org.fortiss.tooling.kernel.ui.internal.views.MarkerViewPart;
 import org.fortiss.tooling.kernel.ui.service.IMarkerService;
 
@@ -53,7 +55,7 @@ import org.fortiss.tooling.kernel.ui.service.IMarkerService;
  * @author hoelzl
  * @author $Author$
  * @version $Rev$
- * @ConQAT.Rating GREEN Hash: FA78F16C3A1FB73F1E1E0B83A31D26FE
+ * @ConQAT.Rating GREEN Hash: 1ACE010B0F034EB9A8CA753A39EA0301
  */
 public class MarkerService implements IMarkerService,
 		IPersistencyServiceListener, ILightweightLabelDecorator {
@@ -388,4 +390,38 @@ public class MarkerService implements IMarkerService,
 		}
 		return list;
 	}
+
+	/** {@inheritDoc} */
+	@Override
+	public ImageDescriptor getImageFor(ESeverity severity,
+			boolean smallDecoration) {
+		switch (severity) {
+		case FATAL:
+			return ToolingKernelUIActivator
+					.getImageDescriptor("icons/fatal.gif");
+		case ERROR:
+			if (smallDecoration) {
+				return ToolingKernelUIActivator
+						.getImageDescriptor("icons/error_small.gif");
+			}
+			return ToolingKernelUIActivator
+					.getImageDescriptor("icons/error.gif");
+		case WARNING:
+			if (smallDecoration) {
+				return ToolingKernelUIActivator
+						.getImageDescriptor("icons/warning_small.gif");
+			}
+			return ToolingKernelUIActivator
+					.getImageDescriptor("icons/warning.gif");
+		case INFO:
+			return ToolingKernelUIActivator
+					.getImageDescriptor("icons/info.gif");
+		case DEBUG:
+			return ToolingKernelUIActivator
+					.getImageDescriptor("icons/debug.gif");
+
+		}
+
+		return null;
+	}
 }
diff --git a/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/internal/views/MarkerViewPart.java b/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/internal/views/MarkerViewPart.java
index 42fa7b69e..c8c45d6e3 100644
--- a/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/internal/views/MarkerViewPart.java
+++ b/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/internal/views/MarkerViewPart.java
@@ -32,7 +32,6 @@ import org.eclipse.emf.ecore.EObject;
 import org.eclipse.jface.action.Action;
 import org.eclipse.jface.action.IToolBarManager;
 import org.eclipse.jface.action.Separator;
-import org.eclipse.jface.resource.ImageDescriptor;
 import org.eclipse.jface.viewers.CellLabelProvider;
 import org.eclipse.jface.viewers.ITreeContentProvider;
 import org.eclipse.jface.viewers.Viewer;
@@ -44,7 +43,6 @@ import org.eclipse.ui.part.ViewPart;
 import org.fortiss.tooling.kernel.extension.data.IConstraintViolation;
 import org.fortiss.tooling.kernel.extension.data.IConstraintViolation.ESeverity;
 import org.fortiss.tooling.kernel.service.IPersistencyService;
-import org.fortiss.tooling.kernel.ui.ToolingKernelUIActivator;
 import org.fortiss.tooling.kernel.ui.extension.IModelElementHandler;
 import org.fortiss.tooling.kernel.ui.internal.MarkerService;
 import org.fortiss.tooling.kernel.ui.service.IMarkerService;
@@ -56,7 +54,7 @@ import org.fortiss.tooling.kernel.ui.service.IModelElementHandlerService;
  * @author hoelzl
  * @author $Author$
  * @version $Rev$
- * @ConQAT.Rating GREEN Hash: EAE8E1FB9FBA7562BF9DA666337C68C9
+ * @ConQAT.Rating GREEN Hash: 9911FDD4D42B3F17A872D3E7E97EAD29
  */
 public class MarkerViewPart extends ViewPart {
 
@@ -138,8 +136,8 @@ public class MarkerViewPart extends ViewPart {
 			public void update(ViewerCell cell) {
 				if (cell.getElement() instanceof ESeverity) {
 					cell.setText(((ESeverity) cell.getElement()).toString());
-					cell.setImage(getImageFor((ESeverity) cell.getElement())
-							.createImage());
+					cell.setImage(IMarkerService.INSTANCE.getImageFor(
+							(ESeverity) cell.getElement(), false).createImage());
 				} else {
 					cell.setText("");
 				}
@@ -245,7 +243,8 @@ public class MarkerViewPart extends ViewPart {
 			this.severity = severity;
 			setToolTipText(tooltip);
 			setChecked(toggleState.get(severity));
-			setImageDescriptor(getImageFor(severity));
+			setImageDescriptor(IMarkerService.INSTANCE.getImageFor(severity,
+					false));
 		}
 
 		/** {@inheritDoc} */
@@ -257,27 +256,4 @@ public class MarkerViewPart extends ViewPart {
 		}
 	}
 
-	/** Returns the icon appropriate for the severity. */
-	public ImageDescriptor getImageFor(ESeverity severity) {
-		switch (severity) {
-		case FATAL:
-			return ToolingKernelUIActivator
-					.getImageDescriptor("icons/fatal.gif");
-		case ERROR:
-			return ToolingKernelUIActivator
-					.getImageDescriptor("icons/error.gif");
-		case WARNING:
-			return ToolingKernelUIActivator
-					.getImageDescriptor("icons/warning.gif");
-		case INFO:
-			return ToolingKernelUIActivator
-					.getImageDescriptor("icons/info.gif");
-		case DEBUG:
-			return ToolingKernelUIActivator
-					.getImageDescriptor("icons/debug.gif");
-
-		}
-
-		return null;
-	}
 }
diff --git a/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/service/IMarkerService.java b/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/service/IMarkerService.java
index 3cc378969..88a135768 100644
--- a/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/service/IMarkerService.java
+++ b/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/service/IMarkerService.java
@@ -20,6 +20,7 @@ package org.fortiss.tooling.kernel.ui.service;
 import java.util.Collection;
 
 import org.eclipse.emf.ecore.EObject;
+import org.eclipse.jface.resource.ImageDescriptor;
 import org.fortiss.tooling.kernel.extension.data.IConstraintViolation;
 import org.fortiss.tooling.kernel.extension.data.IConstraintViolation.ESeverity;
 import org.fortiss.tooling.kernel.extension.data.ITopLevelElement;
@@ -34,7 +35,7 @@ import org.fortiss.tooling.kernel.ui.internal.MarkerService;
  * @author hoelzl
  * @author $Author$
  * @version $Rev$
- * @ConQAT.Rating GREEN Hash: 67EA81E75245A95CD73C43D28802B0E2
+ * @ConQAT.Rating GREEN Hash: 7CA4B3A1CFB5DAA9243A2537F4C75C02
  */
 public interface IMarkerService {
 
@@ -62,4 +63,11 @@ public interface IMarkerService {
 	/** Returns all violations across projects with the given severity. */
 	Collection<IConstraintViolation<? extends EObject>> getAllViolationsWithSeverity(
 			ESeverity severity);
+
+	/**
+	 * Returns the icon appropriate for the severity. Flag indicates small sized
+	 * image.
+	 */
+	public ImageDescriptor getImageFor(ESeverity severity,
+			boolean smallDecoration);
 }
-- 
GitLab