From c815099cc2d1d52d88edcd3783c01f6337e8ce64 Mon Sep 17 00:00:00 2001 From: Florian Hoelzl <hoelzl@fortiss.org> Date: Mon, 24 Feb 2020 13:19:04 +0100 Subject: [PATCH] Kernel: LWFXEF is accepting DND from model elements view. Issue-Ref: 3921 Issue-Url: https://af3-developer.fortiss.org/issues/3907 Signed-off-by: Florian Hoelzl <hoelzl@fortiss.org> --- .../base/ui/editor/fx/controller/.ratings | 4 ++-- ...tEllipticResizableContentControllerBase.java | 17 +++++++++++++++++ ...ctangularResizableContentControllerBase.java | 17 +++++++++++++++++ 3 files changed, 36 insertions(+), 2 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 99dfa79fb..2effda820 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 @@ -1,9 +1,9 @@ ContextMenuUtil.java 405387151d45b09dffb3b6ba44f980313c8edcaf GREEN CurvedLinkLayoutedContentAnchorangeController.java 67c20e31ddb82fe2fd499117193353b0545839a0 GREEN EObjectDiagramController.java 2b253941592ee25ead95223470f983f23ef9776f YELLOW -EObjectEllipticResizableContentControllerBase.java 3494d4f0dcdff5eb35f22f0e21d04df81b32e494 GREEN +EObjectEllipticResizableContentControllerBase.java 7c862a03b97d2f2cfdcc2fcee7434de2e1e257d2 YELLOW EObjectModelChangeProvider.java f4b60cebb088a5c81ca92a41614e1a5d40030502 GREEN -EObjectRectangularResizableContentControllerBase.java f4a967591a60fadb20550ec3eaabccf240c9ec0d GREEN +EObjectRectangularResizableContentControllerBase.java 28a17bf87f6a7222d927bc1c6b80967cb14b5f03 YELLOW KernelServiceBasedModelChangeProviderBase.java 8d1f8ef79ecd383ff74e5a2bbcf24345aabe70af GREEN LayoutModelChangeProvider.java b5449d02eaf39086909720c43e21bd061005fc9e GREEN LayoutedContentAnchorageController.java 9fc513a7404277514c730f7702d45588f2d81878 GREEN diff --git a/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/editor/fx/controller/EObjectEllipticResizableContentControllerBase.java b/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/editor/fx/controller/EObjectEllipticResizableContentControllerBase.java index 3494d4f0d..7c862a03b 100644 --- a/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/editor/fx/controller/EObjectEllipticResizableContentControllerBase.java +++ b/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/editor/fx/controller/EObjectEllipticResizableContentControllerBase.java @@ -17,6 +17,8 @@ import static java.lang.Math.max; import static java.util.Objects.requireNonNull; import static org.fortiss.tooling.base.ui.editor.fx.controller.ContextMenuUtil.createElementCompositionContext; import static org.fortiss.tooling.base.ui.editor.fx.controller.ContextMenuUtil.createPrototypeMenu; +import static org.fortiss.tooling.base.ui.utils.FXDNDUtils.canCompose; +import static org.fortiss.tooling.base.ui.utils.FXDNDUtils.compose; import java.util.List; @@ -40,6 +42,7 @@ import org.fortiss.tooling.kernel.ui.service.IModelElementHandlerService; import javafx.scene.Node; import javafx.scene.control.MenuItem; +import javafx.scene.input.Dragboard; import javafx.scene.input.MouseEvent; /** @@ -148,4 +151,18 @@ public abstract class EObjectEllipticResizableContentControllerBase<T extends EO public IClickController getClickController(Node node, DiagramCoordinate diagramLocation) { return openEditorDoubleClickController; } + + /** {@inheritDoc} */ + @Override + public boolean handleExternalDNDDragOver(Dragboard db, DiagramCoordinate diagramLocation) { + double zoom = getViewer().getFeatures().getCurrentZoomFactor(); + return canCompose(db, diagramLocation, getModelElement(), false, zoom); + } + + /** {@inheritDoc} */ + @Override + public boolean handleExternalDNDDrop(Dragboard db, DiagramCoordinate diagramLocation) { + double zoom = getViewer().getFeatures().getCurrentZoomFactor(); + return compose(db, diagramLocation, getModelElement(), false, zoom); + } } diff --git a/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/editor/fx/controller/EObjectRectangularResizableContentControllerBase.java b/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/editor/fx/controller/EObjectRectangularResizableContentControllerBase.java index f4a967591..28a17bf87 100644 --- a/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/editor/fx/controller/EObjectRectangularResizableContentControllerBase.java +++ b/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/editor/fx/controller/EObjectRectangularResizableContentControllerBase.java @@ -19,6 +19,8 @@ import static org.fortiss.tooling.base.layout.DefaultLayoutConstants.DEFAULT_SHA import static org.fortiss.tooling.base.layout.DefaultLayoutConstants.DEFAULT_SHAPE_MINIMUM_WIDTH; import static org.fortiss.tooling.base.ui.editor.fx.controller.ContextMenuUtil.createElementCompositionContext; import static org.fortiss.tooling.base.ui.editor.fx.controller.ContextMenuUtil.createPrototypeMenu; +import static org.fortiss.tooling.base.ui.utils.FXDNDUtils.canCompose; +import static org.fortiss.tooling.base.ui.utils.FXDNDUtils.compose; import java.util.List; @@ -46,6 +48,7 @@ import org.fortiss.tooling.kernel.ui.service.IModelElementHandlerService; import javafx.geometry.Dimension2D; import javafx.scene.Node; import javafx.scene.control.MenuItem; +import javafx.scene.input.Dragboard; import javafx.scene.input.MouseEvent; /** @@ -177,4 +180,18 @@ public abstract class EObjectRectangularResizableContentControllerBase<T extends public IClickController getClickController(Node node, DiagramCoordinate diagramLocation) { return openEditorDoubleClickController; } + + /** {@inheritDoc} */ + @Override + public boolean handleExternalDNDDragOver(Dragboard db, DiagramCoordinate diagramLocation) { + double zoom = getViewer().getFeatures().getCurrentZoomFactor(); + return canCompose(db, diagramLocation, getModelElement(), false, zoom); + } + + /** {@inheritDoc} */ + @Override + public boolean handleExternalDNDDrop(Dragboard db, DiagramCoordinate diagramLocation) { + double zoom = getViewer().getFeatures().getCurrentZoomFactor(); + return compose(db, diagramLocation, getModelElement(), false, zoom); + } } -- GitLab