Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMaxime Porhel2015-08-26 15:08:00 +0000
committerMaxime Porhel2015-08-27 08:54:20 +0000
commit76e801508e7452982cb4efdba9bcd8b37c5cc8d9 (patch)
tree0bd0b6de795222ea57ac33157d7237d05c042bb5
parent69d9e9b4e4da54c7f62b783036719ce42f3c5056 (diff)
downloadorg.eclipse.sirius-76e801508e7452982cb4efdba9bcd8b37c5cc8d9.tar.gz
org.eclipse.sirius-76e801508e7452982cb4efdba9bcd8b37c5cc8d9.tar.xz
org.eclipse.sirius-76e801508e7452982cb4efdba9bcd8b37c5cc8d9.zip
[472033] reInitFigure() should also update the drop shadow border
This method is called when the container/list style changes from WorkspaceImage to FlatContainerStyle or the opposite, when the user (a conditional style) changes the background style or when the user uses the SetStyleToWorkspaceImage/ResetStyle buttons. Bug: 472033 Change-Id: Ie017b35261c925181c682017d939fd25857196ea Signed-off-by: Maxime Porhel <maxime.porhel@obeo.fr>
-rw-r--r--plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/edit/api/part/AbstractDiagramElementContainerEditPart.java3
-rw-r--r--plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/edit/internal/part/DiagramContainerEditPartOperation.java2
-rw-r--r--plugins/org.eclipse.sirius.tests.swtbot/src/org/eclipse/sirius/tests/swtbot/SetStyleToWorkspaceImageTests.java33
3 files changed, 26 insertions, 12 deletions
diff --git a/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/edit/api/part/AbstractDiagramElementContainerEditPart.java b/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/edit/api/part/AbstractDiagramElementContainerEditPart.java
index a893ab375c..97cfae6b10 100644
--- a/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/edit/api/part/AbstractDiagramElementContainerEditPart.java
+++ b/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/edit/api/part/AbstractDiagramElementContainerEditPart.java
@@ -898,5 +898,8 @@ public abstract class AbstractDiagramElementContainerEditPart extends AbstractBo
if (containerCompartment != null) {
mainFigure.add(containerCompartment);
}
+
+ // Update drop shadow.
+ mainFigure.setBorder(tmpFigure.getBorder());
}
}
diff --git a/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/edit/internal/part/DiagramContainerEditPartOperation.java b/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/edit/internal/part/DiagramContainerEditPartOperation.java
index 138ec95741..5c2bb8ece3 100644
--- a/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/edit/internal/part/DiagramContainerEditPartOperation.java
+++ b/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/edit/internal/part/DiagramContainerEditPartOperation.java
@@ -389,7 +389,7 @@ public final class DiagramContainerEditPartOperation {
final EObject eObj = self.resolveSemanticElement();
if (eObj instanceof DDiagramElementContainer) {
final DDiagramElementContainer container = (DDiagramElementContainer) eObj;
- if ((container.getOwnedStyle() != null) && (container.getOwnedStyle() instanceof WorkspaceImage)) {
+ if (container.getOwnedStyle() instanceof WorkspaceImage) {
final WorkspaceImage img = (WorkspaceImage) container.getOwnedStyle();
return createWkpImageFigure(img);
}
diff --git a/plugins/org.eclipse.sirius.tests.swtbot/src/org/eclipse/sirius/tests/swtbot/SetStyleToWorkspaceImageTests.java b/plugins/org.eclipse.sirius.tests.swtbot/src/org/eclipse/sirius/tests/swtbot/SetStyleToWorkspaceImageTests.java
index 63d66c0569..5332a3f86d 100644
--- a/plugins/org.eclipse.sirius.tests.swtbot/src/org/eclipse/sirius/tests/swtbot/SetStyleToWorkspaceImageTests.java
+++ b/plugins/org.eclipse.sirius.tests.swtbot/src/org/eclipse/sirius/tests/swtbot/SetStyleToWorkspaceImageTests.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2010, 2014 THALES GLOBAL SERVICES.
+ * Copyright (c) 2010, 2015 THALES GLOBAL SERVICES.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -27,6 +27,8 @@ import org.eclipse.sirius.diagram.ui.edit.api.part.AbstractDiagramNodeEditPart;
import org.eclipse.sirius.diagram.ui.edit.api.part.IAbstractDiagramNodeEditPart;
import org.eclipse.sirius.diagram.ui.edit.api.part.IDiagramContainerEditPart;
import org.eclipse.sirius.diagram.ui.edit.api.part.IDiagramListEditPart;
+import org.eclipse.sirius.diagram.ui.tools.api.figure.AlphaDropShadowBorder;
+import org.eclipse.sirius.diagram.ui.tools.api.figure.GradientRoundedRectangle;
import org.eclipse.sirius.diagram.ui.tools.api.figure.IWorkspaceImageFigure;
import org.eclipse.sirius.diagram.ui.tools.api.figure.ViewNodeContainerRectangleFigureDesc;
import org.eclipse.sirius.diagram.ui.tools.api.figure.WorkspaceImageFigure;
@@ -503,7 +505,7 @@ public class SetStyleToWorkspaceImageTests extends AbstractSiriusSwtBotGefTestCa
}
assertNotNull(resetStylePropertiesToDefaultValuesButton);
- assertTrue(resetStylePropertiesToDefaultValuesButton.isEnabled());
+ assertTrue("Reset style button should be enabled.", resetStylePropertiesToDefaultValuesButton.isEnabled());
checkCustom(part, true);
@@ -514,22 +516,24 @@ public class SetStyleToWorkspaceImageTests extends AbstractSiriusSwtBotGefTestCa
Dimension newGMFSize = getSize((Node) part.getNotationView());
Dimension newD2DSize = getSize(part.getFigure());
- assertEquals(-1, newGMFSize.height);
- assertEquals(oldGMFSize.width, newGMFSize.width);
+ assertEquals("The GMF height should be set to -1.", -1, newGMFSize.height);
+ assertEquals("The GMF width should be kept.", oldGMFSize.width, newGMFSize.width);
if (part instanceof IDiagramContainerEditPart || part instanceof IDiagramListEditPart) {
// Auto-sized container are resized on set wkp image to get the
// image size.
- assertEquals(-1, oldGMFSize.width);
- assertEquals(image.getBounds().width, newD2DSize.width, 2);
- assertEquals(image.getBounds().height, newD2DSize.height, 2);
- assertTrue(((AbstractDiagramElementContainerEditPart) part).getPrimaryShape() instanceof ViewNodeContainerRectangleFigureDesc);
- assertTrue(((AbstractDiagramElementContainerEditPart) part).getBackgroundFigure() instanceof IWorkspaceImageFigure);
+ assertEquals("The GMF width was and stays -1.", -1, oldGMFSize.width);
+ assertEquals("The figure size should correspond to the image width.", image.getBounds().width, newD2DSize.width, 2);
+ assertEquals("The figure size should correspond to the image width.", image.getBounds().height, newD2DSize.height, 2);
+ assertTrue("The primary shape should be a ViewNodeContainerRectangleFigureDesc.",
+ ((AbstractDiagramElementContainerEditPart) part).getPrimaryShape() instanceof ViewNodeContainerRectangleFigureDesc);
+ assertTrue("The background figure should be a IWorkspaceImageFigure.", ((AbstractDiagramElementContainerEditPart) part).getBackgroundFigure() instanceof IWorkspaceImageFigure);
+ assertNull("The image figure should not have a drop shadow border.", ((AbstractDiagramElementContainerEditPart) part).getMainFigure().getBorder());
} else {
// Nodes keep their size and the height is modified to keep the
// image ratio
- assertEquals(oldD2DSize.width, newD2DSize.width);
- assertEquals(newHeight, newD2DSize.height, 2);
+ assertEquals("The node GMF width should not be impacted.", oldD2DSize.width, newD2DSize.width);
+ assertEquals("The node figure should have the same ratio than the image.", newHeight, newD2DSize.height, 2);
}
click(resetStylePropertiesToDefaultValuesButton);
@@ -551,6 +555,13 @@ public class SetStyleToWorkspaceImageTests extends AbstractSiriusSwtBotGefTestCa
assertEquals(oldGMFSize.width, newGMFSize2.width);
// assertEquals(oldGMFSize.height, newGMFSize2.height);
+
+ if (part instanceof IDiagramContainerEditPart || part instanceof IDiagramListEditPart) {
+ assertTrue("The primary shape should be a GradientRoundedRectangle.", ((AbstractDiagramElementContainerEditPart) part).getPrimaryShape() instanceof GradientRoundedRectangle);
+ assertNull("The background figure should be null for a gradient style.", ((AbstractDiagramElementContainerEditPart) part).getBackgroundFigure());
+ // Alpha drop shadow has been recreated.
+ assertTrue("The drop shadow border should have been recreated.", ((AbstractDiagramElementContainerEditPart) part).getMainFigure().getBorder() instanceof AlphaDropShadowBorder);
+ }
}
private Dimension getSize(Node gmfNode) {

Back to the top