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
.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
;
18 * Multi-instance view that enables to browse the details of a given
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";
29 protected String
[] columnNames
= new String
[] { "Test", "State", "Message",
32 private TreeViewer viewer
;
33 private Tree resultDetailTree
;
36 private TreeTestResult ttr
;
39 private IContentProvider contentProvider
;
40 private ITableLabelProvider labelProvider
;
41 private TreeTestResultDao treeTestResultDao
;
43 public void createPartControl(Composite parent
) {
44 resultDetailTree
= new Tree(parent
, SWT
.MULTI
| SWT
.H_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);
52 for (int i
= 0; i
< columnNames
.length
; i
++) {
53 TreeColumn column
= new TreeColumn(resultDetailTree
, SWT
.LEFT
, i
);
54 column
.setText(columnNames
[i
]);
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.
67 viewer
= new TreeViewer(resultDetailTree
);
68 viewer
.setColumnProperties(columnNames
);
70 viewer
.setContentProvider(contentProvider
);
71 // viewer.setLabelProvider(new ResultDetailLabelProvider());
72 log
.debug("Injected LabelProvider :" + labelProvider
.toString());
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());
84 // viewer.expandAll();
88 public void setFocus() {
89 viewer
.getControl().setFocus();
92 public TreeViewer
getViewer() {
96 public void retrieveResults() {
97 ttr
= treeTestResultDao
.getTestResult(uuid
);
99 // viewer.setInput(getViewSite());
104 public void setUuid(String uuid
) {
109 public void setContentProvider(IContentProvider contentProvider
) {
110 this.contentProvider
= contentProvider
;
113 public void setLabelProvider(ITableLabelProvider labelProvider
) {
114 this.labelProvider
= labelProvider
;
117 public void setTreeTestResultDao(TreeTestResultDao treeTestResultDao
) {
118 this.treeTestResultDao
= treeTestResultDao
;