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", "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.
71 viewer
= new TreeViewer(resultDetailTree
);
72 viewer
.setColumnProperties(columnNames
);
74 viewer
.setContentProvider(contentProvider
);
75 // viewer.setLabelProvider(new ResultDetailLabelProvider());
76 if (log
.isTraceEnabled())
77 log
.debug("Injected LabelProvider :" + labelProvider
.toString());
79 // TIP: It seems, that if the table has not defined any TreeColumns then
80 // a plain LabelProvider will be used. Since, we don't provide an
81 // instance of LabelProvider, a default one will be used and
82 // the TableLabelProvider is ignored without notice. Took me quite
83 // a while to find that one out.
84 viewer
.setLabelProvider(labelProvider
);
85 if (log
.isTraceEnabled())
86 log
.debug("Persisted labelProvider :"
87 + viewer
.getLabelProvider().toString());
89 // viewer.expandAll();
93 public void setFocus() {
94 viewer
.getControl().setFocus();
97 public TreeViewer
getViewer() {
101 public void retrieveResults() {
102 ttr
= treeTestResultDao
.getTestResult(uuid
);
103 viewer
.setInput(ttr
);
104 // viewer.setInput(getViewSite());
109 public void setUuid(String uuid
) {
114 public void setContentProvider(IContentProvider contentProvider
) {
115 this.contentProvider
= contentProvider
;
118 public void setLabelProvider(ITableLabelProvider labelProvider
) {
119 this.labelProvider
= labelProvider
;
122 public void setTreeTestResultDao(TreeTestResultDao treeTestResultDao
) {
123 this.treeTestResultDao
= treeTestResultDao
;