]> git.argeo.org Git - gpl/argeo-slc.git/blob - eclipse/plugins/org.argeo.slc.client.ui/src/org/argeo/slc/client/ui/views/ProcessListView.java
de85192810cd5da93c4dec1c726a341e881a235e
[gpl/argeo-slc.git] / eclipse / plugins / org.argeo.slc.client.ui / src / org / argeo / slc / client / ui / views / ProcessListView.java
1 package org.argeo.slc.client.ui.views;
2
3 import java.util.List;
4
5 import org.argeo.slc.client.core.TableContent;
6 import org.argeo.slc.process.SlcExecution;
7 import org.eclipse.jface.viewers.IStructuredContentProvider;
8 import org.eclipse.jface.viewers.ITableLabelProvider;
9 import org.eclipse.jface.viewers.LabelProvider;
10 import org.eclipse.jface.viewers.TableViewer;
11 import org.eclipse.jface.viewers.Viewer;
12 import org.eclipse.swt.SWT;
13 import org.eclipse.swt.graphics.Image;
14 import org.eclipse.swt.layout.GridData;
15 import org.eclipse.swt.widgets.Composite;
16 import org.eclipse.swt.widgets.Table;
17 import org.eclipse.swt.widgets.TableColumn;
18 import org.eclipse.ui.part.ViewPart;
19
20 public class ProcessListView extends ViewPart {
21 // private final static Log log = LogFactory.getLog(ProcessListView.class);
22
23 public static final String ID = "org.argeo.slc.client.ui.processListView";
24
25 private TableViewer viewer;
26
27 // IoC
28 private TableContent tableContent;
29
30 public void createPartControl(Composite parent) {
31 Table table = createTable(parent);
32 viewer = new TableViewer(table);
33 viewer.setLabelProvider(new ViewLabelProvider());
34 viewer.setContentProvider(new ViewContentProvider());
35
36 viewer.setInput(getViewSite());
37 }
38
39 protected Table createTable(Composite parent) {
40 int style = SWT.SINGLE | SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL
41 | SWT.FULL_SELECTION | SWT.HIDE_SELECTION;
42
43 Table table = new Table(parent, style);
44
45 GridData gridData = new GridData(GridData.FILL_BOTH);
46 gridData.grabExcessVerticalSpace = true;
47 gridData.grabExcessHorizontalSpace = true;
48 gridData.horizontalSpan = 3;
49 table.setLayoutData(gridData);
50
51 table.setLinesVisible(true);
52 table.setHeaderVisible(true);
53
54 TableColumn column = new TableColumn(table, SWT.LEFT, 0);
55 column.setText("Date");
56 column.setWidth(200);
57
58 column = new TableColumn(table, SWT.LEFT, 1);
59 column.setText("Host");
60 column.setWidth(100);
61
62 column = new TableColumn(table, SWT.LEFT, 2);
63 column.setText("Id");
64 column.setWidth(300);
65
66 column = new TableColumn(table, SWT.LEFT, 3);
67 column.setText("Status");
68 column.setWidth(100);
69
70 return table;
71 }
72
73 protected static class ViewContentProvider implements
74 IStructuredContentProvider {
75
76 public void inputChanged(Viewer arg0, Object arg1, Object arg2) {
77 }
78
79 public void dispose() {
80 }
81
82 @SuppressWarnings("unchecked")
83 public Object[] getElements(Object obj) {
84 if (obj instanceof List) {
85 return ((List<SlcExecution>) obj).toArray();
86 } else {
87 return new Object[0];
88 }
89 }
90 }
91
92 protected class ViewLabelProvider extends LabelProvider implements
93 ITableLabelProvider {
94 public String getColumnText(Object obj, int index) {
95 return tableContent.getLabel(obj, index);
96 }
97
98 public Image getColumnImage(Object obj, int index) {
99 return null;
100 }
101
102 }
103
104 public void setFocus() {
105 viewer.getControl().setFocus();
106 }
107
108 public void retrieveResults() {
109 viewer.setInput(tableContent.getContent());
110 }
111
112 // IoC
113 public void setTableContent(TableContent tableContent) {
114 this.tableContent = tableContent;
115 }
116
117 }