annotate org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/snippets/Snippet009TableViewer.d @ 100:e884642ad36e

more work on examples
author Frank Benoit <benoit@tionex.de>
date Thu, 23 Apr 2009 00:02:38 +0200
parents 5d5bd660917f
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
90
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1 /*******************************************************************************
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
2 * Copyright (c) 2006 The Pampered Chef, Inc. and others.
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
3 * All rights reserved. This program and the accompanying materials
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
4 * are made available under the terms of the Eclipse Public License v1.0
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
5 * which accompanies this distribution, and is available at
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
6 * http://www.eclipse.org/legal/epl-v10.html
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
7 *
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
8 * Contributors:
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
9 * Coconut Palm Software, Inc. - Initial API and implementation
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
10 * Matthew Hall - bug 260337
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
11 ******************************************************************************/
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
12
99
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
13 module org.eclipse.jface.examples.databinding.snippets.Snippet009TableViewer;
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
14
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
15 import java.lang.all;
90
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
16
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
17 import java.beans.PropertyChangeListener;
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
18 import java.beans.PropertyChangeSupport;
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
19 import java.util.LinkedList;
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
20 import java.util.List;
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
21
100
e884642ad36e more work on examples
Frank Benoit <benoit@tionex.de>
parents: 99
diff changeset
22 //import org.eclipse.core.databinding.beans.BeanProperties;
e884642ad36e more work on examples
Frank Benoit <benoit@tionex.de>
parents: 99
diff changeset
23 import org.eclipse.core.databinding.DataBindingContext;
e884642ad36e more work on examples
Frank Benoit <benoit@tionex.de>
parents: 99
diff changeset
24 import org.eclipse.core.databinding.beans.BeansObservables;
90
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
25 import org.eclipse.core.databinding.observable.Realm;
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
26 import org.eclipse.core.databinding.observable.list.WritableList;
100
e884642ad36e more work on examples
Frank Benoit <benoit@tionex.de>
parents: 99
diff changeset
27 import org.eclipse.core.databinding.observable.map.IObservableMap;
90
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
28 import org.eclipse.jface.databinding.swt.SWTObservables;
100
e884642ad36e more work on examples
Frank Benoit <benoit@tionex.de>
parents: 99
diff changeset
29 //import org.eclipse.jface.databinding.viewers.ViewerSupport;
e884642ad36e more work on examples
Frank Benoit <benoit@tionex.de>
parents: 99
diff changeset
30 import org.eclipse.jface.databinding.viewers.ObservableListContentProvider;
e884642ad36e more work on examples
Frank Benoit <benoit@tionex.de>
parents: 99
diff changeset
31 import org.eclipse.jface.databinding.viewers.ObservableMapLabelProvider;
90
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
32 import org.eclipse.jface.viewers.TableViewer;
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
33 import org.eclipse.swt.SWT;
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
34 import org.eclipse.swt.layout.FillLayout;
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
35 import org.eclipse.swt.widgets.Display;
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
36 import org.eclipse.swt.widgets.Shell;
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
37 import org.eclipse.swt.widgets.Table;
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
38 import org.eclipse.swt.widgets.TableColumn;
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
39
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
40 /**
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
41 * Demonstrates binding a TableViewer to a collection.
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
42 */
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
43 public class Snippet009TableViewer {
99
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
44 public static void main(String[] args) {
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
45 final Display display = Display.getDefault();
90
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
46
99
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
47 // In an RCP application, the threading Realm will be set for you
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
48 // automatically by the Workbench. In an SWT application, you can do
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
49 // this once, wrpping your binding method call.
100
e884642ad36e more work on examples
Frank Benoit <benoit@tionex.de>
parents: 99
diff changeset
50 Realm.runWithDefault(SWTObservables.getRealm(display), dgRunnable(() {
90
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
51
100
e884642ad36e more work on examples
Frank Benoit <benoit@tionex.de>
parents: 99
diff changeset
52 ViewModel viewModel = new ViewModel();
e884642ad36e more work on examples
Frank Benoit <benoit@tionex.de>
parents: 99
diff changeset
53 Shell shell = (new View(viewModel)).createShell();
90
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
54
100
e884642ad36e more work on examples
Frank Benoit <benoit@tionex.de>
parents: 99
diff changeset
55 // The SWT event loop
e884642ad36e more work on examples
Frank Benoit <benoit@tionex.de>
parents: 99
diff changeset
56 while (!shell.isDisposed()) {
e884642ad36e more work on examples
Frank Benoit <benoit@tionex.de>
parents: 99
diff changeset
57 if (!display.readAndDispatch()) {
e884642ad36e more work on examples
Frank Benoit <benoit@tionex.de>
parents: 99
diff changeset
58 display.sleep();
99
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
59 }
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
60 }
100
e884642ad36e more work on examples
Frank Benoit <benoit@tionex.de>
parents: 99
diff changeset
61 }));
99
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
62 }
90
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
63
99
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
64 // Minimal JavaBeans support
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
65 public static abstract class AbstractModelObject {
100
e884642ad36e more work on examples
Frank Benoit <benoit@tionex.de>
parents: 99
diff changeset
66 private PropertyChangeSupport propertyChangeSupport;
e884642ad36e more work on examples
Frank Benoit <benoit@tionex.de>
parents: 99
diff changeset
67 this(){
e884642ad36e more work on examples
Frank Benoit <benoit@tionex.de>
parents: 99
diff changeset
68 propertyChangeSupport = new PropertyChangeSupport(
99
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
69 this);
100
e884642ad36e more work on examples
Frank Benoit <benoit@tionex.de>
parents: 99
diff changeset
70 }
90
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
71
99
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
72 public void addPropertyChangeListener(PropertyChangeListener listener) {
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
73 propertyChangeSupport.addPropertyChangeListener(listener);
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
74 }
90
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
75
99
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
76 public void addPropertyChangeListener(String propertyName,
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
77 PropertyChangeListener listener) {
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
78 propertyChangeSupport.addPropertyChangeListener(propertyName,
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
79 listener);
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
80 }
90
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
81
99
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
82 public void removePropertyChangeListener(PropertyChangeListener listener) {
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
83 propertyChangeSupport.removePropertyChangeListener(listener);
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
84 }
90
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
85
99
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
86 public void removePropertyChangeListener(String propertyName,
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
87 PropertyChangeListener listener) {
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
88 propertyChangeSupport.removePropertyChangeListener(propertyName,
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
89 listener);
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
90 }
90
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
91
99
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
92 protected void firePropertyChange(String propertyName, Object oldValue,
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
93 Object newValue) {
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
94 propertyChangeSupport.firePropertyChange(propertyName, oldValue,
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
95 newValue);
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
96 }
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
97 }
90
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
98
99
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
99 // The data model class. This is normally a persistent class of some sort.
100
e884642ad36e more work on examples
Frank Benoit <benoit@tionex.de>
parents: 99
diff changeset
100 static class Person : AbstractModelObject {
99
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
101 // A property...
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
102 String name = "John Smith";
90
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
103
100
e884642ad36e more work on examples
Frank Benoit <benoit@tionex.de>
parents: 99
diff changeset
104 public this(String name) {
99
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
105 this.name = name;
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
106 }
90
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
107
99
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
108 public String getName() {
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
109 return name;
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
110 }
90
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
111
99
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
112 public void setName(String name) {
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
113 String oldValue = this.name;
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
114 this.name = name;
100
e884642ad36e more work on examples
Frank Benoit <benoit@tionex.de>
parents: 99
diff changeset
115 firePropertyChange("name", stringcast(oldValue), stringcast(name));
99
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
116 }
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
117 }
90
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
118
99
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
119 // The View's model--the root of our Model graph for this particular GUI.
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
120 //
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
121 // Typically each View class has a corresponding ViewModel class.
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
122 // The ViewModel is responsible for getting the objects to edit from the
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
123 // data access tier. Since this snippet doesn't have any persistent objects
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
124 // ro retrieve, this ViewModel just instantiates a model object to edit.
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
125 static class ViewModel {
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
126 // The model to bind
100
e884642ad36e more work on examples
Frank Benoit <benoit@tionex.de>
parents: 99
diff changeset
127 private List people;
e884642ad36e more work on examples
Frank Benoit <benoit@tionex.de>
parents: 99
diff changeset
128 this(){
e884642ad36e more work on examples
Frank Benoit <benoit@tionex.de>
parents: 99
diff changeset
129 people = new LinkedList();
99
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
130 people.add(new Person("Steve Northover"));
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
131 people.add(new Person("Grant Gayed"));
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
132 people.add(new Person("Veronika Irvine"));
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
133 people.add(new Person("Mike Wilson"));
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
134 people.add(new Person("Christophe Cornu"));
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
135 people.add(new Person("Lynne Kues"));
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
136 people.add(new Person("Silenio Quarti"));
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
137 }
90
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
138
99
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
139 public List getPeople() {
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
140 return people;
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
141 }
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
142 }
90
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
143
99
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
144 // The GUI view
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
145 static class View {
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
146 private ViewModel viewModel;
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
147 private Table committers;
90
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
148
100
e884642ad36e more work on examples
Frank Benoit <benoit@tionex.de>
parents: 99
diff changeset
149 public this(ViewModel viewModel) {
99
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
150 this.viewModel = viewModel;
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
151 }
90
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
152
99
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
153 public Shell createShell() {
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
154 // Build a UI
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
155 Display display = Display.getDefault();
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
156 Shell shell = new Shell(display);
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
157 shell.setLayout(new FillLayout());
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
158 committers = new Table(shell, SWT.BORDER | SWT.FULL_SELECTION);
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
159 committers.setLinesVisible(true);
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
160 TableColumn column = new TableColumn(committers, SWT.NONE);
90
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
161
99
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
162 // Set up data binding.
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
163 TableViewer peopleViewer = new TableViewer(committers);
100
e884642ad36e more work on examples
Frank Benoit <benoit@tionex.de>
parents: 99
diff changeset
164
e884642ad36e more work on examples
Frank Benoit <benoit@tionex.de>
parents: 99
diff changeset
165 ///ViewerSupport.bind(peopleViewer, new WritableList(viewModel
e884642ad36e more work on examples
Frank Benoit <benoit@tionex.de>
parents: 99
diff changeset
166 /// .getPeople(), Class.fromType!(Person)), BeanProperties.value(
e884642ad36e more work on examples
Frank Benoit <benoit@tionex.de>
parents: 99
diff changeset
167 /// Class.fromType!(Person), "name"));
e884642ad36e more work on examples
Frank Benoit <benoit@tionex.de>
parents: 99
diff changeset
168
e884642ad36e more work on examples
Frank Benoit <benoit@tionex.de>
parents: 99
diff changeset
169 // Create a standard content provider
e884642ad36e more work on examples
Frank Benoit <benoit@tionex.de>
parents: 99
diff changeset
170 ObservableListContentProvider peopleViewerContentProvider =
e884642ad36e more work on examples
Frank Benoit <benoit@tionex.de>
parents: 99
diff changeset
171 new ObservableListContentProvider();
e884642ad36e more work on examples
Frank Benoit <benoit@tionex.de>
parents: 99
diff changeset
172 peopleViewer.setContentProvider(peopleViewerContentProvider);
e884642ad36e more work on examples
Frank Benoit <benoit@tionex.de>
parents: 99
diff changeset
173
e884642ad36e more work on examples
Frank Benoit <benoit@tionex.de>
parents: 99
diff changeset
174 // And a standard label provider that maps columns
e884642ad36e more work on examples
Frank Benoit <benoit@tionex.de>
parents: 99
diff changeset
175 IObservableMap[] attributeMaps = BeansObservables.observeMaps(
e884642ad36e more work on examples
Frank Benoit <benoit@tionex.de>
parents: 99
diff changeset
176 peopleViewerContentProvider.getKnownElements(), Class.fromType!(Person),
e884642ad36e more work on examples
Frank Benoit <benoit@tionex.de>
parents: 99
diff changeset
177 [ "name" ]);
e884642ad36e more work on examples
Frank Benoit <benoit@tionex.de>
parents: 99
diff changeset
178 peopleViewer.setLabelProvider(new ObservableMapLabelProvider(attributeMaps));
e884642ad36e more work on examples
Frank Benoit <benoit@tionex.de>
parents: 99
diff changeset
179
e884642ad36e more work on examples
Frank Benoit <benoit@tionex.de>
parents: 99
diff changeset
180 // Now set the Viewer's input
e884642ad36e more work on examples
Frank Benoit <benoit@tionex.de>
parents: 99
diff changeset
181 peopleViewer.setInput(new WritableList(viewModel.getPeople(), Class.fromType!(Person)));
90
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
182
99
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
183 column.pack();
90
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
184
99
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
185 // Open and return the Shell
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
186 shell.setSize(100, 300);
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
187 shell.open();
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
188 return shell;
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
189 }
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
190 }
90
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
191
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
192 }
99
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
193
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
194 void main( String[] args ){
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
195 Snippet009TableViewer.main(args);
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
196 }