package gov.nasa.jpl.mbee.mdk.model.actions; import com.nomagic.magicdraw.actions.MDAction; import com.nomagic.magicdraw.core.Application; import com.nomagic.magicdraw.core.GUILog; import com.nomagic.uml2.ext.magicdraw.classes.mdkernel.NamedElement; import gov.nasa.jpl.mbee.mdk.docgen.view.ViewElement; import gov.nasa.jpl.mbee.mdk.model.UserScript; import java.awt.event.ActionEvent; import java.util.List; import java.util.Map; public class RunUserScriptAction extends MDAction { private static final long serialVersionUID = 1L; private UserScript scripti; public static final String DEFAULT_ID = "RunUserScript"; public RunUserScriptAction(UserScript e) { super(null, "Run User Script", null, null); scripti = e; String name = e.getStereotypeName(); if (name != null) { this.setName("Run " + name); } } public RunUserScriptAction(UserScript e, boolean useid) { super(DEFAULT_ID, "Run User Script", null, null); scripti = e; String name = e.getStereotypeName(); if (name != null) { this.setName("Run " + name); } } @Override public void actionPerformed(ActionEvent event) { GUILog log = Application.getInstance().getGUILog(); Map<?, ?> o = scripti.getScriptOutput(null); if (o != null) { log.log("output from script: " + o.toString()); /* * for (Object key: o.keySet()) { try { log.log("key: " + * key.toString() + " value: " + o.get(key).toString()); } catch * (Exception e) { * * } * * } */ if (o.containsKey("docgenOutput")) { Object result = o.get("docgenOutput"); if (result instanceof List) { for (Object res : (List<?>) result) { if (res instanceof NamedElement) { log.log(((NamedElement) res).getName()); } else if (res instanceof ViewElement) { log.log(res.toString()); } } } } } else { log.log("script has no output!"); } } }