package gov.nasa.jpl.mbee.mdk.systems_reasoner.actions; import com.nomagic.magicdraw.core.Application; import com.nomagic.magicdraw.openapi.uml.SessionManager; import com.nomagic.magicdraw.ui.dialogs.MDDialogParentProvider; import com.nomagic.magicdraw.ui.dialogs.SelectElementInfo; import com.nomagic.magicdraw.ui.dialogs.SelectElementTypes; import com.nomagic.magicdraw.ui.dialogs.selection.ElementSelectionDlg; import com.nomagic.magicdraw.ui.dialogs.selection.ElementSelectionDlgFactory; import com.nomagic.magicdraw.ui.dialogs.selection.SelectionMode; import com.nomagic.uml2.ext.magicdraw.auxiliaryconstructs.mdmodels.Model; import com.nomagic.uml2.ext.magicdraw.classes.mdkernel.Classifier; import com.nomagic.uml2.ext.magicdraw.classes.mdkernel.InstanceSpecification; import com.nomagic.uml2.ext.magicdraw.classes.mdkernel.Namespace; import java.awt.*; import java.awt.event.ActionEvent; import java.util.ArrayList; import java.util.List; public class CreateInstanceMenuAction extends SRAction { /** * */ private static final long serialVersionUID = 1L; public static final String DEFAULT_ID = "Create Instance"; private Classifier classifier; public CreateInstanceMenuAction(final Classifier classifier) { super(DEFAULT_ID, classifier); this.classifier = classifier; } @Override public void actionPerformed(ActionEvent e) { final List<java.lang.Class<?>> types = new ArrayList<java.lang.Class<?>>(); types.add(com.nomagic.uml2.ext.magicdraw.classes.mdkernel.Package.class); types.add(Model.class); final Frame dialogParent = MDDialogParentProvider.getProvider().getDialogParent(); final ElementSelectionDlg dlg = ElementSelectionDlgFactory.create(dialogParent); final SelectElementTypes set = new SelectElementTypes(null, types, null, null); final SelectElementInfo sei = new SelectElementInfo(true, false, Application.getInstance().getProject().getModel().getOwner(), true); ElementSelectionDlgFactory.initSingle(dlg, set, sei, classifier.getOwner()); dlg.setSelectionMode(SelectionMode.SINGLE_MODE); if (dlg != null) { dlg.setVisible(true); if (dlg.isOkClicked() && dlg.getSelectedElement() != null && dlg.getSelectedElement() instanceof Namespace) { SessionManager.getInstance().createSession(DEFAULT_ID); final InstanceSpecification instance = CreateInstanceAction.createInstance(classifier, (Namespace) dlg.getSelectedElement(), false); SessionManager.getInstance().closeSession(); ValidateAction.validate(instance); } } } }