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 c69d66347ae3953aa0ebb8842c388aee197a4048..fabef4c4910470a38c92acb1f7be8c1d66ad7d1e 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 ccccc925eb7966b274aa7354f4e9d4c534b250c5 GREEN
+EObjectDiagramController.java 7fe2cd69ee8449b0ecaeb42e4fe2b65fffd9b6c3 GREEN
 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 ccccc925eb7966b274aa7354f4e9d4c534b250c5..7fe2cd69ee8449b0ecaeb42e4fe2b65fffd9b6c3 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
@@ -16,7 +16,6 @@ package org.fortiss.tooling.base.ui.editor.fx.controller;
 import static java.lang.Math.max;
 import static java.util.Objects.requireNonNull;
 import static org.fortiss.tooling.base.ui.utils.ContextMenuUtils.createAutoLayoutMenu;
-import static org.fortiss.tooling.base.ui.utils.ContextMenuUtils.createDisplayMenu;
 import static org.fortiss.tooling.base.ui.utils.ContextMenuUtils.createElementCompositionContext;
 import static org.fortiss.tooling.base.ui.utils.ContextMenuUtils.createPrototypeMenu;
 import static org.fortiss.tooling.base.ui.utils.FXDNDUtils.canCompose;
@@ -86,7 +85,8 @@ public class EObjectDiagramController<T extends EObject> extends DefaultDiagramC
 		IElementCompositionContext edc = createElementCompositionContext(modelParent, x, y, true,
 				getViewer().getFeatures().getCurrentZoomFactor());
 		List<MenuItem> result = createPrototypeMenu(modelParent, edc);
-		result.add(createDisplayMenu(getViewer()));
+		// Adds "Display" menu
+		result.addAll(super.contextMenuContributions(node, diagramLocation));
 		if(modelParent instanceof IHierarchicElement && enableAutoLayout()) {
 			result.add(createAutoLayoutMenu((IHierarchicElement)modelParent));
 		}
diff --git a/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/utils/.ratings b/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/utils/.ratings
index 2d6cada90ddcdeb7bc4b4c3a9f75abf0c358bca2..6d70a178d73efd4cb8c67c1ca2d4c2ff807169c3 100644
--- a/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/utils/.ratings
+++ b/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/utils/.ratings
@@ -1,6 +1,6 @@
 AbstractNameEditingSupport.java c57336a0e0da18711a1610ca667dfea76728807f GREEN
 ActionUtils.java 322f43d4f92f992daef8ac88eb0f9197c840c89b GREEN
-ContextMenuUtils.java 434d6b7aad095ce726caa4de42913391ed6e6832 GREEN
+ContextMenuUtils.java 74a4264a1d3febb92c7cf9a78f6c12fa1c7ad2f0 GREEN
 DragAndDropBaseUtils.java d375377f9124f6113b2a295e6b0e09ac8966e564 GREEN
 EllipseLayoutUIUtils.java 4dd9dbd96a45e8c455c019caa19e4a50f18336af GREEN
 FXDNDUtils.java 6ce94e239e68f9e2b3cc0524b072606f4a120076 GREEN
diff --git a/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/utils/ContextMenuUtils.java b/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/utils/ContextMenuUtils.java
index 434d6b7aad095ce726caa4de42913391ed6e6832..74a4264a1d3febb92c7cf9a78f6c12fa1c7ad2f0 100644
--- a/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/utils/ContextMenuUtils.java
+++ b/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/utils/ContextMenuUtils.java
@@ -26,8 +26,6 @@ import org.fortiss.tooling.base.model.element.IHierarchicElement;
 import org.fortiss.tooling.base.model.layout.Point;
 import org.fortiss.tooling.base.ui.layout.auto.IAutoLayouter;
 import org.fortiss.tooling.base.ui.layout.auto.KielerAutoLayouter;
-import org.fortiss.tooling.common.ui.javafx.lwfxef.DiagramViewer;
-import org.fortiss.tooling.common.ui.javafx.lwfxef.DiagramViewerFeatures;
 import org.fortiss.tooling.kernel.extension.data.IElementCompositionContext;
 import org.fortiss.tooling.kernel.extension.data.Prototype;
 import org.fortiss.tooling.kernel.service.ICommandStackService;
@@ -105,39 +103,4 @@ public final class ContextMenuUtils {
 		Point loc = createPoint((int)x, (int)y, "CompositionPoint");
 		return new ElementDropContext(target, loc, isRoot, zoom);
 	}
-
-	/** Returns the default display menu for interaction with diagram viewer features. */
-	public static Menu createDisplayMenu(DiagramViewer viewer) {
-		Menu menu = new Menu("Display ...");
-		DiagramViewerFeatures features = viewer.getFeatures();
-		// link highlighting
-		if(features.isLinkHighlightingEnabled()) {
-			MenuItem disableLinkHighlighting = new MenuItem("Disable Link Highlighting");
-			disableLinkHighlighting.setOnAction(evt -> {
-				features.setLinkHighlightingEnabled(false);
-			});
-			menu.getItems().add(disableLinkHighlighting);
-		} else {
-			MenuItem enableLinkHighlighting = new MenuItem("Enable Link Highlighting");
-			enableLinkHighlighting.setOnAction(evt -> {
-				features.setLinkHighlightingEnabled(true);
-			});
-			menu.getItems().add(enableLinkHighlighting);
-		}
-		// interaction area shading
-		if(features.isInteractionAreaShadingEnabled()) {
-			MenuItem disableInteractionShading = new MenuItem("Disable Interactive Area Shading");
-			disableInteractionShading.setOnAction(evt -> {
-				features.setInteractionAreaShadingEnabled(false);
-			});
-			menu.getItems().add(disableInteractionShading);
-		} else {
-			MenuItem enableInteractionShading = new MenuItem("Enable Interactive Area Shading");
-			enableInteractionShading.setOnAction(evt -> {
-				features.setInteractionAreaShadingEnabled(true);
-			});
-			menu.getItems().add(enableInteractionShading);
-		}
-		return menu;
-	}
 }
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 f4861e4fddd5014e568093359cd342d872c6194d..c1f077e5e35c7f3e73011bf6cff268211ad0256e 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 3a0c4c4c28e6306dcaf70c5c1c7f8ad22bb86d73 GREEN
 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 0e083b89a08f63967102a384d66ebc1d64d203af..3a0c4c4c28e6306dcaf70c5c1c7f8ad22bb86d73 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,17 +9,20 @@
  *******************************************************************************/
 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;
 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;
@@ -32,48 +35,86 @@ 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);
 	}
 
-	/** {@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;
+	}
+
+	/**
+	 * 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();
+
+		menuItems.add(createLinkHighlightingMenuItem(features));
+		menuItems.add(createInteractionAreaShadingMenuItem(features));
+		MenuItem gridMenuItem = createGridMenuItem(features);
+		if(gridMenuItem != null) {
+			menuItems.add(gridMenuItem);
 		}
 
-		List<MenuItem> menuList = new LinkedList<>();
-		menuList.add(menu);
-		return menuList;
+		return asList(menu);
 	}
 
 	/** {@inheritDoc} */