From 3fc394bf5092b443e096f6e2856ac30a860c6366 Mon Sep 17 00:00:00 2001 From: Tiziano Munaro <munaro@fortiss.org> Date: Tue, 21 Jan 2020 11:13:49 +0100 Subject: [PATCH] Enable root models other than the edited object in model factories Issue-Ref: 3873 Issue-Url: https://af3-developer.fortiss.org/issues/3873 Signed-off-by: Tiziano Munaro <munaro@fortiss.org> --- .../base/ui/editor/fx/controller/.ratings | 2 +- ...tedEllipticResizableContentController.java | 21 +++++++++++++++++++ .../kernel/ui/extension/base/factory/.ratings | 2 +- .../base/factory/DelegatingModelFactory.java | 3 ++- 4 files changed, 25 insertions(+), 3 deletions(-) diff --git a/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/editor/fx/controller/.ratings b/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/editor/fx/controller/.ratings index b874bf6e0..b0f85014f 100644 --- a/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/editor/fx/controller/.ratings +++ b/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/editor/fx/controller/.ratings @@ -7,6 +7,6 @@ KernelServiceBasedModelChangeProviderBase.java 18e48f17ea8dfba90de024a8959fc5a4b LayoutModelChangeProvider.java b5449d02eaf39086909720c43e21bd061005fc9e GREEN LayoutedContentAnchorageController.java 3794b41d76e9ce14ead0bd812cde5c1a6d348d5c GREEN LayoutedDiagramAnchorageController.java 1e1ac7c5fa26c632736f5023e90f05d09bc0710d GREEN -LayoutedEllipticResizableContentController.java 7f6f9a11f9bcb1e78cf8c95c69a9a26c5d4adf42 YELLOW +LayoutedEllipticResizableContentController.java b2c9c48190b9ff69a175bbe5f89761c1b08621ab YELLOW LayoutedLinkBendPointController.java a8372485ae96f2abf773d1baeb1f8c7b2b25985f GREEN LayoutedRectangularResizableContentController.java 1e18af3ee10dd3754325ed389fed664da65a0b61 GREEN diff --git a/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/editor/fx/controller/LayoutedEllipticResizableContentController.java b/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/editor/fx/controller/LayoutedEllipticResizableContentController.java index 7f6f9a11f..b2c9c4819 100644 --- a/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/editor/fx/controller/LayoutedEllipticResizableContentController.java +++ b/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/editor/fx/controller/LayoutedEllipticResizableContentController.java @@ -18,11 +18,16 @@ package org.fortiss.tooling.base.ui.editor.fx.controller; import static java.lang.Math.toRadians; import static java.util.Objects.requireNonNull; import static org.fortiss.tooling.base.ui.utils.LayoutDataUIUtils.setConnectorAngle; +import static org.fortiss.tooling.base.utils.LayoutDataUtils.getNodeSize; +import static org.fortiss.tooling.base.utils.LayoutDataUtils.moveNode; +import static org.fortiss.tooling.base.utils.LayoutDataUtils.setNodeSize; +import org.eclipse.systemfocus.kernel.common.ui.javafx.lwfxef.FeedbackChange; import org.eclipse.systemfocus.kernel.common.ui.javafx.lwfxef.controller.IController; import org.eclipse.systemfocus.kernel.common.ui.javafx.lwfxef.mvc.IContentAnchorageMVCBundle; import org.eclipse.systemfocus.kernel.common.ui.javafx.lwfxef.mvc.IContentMVCBundle; import org.fortiss.tooling.base.model.element.IConnector; +import org.fortiss.tooling.base.model.layout.Dimension; import org.fortiss.tooling.base.model.layout.ILayoutedModelElement; /** @@ -54,4 +59,20 @@ public class LayoutedEllipticResizableContentController<T extends ILayoutedModel setConnectorAngle(conn, toRadians(angleInDegree)); } } + + /** {@inheritDoc} */ + @Override + protected void move(FeedbackChange deltaChange) { + moveNode(getModelElement(), (int)deltaChange.getDeltaX(), (int)deltaChange.getDeltaY()); + } + + /** {@inheritDoc} */ + @Override + protected void resize(FeedbackChange delta) { + T element = getModelElement(); + Dimension d = getNodeSize(element); + int w = d.getWidth() + (int)delta.getDeltaW(); + int h = d.getHeight() + (int)delta.getDeltaH(); + setNodeSize(element, w, h); + } } diff --git a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/extension/base/factory/.ratings b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/extension/base/factory/.ratings index 75b475f75..498447565 100644 --- a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/extension/base/factory/.ratings +++ b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/extension/base/factory/.ratings @@ -1,4 +1,4 @@ DelegatingControllerFactory.java ad214d83b5821b39862b7c382c91a13c3dfddbd0 GREEN DelegatingFactoryBase.java f421742267610f41bb6196346026d2f239d90ed0 GREEN -DelegatingModelFactory.java 717b706781879efe9efcb5ce4bf53723e39a3e1b GREEN +DelegatingModelFactory.java 015ec36c9ca7e06235a0769e940c30b366c64075 YELLOW DelegatingVisualFactory.java 7e834acd12ae4d1c2b2b32a5456dc9f2b6d4e466 GREEN diff --git a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/extension/base/factory/DelegatingModelFactory.java b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/extension/base/factory/DelegatingModelFactory.java index 717b70678..015ec36c9 100644 --- a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/extension/base/factory/DelegatingModelFactory.java +++ b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/extension/base/factory/DelegatingModelFactory.java @@ -109,7 +109,8 @@ public class DelegatingModelFactory extends DelegatingFactoryBase<IModelFactory> /** {@inheritDoc} */ @Override public Object getRootModel() { - return editedObject; + return getDelegateFactories().stream().map(f -> f.getRootModel()).filter(cc -> cc != null) + .findFirst().orElse(null); } /** {@inheritDoc} */ -- GitLab