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
This commit is part of merge request !151. Comments created here will be created in the context of that merge request.
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