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 a9ab81f9730537017b2963b2a3bfb4a41924a2a0..2f1d37831fd04e1de347c7ecb0c63035af021568 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 3f53a7a951c625bfb5849864e50ffb6fa523bf72..6ad550a12162bdfa941b5682d1b1d0f9730e9855 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 Binary files /dev/null and b/org.fortiss.tooling.kernel.ui/trunk/icons/error_small.gif differ 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 Binary files /dev/null and b/org.fortiss.tooling.kernel.ui/trunk/icons/warning_small.gif differ 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 9fe9edb948bda36f6f7803347abb164b20a90142..755ce286d1d833aa2a186891ef11897462fc0c9d 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 42fa7b69edb2657866f09402282775a4cc20add7..c8c45d6e3c6b88e83f2c9ae0b7892c9895b88808 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 3cc37896941f15b36c34ab4decb8220e8b1aae04..88a1357682e5b97fe7d1ab9fa89f49cc4fed335f 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); }