1 package org
.argeo
.slc
.client
.ui
.views
;
3 import java
.util
.ArrayList
;
7 import org
.argeo
.slc
.client
.ui
.ClientUiPlugin
;
8 import org
.argeo
.slc
.client
.ui
.controllers
.ProcessController
;
9 import org
.argeo
.slc
.execution
.ExecutionModuleDescriptor
;
10 import org
.argeo
.slc
.process
.RealizedFlow
;
11 import org
.argeo
.slc
.process
.SlcExecution
;
12 import org
.eclipse
.jface
.viewers
.DoubleClickEvent
;
13 import org
.eclipse
.jface
.viewers
.IContentProvider
;
14 import org
.eclipse
.jface
.viewers
.IDoubleClickListener
;
15 import org
.eclipse
.jface
.viewers
.IStructuredSelection
;
16 import org
.eclipse
.jface
.viewers
.ITableLabelProvider
;
17 import org
.eclipse
.jface
.viewers
.LabelProvider
;
18 import org
.eclipse
.jface
.viewers
.TreeViewer
;
19 import org
.eclipse
.swt
.SWT
;
20 import org
.eclipse
.swt
.graphics
.Image
;
21 import org
.eclipse
.swt
.widgets
.Composite
;
22 import org
.eclipse
.ui
.ISharedImages
;
23 import org
.eclipse
.ui
.PlatformUI
;
24 import org
.eclipse
.ui
.part
.ViewPart
;
26 public class ExecutionModulesView
extends ViewPart
{
27 public static final String ID
= "org.argeo.slc.client.ui.executionModulesView";
29 private TreeViewer viewer
;
31 private IContentProvider contentProvider
;
33 private ProcessController processController
;
35 class ViewLabelProvider
extends LabelProvider
implements
37 public String
getColumnText(Object obj
, int index
) {
38 if (obj
instanceof ExecutionModulesContentProvider
.ExecutionModuleNode
) {
39 ExecutionModuleDescriptor emd
= ((ExecutionModulesContentProvider
.ExecutionModuleNode
) obj
)
41 if (emd
.getLabel() != null)
42 return emd
.getLabel();
49 public Image
getColumnImage(Object obj
, int index
) {
53 public Image
getImage(Object obj
) {
54 if (obj
instanceof ExecutionModulesContentProvider
.AgentNode
)
55 return ClientUiPlugin
.getDefault().getImageRegistry().get(
57 else if (obj
instanceof ExecutionModulesContentProvider
.ExecutionModuleNode
)
58 return ClientUiPlugin
.getDefault().getImageRegistry().get(
60 else if (obj
instanceof ExecutionModulesContentProvider
.FolderNode
)
61 return ClientUiPlugin
.getDefault().getImageRegistry().get(
63 else if (obj
instanceof ExecutionModulesContentProvider
.FlowNode
)
64 return ClientUiPlugin
.getDefault().getImageRegistry().get(
67 return PlatformUI
.getWorkbench().getSharedImages().getImage(
68 ISharedImages
.IMG_OBJ_ELEMENT
);
72 public void createPartControl(Composite parent
) {
73 viewer
= new TreeViewer(parent
, SWT
.MULTI
| SWT
.H_SCROLL
| SWT
.V_SCROLL
);
74 viewer
.setContentProvider(contentProvider
);
75 viewer
.setLabelProvider(new ViewLabelProvider());
76 viewer
.setInput(getViewSite());
77 viewer
.addDoubleClickListener(new IDoubleClickListener() {
79 public void doubleClick(DoubleClickEvent evt
) {
80 Object obj
= ((IStructuredSelection
) evt
.getSelection())
82 if (obj
instanceof ExecutionModulesContentProvider
.FlowNode
) {
83 ExecutionModulesContentProvider
.FlowNode fn
= (ExecutionModulesContentProvider
.FlowNode
) obj
;
85 List
<RealizedFlow
> realizedFlows
= new ArrayList
<RealizedFlow
>();
86 RealizedFlow realizedFlow
= new RealizedFlow();
87 realizedFlow
.setModuleName(fn
.getExecutionModuleNode()
88 .getDescriptor().getName());
89 realizedFlow
.setModuleVersion(fn
.getExecutionModuleNode()
90 .getDescriptor().getVersion());
91 realizedFlow
.setFlowDescriptor(fn
.getExecutionModuleNode()
92 .getFlowDescriptors().get(fn
.getFlowName()));
93 realizedFlows
.add(realizedFlow
);
95 SlcExecution slcExecution
= new SlcExecution();
96 slcExecution
.setUuid(UUID
.randomUUID().toString());
97 slcExecution
.setRealizedFlows(realizedFlows
);
98 processController
.execute(fn
.getExecutionModuleNode()
99 .getAgentNode().getAgent(), slcExecution
);
106 * Passing the focus request to the viewer's control.
108 public void setFocus() {
109 viewer
.getControl().setFocus();
112 public TreeViewer
getViewer() {
116 public void setContentProvider(IContentProvider contentProvider
) {
117 this.contentProvider
= contentProvider
;
120 public void setProcessController(ProcessController processController
) {
121 this.processController
= processController
;