]> git.argeo.org Git - gpl/argeo-slc.git/blob - eclipse/plugins/runtime/org.argeo.slc.client.ui/src/main/java/org/argeo/slc/client/ui/views/ResultDetailView.java
6d9f901622e7881fe39161318947a79c96eafce2
[gpl/argeo-slc.git] / eclipse / plugins / runtime / org.argeo.slc.client.ui / src / main / java / org / argeo / slc / client / ui / views / ResultDetailView.java
1 package org.argeo.slc.client.ui.views;
2
3 import org.apache.commons.logging.Log;
4 import org.apache.commons.logging.LogFactory;
5 import org.argeo.slc.core.test.tree.TreeTestResult;
6 import org.argeo.slc.dao.test.tree.TreeTestResultDao;
7 import org.eclipse.jface.viewers.IContentProvider;
8 import org.eclipse.jface.viewers.ITableLabelProvider;
9 import org.eclipse.jface.viewers.TreeViewer;
10 import org.eclipse.swt.SWT;
11 import org.eclipse.swt.layout.GridData;
12 import org.eclipse.swt.widgets.Composite;
13 import org.eclipse.swt.widgets.Tree;
14 import org.eclipse.swt.widgets.TreeColumn;
15 import org.eclipse.ui.part.ViewPart;
16
17 /**
18 * Multi-instance view that enables to browse the details of a given
19 * TreeTestResult
20 *
21 * @author bsinou
22 *
23 */
24
25 public class ResultDetailView extends ViewPart {
26 private final static Log log = LogFactory.getLog(ResultDetailView.class);
27 public static final String ID = "org.argeo.slc.client.ui.resultDetailView";
28
29 protected String[] columnNames = new String[] { "Test", "State", "Message",
30 "Id" };
31
32 private TreeViewer viewer;
33 private Tree resultDetailTree;
34
35 private String uuid;
36 private TreeTestResult ttr;
37
38 // IoC
39 private IContentProvider contentProvider;
40 private ITableLabelProvider labelProvider;
41 private TreeTestResultDao treeTestResultDao;
42
43 public void createPartControl(Composite parent) {
44 resultDetailTree = new Tree(parent, SWT.MULTI | SWT.H_SCROLL
45 | SWT.V_SCROLL);
46 GridData gd = new GridData(GridData.FILL_HORIZONTAL);
47 gd.horizontalSpan = 3;
48 resultDetailTree.setLayoutData(gd);
49 resultDetailTree.setLinesVisible(true);
50 resultDetailTree.setHeaderVisible(true);
51
52 for (int i = 0; i < columnNames.length; i++) {
53 TreeColumn column = new TreeColumn(resultDetailTree, SWT.LEFT, i);
54 column.setText(columnNames[i]);
55
56 // TIP: Don't forget to set the width. If not set it is set to
57 // 0 and it will look as if the column didn't exist.
58 switch (i) {
59 case 0:
60 column.setWidth(130);
61 case 1:
62 column.setWidth(200);
63 default:
64 column.setWidth(70);
65 }
66 }
67 viewer = new TreeViewer(resultDetailTree);
68 viewer.setColumnProperties(columnNames);
69
70 viewer.setContentProvider(contentProvider);
71 // viewer.setLabelProvider(new ResultDetailLabelProvider());
72 log.debug("Injected LabelProvider :" + labelProvider.toString());
73
74 // TIP: It seems, that if the table has not defined any TreeColumns then
75 // a plain LabelProvider will be used. Since, we don't provide an
76 // instance of LabelProvider, a default one will be used and
77 // the TableLableProvider is ignored without notice. Took me quite
78 // a while to find that one out.
79 viewer.setLabelProvider(labelProvider);
80 log.debug("Persisted labelProvider :"
81 + viewer.getLabelProvider().toString());
82 // viewer.setInput(getViewSite());
83
84 // viewer.expandAll();
85
86 }
87
88 public void setFocus() {
89 viewer.getControl().setFocus();
90 }
91
92 public TreeViewer getViewer() {
93 return viewer;
94 }
95
96 public void retrieveResults() {
97 ttr = treeTestResultDao.getTestResult(uuid);
98 viewer.setInput(ttr);
99 // viewer.setInput(getViewSite());
100
101 // setFocus();
102 }
103
104 public void setUuid(String uuid) {
105 this.uuid = uuid;
106 }
107
108 // IoC
109 public void setContentProvider(IContentProvider contentProvider) {
110 this.contentProvider = contentProvider;
111 }
112
113 public void setLabelProvider(ITableLabelProvider labelProvider) {
114 this.labelProvider = labelProvider;
115 }
116
117 public void setTreeTestResultDao(TreeTestResultDao treeTestResultDao) {
118 this.treeTestResultDao = treeTestResultDao;
119 }
120
121 }