]> 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
git-svn-id: https://svn.argeo.org/slc/trunk@4431 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc
[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", "Message",
29 "Exception Msg" };
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(180);
60 break;
61 case 1:
62 column.setWidth(150);
63 break;
64 case 2:
65 column.setWidth(150);
66 break;
67 default:
68 column.setWidth(70);
69 }
70 }
71 viewer = new TreeViewer(resultDetailTree);
72 viewer.setColumnProperties(columnNames);
73
74 viewer.setContentProvider(contentProvider);
75 // viewer.setLabelProvider(new ResultDetailLabelProvider());
76 if (log.isTraceEnabled())
77 log.debug("Injected LabelProvider :" + labelProvider.toString());
78
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());
88
89 // viewer.expandAll();
90
91 }
92
93 public void setFocus() {
94 viewer.getControl().setFocus();
95 }
96
97 public TreeViewer getViewer() {
98 return viewer;
99 }
100
101 public void retrieveResults() {
102 ttr = treeTestResultDao.getTestResult(uuid);
103 viewer.setInput(ttr);
104 // viewer.setInput(getViewSite());
105
106 // setFocus();
107 }
108
109 public void setUuid(String uuid) {
110 this.uuid = uuid;
111 }
112
113 // IoC
114 public void setContentProvider(IContentProvider contentProvider) {
115 this.contentProvider = contentProvider;
116 }
117
118 public void setLabelProvider(ITableLabelProvider labelProvider) {
119 this.labelProvider = labelProvider;
120 }
121
122 public void setTreeTestResultDao(TreeTestResultDao treeTestResultDao) {
123 this.treeTestResultDao = treeTestResultDao;
124 }
125
126 }