diff --git a/org.fortiss.tooling.base.ui/META-INF/MANIFEST.MF b/org.fortiss.tooling.base.ui/META-INF/MANIFEST.MF index 1e4971a47f04654885710d833069031d3d752804..a1387ca8e25f61ee8cd2ea5e5a933ee6f71ba5db 100644 --- a/org.fortiss.tooling.base.ui/META-INF/MANIFEST.MF +++ b/org.fortiss.tooling.base.ui/META-INF/MANIFEST.MF @@ -7,7 +7,8 @@ Bundle-Activator: org.fortiss.tooling.base.ui.ToolingBaseUIActivator Require-Bundle: org.fortiss.tooling.base;bundle-version="2.23.0";visibility:=reexport, org.fortiss.tooling.kernel.ui;bundle-version="2.23.0";visibility:=reexport, org.eclipse.swt, - org.fortiss.tooling.common.ui + org.fortiss.tooling.common.ui, + org.fortiss.tooling.ext.reuse Bundle-ActivationPolicy: lazy Bundle-RequiredExecutionEnvironment: JavaSE-11 Bundle-Vendor: fortiss GmbH 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 a55ceed42f2eb88ba263a6fbcb394ddb80b1eda0..ebe9cdc0b96aeaed0852b52f7fa09ad1bd7fc42b 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 @@ -16,6 +16,7 @@ package org.fortiss.tooling.base.ui.utils; import static org.fortiss.tooling.base.utils.LayoutModelElementFactory.createPoint; +import static org.fortiss.tooling.ext.reuse.utils.ReuseLibraryUtilsBasics.isCorrectReuseElement; import java.util.ArrayList; import java.util.List; @@ -70,6 +71,8 @@ public final class ContextMenuUtils { List<MenuItem> result = new ArrayList<>(); Menu newMenu = new Menu("New ..."); + Menu reuseMenu = new Menu("Reuse ..."); + List<Prototype> protos = pers.getComposablePrototypes(target.getClass()); for(Prototype p : protos) { EObject prototypeCopy = p.getPrototypeCopy(); @@ -79,18 +82,30 @@ public final class ContextMenuUtils { if((!onlyForEditedObject || isMenuForEditedObject || prototypeCopy instanceof IConnector) && ecs.canCompose(target, prototypeCopy, context)) { - MenuItem mi = new MenuItem(p.getName()); - mi.setOnAction(evt -> { + MenuItem menuItem = new MenuItem(p.getName()); + menuItem.setOnAction(evt -> { css.runAsCommand(target, () -> { ecs.compose(target, prototypeCopy, context); }); }); - newMenu.getItems().add(mi); + + if(isCorrectReuseElement(prototypeCopy)) { + // TODO 4323: add library name to item name + reuseMenu.getItems().add(menuItem); + } else { + newMenu.getItems().add(menuItem); + } + // TODO 4323: add priority system to prototypes (not only categories) and use it + // here to sort the newMenu list } } + if(!newMenu.getItems().isEmpty()) { result.add(newMenu); } + if(!reuseMenu.getItems().isEmpty()) { + result.add(reuseMenu); + } return result; }