Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMaxime Porhel2015-08-24 14:43:10 +0000
committerMaxime Porhel2015-08-25 13:44:42 +0000
commit272e69bb35772e3a51c6d7554a6cfe7a8d6d0aa9 (patch)
treed81309372d89af1345b96229f1287fc2eacee1ea
parent9a545eb3151581530d4285a3738dd9976a76c459 (diff)
downloadorg.eclipse.sirius-272e69bb35772e3a51c6d7554a6cfe7a8d6d0aa9.tar.gz
org.eclipse.sirius-272e69bb35772e3a51c6d7554a6cfe7a8d6d0aa9.tar.xz
org.eclipse.sirius-272e69bb35772e3a51c6d7554a6cfe7a8d6d0aa9.zip
[472033] Also reinit figures for List/Region/RegionContainer
. Sirius used to react to gradient style changes only for DNodeContainers . Homogenize behavior between diagram creation for a VSM with an emtpy WorkspaceImage.workspacePath and the resetStyle button. Bug: 472033 Change-Id: I4698341428bc5dd6883227892a958ad451025ddc 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.java10
-rw-r--r--plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/edit/internal/part/DiagramContainerEditPartOperation.java47
2 files changed, 32 insertions, 25 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 039bc7bb1d..a893ab375c 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
@@ -407,16 +407,6 @@ public abstract class AbstractDiagramElementContainerEditPart extends AbstractBo
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()) {
- reInitFigure();
- }
- }
- }
}
super.refreshVisuals();
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 a7290753c1..e791886a19 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
@@ -140,19 +140,12 @@ public final class DiagramContainerEditPartOperation {
final DDiagramElement diagElement = self.resolveDiagramElement();
if (diagElement instanceof DDiagramElementContainer) {
final DDiagramElementContainer ddec = (DDiagramElementContainer) diagElement;
-
- /* The background figure */
- if (self.getBackgroundFigure() instanceof IWorkspaceImageFigure && ddec.getOwnedStyle() != null) {
- ((IWorkspaceImageFigure) self.getBackgroundFigure()).refreshFigure(ddec.getOwnedStyle());
- }
-
+ final ViewNodeContainerFigureDesc primaryShape = self.getPrimaryShape();
final ContainerStyle style = ddec.getOwnedStyle();
- if (DiagramContainerEditPartOperation.isPrimaryShapeChanging(self, style)) {
- self.reInitFigure();
- }
- ViewNodeContainerFigureDesc primaryShape = self.getPrimaryShape();
+ refreshBackgroundFigure(self, ddec, primaryShape, style);
refreshBorder(self, primaryShape, style);
+
if (primaryShape instanceof GradientRoundedRectangle) {
refreshGradient(style, (GradientRoundedRectangle) primaryShape);
}
@@ -167,6 +160,27 @@ public final class DiagramContainerEditPartOperation {
}
}
+ private static void refreshBackgroundFigure(final AbstractDiagramElementContainerEditPart self, final DDiagramElementContainer ddec, final ViewNodeContainerFigureDesc primaryShape,
+ final ContainerStyle style) {
+
+ // Update the background figure when the workspace image path changes.
+ if (self.getBackgroundFigure() instanceof IWorkspaceImageFigure && ddec.getOwnedStyle() != null) {
+ ((IWorkspaceImageFigure) self.getBackgroundFigure()).refreshFigure(ddec.getOwnedStyle());
+ }
+
+ // Update the background figure when the background gradient style
+ if (primaryShape instanceof GradientRoundedRectangle && style instanceof FlatContainerStyle) {
+ if (((GradientRoundedRectangle) primaryShape).getBackgroundStyle() != ((FlatContainerStyle) style).getBackgroundStyle()) {
+ self.reInitFigure();
+ }
+ }
+
+ // Update background figure when the primary shape should change.
+ if (isPrimaryShapeChanging(self, style)) {
+ self.reInitFigure();
+ }
+ }
+
private static void refreshGradient(final ContainerStyle style, GradientRoundedRectangle gradientRoundedShape) {
// The gradient style
if (style instanceof FlatContainerStyle) {
@@ -184,7 +198,6 @@ public final class DiagramContainerEditPartOperation {
if (self.isRegion()) {
// If the current stack is a Region, check and avoid overlap of the
// region container border.
-
DNodeContainer regionContainer = (DNodeContainer) diagElement.eContainer();
Dimension regionContainerCornerDimension = getCornerDimension(regionContainer);
if (!regionContainerCornerDimension.getShrinked(cornerDimension).isEmpty()) {
@@ -339,10 +352,14 @@ public final class DiagramContainerEditPartOperation {
if (!result) {
// Test changed from FlatContainerStyle
result = self.getPrimaryShape() instanceof GradientRoundedRectangle && (style instanceof ShapeContainerStyle || style instanceof WorkspaceImage);
- if (!result) {
- // Test changed from WorkspaceImage
- result = self.getPrimaryShape() instanceof ViewNodeContainerRectangleFigureDesc && (style instanceof FlatContainerStyle || style instanceof ShapeContainerStyle);
- }
+ }
+ if (!result) {
+ // Test changed from WorkspaceImage
+ result = self.getPrimaryShape() instanceof ViewNodeContainerRectangleFigureDesc && (style instanceof FlatContainerStyle || style instanceof ShapeContainerStyle);
+ }
+ if (!result) {
+ // Test changed from WorkspaceImage.workspacePath
+ result = style instanceof WorkspaceImage && (self.getBackgroundFigure() == null ^ StringUtil.isEmpty(((WorkspaceImage) style).getWorkspacePath()));
}
return result;
}

Back to the top