First stabs at JFace Text functionality. Test TextViewer on NameEditorView divided...
[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 import org.eclipse.swt.widgets.TreeColumn;
14
15 import eu.etaxonomy.taxeditor.prototype2.model.PropertySheetNode;
16
17 /**
18 * Creates a tree viewer with two columns, one for field names the other
19 * for their values. Note: labels and editing support for values column,
20 * contentprovider and input for viewer must be set by the calling method
21 *
22 * @author p.ciardelli
23 *
24 */
25 public class PropertySheetViewer extends TreeViewer {
26
27 private TreeViewerColumn propertyFieldColumn;
28 private TreeViewerColumn propertyValueColumn;
29 private DataBindingContext bindingContext = null;
30
31 public PropertySheetViewer(Composite parent) {
32 // Note: SWT.FULL_SELECTION hides lines connecting nodes
33 super(parent, SWT.BORDER | SWT.FULL_SELECTION);
34
35 this.getTree().setLayoutData(new GridData(SWT.LEFT, SWT.FILL, false, true));
36 this.getTree().setLinesVisible(true);
37 this.getTree().setHeaderVisible(false);
38 this.getTree().getVerticalBar().setEnabled(true);
39
40 // create a column for property fields
41 propertyFieldColumn = new TreeViewerColumn(this, SWT.NONE);
42 propertyFieldColumn.getColumn().setWidth(100);
43 propertyFieldColumn.getColumn().setMoveable(true);
44 propertyFieldColumn.setLabelProvider(new ColumnLabelProvider() {
45 public String getText(Object element) {
46 return ((PropertySheetNode) element).getPropertyField();
47 }
48 });
49
50 // create a column for property values
51 propertyValueColumn = new TreeViewerColumn(this, SWT.NONE);
52 propertyValueColumn.getColumn().setWidth(100);
53 propertyValueColumn.getColumn().setMoveable(true);
54
55 this.getTree().setSize(150, 300);
56 // propertyFieldColumn.getColumn().pack();
57 // propertyValueColumn.getColumn().pack();
58 // this.getTree().redraw();
59 }
60
61 public TreeViewerColumn getPropertyFieldColumn() {
62 return propertyFieldColumn;
63 }
64
65 public TreeViewerColumn getPropertyValueColumn() {
66 return propertyValueColumn;
67 }
68
69 public DataBindingContext getBindingContext() {
70 return bindingContext;
71 }
72
73 public void setBindingContext(DataBindingContext bindingContext) {
74 this.bindingContext = bindingContext;
75 }
76
77 }