import org.apache.commons.io.IOUtils;
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;
import org.eclipse.ui.part.ViewPart;
public class ExecutionModulesView extends ViewPart {
+ // 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) {
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) {
}
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());
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);
}
}
}
- 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