Mercurial > projects > dwt2
annotate org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/snippets/Snippet007ColorLabelProvider.d @ 99:5d5bd660917f
build some databind snippets
author | Frank Benoit <benoit@tionex.de> |
---|---|
date | Wed, 22 Apr 2009 18:59:26 +0200 |
parents | 6086085e153d |
children | e884642ad36e |
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 Brad Reynolds 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 * Brad Reynolds - initial API and implementation |
6086085e153d
Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
10 * IBM Corporation - see bug 137934 |
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.Snippet007ColorLabelProvider; |
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.ArrayList; |
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 |
6086085e153d
Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
22 import org.eclipse.core.databinding.beans.BeansObservables; |
6086085e153d
Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
23 import org.eclipse.core.databinding.observable.Observables; |
6086085e153d
Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
24 import org.eclipse.core.databinding.observable.Realm; |
6086085e153d
Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
25 import org.eclipse.core.databinding.observable.list.IObservableList; |
6086085e153d
Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
26 import org.eclipse.core.databinding.observable.map.IObservableMap; |
6086085e153d
Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
27 import org.eclipse.jface.databinding.swt.SWTObservables; |
6086085e153d
Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
28 import org.eclipse.jface.databinding.viewers.ObservableListContentProvider; |
6086085e153d
Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
29 import org.eclipse.jface.databinding.viewers.ObservableMapLabelProvider; |
6086085e153d
Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
30 import org.eclipse.jface.viewers.ILabelProvider; |
6086085e153d
Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
31 import org.eclipse.jface.viewers.ITableColorProvider; |
6086085e153d
Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
32 import org.eclipse.jface.viewers.StructuredSelection; |
6086085e153d
Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
33 import org.eclipse.jface.viewers.TableViewer; |
6086085e153d
Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
34 import org.eclipse.swt.SWT; |
6086085e153d
Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
35 import org.eclipse.swt.events.SelectionAdapter; |
6086085e153d
Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
36 import org.eclipse.swt.events.SelectionEvent; |
6086085e153d
Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
37 import org.eclipse.swt.graphics.Color; |
6086085e153d
Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
38 import org.eclipse.swt.layout.GridData; |
6086085e153d
Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
39 import org.eclipse.swt.layout.GridLayout; |
6086085e153d
Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
40 import org.eclipse.swt.widgets.Button; |
6086085e153d
Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
41 import org.eclipse.swt.widgets.Display; |
6086085e153d
Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
42 import org.eclipse.swt.widgets.Shell; |
6086085e153d
Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
43 import org.eclipse.swt.widgets.Table; |
6086085e153d
Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
44 import org.eclipse.swt.widgets.TableColumn; |
6086085e153d
Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
45 |
6086085e153d
Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
46 /** |
6086085e153d
Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
47 * An example showing how to create a {@link ILabelProvider label provider} that |
6086085e153d
Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
48 * to provide colors. |
6086085e153d
Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
49 * |
6086085e153d
Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
50 * @since 3.2 |
6086085e153d
Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
51 */ |
6086085e153d
Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
52 public class Snippet007ColorLabelProvider { |
99
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
53 /** |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
54 * @param args |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
55 */ |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
56 public static void main(String[] args) { |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
57 final List persons = new ArrayList(); |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
58 persons.add(new Person("Fiona Apple", Person.FEMALE)); |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
59 persons.add(new Person("Elliot Smith", Person.MALE)); |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
60 persons.add(new Person("Diana Krall", Person.FEMALE)); |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
61 persons.add(new Person("David Gilmour", Person.MALE)); |
90
6086085e153d
Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
62 |
99
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
63 final Display display = new Display(); |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
64 Realm.runWithDefault(SWTObservables.getRealm(display), new Runnable() { |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
65 public void run() { |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
66 Shell shell = new Shell(display); |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
67 shell.setText("Gender Bender"); |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
68 shell.setLayout(new GridLayout()); |
90
6086085e153d
Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
69 |
99
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
70 Table table = new Table(shell, SWT.SINGLE | SWT.H_SCROLL |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
71 | SWT.V_SCROLL | SWT.BORDER); |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
72 GridData gridData = new GridData(SWT.FILL, SWT.FILL, true, true); |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
73 table.setLayoutData(gridData); |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
74 table.setHeaderVisible(true); |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
75 table.setLinesVisible(true); |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
76 TableColumn column = new TableColumn(table, SWT.NONE); |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
77 column.setText("No"); |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
78 column.setWidth(20); |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
79 column = new TableColumn(table, SWT.NONE); |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
80 column.setText("Name"); |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
81 column.setWidth(100); |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
82 final TableViewer viewer = new TableViewer(table); |
90
6086085e153d
Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
83 |
99
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
84 IObservableList observableList = Observables |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
85 .staticObservableList(persons); |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
86 ObservableListContentProvider contentProvider = new ObservableListContentProvider(); |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
87 |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
88 viewer.setContentProvider(contentProvider); |
90
6086085e153d
Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
89 |
99
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
90 // this does not have to correspond to the columns in the table, |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
91 // we just list all attributes that affect the table content. |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
92 IObservableMap[] attributes = BeansObservables.observeMaps( |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
93 contentProvider.getKnownElements(), Person.class, |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
94 new String[] { "name", "gender" }); |
90
6086085e153d
Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
95 |
99
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
96 class ColorLabelProvider extends ObservableMapLabelProvider |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
97 implements ITableColorProvider { |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
98 Color male = display.getSystemColor(SWT.COLOR_BLUE); |
90
6086085e153d
Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
99 |
99
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
100 Color female = new Color(display, 255, 192, 203); |
90
6086085e153d
Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
101 |
99
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
102 ColorLabelProvider(IObservableMap[] attributes) { |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
103 super(attributes); |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
104 } |
90
6086085e153d
Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
105 |
99
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
106 // to drive home the point that attributes does not have to |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
107 // match |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
108 // the columns |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
109 // in the table, we change the column text as follows: |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
110 public String getColumnText(Object element, int index) { |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
111 if (index == 0) { |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
112 return Integer |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
113 .toString(persons.indexOf(element) + 1); |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
114 } |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
115 return ((Person) element).getName(); |
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 |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
118 public Color getBackground(Object element, int index) { |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
119 return null; |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
120 } |
90
6086085e153d
Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
121 |
99
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
122 public Color getForeground(Object element, int index) { |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
123 if (index == 0) |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
124 return null; |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
125 Person person = (Person) element; |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
126 return (person.getGender() == Person.MALE) ? male |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
127 : female; |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
128 } |
90
6086085e153d
Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
129 |
99
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
130 public void dispose() { |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
131 super.dispose(); |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
132 female.dispose(); |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
133 } |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
134 } |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
135 viewer.setLabelProvider(new ColorLabelProvider(attributes)); |
90
6086085e153d
Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
136 |
99
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
137 viewer.setInput(observableList); |
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 table.getColumn(0).pack(); |
90
6086085e153d
Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
140 |
99
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
141 Button button = new Button(shell, SWT.PUSH); |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
142 button.setText("Toggle Gender"); |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
143 button.addSelectionListener(new SelectionAdapter() { |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
144 public void widgetSelected(SelectionEvent arg0) { |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
145 StructuredSelection selection = (StructuredSelection) viewer |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
146 .getSelection(); |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
147 if (selection != null && !selection.isEmpty()) { |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
148 Person person = (Person) selection |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
149 .getFirstElement(); |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
150 person |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
151 .setGender((person.getGender() == Person.MALE) ? Person.FEMALE |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
152 : Person.MALE); |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
153 } |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
154 } |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
155 }); |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
156 |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
157 shell.setSize(300, 400); |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
158 shell.open(); |
90
6086085e153d
Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
159 |
99
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
160 while (!shell.isDisposed()) { |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
161 if (!display.readAndDispatch()) |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
162 display.sleep(); |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
163 } |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
164 } |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
165 }); |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
166 display.dispose(); |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
167 } |
90
6086085e153d
Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
168 |
99
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
169 static class Person { |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
170 static final int MALE = 0; |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
171 |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
172 static final int FEMALE = 1; |
90
6086085e153d
Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
173 |
99
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
174 private String name; |
90
6086085e153d
Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
175 |
99
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
176 private int gender; |
90
6086085e153d
Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
177 |
99
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
178 private PropertyChangeSupport changeSupport = new PropertyChangeSupport( |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
179 this); |
90
6086085e153d
Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
180 |
99
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
181 Person(String name, int gender) { |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
182 this.name = name; |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
183 this.gender = gender; |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
184 } |
90
6086085e153d
Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
185 |
99
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
186 /** |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
187 * Returns the name. Method declared public to satisfy Java bean |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
188 * conventions |
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 * @return the name |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
191 */ |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
192 public String getName() { |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
193 return name; |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
194 } |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
195 |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
196 /** |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
197 * @param listener |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
198 */ |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
199 public void addPropertyChangeListener(PropertyChangeListener listener) { |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
200 changeSupport.addPropertyChangeListener(listener); |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
201 } |
90
6086085e153d
Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
202 |
99
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
203 public void removePropertyChangeListener(PropertyChangeListener listener) { |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
204 changeSupport.removePropertyChangeListener(listener); |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
205 } |
90
6086085e153d
Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
206 |
99
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
207 /** |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
208 * Returns the gender. Method declared public to satisfy Java bean |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
209 * conventions |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
210 * |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
211 * @return the gender |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
212 */ |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
213 public int getGender() { |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
214 return gender; |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
215 } |
90
6086085e153d
Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
216 |
99
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
217 void setGender(int gender) { |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
218 changeSupport.firePropertyChange("gender", this.gender, |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
219 this.gender = gender); |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
220 } |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
221 } |
90
6086085e153d
Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
222 } |
99
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
223 |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
224 void main( String[] args ){ |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
225 Snippet007ColorLabelProvider.main(args); |
5d5bd660917f
build some databind snippets
Frank Benoit <benoit@tionex.de>
parents:
90
diff
changeset
|
226 } |