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

Add context menu entries for zooming in diagram editors

Issue-Ref: 3843
Issue-Url: af3#3843



Signed-off-by: default avatarSimon Barner <barner@fortiss.org>
parent db31ed5b
No related branches found
No related tags found
1 merge request!1513843: Add context menu entries for zooming in diagram editors
CurvedLinkLayoutedContentAnchorangeController.java e22faedbe98c3dab660b5d2df8ebd004e116c5ba GREEN
CurvedLinkLayoutedDiagramAnchorangeController.java f2e5e2a7cc9b6a070871e200e57371286bb15222 GREEN
EObjectDiagramController.java 7fe2cd69ee8449b0ecaeb42e4fe2b65fffd9b6c3 GREEN
EObjectDiagramController.java 45f5b1439f33685523b035d2603e8329b647b62a YELLOW
EObjectEllipticResizableContentControllerBase.java f12e8f5a646a23fe428ed4768bf041c8b885ec81 GREEN
EObjectModelChangeProvider.java f4b60cebb088a5c81ca92a41614e1a5d40030502 GREEN
EObjectRectangularResizableContentControllerBase.java cde6c13659611d927691c03ecd2621cff2414b03 GREEN
......
......@@ -85,7 +85,7 @@ public class EObjectDiagramController<T extends EObject> extends DefaultDiagramC
IElementCompositionContext edc = createElementCompositionContext(modelParent, x, y, true,
getViewer().getFeatures().getCurrentZoomFactor());
List<MenuItem> result = createPrototypeMenu(modelParent, edc);
// Adds "Display" menu
// Adds "Display" and "Zoom" menus
result.addAll(super.contextMenuContributions(node, diagramLocation));
if(modelParent instanceof IHierarchicElement && enableAutoLayout()) {
result.add(createAutoLayoutMenu((IHierarchicElement)modelParent));
......
......@@ -2,7 +2,7 @@ AnchorageContentControllerBase.java da56b10cbf2711b5da69f0b59f43eacbe54f4eea GRE
ClickControllerBase.java 8e5861ed5f9318008ad0fdd5497ed320cd5bd647 GREEN
ContentAnchorageMoveControllerBase.java c18e7915ce23e124757f5b736086ecc46694800a GREEN
ControllerBase.java 9311521b252e46640e26d409610e527fd5ed6922 GREEN
DefaultDiagramController.java 3a0c4c4c28e6306dcaf70c5c1c7f8ad22bb86d73 GREEN
DefaultDiagramController.java 57cc1bbde64c22d0dfb4832755d50e9491261072 YELLOW
DelegatingContentAnchorageController.java 1889628a346a2183082ffe213978f9d15a949494 GREEN
DragControllerBase.java b15ff874304f679fe494d85f57cc8cbe4d0d1d15 GREEN
DraggingUtils.java 95117e2ea4c36b6c6a31f8088bb95b484e0e6612 GREEN
......
......@@ -9,8 +9,7 @@
*******************************************************************************/
package org.fortiss.tooling.common.ui.javafx.lwfxef.controller.base;
import static java.util.Arrays.asList;
import java.util.ArrayList;
import java.util.List;
import org.fortiss.tooling.common.ui.javafx.lwfxef.DiagramCoordinate;
......@@ -100,21 +99,75 @@ public class DefaultDiagramController extends ControllerBase {
return gridMenuItem;
}
/** Creates a {@link MenuItem} to zoom in. */
private MenuItem createZoomInMenuItem(DiagramViewerFeatures features) {
MenuItem zoomInMenuItem = new MenuItem("Zoom in");
zoomInMenuItem.setOnAction(evt -> {
features.zoomIn();
});
return zoomInMenuItem;
}
/** Creates a {@link MenuItem} to zoom out. */
private MenuItem createZoomOutMenuItem(DiagramViewerFeatures features) {
MenuItem zoomInMenuItem = new MenuItem("Zoom out");
zoomInMenuItem.setOnAction(evt -> {
features.zoomOut();
});
return zoomInMenuItem;
}
/** Creates a {@link MenuItem} to set the zoom factor. */
private MenuItem createZoomFactorMenuItem(DiagramViewerFeatures features, int zoomFactorIndex,
String prefix) {
MenuItem zoomFactorMenuItem = null;
if(zoomFactorIndex < features.getZoomFactors().length) {
double zoomFactor = features.getZoomFactors()[zoomFactorIndex];
zoomFactorMenuItem = new MenuItem(prefix + zoomFactor * 100 + " %");
zoomFactorMenuItem.setOnAction(evt -> {
features.setZoomFactorIndex(zoomFactorIndex);
});
}
return zoomFactorMenuItem;
}
/** {@inheritDoc} */
@Override
public List<MenuItem> contextMenuContributions(Node node, DiagramCoordinate diagramLocation) {
Menu menu = new Menu("Display ...");
ObservableList<MenuItem> menuItems = menu.getItems();
List<MenuItem> rval = new ArrayList<>();
Menu gridMenu = new Menu("Display ...");
ObservableList<MenuItem> gridMenuItems = gridMenu.getItems();
DiagramViewerFeatures features = getViewer().getFeatures();
menuItems.add(createLinkHighlightingMenuItem(features));
menuItems.add(createInteractionAreaShadingMenuItem(features));
gridMenuItems.add(createLinkHighlightingMenuItem(features));
gridMenuItems.add(createInteractionAreaShadingMenuItem(features));
MenuItem gridMenuItem = createGridMenuItem(features);
if(gridMenuItem != null) {
menuItems.add(gridMenuItem);
gridMenuItems.add(gridMenuItem);
}
rval.add(gridMenu);
Menu zoomMenu = new Menu("Zoom ...");
ObservableList<MenuItem> zoomMenuItems = zoomMenu.getItems();
double[] zoomFactors = features.getZoomFactors();
int normalZoomIndex = -1;
for(int i = 0; i < zoomFactors.length; ++i) {
MenuItem zoomFactorMenuItem = createZoomFactorMenuItem(features, i, "");
if(zoomFactorMenuItem != null) {
zoomMenuItems.add(zoomFactorMenuItem);
}
if(zoomFactors[i] == 1.0) {
normalZoomIndex = i;
}
}
rval.add(createZoomInMenuItem(features));
rval.add(createZoomOutMenuItem(features));
if(normalZoomIndex != -1) {
rval.add(createZoomFactorMenuItem(features, normalZoomIndex, "Zoom "));
}
rval.add(zoomMenu);
return asList(menu);
return rval;
}
/** {@inheritDoc} */
......
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