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 fabef4c4910470a38c92acb1f7be8c1d66ad7d1e..391dec0bc5efacaa7e48d2a79ba697322abf8acd 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,6 +1,6 @@
 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
diff --git a/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/editor/fx/controller/EObjectDiagramController.java b/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/editor/fx/controller/EObjectDiagramController.java
index 7fe2cd69ee8449b0ecaeb42e4fe2b65fffd9b6c3..45f5b1439f33685523b035d2603e8329b647b62a 100644
--- a/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/editor/fx/controller/EObjectDiagramController.java
+++ b/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/editor/fx/controller/EObjectDiagramController.java
@@ -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));
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 c1f077e5e35c7f3e73011bf6cff268211ad0256e..f81faf3b9f158819fb43e3030f9e112f80ef6b69 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 3a0c4c4c28e6306dcaf70c5c1c7f8ad22bb86d73 GREEN
+DefaultDiagramController.java 57cc1bbde64c22d0dfb4832755d50e9491261072 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 3a0c4c4c28e6306dcaf70c5c1c7f8ad22bb86d73..57cc1bbde64c22d0dfb4832755d50e9491261072 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,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} */