1 package eu
.etaxonomy
.taxeditor
.prototype2
.view
;
3 import org
.eclipse
.core
.databinding
.DataBindingContext
;
4 import org
.eclipse
.jface
.viewers
.ColumnLabelProvider
;
5 import org
.eclipse
.jface
.viewers
.ILabelProvider
;
6 import org
.eclipse
.jface
.viewers
.IViewerLabelProvider
;
7 import org
.eclipse
.jface
.viewers
.TreeViewer
;
8 import org
.eclipse
.jface
.viewers
.TreeViewerColumn
;
9 import org
.eclipse
.jface
.viewers
.ViewerLabel
;
10 import org
.eclipse
.swt
.SWT
;
11 import org
.eclipse
.swt
.layout
.GridData
;
12 import org
.eclipse
.swt
.widgets
.Composite
;
14 import eu
.etaxonomy
.taxeditor
.prototype2
.model
.PropertySheetNode
;
17 * Creates a tree viewer with two columns, one for field names the other
18 * for their values. Note: labels and editing support for values column,
19 * contentprovider and input for viewer must be set by the calling method
24 public class PropertySheetViewer
extends TreeViewer
{
26 private TreeViewerColumn propertyFieldColumn
;
27 private TreeViewerColumn propertyValueColumn
;
28 private DataBindingContext bindingContext
= null;
30 public PropertySheetViewer(Composite parent
) {
31 // Note: SWT.FULL_SELECTION hides lines connecting nodes
32 super(parent
, SWT
.BORDER
| SWT
.FULL_SELECTION
);
34 this.getTree().setLayoutData(new GridData(SWT
.LEFT
, SWT
.FILL
, false, true));
35 this.getTree().setLinesVisible(true);
36 this.getTree().setHeaderVisible(false);
37 this.getTree().setSize(200, 300);
39 // create a column for property fields
40 propertyFieldColumn
= new TreeViewerColumn(this, SWT
.NONE
);
41 propertyFieldColumn
.getColumn().setWidth(100);
42 propertyFieldColumn
.getColumn().setMoveable(true);
43 propertyFieldColumn
.setLabelProvider(new ColumnLabelProvider() {
44 public String
getText(Object element
) {
45 return ((PropertySheetNode
) element
).getPropertyField();
49 // create a column for property values
50 propertyValueColumn
= new TreeViewerColumn(this, SWT
.NONE
);
51 propertyValueColumn
.getColumn().setWidth(100);
52 propertyValueColumn
.getColumn().setMoveable(true);
55 public TreeViewerColumn
getPropertyFieldColumn() {
56 return propertyFieldColumn
;
59 public TreeViewerColumn
getPropertyValueColumn() {
60 return propertyValueColumn
;
63 public DataBindingContext
getBindingContext() {
64 return bindingContext
;
67 public void setBindingContext(DataBindingContext bindingContext
) {
68 this.bindingContext
= bindingContext
;