]> git.argeo.org Git - gpl/argeo-slc.git/blobdiff - eclipse/plugins/org.argeo.slc.client.ui/src/org/argeo/slc/client/ui/views/ExecutionModulesView.java
Implementation of a first draft of editorView for the process parameters.
[gpl/argeo-slc.git] / eclipse / plugins / org.argeo.slc.client.ui / src / org / argeo / slc / client / ui / views / ExecutionModulesView.java
index 0adc32835e2fe8edceca63185445b7952bc9133e..c6ba27b138688cbc09ee89a0db51d5330a0d2897 100644 (file)
@@ -8,12 +8,12 @@ import java.util.Properties;
 import java.util.UUID;
 
 import org.apache.commons.io.IOUtils;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
 import org.argeo.slc.SlcException;
+import org.argeo.slc.client.oxm.OxmInterface;
 import org.argeo.slc.client.ui.ClientUiPlugin;
 import org.argeo.slc.client.ui.controllers.ProcessController;
-import org.argeo.slc.execution.ExecutionFlowDescriptor;
+import org.argeo.slc.client.ui.providers.ExecutionModulesContentProvider;
+import org.argeo.slc.client.ui.providers.ExecutionModulesContentProvider.FlowNode;
 import org.argeo.slc.execution.ExecutionModuleDescriptor;
 import org.argeo.slc.process.RealizedFlow;
 import org.argeo.slc.process.SlcExecution;
@@ -37,15 +37,16 @@ import org.eclipse.ui.PlatformUI;
 import org.eclipse.ui.part.ViewPart;
 
 public class ExecutionModulesView extends ViewPart {
-       private final static Log log = LogFactory
-                       .getLog(ExecutionModulesView.class);
+       // private final static Log log = LogFactory
+       // .getLog(ExecutionModulesView.class);
 
        public static final String ID = "org.argeo.slc.client.ui.executionModulesView";
 
        private TreeViewer viewer;
 
+       // Ioc
        private IContentProvider contentProvider;
-
+       private OxmInterface oxmBean;
        private ProcessController processController;
 
        public void createPartControl(Composite parent) {
@@ -67,14 +68,6 @@ public class ExecutionModulesView extends ViewPart {
                return viewer;
        }
 
-       public void setContentProvider(IContentProvider contentProvider) {
-               this.contentProvider = contentProvider;
-       }
-
-       public void setProcessController(ProcessController processController) {
-               this.processController = processController;
-       }
-
        class ViewLabelProvider extends LabelProvider implements
                        ITableLabelProvider {
                public String getColumnText(Object obj, int index) {
@@ -142,21 +135,27 @@ public class ExecutionModulesView extends ViewPart {
        }
 
        class ViewDragListener implements DragSourceListener {
-               public void dragFinished(DragSourceEvent event) {
-                       System.out.println("Finished Drag");
+
+               public void dragStart(DragSourceEvent event) {
+                       System.out.println("Start Drag");
                }
 
                public void dragSetData(DragSourceEvent event) {
                        System.out.println("dragSetData: " + event);
+                       // System.out.println("dataType: " + event.dataType);
+
                        IStructuredSelection selection = (IStructuredSelection) viewer
                                        .getSelection();
                        if (selection.getFirstElement() instanceof ExecutionModulesContentProvider.FlowNode) {
+
                                if (TextTransfer.getInstance().isSupportedType(event.dataType)) {
                                        ExecutionModulesContentProvider.FlowNode flowNode = (ExecutionModulesContentProvider.FlowNode) selection
                                                        .getFirstElement();
-                                       RealizedFlow rf = nodeAsRealizedFlow(flowNode);
+
+                                       // we still use property because the marshaller bean does
+                                       // not know the FlowNode Class
                                        Properties props = new Properties();
-                                       realizedFlowAsProperties(props, rf);
+                                       flowNodeAsProperties(props, flowNode);
                                        props.setProperty("agentId", flowNode
                                                        .getExecutionModuleNode().getAgentNode().getAgent()
                                                        .getAgentUuid());
@@ -166,8 +165,8 @@ public class ExecutionModulesView extends ViewPart {
                                                props.store(out, "");
                                                event.data = new String(out.toByteArray());
                                        } catch (IOException e) {
-                                               throw new SlcException("Cannot transfor realized flow",
-                                                               e);
+                                               throw new SlcException(
+                                                               "Cannot transform realized flow", e);
                                        } finally {
                                                IOUtils.closeQuietly(out);
                                        }
@@ -175,29 +174,42 @@ public class ExecutionModulesView extends ViewPart {
                        }
                }
 
-               public void dragStart(DragSourceEvent event) {
-                       System.out.println("Start Drag");
+               public void dragFinished(DragSourceEvent event) {
+                       System.out.println("Finished Drag");
                }
 
-               private RealizedFlow nodeAsRealizedFlow(
-                               ExecutionModulesContentProvider.FlowNode flowNode) {
-                       RealizedFlow rf = new RealizedFlow();
-                       rf.setModuleName(flowNode.getExecutionModuleNode().getDescriptor()
-                                       .getName());
-                       rf.setModuleVersion(flowNode.getExecutionModuleNode()
+               private void flowNodeAsProperties(Properties props, FlowNode fn) {
+                       props.setProperty("moduleName", fn.getExecutionModuleNode()
+                                       .getDescriptor().getName());
+                       props.setProperty("moduleVersion", fn.getExecutionModuleNode()
                                        .getDescriptor().getVersion());
-                       ExecutionFlowDescriptor efd = new ExecutionFlowDescriptor();
-                       efd.setName(flowNode.getFlowName());
-                       rf.setFlowDescriptor(efd);
-                       return rf;
-               }
+                       props.setProperty("flowName", fn.getFlowName());
+
+                       System.out.println("Execution Spec avant marshalling ??? ");
+                       System.out.println(fn.getExecutionFlowDescriptor());
+                       System.out.println(fn.getExecutionFlowDescriptor()
+                                       .getExecutionSpec());
+
+                       props.setProperty("FlowDescriptorAsXml",
+                                       oxmBean.marshal(fn.getExecutionFlowDescriptor()));
+                       System.out
+                                       .println(oxmBean.marshal(fn.getExecutionFlowDescriptor()));
 
-               private void realizedFlowAsProperties(Properties props, RealizedFlow rf) {
-                       props.setProperty("moduleName", rf.getModuleName());
-                       props.setProperty("moduleVersion", rf.getModuleVersion());
-                       props.setProperty("flowName", rf.getFlowDescriptor().getName());
                }
 
        }
 
+       // IoC
+       public void setContentProvider(IContentProvider contentProvider) {
+               this.contentProvider = contentProvider;
+       }
+
+       public void setProcessController(ProcessController processController) {
+               this.processController = processController;
+       }
+
+       public void setOxmBean(OxmInterface oxmBean) {
+               this.oxmBean = oxmBean;
+       }
+
 }
\ No newline at end of file