Skip to content
Snippets Groups Projects
Commit 550851f8 authored by Simon Barner's avatar Simon Barner
Browse files

Add "Display" menu item to show/hide the grid

parent 398f9fb8
No related branches found
No related tags found
1 merge request!1314097: Add hide/show grid context menu item for diagram editors
Pipeline #27484 passed
Pipeline: maven-releng

#27485

    ......@@ -2,7 +2,7 @@ AnchorageContentControllerBase.java da56b10cbf2711b5da69f0b59f43eacbe54f4eea GRE
    ClickControllerBase.java 8e5861ed5f9318008ad0fdd5497ed320cd5bd647 GREEN
    ContentAnchorageMoveControllerBase.java c18e7915ce23e124757f5b736086ecc46694800a GREEN
    ControllerBase.java 9311521b252e46640e26d409610e527fd5ed6922 GREEN
    DefaultDiagramController.java 2d229228a05a96c54464575643bcb25e2e58efec YELLOW
    DefaultDiagramController.java 1d162fc6789ad63081e81906a4ba649b5d459439 YELLOW
    DelegatingContentAnchorageController.java 1889628a346a2183082ffe213978f9d15a949494 GREEN
    DragControllerBase.java b15ff874304f679fe494d85f57cc8cbe4d0d1d15 GREEN
    DraggingUtils.java 95117e2ea4c36b6c6a31f8088bb95b484e0e6612 GREEN
    ......
    ......@@ -15,12 +15,14 @@ import java.util.List;
    import org.fortiss.tooling.common.ui.javafx.lwfxef.DiagramCoordinate;
    import org.fortiss.tooling.common.ui.javafx.lwfxef.DiagramViewerFeatures;
    import org.fortiss.tooling.common.ui.javafx.lwfxef.DiagramViewerFeatures.IndicatorType;
    import org.fortiss.tooling.common.ui.javafx.lwfxef.EDragGesture;
    import org.fortiss.tooling.common.ui.javafx.lwfxef.change.Change;
    import org.fortiss.tooling.common.ui.javafx.lwfxef.controller.IClickController;
    import org.fortiss.tooling.common.ui.javafx.lwfxef.controller.IDragController;
    import org.fortiss.tooling.common.ui.javafx.lwfxef.mvc.IMVCBundle;
    import javafx.collections.ObservableList;
    import javafx.scene.Node;
    import javafx.scene.control.Menu;
    import javafx.scene.control.MenuItem;
    ......@@ -33,6 +35,9 @@ public class DefaultDiagramController extends ControllerBase {
    /** Flag for ignoring mouse click event after dragging gesture. */
    private boolean ignoreNextMouseClick = false;
    /** Previous grid indicator type (to restore grid after it has been hidden. */
    private IndicatorType previousGridIndicatorType = null;
    /** Constructor. */
    public DefaultDiagramController(IMVCBundle mvcb) {
    super(mvcb);
    ......@@ -72,14 +77,42 @@ public class DefaultDiagramController extends ControllerBase {
    return interactionAreaShadingMenuItem;
    }
    /**
    * Creates a {@link MenuItem} to hide/show the grid (returns {@code null} in case the diagram
    * does not have a grid).
    */
    private MenuItem createGridMenuItem(DiagramViewerFeatures features) {
    MenuItem gridMenuItem = null;
    if(features.getIndicatorType() == IndicatorType.INVISIBLE) {
    if(previousGridIndicatorType != null) {
    gridMenuItem = new MenuItem("Show Grid");
    gridMenuItem.setOnAction(evt -> {
    features.setIndicatorType(previousGridIndicatorType);
    });
    }
    } else {
    gridMenuItem = new MenuItem("Hide Grid");
    gridMenuItem.setOnAction(evt -> {
    previousGridIndicatorType = features.getIndicatorType();
    features.setIndicatorType(IndicatorType.INVISIBLE);
    });
    }
    return gridMenuItem;
    }
    /** {@inheritDoc} */
    @Override
    public List<MenuItem> contextMenuContributions(Node node, DiagramCoordinate diagramLocation) {
    Menu menu = new Menu("Display ...");
    ObservableList<MenuItem> menuItems = menu.getItems();
    DiagramViewerFeatures features = getViewer().getFeatures();
    menu.getItems().add(createLinkHighlightingMenuItem(features));
    menu.getItems().add(createInteractionAreaShadingMenuItem(features));
    menuItems.add(createLinkHighlightingMenuItem(features));
    menuItems.add(createInteractionAreaShadingMenuItem(features));
    MenuItem gridMenuItem = createGridMenuItem(features);
    if(gridMenuItem != null) {
    menuItems.add(gridMenuItem);
    }
    return asList(menu);
    }
    ......
    0% Loading or .
    You are about to add 0 people to the discussion. Proceed with caution.
    Finish editing this message first!
    Please register or to comment