From 398f9fb804ad45c9408402882bda6bba7eeec5dd Mon Sep 17 00:00:00 2001 From: Simon Barner <barner@fortiss.org> Date: Sat, 23 Jan 2021 06:37:46 +0100 Subject: [PATCH] Factorize contextMenuContributions() Issue-Ref: 4097 Issue-Url: https://af3-developer.fortiss.org/issues/4097 Signed-off-by: Simon Barner <barner@fortiss.org> --- .../ui/javafx/lwfxef/controller/base/.ratings | 2 +- .../base/DefaultDiagramController.java | 54 +++++++++++-------- 2 files changed, 32 insertions(+), 24 deletions(-) diff --git a/org.fortiss.tooling.common.ui/src/org/fortiss/tooling/common/ui/javafx/lwfxef/controller/base/.ratings b/org.fortiss.tooling.common.ui/src/org/fortiss/tooling/common/ui/javafx/lwfxef/controller/base/.ratings index f4861e4fd..b24623e41 100644 --- a/org.fortiss.tooling.common.ui/src/org/fortiss/tooling/common/ui/javafx/lwfxef/controller/base/.ratings +++ b/org.fortiss.tooling.common.ui/src/org/fortiss/tooling/common/ui/javafx/lwfxef/controller/base/.ratings @@ -2,7 +2,7 @@ AnchorageContentControllerBase.java da56b10cbf2711b5da69f0b59f43eacbe54f4eea GRE ClickControllerBase.java 8e5861ed5f9318008ad0fdd5497ed320cd5bd647 GREEN ContentAnchorageMoveControllerBase.java c18e7915ce23e124757f5b736086ecc46694800a GREEN ControllerBase.java 9311521b252e46640e26d409610e527fd5ed6922 GREEN -DefaultDiagramController.java 0e083b89a08f63967102a384d66ebc1d64d203af GREEN +DefaultDiagramController.java 2d229228a05a96c54464575643bcb25e2e58efec YELLOW DelegatingContentAnchorageController.java 1889628a346a2183082ffe213978f9d15a949494 GREEN DragControllerBase.java b15ff874304f679fe494d85f57cc8cbe4d0d1d15 GREEN DraggingUtils.java 95117e2ea4c36b6c6a31f8088bb95b484e0e6612 GREEN diff --git a/org.fortiss.tooling.common.ui/src/org/fortiss/tooling/common/ui/javafx/lwfxef/controller/base/DefaultDiagramController.java b/org.fortiss.tooling.common.ui/src/org/fortiss/tooling/common/ui/javafx/lwfxef/controller/base/DefaultDiagramController.java index 0e083b89a..2d229228a 100644 --- a/org.fortiss.tooling.common.ui/src/org/fortiss/tooling/common/ui/javafx/lwfxef/controller/base/DefaultDiagramController.java +++ b/org.fortiss.tooling.common.ui/src/org/fortiss/tooling/common/ui/javafx/lwfxef/controller/base/DefaultDiagramController.java @@ -9,7 +9,8 @@ *******************************************************************************/ package org.fortiss.tooling.common.ui.javafx.lwfxef.controller.base; -import java.util.LinkedList; +import static java.util.Arrays.asList; + import java.util.List; import org.fortiss.tooling.common.ui.javafx.lwfxef.DiagramCoordinate; @@ -37,43 +38,50 @@ public class DefaultDiagramController extends ControllerBase { super(mvcb); } - /** {@inheritDoc} */ - @Override - public List<MenuItem> contextMenuContributions(Node node, DiagramCoordinate diagramLocation) { - Menu menu = new Menu("Display ..."); - DiagramViewerFeatures features = getViewer().getFeatures(); - // link highlighting + /** Creates the {@link MenuItem} to enable/disable link highlighting. */ + private MenuItem createLinkHighlightingMenuItem(DiagramViewerFeatures features) { + MenuItem linkHighLightingMenuItem; if(features.isLinkHighlightingEnabled()) { - MenuItem disableLinkHighlighting = new MenuItem("Disable Link Highlighting"); - disableLinkHighlighting.setOnAction(evt -> { + linkHighLightingMenuItem = new MenuItem("Disable Link Highlighting"); + linkHighLightingMenuItem.setOnAction(evt -> { features.setLinkHighlightingEnabled(false); }); - menu.getItems().add(disableLinkHighlighting); } else { - MenuItem enableLinkHighlighting = new MenuItem("Enable Link Highlighting"); - enableLinkHighlighting.setOnAction(evt -> { + linkHighLightingMenuItem = new MenuItem("Enable Link Highlighting"); + linkHighLightingMenuItem.setOnAction(evt -> { features.setLinkHighlightingEnabled(true); }); - menu.getItems().add(enableLinkHighlighting); } - // interaction area shading + return linkHighLightingMenuItem; + } + + /** Creates a {@link MenuItem} to enable/disable interaction shading. */ + private MenuItem createInteractionAreaShadingMenuItem(DiagramViewerFeatures features) { + MenuItem interactionAreaShadingMenuItem; if(features.isInteractionAreaShadingEnabled()) { - MenuItem disableInteractionShading = new MenuItem("Disable Interactive Area Shading"); - disableInteractionShading.setOnAction(evt -> { + interactionAreaShadingMenuItem = new MenuItem("Disable Interactive Area Shading"); + interactionAreaShadingMenuItem.setOnAction(evt -> { features.setInteractionAreaShadingEnabled(false); }); - menu.getItems().add(disableInteractionShading); } else { - MenuItem enableInteractionShading = new MenuItem("Enable Interactive Area Shading"); - enableInteractionShading.setOnAction(evt -> { + interactionAreaShadingMenuItem = new MenuItem("Enable Interactive Area Shading"); + interactionAreaShadingMenuItem.setOnAction(evt -> { features.setInteractionAreaShadingEnabled(true); }); - menu.getItems().add(enableInteractionShading); } + return interactionAreaShadingMenuItem; + } + + /** {@inheritDoc} */ + @Override + public List<MenuItem> contextMenuContributions(Node node, DiagramCoordinate diagramLocation) { + Menu menu = new Menu("Display ..."); + DiagramViewerFeatures features = getViewer().getFeatures(); + + menu.getItems().add(createLinkHighlightingMenuItem(features)); + menu.getItems().add(createInteractionAreaShadingMenuItem(features)); - List<MenuItem> menuList = new LinkedList<>(); - menuList.add(menu); - return menuList; + return asList(menu); } /** {@inheritDoc} */ -- GitLab