98213187c923a495e293ee1ed36a1437e0214774
[taxeditor.git] / eclipseprojects / eu.etaxonomy.taxeditor.prototype2 / src / eu / etaxonomy / taxeditor / prototype2 / view / PropertySheetViewer.java
1 package eu.etaxonomy.taxeditor.prototype2.view;
2
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;
13
14 import eu.etaxonomy.taxeditor.prototype2.model.PropertySheetNode;
15
16 /**
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
20 *
21 * @author p.ciardelli
22 *
23 */
24 public class PropertySheetViewer extends TreeViewer {
25
26 private TreeViewerColumn propertyFieldColumn;
27 private TreeViewerColumn propertyValueColumn;
28 private DataBindingContext bindingContext = null;
29
30 public PropertySheetViewer(Composite parent) {
31 // Note: SWT.FULL_SELECTION hides lines connecting nodes
32 super(parent, SWT.BORDER | SWT.FULL_SELECTION);
33
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);
38
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();
46 }
47 });
48
49 // create a column for property values
50 propertyValueColumn = new TreeViewerColumn(this, SWT.NONE);
51 propertyValueColumn.getColumn().setWidth(100);
52 propertyValueColumn.getColumn().setMoveable(true);
53 }
54
55 public TreeViewerColumn getPropertyFieldColumn() {
56 return propertyFieldColumn;
57 }
58
59 public TreeViewerColumn getPropertyValueColumn() {
60 return propertyValueColumn;
61 }
62
63 public DataBindingContext getBindingContext() {
64 return bindingContext;
65 }
66
67 public void setBindingContext(DataBindingContext bindingContext) {
68 this.bindingContext = bindingContext;
69 }
70
71 }