diff --git a/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/layout/auto/.ratings b/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/layout/auto/.ratings index 1d51662191ed3f40d7e6f387818d6a60b69cad47..0657786d2649b607a13395defac862123164a236 100644 --- a/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/layout/auto/.ratings +++ b/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/layout/auto/.ratings @@ -1,4 +1,4 @@ -AutoLayoutMenu.java ef3b897cc2fd99cf9ce201f03cffea036555e3ac GREEN +AutoLayoutMenu.java bca7986c209678ed937548a37db494430877d80e YELLOW DiagramTapeMeasure.java 72454e6fe5225dab11d3d691baad93aab7a171c0 YELLOW IAutoLayouter.java de1b11d9e202c7e23352ad85684dbf8a3fd17c7d GREEN IAutoLayouterTapeMeasure.java df186e0ba505e0ecda211b1df76cf12f3245b47e YELLOW diff --git a/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/layout/auto/AutoLayoutMenu.java b/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/layout/auto/AutoLayoutMenu.java index ef3b897cc2fd99cf9ce201f03cffea036555e3ac..bca7986c209678ed937548a37db494430877d80e 100644 --- a/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/layout/auto/AutoLayoutMenu.java +++ b/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/layout/auto/AutoLayoutMenu.java @@ -21,7 +21,6 @@ import static org.fortiss.tooling.base.utils.AngleUtils.getAngle; import static org.fortiss.tooling.kernel.utils.EcoreUtils.pickInstanceOf; import java.util.ArrayList; -import java.util.Collections; import java.util.List; import org.eclipse.emf.ecore.EObject; @@ -34,9 +33,10 @@ import org.fortiss.tooling.base.model.element.IConnector; import org.fortiss.tooling.base.model.element.IHierarchicElement; import org.fortiss.tooling.base.model.layout.ILayoutedModelElement; import org.fortiss.tooling.base.ui.ToolingBaseUIActivator; -import org.fortiss.tooling.kernel.model.IProjectRootElement; import org.fortiss.tooling.kernel.ui.extension.IContextMenuContributor; +import org.fortiss.tooling.kernel.ui.extension.IModelElementHandler; import org.fortiss.tooling.kernel.ui.extension.data.ContextMenuContextProvider; +import org.fortiss.tooling.kernel.ui.service.IModelElementHandlerService; /** * Context menu entry to automatic layout {@link IHierarchicElement}-based models. @@ -96,16 +96,16 @@ public class AutoLayoutMenu implements IContextMenuContributor { public List<IContributionItem> getContributedItems(EObject selection, ContextMenuContextProvider contextProvider) { - if(!(selection instanceof IHierarchicElement)) { - return Collections.emptyList(); + IModelElementHandler<EObject> handler = + IModelElementHandlerService.getInstance().getModelElementHandler(selection); + if(handler == null) { + return emptyList(); } - - IHierarchicElement element = (IHierarchicElement)selection; - // Skip single top-level model element (e.g., AF3 component architecture) - if(element instanceof IProjectRootElement && element.getContainedElements().size() == 1) { - // There is exactly one child element - element = element.getContainedElements().get(0); + EObject editedObject = handler.handleOpenModelElementRequest(selection); + if(!(editedObject instanceof IHierarchicElement)) { + return emptyList(); } + IHierarchicElement element = (IHierarchicElement)editedObject; // Check if model is empty if(pickInstanceOf(ILayoutedModelElement.class, element.getContainedElements()).isEmpty()) {