]> git.argeo.org Git - gpl/argeo-slc.git/blob - eclipse/plugins/org.argeo.slc.client.ui/src/org/argeo/slc/client/ui/views/ExecutionModulesView.java
Add getter & setter for isReached in order to simplify persistence in hibernate.
[gpl/argeo-slc.git] / eclipse / plugins / org.argeo.slc.client.ui / src / org / argeo / slc / client / ui / views / ExecutionModulesView.java
1 package org.argeo.slc.client.ui.views;
2
3 import java.util.ArrayList;
4 import java.util.List;
5
6 import org.argeo.slc.client.ui.ClientUiPlugin;
7 import org.argeo.slc.process.RealizedFlow;
8 import org.argeo.slc.process.SlcExecution;
9 import org.eclipse.jface.viewers.DoubleClickEvent;
10 import org.eclipse.jface.viewers.IContentProvider;
11 import org.eclipse.jface.viewers.IDoubleClickListener;
12 import org.eclipse.jface.viewers.IStructuredSelection;
13 import org.eclipse.jface.viewers.ITableLabelProvider;
14 import org.eclipse.jface.viewers.LabelProvider;
15 import org.eclipse.jface.viewers.TreeViewer;
16 import org.eclipse.swt.SWT;
17 import org.eclipse.swt.graphics.Image;
18 import org.eclipse.swt.widgets.Composite;
19 import org.eclipse.ui.ISharedImages;
20 import org.eclipse.ui.PlatformUI;
21 import org.eclipse.ui.part.ViewPart;
22
23 public class ExecutionModulesView extends ViewPart {
24 public static final String ID = "org.argeo.slc.client.ui.executionModulesView";
25
26 private TreeViewer viewer;
27
28 private IContentProvider contentProvider;
29
30 class ViewLabelProvider extends LabelProvider implements
31 ITableLabelProvider {
32 public String getColumnText(Object obj, int index) {
33 return getText(obj);
34 }
35
36 public Image getColumnImage(Object obj, int index) {
37 return getImage(obj);
38 }
39
40 public Image getImage(Object obj) {
41 if (obj instanceof ExecutionModulesContentProvider.AgentNode)
42 return ClientUiPlugin.getDefault().getImageRegistry().get("agent");
43 else if (obj instanceof ExecutionModulesContentProvider.ExecutionModuleNode)
44 return ClientUiPlugin.getDefault().getImageRegistry().get(
45 "executionModule");
46 else if (obj instanceof ExecutionModulesContentProvider.FolderNode)
47 return ClientUiPlugin.getDefault().getImageRegistry().get("folder");
48 else if (obj instanceof ExecutionModulesContentProvider.FlowNode)
49 return ClientUiPlugin.getDefault().getImageRegistry().get("flow");
50 else
51 return PlatformUI.getWorkbench().getSharedImages().getImage(
52 ISharedImages.IMG_OBJ_ELEMENT);
53 }
54 }
55
56 public void createPartControl(Composite parent) {
57 viewer = new TreeViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
58 viewer.setContentProvider(contentProvider);
59 viewer.setLabelProvider(new ViewLabelProvider());
60 viewer.setInput(getViewSite());
61 viewer.addDoubleClickListener(new IDoubleClickListener() {
62
63 @Override
64 public void doubleClick(DoubleClickEvent evt) {
65 Object obj = ((IStructuredSelection) evt.getSelection())
66 .getFirstElement();
67 if (obj instanceof ExecutionModulesContentProvider.FlowNode) {
68 ExecutionModulesContentProvider.FlowNode fn = (ExecutionModulesContentProvider.FlowNode) obj;
69
70 List<RealizedFlow> realizedFlows = new ArrayList<RealizedFlow>();
71 RealizedFlow realizedFlow = new RealizedFlow();
72 realizedFlow.setModuleName(fn.getExecutionModuleNode()
73 .getDescriptor().getName());
74 realizedFlow.setModuleVersion(fn.getExecutionModuleNode()
75 .getDescriptor().getVersion());
76 realizedFlow.setFlowDescriptor(fn.getExecutionModuleNode()
77 .getFlowDescriptors().get(fn.getFlowName()));
78 realizedFlows.add(realizedFlow);
79
80 SlcExecution slcExecution = new SlcExecution();
81 slcExecution.setRealizedFlows(realizedFlows);
82 fn.getExecutionModuleNode().getAgentNode().getAgent()
83 .runSlcExecution(slcExecution);
84 }
85 }
86 });
87 }
88
89 /**
90 * Passing the focus request to the viewer's control.
91 */
92 public void setFocus() {
93 viewer.getControl().setFocus();
94 }
95
96 public TreeViewer getViewer() {
97 return viewer;
98 }
99
100 public void setContentProvider(IContentProvider contentProvider) {
101 this.contentProvider = contentProvider;
102 }
103
104 }