package org.archstudio.archipelago2.ext.structures.outline; import java.util.List; import org.archstudio.archipelago2.AbstractArchipelago2MenuContributor; import org.archstudio.archipelago2.Archipelago2Utils; import org.archstudio.archipelago2.IArchipelago2MenuContributor; import org.archstudio.archipelago2.IArchipelago2Outline; import org.archstudio.archipelago2.ext.structures.utils.MenuContributor; import org.archstudio.xadl.XadlUtils; import org.archstudio.xadl3.structure_3_0.Structure_3_0Package; import org.archstudio.xarchadt.ObjRef; import org.eclipse.jface.action.IMenuManager; public class StructuresMenuContributor extends AbstractArchipelago2MenuContributor implements IArchipelago2MenuContributor { @Override public void fillMenu(IArchipelago2Outline outline, List<Object> element, IMenuManager menuManager) { final ObjRef xAdlRef = (ObjRef) xarch.get(docRef, "xADL"); final ObjRef editRef = Archipelago2Utils.getLastObjRef(element); if (Archipelago2Utils.pathEndsWith(element, xAdlRef, "Structures")) { MenuContributor.addNewStructureAction(menuManager, xarch, xAdlRef, outline, element); } if (XadlUtils.isInstanceOf(xarch, editRef, Structure_3_0Package.Literals.STRUCTURE)) { MenuContributor.addNewComponentAction(menuManager, xarch, editRef, outline, element); MenuContributor.addNewConnectorAction(menuManager, xarch, editRef, outline, element); MenuContributor.addNewLinkAction(menuManager, xarch, editRef, outline, element); } if (XadlUtils.isInstanceOf(xarch, editRef, Structure_3_0Package.Literals.BRICK)) { MenuContributor.addNewInterfaceAction(menuManager, xarch, editRef, outline, element); } } }