//package org.trianacode.shiwaall.handler; // //import org.shiwa.desktop.data.transfer.WorkflowEngineHandler; //import org.shiwa.desktop.gui.SHIWADesktop; //import org.shiwa.fgi.iwir.BlockScope; //import org.shiwa.fgi.iwir.IWIR; //import org.trianacode.TrianaInstance; //import org.trianacode.enactment.AddonUtils; //import org.trianacode.enactment.addon.ConversionAddon; //import org.trianacode.gui.action.ActionDisplayOptions; //import org.trianacode.gui.action.files.ImageAction; //import org.trianacode.gui.desktop.DesktopView; //import org.trianacode.gui.hci.ApplicationFrame; //import org.trianacode.gui.hci.GUIEnv; //import org.trianacode.gui.panels.DisplayDialog; //import org.trianacode.shiwaall.iwir.importer.utils.ExportIwir; //import org.trianacode.taskgraph.TaskGraph; // //import javax.swing.*; //import java.awt.event.ActionEvent; //import java.io.*; //import java.util.ArrayList; //import java.util.Set; // ////import org.shiwa.pegasus.PegasusHandler; // // ///** // * Created by IntelliJ IDEA. // * User: Ian Harvey // * Date: 22/02/2011 // * Time: 14:36 // * To change this template use File | Settings | File Templates. // */ //public class PublishWorkflow152 extends AbstractAction implements ActionDisplayOptions { // // public PublishWorkflow152() { // this(DISPLAY_BOTH); // } // // public PublishWorkflow152(int displayOption) { // putValue(SHORT_DESCRIPTION, "Publish"); // putValue(NAME, "Publish"); // if ((displayOption == DISPLAY_ICON) || (displayOption == DISPLAY_BOTH)) { // putValue(SMALL_ICON, GUIEnv.getIcon("upload_small.png")); // } // } // // public void actionPerformed(ActionEvent actionEvent) { // // // final ApplicationFrame frame = GUIEnv.getApplicationFrame(); // final TaskGraph tg = frame.getSelectedTaskgraph(); // // WorkflowEngineHandler handler = buildHandler(tg); // if (handler != null) { // publish(handler, frame.getEngine()); // } // } // // public WorkflowEngineHandler buildHandler(TaskGraph tg) { // System.out.println("Publishing Workflow"); // // if (tg == null || tg.getTasks(false).length == 0) { // JOptionPane.showMessageDialog(null, "No taskgraph selected," + // " or currently selected taskgraph has no tasks"); // return null; // } else { // System.out.println(tg.getQualifiedTaskName()); // // // // ArrayList<ConversionAddon> converters = new ArrayList<ConversionAddon>(); // Set<Object> addons = AddonUtils.getCLIaddons(GUIEnv.getApplicationFrame().getEngine()); // for (Object addon : addons) { // if (addon instanceof ConversionAddon) { // converters.add((ConversionAddon) addon); // } // } // // Object[] choices = new Object[converters.size() + 1]; // choices[0] = "taskgraph"; // for (int i = 0; i < converters.size(); i++) { // ConversionAddon addon = converters.get(i); //// choices[i] = addon.getShortOption(); // choices[i + 1] = addon; // } // Object addon = JOptionPane.showInputDialog(GUIEnv.getApplicationFrame(), // "Please select the format for the workflow definition to be submitted in.", // "Select Definition Type", // JOptionPane.OK_OPTION, // null, // choices, // choices[0]); // // WorkflowEngineHandler workflowEngineHandler = null; // if (addon != null) { //// TransferSignature signature = new TransferSignature(); // if (!(addon instanceof ConversionAddon)) { // workflowEngineHandler = new TrianaEngineHandler152(tg, getDisplayStream(tg)); // // } else if (((ConversionAddon) addon).getServiceName().equals("TaskGraphToIWIR")) { // ExportIwir exportIwir = new ExportIwir(); // BlockScope blockscope = exportIwir.taskGraphToBlockScope(tg); // IWIR iwir = new IWIR(tg.getToolName()); // iwir.setTask(blockscope); // // InputStream image; // try{ // File file = new File("/usr/local/bin/dot"); // if(file.exists()){ // File imageFile = iwir.getImage(file.getAbsolutePath(), "png", ""); // System.out.println(imageFile.getAbsolutePath()); // image = new FileInputStream(imageFile); // } else{ // throw new FileNotFoundException(); // } // } catch (Exception e){ // image = BundleUtils.getDisplayStream(tg); // } // workflowEngineHandler = new TrianaIWIRHandler152(iwir, image); // //// } else if (((ConversionAddon) addon).getServiceName().equals("Triana Dax Template")){ //// TaskGraph daxified = (TaskGraph) ((ConversionAddon) addon).processWorkflow(tg); //// //// final ApplicationFrame frame = GUIEnv.getApplicationFrame(); //// frame.addParentTaskGraphPanel(daxified); //// workflowEngineHandler = new TrianaEngineHandler152(daxified, getDisplayStream(daxified)); // //// } else if(((ConversionAddon) addon).getServiceName().equals("Pegasus Dax")){ //// try { //// File file = File.createTempFile("dax", ".tmp"); //// ((ConversionAddon) addon).toolToWorkflowFile(tg, file, null); //// System.out.printf("dax : " + file.getAbsolutePath()); //// //// } catch (Exception e) { //// e.printStackTrace(); //// } // } else { // return null; // } //// PegasusHandler pegasusHandler = new PegasusHandler(); //// InputStream definitionStream = ((ConversionAddon) addon).toolToWorkflowFileInputStream(tg); //// GenericWorkflowHandler handler = new GenericWorkflowHandler(definitionStream, displayStream); //// handler.setSignature(signature); //// handler.setLanguage(addon.toString()); //// handler.setDefinitionName(tg.getToolName()); // } // return workflowEngineHandler; // } // } // //// public static InputStream getDisplayStream(TaskGraph taskGraph){ //// DesktopView view = GUIEnv.getApplicationFrame().getDesktopViewFor(taskGraph); //// GUIEnv.getApplicationFrame().getDesktopViewManager().setSelected(view, true); //// //// InputStream displayStream = null; //// try { //// File imageFile = File.createTempFile("image", ".jpg"); //// ImageAction.save(imageFile, 1, "jpg"); //// if (imageFile.length() > 0) { //// displayStream = new FileInputStream(imageFile); //// System.out.println("Display image created : " + imageFile.toURI()); //// } //// } catch (IOException e) { //// e.printStackTrace(); //// } //// return displayStream; //// } // // public static void publish(WorkflowEngineHandler handler, TrianaInstance engine) { // SHIWADesktop shiwaDesktop = new SHIWADesktop(handler, SHIWADesktop.ButtonOption.SHOW_TOOLBAR); // DisplayDialog dialog = null; // shiwaDesktop.addExecutionListener(new TrianaShiwaListener152(engine, dialog)); // dialog = new DisplayDialog(shiwaDesktop.getPanel(), "SHIWA Desktop"); // shiwaDesktop = null; // } //}