Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBelqassim Djafer2015-02-06 08:52:59 +0000
committerPierre-Charles David2015-02-23 09:09:12 +0000
commit7339f1bd9bd29c7ac70a91b489672db555937a3c (patch)
tree179023873f7611fbc7f52121bd55c29fa67f2bc4
parent0fb7177d285bcd60589afcc87949e19ea818bcf0 (diff)
downloadorg.eclipse.sirius-7339f1bd9bd29c7ac70a91b489672db555937a3c.tar.gz
org.eclipse.sirius-7339f1bd9bd29c7ac70a91b489672db555937a3c.tar.xz
org.eclipse.sirius-7339f1bd9bd29c7ac70a91b489672db555937a3c.zip
[457854] Fix Style customization of FlatContainerStyle
Refresh the style of FlatContainerStyle directly after the semantic change. Bug: 457854 Change-Id: I5e9db11c782f615335334b6f61e0824c4ad915c2 Signed-off-by: Belqassim Djafer <belqassim.djafer@obeo.fr>
-rw-r--r--plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/edit/api/part/AbstractDiagramElementContainerEditPart.java12
-rw-r--r--plugins/org.eclipse.sirius.tests.swtbot/data/unit/changeBackgroundStyle/TestDiagram.aird64
-rw-r--r--plugins/org.eclipse.sirius.tests.swtbot/data/unit/changeBackgroundStyle/TestDiagram.xmi4
-rw-r--r--plugins/org.eclipse.sirius.tests.swtbot/data/unit/changeBackgroundStyle/background.odesign33
-rw-r--r--plugins/org.eclipse.sirius.tests.swtbot/data/unit/changeBackgroundStyle/dynamic_background.ecore13
-rw-r--r--plugins/org.eclipse.sirius.tests.swtbot/src/org/eclipse/sirius/tests/swtbot/BackgroundStyleUpdateTest.java125
-rw-r--r--plugins/org.eclipse.sirius.tests.swtbot/src/org/eclipse/sirius/tests/swtbot/suite/AllTestSuite.java1
7 files changed, 251 insertions, 1 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 f66e03c973..810a672ae0 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
@@ -59,6 +59,7 @@ import org.eclipse.sirius.diagram.DDiagramElementContainer;
import org.eclipse.sirius.diagram.DNode;
import org.eclipse.sirius.diagram.DNodeContainer;
import org.eclipse.sirius.diagram.DiagramPackage;
+import org.eclipse.sirius.diagram.FlatContainerStyle;
import org.eclipse.sirius.diagram.ResizeKind;
import org.eclipse.sirius.diagram.ShapeContainerStyle;
import org.eclipse.sirius.diagram.WorkspaceImage;
@@ -399,8 +400,17 @@ public abstract class AbstractDiagramElementContainerEditPart extends AbstractBo
if (firstRegion && primaryShape.getBorder() instanceof LineBorder || !firstRegion && primaryShape.getBorder() instanceof MarginBorder) {
configureBorder(primaryShape);
}
+ /* Update background for containers */
+ final DDiagramElement diagElement = this.resolveDiagramElement();
+ if (diagElement instanceof DNodeContainer) {
+ final DNodeContainer container = (DNodeContainer) diagElement;
+ if (primaryShape instanceof GradientRoundedRectangle && container.getOwnedStyle() instanceof FlatContainerStyle) {
+ if (((GradientRoundedRectangle) primaryShape).getBackgroundStyle() != ((FlatContainerStyle) container.getOwnedStyle()).getBackgroundStyle()) {
+ ((AbstractDiagramContainerEditPart) this).reInitFigure();
+ }
+ }
+ }
}
-
super.refreshVisuals();
DiagramContainerEditPartOperation.refreshVisuals(this);
}
diff --git a/plugins/org.eclipse.sirius.tests.swtbot/data/unit/changeBackgroundStyle/TestDiagram.aird b/plugins/org.eclipse.sirius.tests.swtbot/data/unit/changeBackgroundStyle/TestDiagram.aird
new file mode 100644
index 0000000000..b80ef8f867
--- /dev/null
+++ b/plugins/org.eclipse.sirius.tests.swtbot/data/unit/changeBackgroundStyle/TestDiagram.aird
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<viewpoint:DAnalysis xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:description="http://www.eclipse.org/sirius/description/1.1.0" xmlns:description_1="http://www.eclipse.org/sirius/diagram/description/1.1.0" xmlns:diagram="http://www.eclipse.org/sirius/diagram/1.1.0" xmlns:dynamic_background="http://www.example.org/dynamic_background" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:style="http://www.eclipse.org/sirius/diagram/description/style/1.1.0" xmlns:viewpoint="http://www.eclipse.org/sirius/1.1.0" xsi:schemaLocation="http://www.eclipse.org/sirius/description/1.1.0 http://www.eclipse.org/sirius/1.1.0#//description http://www.eclipse.org/sirius/diagram/description/1.1.0 http://www.eclipse.org/sirius/diagram/1.1.0#//description http://www.example.org/dynamic_background dynamic_background.ecore http://www.eclipse.org/sirius/diagram/description/style/1.1.0 http://www.eclipse.org/sirius/diagram/1.1.0#//description/style" xmi:id="__raZ4KU_EeSTCqckavf3og" selectedViews="_AR-DkKVAEeSTCqckavf3og" version="10.0.0.201412231738">
+ <models xmi:type="dynamic_background:TestDiagram" href="TestDiagram.xmi#/"/>
+ <models xmi:type="ecore:EPackage" href="dynamic_background.ecore#/"/>
+ <models xmi:type="ecore:EPackage" href="http://www.eclipse.org/emf/2002/Ecore#/"/>
+ <ownedViews xmi:type="viewpoint:DRepresentationContainer" xmi:id="_AR-DkKVAEeSTCqckavf3og" initialized="true">
+ <ownedRepresentations xmi:type="diagram:DSemanticDiagram" xmi:id="_oKi9kLg4EeSKZ-6R3paZnA" name="new Diagram">
+ <ownedAnnotationEntries xmi:type="description:AnnotationEntry" xmi:id="_oKi9kbg4EeSKZ-6R3paZnA" source="DANNOTATION_CUSTOMIZATION_KEY">
+ <data xmi:type="diagram:ComputedStyleDescriptionRegistry" xmi:id="_oKi9krg4EeSKZ-6R3paZnA">
+ <computedStyleDescriptions xmi:type="style:FlatContainerStyleDescription" xmi:id="_aamMwLjdEeSDytFHpsTBMA" labelExpression="['I am a test'/]" backgroundStyle="GradientTopToBottom">
+ <borderColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
+ <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
+ <backgroundColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='white']"/>
+ <foregroundColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='dark_red']"/>
+ </computedStyleDescriptions>
+ <cache xmi:type="diagram:DiagramElementMapping2ModelElement" xmi:id="_ZhKDULjdEeSDytFHpsTBMA">
+ <key xmi:type="description_1:ContainerMapping" href="background.odesign#//@ownedViewpoints[name='BackgroundTest']/@ownedRepresentations[name='Diagram']/@defaultLayer/@containerMappings[name='Test']"/>
+ <value xmi:type="diagram:ModelElement2ViewVariable" xmi:id="_ZhKDUbjdEeSDytFHpsTBMA">
+ <key xmi:type="dynamic_background:Test" href="TestDiagram.xmi#//@test.0"/>
+ <value xmi:type="diagram:ViewVariable2ContainerVariable" xmi:id="_ZhKDUrjdEeSDytFHpsTBMA" key="_oKi9nLg4EeSKZ-6R3paZnA">
+ <value xmi:type="diagram:ContainerVariable2StyleDescription" xmi:id="_ZhKDVLjdEeSDytFHpsTBMA" value="_aamMwLjdEeSDytFHpsTBMA">
+ <key xmi:type="dynamic_background:TestDiagram" href="TestDiagram.xmi#/"/>
+ </value>
+ </value>
+ </value>
+ </cache>
+ </data>
+ </ownedAnnotationEntries>
+ <ownedAnnotationEntries xmi:type="description:AnnotationEntry" xmi:id="_oKjkoLg4EeSKZ-6R3paZnA" source="GMF_DIAGRAMS">
+ <data xmi:type="notation:Diagram" xmi:id="_oKjkobg4EeSKZ-6R3paZnA" type="Sirius" element="_oKi9kLg4EeSKZ-6R3paZnA" measurementUnit="Pixel">
+ <children xmi:type="notation:Node" xmi:id="_oKjko7g4EeSKZ-6R3paZnA" type="2002" element="_oKi9nLg4EeSKZ-6R3paZnA">
+ <children xmi:type="notation:Node" xmi:id="_oKjkprg4EeSKZ-6R3paZnA" type="5006"/>
+ <children xmi:type="notation:Node" xmi:id="_oKjkp7g4EeSKZ-6R3paZnA" type="7001">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_oKjkqLg4EeSKZ-6R3paZnA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_oKjkqbg4EeSKZ-6R3paZnA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_oKjkpLg4EeSKZ-6R3paZnA" fontName="Segoe UI" fontHeight="8"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_oKjkpbg4EeSKZ-6R3paZnA" x="315" y="120"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_oKjkorg4EeSKZ-6R3paZnA"/>
+ </data>
+ </ownedAnnotationEntries>
+ <ownedDiagramElements xmi:type="diagram:DNodeContainer" xmi:id="_oKi9nLg4EeSKZ-6R3paZnA" name="I am a test">
+ <target xmi:type="dynamic_background:Test" href="TestDiagram.xmi#//@test.0"/>
+ <semanticElements xmi:type="dynamic_background:Test" href="TestDiagram.xmi#//@test.0"/>
+ <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
+ <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
+ <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
+ <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_aamz0LjdEeSDytFHpsTBMA" description="_aamMwLjdEeSDytFHpsTBMA" backgroundStyle="GradientTopToBottom">
+ <labelColor xmi:type="viewpoint:RGBValues" xmi:id="_aamz0bjdEeSDytFHpsTBMA"/>
+ <borderColor xmi:type="viewpoint:RGBValues" xmi:id="_aamz0rjdEeSDytFHpsTBMA"/>
+ <backgroundColor xmi:type="viewpoint:RGBValues" xmi:id="_aamz07jdEeSDytFHpsTBMA" red="255" green="255" blue="255"/>
+ <foregroundColor xmi:type="viewpoint:RGBValues" xmi:id="_aamz1LjdEeSDytFHpsTBMA" red="156" green="12" blue="12"/>
+ </ownedStyle>
+ <actualMapping xmi:type="description_1:ContainerMapping" href="background.odesign#//@ownedViewpoints[name='BackgroundTest']/@ownedRepresentations[name='Diagram']/@defaultLayer/@containerMappings[name='Test']"/>
+ </ownedDiagramElements>
+ <description xmi:type="description_1:DiagramDescription" href="background.odesign#//@ownedViewpoints[name='BackgroundTest']/@ownedRepresentations[name='Diagram']"/>
+ <filterVariableHistory xmi:type="diagram:FilterVariableHistory" xmi:id="_oKi9qLg4EeSKZ-6R3paZnA"/>
+ <activatedLayers xmi:type="description_1:Layer" href="background.odesign#//@ownedViewpoints[name='BackgroundTest']/@ownedRepresentations[name='Diagram']/@defaultLayer"/>
+ <target xmi:type="dynamic_background:TestDiagram" href="TestDiagram.xmi#/"/>
+ </ownedRepresentations>
+ <viewpoint xmi:type="description:Viewpoint" href="background.odesign#//@ownedViewpoints[name='BackgroundTest']"/>
+ </ownedViews>
+</viewpoint:DAnalysis>
diff --git a/plugins/org.eclipse.sirius.tests.swtbot/data/unit/changeBackgroundStyle/TestDiagram.xmi b/plugins/org.eclipse.sirius.tests.swtbot/data/unit/changeBackgroundStyle/TestDiagram.xmi
new file mode 100644
index 0000000000..c5cadcb050
--- /dev/null
+++ b/plugins/org.eclipse.sirius.tests.swtbot/data/unit/changeBackgroundStyle/TestDiagram.xmi
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="ASCII"?>
+<dynamic_background:TestDiagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dynamic_background="http://www.example.org/dynamic_background" xsi:schemaLocation="http://www.example.org/dynamic_background dynamic_background.ecore">
+ <test/>
+</dynamic_background:TestDiagram>
diff --git a/plugins/org.eclipse.sirius.tests.swtbot/data/unit/changeBackgroundStyle/background.odesign b/plugins/org.eclipse.sirius.tests.swtbot/data/unit/changeBackgroundStyle/background.odesign
new file mode 100644
index 0000000000..9cf7d90461
--- /dev/null
+++ b/plugins/org.eclipse.sirius.tests.swtbot/data/unit/changeBackgroundStyle/background.odesign
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<description:Group xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:description="http://www.eclipse.org/sirius/description/1.1.0" xmlns:description_1="http://www.eclipse.org/sirius/diagram/description/1.1.0" xmlns:style="http://www.eclipse.org/sirius/diagram/description/style/1.1.0" name="background" version="10.0.0.201411061000">
+ <ownedViewpoints name="BackgroundTest" label="Background Test">
+ <ownedRepresentations xsi:type="description_1:DiagramDescription" name="Diagram" label="Diagram" domainClass="TestDiagram">
+ <metamodel href="dynamic_background.ecore#/"/>
+ <metamodel href="http://www.eclipse.org/sirius/diagram/1.1.0#/"/>
+ <defaultLayer name="Default">
+ <containerMappings name="Test" label="Test" semanticCandidatesExpression="feature:test" domainClass="Test">
+ <style xsi:type="style:FlatContainerStyleDescription" labelExpression="['I am a test'/]" backgroundStyle="GradientTopToBottom">
+ <borderColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
+ <labelColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
+ <backgroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='white']"/>
+ <foregroundColor xsi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='dark_red']"/>
+ </style>
+ </containerMappings>
+ <customization>
+ <vsmElementCustomizations xsi:type="description:VSMElementCustomization" predicateExpression="[self.oclIsTypeOf(Test) and self.oclAsType(Test).liquid/]">
+ <featureCustomizations xsi:type="description:EAttributeCustomization" appliedOn="//@ownedViewpoints[name='BackgroundTest']/@ownedRepresentations[name='Diagram']/@defaultLayer/@containerMappings[name='Test']/@style" attributeName="backgroundStyle" value="[BackgroundStyle::Liquid/]"/>
+ <featureCustomizations xsi:type="description:EReferenceCustomization" appliedOn="//@ownedViewpoints[name='BackgroundTest']/@ownedRepresentations[name='Diagram']/@defaultLayer/@containerMappings[name='Test']/@style" referenceName="foregroundColor">
+ <value href="environment:/viewpoint#//@systemColors/@entries[name='dark_green']"/>
+ </featureCustomizations>
+ </vsmElementCustomizations>
+ <vsmElementCustomizations xsi:type="description:VSMElementCustomization" predicateExpression="[self.oclIsTypeOf(Test) and not self.oclAsType(Test).liquid/]">
+ <featureCustomizations xsi:type="description:EAttributeCustomization" appliedOn="//@ownedViewpoints[name='BackgroundTest']/@ownedRepresentations[name='Diagram']/@defaultLayer/@containerMappings[name='Test']/@style" attributeName="backgroundStyle" value="[BackgroundStyle::GradientTopToBottom/]"/>
+ <featureCustomizations xsi:type="description:EReferenceCustomization" appliedOn="//@ownedViewpoints[name='BackgroundTest']/@ownedRepresentations[name='Diagram']/@defaultLayer/@containerMappings[name='Test']/@style" referenceName="foregroundColor">
+ <value href="environment:/viewpoint#//@systemColors/@entries[name='dark_red']"/>
+ </featureCustomizations>
+ </vsmElementCustomizations>
+ </customization>
+ </defaultLayer>
+ </ownedRepresentations>
+ </ownedViewpoints>
+</description:Group>
diff --git a/plugins/org.eclipse.sirius.tests.swtbot/data/unit/changeBackgroundStyle/dynamic_background.ecore b/plugins/org.eclipse.sirius.tests.swtbot/data/unit/changeBackgroundStyle/dynamic_background.ecore
new file mode 100644
index 0000000000..d8e132eb6e
--- /dev/null
+++ b/plugins/org.eclipse.sirius.tests.swtbot/data/unit/changeBackgroundStyle/dynamic_background.ecore
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="dynamic_background" nsURI="http://www.example.org/dynamic_background"
+ nsPrefix="dynamic_background">
+ <eClassifiers xsi:type="ecore:EClass" name="Test">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="liquid" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="false"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="TestDiagram">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="test" upperBound="-1" eType="#//Test"
+ containment="true"/>
+ </eClassifiers>
+</ecore:EPackage>
diff --git a/plugins/org.eclipse.sirius.tests.swtbot/src/org/eclipse/sirius/tests/swtbot/BackgroundStyleUpdateTest.java b/plugins/org.eclipse.sirius.tests.swtbot/src/org/eclipse/sirius/tests/swtbot/BackgroundStyleUpdateTest.java
new file mode 100644
index 0000000000..a5239931b6
--- /dev/null
+++ b/plugins/org.eclipse.sirius.tests.swtbot/src/org/eclipse/sirius/tests/swtbot/BackgroundStyleUpdateTest.java
@@ -0,0 +1,125 @@
+/*******************************************************************************
+ * Copyright (c) 2015 Obeo.
+ * 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
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.sirius.tests.swtbot;
+
+import org.eclipse.gef.EditPart;
+import org.eclipse.sirius.diagram.BackgroundStyle;
+import org.eclipse.sirius.diagram.DDiagram;
+import org.eclipse.sirius.diagram.DDiagramElement;
+import org.eclipse.sirius.diagram.FlatContainerStyle;
+import org.eclipse.sirius.diagram.ui.edit.api.part.IDiagramElementEditPart;
+import org.eclipse.sirius.diagram.ui.edit.internal.part.DiagramElementEditPartOperation;
+import org.eclipse.sirius.diagram.ui.internal.edit.parts.DNodeContainerEditPart;
+import org.eclipse.sirius.tests.swtbot.support.api.AbstractSiriusSwtBotGefTestCase;
+import org.eclipse.sirius.tests.swtbot.support.api.business.UIResource;
+import org.eclipse.sirius.tests.swtbot.support.api.condition.CheckSelectedCondition;
+import org.eclipse.sirius.tests.swtbot.support.api.editor.SWTBotSiriusDiagramEditor;
+import org.eclipse.sirius.tests.swtbot.support.api.editor.SWTBotSiriusHelper;
+import org.eclipse.swtbot.eclipse.finder.widgets.SWTBotView;
+import org.eclipse.swtbot.eclipse.gef.finder.widgets.SWTBotGefEditPart;
+import org.eclipse.swtbot.swt.finder.widgets.SWTBotCCombo;
+import org.eclipse.swtbot.swt.finder.widgets.SWTBotTreeItem;
+
+/**
+ * Test that the background style is correctly changed after the semantic
+ * change.
+ *
+ * @author <a href="mailto:belqassim.djafer@obeo.fr">Belqassim Djafer</a>
+ */
+public class BackgroundStyleUpdateTest extends AbstractSiriusSwtBotGefTestCase {
+
+ private static final String MODEL = "TestDiagram.xmi";
+
+ private static final String META_MODEL = "dynamic_background.ecore";
+
+ private static final String SESSION_FILE = "TestDiagram.aird";
+
+ private static final String VSM_FILE = "background.odesign";
+
+ private static final String DATA_UNIT_DIR = "data/unit/changeBackgroundStyle/";
+
+ private static final String FILE_DIR = "/";
+
+ private static final String REPRESENTATION_INSTANCE_NAME = "new Diagram";
+
+ private static final String REPRESENTATION_NAME = "Diagram";
+
+ private static final String CONTAINER_NAME = "I am a test";
+
+ private static final String PROPERTIES = "Properties";
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ protected void onSetUpBeforeClosingWelcomePage() throws Exception {
+ copyFileToTestProject(Activator.PLUGIN_ID, DATA_UNIT_DIR, MODEL, SESSION_FILE, VSM_FILE, META_MODEL);
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ protected void onSetUpAfterOpeningDesignerPerspective() throws Exception {
+ sessionAirdResource = new UIResource(designerProject, FILE_DIR, SESSION_FILE);
+ localSession = designerPerspective.openSessionFromFile(sessionAirdResource, true);
+ editor = (SWTBotSiriusDiagramEditor) openRepresentation(localSession.getOpenedSession(), REPRESENTATION_NAME, REPRESENTATION_INSTANCE_NAME, DDiagram.class);
+ }
+
+ /**
+ * Ensure that the style of FlatContainerStyle directly after the semantic
+ * change.
+ */
+ public void testStyleCustomizationOfFlatContainerStyle() {
+ // Ensure that the background style do not change on representation
+ // opening
+ SWTBotGefEditPart editPart = selectAndCheckEditPart(CONTAINER_NAME, DNodeContainerEditPart.class);
+ checkBackgroundStyle(editPart, "GradientTopToBottom");
+ // Change the container background style
+ changeBackgroundStyle(true);
+ // Check if the background style is correctly changed
+ checkBackgroundStyle(editPart, "Liquid");
+ // Reset the container background style
+ changeBackgroundStyle(false);
+ // Check if the background style is correctly changed
+ checkBackgroundStyle(editPart, "GradientTopToBottom");
+ }
+
+ private void checkBackgroundStyle(SWTBotGefEditPart editPart, String backgroundStyleName) {
+ DDiagramElement diagramElement = DiagramElementEditPartOperation.resolveDiagramElement((IDiagramElementEditPart) editPart.part());
+ BackgroundStyle backgroundStyle = ((FlatContainerStyle) diagramElement.getStyle()).getBackgroundStyle();
+ assertEquals("Wrong background style of the container '" + diagramElement.getName() + "'", backgroundStyleName, backgroundStyle.getName());
+ }
+
+ private void changeBackgroundStyle(boolean liquid) {
+ SWTBotView propertiesBot = bot.viewByTitle(PROPERTIES);
+ propertiesBot.setFocus();
+ SWTBotSiriusHelper.selectPropertyTabItem("Semantic");
+ SWTBotTreeItem style = propertiesBot.bot().tree(0).getAllItems()[0].getNode("Liquid");
+ style.click();
+ SWTBotCCombo lineStyle = bot.viewByTitle(PROPERTIES).bot().ccomboBox();
+ if (liquid) {
+ lineStyle.setSelection(1);
+ } else {
+ lineStyle.setSelection(0);
+ }
+ editor.setFocus();
+ }
+
+ private SWTBotGefEditPart selectAndCheckEditPart(String name, Class<? extends EditPart> type) {
+ SWTBotGefEditPart botPart = editor.getEditPart(name, type);
+ assertNotNull("The requested edit part should not be null", botPart);
+ botPart.select();
+ bot.waitUntil(new CheckSelectedCondition(editor, name));
+ return botPart;
+ }
+
+}
diff --git a/plugins/org.eclipse.sirius.tests.swtbot/src/org/eclipse/sirius/tests/swtbot/suite/AllTestSuite.java b/plugins/org.eclipse.sirius.tests.swtbot/src/org/eclipse/sirius/tests/swtbot/suite/AllTestSuite.java
index 048f303d07..e3b23a726b 100644
--- a/plugins/org.eclipse.sirius.tests.swtbot/src/org/eclipse/sirius/tests/swtbot/suite/AllTestSuite.java
+++ b/plugins/org.eclipse.sirius.tests.swtbot/src/org/eclipse/sirius/tests/swtbot/suite/AllTestSuite.java
@@ -250,6 +250,7 @@ public class AllTestSuite extends TestCase {
suite.addTestSuite(TreeFoldingTest.class);
suite.addTestSuite(DoubleClickToolNavigationOperationTest.class);
suite.addTestSuite(BackgroundColorFigureUpdateTests.class);
+ suite.addTestSuite(BackgroundStyleUpdateTest.class);
suite.addTestSuite(EdgeMappingTestCase.class);
suite.addTestSuite(InvalidMetamodelRessourceTest.class);
suite.addTestSuite(ExtensionActivationOrderTest.class);

Back to the top