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