1 package org
.argeo
.slc
.client
.ui
.views
;
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
;
17 * Multi-instance view that enables to browse the details of a given
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";
28 protected String
[] columnNames
= new String
[] { "Test", "State", "Message",
31 private TreeViewer viewer
;
32 private Tree resultDetailTree
;
35 private TreeTestResult ttr
;
38 private IContentProvider contentProvider
;
39 private ITableLabelProvider labelProvider
;
40 private TreeTestResultDao treeTestResultDao
;
42 public void createPartControl(Composite parent
) {
43 resultDetailTree
= new Tree(parent
, SWT
.MULTI
| SWT
.H_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);
51 for (int i
= 0; i
< columnNames
.length
; i
++) {
52 TreeColumn column
= new TreeColumn(resultDetailTree
, SWT
.LEFT
, i
);
53 column
.setText(columnNames
[i
]);
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.
66 viewer
= new TreeViewer(resultDetailTree
);
67 viewer
.setColumnProperties(columnNames
);
69 viewer
.setContentProvider(contentProvider
);
70 // viewer.setLabelProvider(new ResultDetailLabelProvider());
71 log
.debug("Injected LabelProvider :" + labelProvider
.toString());
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());
83 // viewer.expandAll();
87 public void setFocus() {
88 viewer
.getControl().setFocus();
91 public TreeViewer
getViewer() {
95 public void retrieveResults() {
96 ttr
= treeTestResultDao
.getTestResult(uuid
);
98 // viewer.setInput(getViewSite());
103 public void setUuid(String uuid
) {
108 public void setContentProvider(IContentProvider contentProvider
) {
109 this.contentProvider
= contentProvider
;
112 public void setLabelProvider(ITableLabelProvider labelProvider
) {
113 this.labelProvider
= labelProvider
;
116 public void setTreeTestResultDao(TreeTestResultDao treeTestResultDao
) {
117 this.treeTestResultDao
= treeTestResultDao
;