annotate org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/snippets/Snippet021MultiFieldValidation.d @ 125:c43718956f21 default tip

Updated the snippets status.
author Jacob Carlborg <doob@me.com>
date Thu, 11 Aug 2011 19:55:14 +0200
parents e884642ad36e
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) 2008 Matthew Hall 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 * Matthew Hall - initial API and implementation (bug 218269)
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
10 * Matthew Hall - bug 260329
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.Snippet021MultiFieldValidation;
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.util.ArrayList;
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
18 import java.util.Iterator;
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
19
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
20 import org.eclipse.core.databinding.DataBindingContext;
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
21 import org.eclipse.core.databinding.observable.Realm;
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
22 import org.eclipse.core.databinding.observable.list.IObservableList;
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
23 import org.eclipse.core.databinding.observable.list.WritableList;
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
24 import org.eclipse.core.databinding.observable.value.IObservableValue;
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
25 import org.eclipse.core.databinding.observable.value.WritableValue;
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
26 import org.eclipse.core.databinding.validation.MultiValidator;
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
27 import org.eclipse.core.databinding.validation.ValidationStatus;
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
28 import org.eclipse.core.runtime.IStatus;
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
29 import org.eclipse.jface.databinding.swt.SWTObservables;
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
30 import org.eclipse.jface.databinding.viewers.ObservableListContentProvider;
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
31 import org.eclipse.jface.databinding.wizard.WizardPageSupport;
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
32 import org.eclipse.jface.dialogs.IInputValidator;
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
33 import org.eclipse.jface.dialogs.InputDialog;
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
34 import org.eclipse.jface.viewers.IStructuredSelection;
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
35 import org.eclipse.jface.viewers.ListViewer;
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
36 import org.eclipse.jface.window.Window;
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
37 import org.eclipse.jface.wizard.IWizard;
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
38 import org.eclipse.jface.wizard.Wizard;
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
39 import org.eclipse.jface.wizard.WizardDialog;
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
40 import org.eclipse.jface.wizard.WizardPage;
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
41 import org.eclipse.swt.SWT;
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
42 import org.eclipse.swt.events.SelectionAdapter;
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
43 import org.eclipse.swt.events.SelectionEvent;
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
44 import org.eclipse.swt.layout.GridData;
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
45 import org.eclipse.swt.layout.GridLayout;
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
46 import org.eclipse.swt.widgets.Button;
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
47 import org.eclipse.swt.widgets.Composite;
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
48 import org.eclipse.swt.widgets.Display;
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
49 import org.eclipse.swt.widgets.Group;
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
50 import org.eclipse.swt.widgets.Label;
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
51 import org.eclipse.swt.widgets.List;
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
52 import org.eclipse.swt.widgets.Text;
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
53
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
54 /**
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
55 * @since 3.2
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
56 *
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
57 */
100
e884642ad36e more work on examples
Frank Benoit <benoit@tionex.de>
parents: 99
diff changeset
58 public class Snippet021MultiFieldValidation : WizardPage {
90
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
59
99
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
60 private List list_1;
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
61 private List list;
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
62 private Button addAddendButton;
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
63 private Button removeAddendButton;
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
64 private Text sumModelValue;
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
65 private Text field2ModelValue;
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
66 private Text field1ModelValue;
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
67 private Text sumTarget;
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
68 private Text field2Target;
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
69 private Text field1Target;
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
70 private ListViewer addendsTarget;
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
71 private ListViewer addendsModelValue;
90
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
72
99
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
73 /**
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
74 * Create the wizard
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
75 */
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
76 public Snippet021MultiFieldValidation() {
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
77 super("snippet021");
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
78 setTitle("Snippet 021 - Multi-field Validators");
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
79 setDescription("Enter values which satisfy the cross-field constraints");
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 /**
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
83 * Create contents of the wizard
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
84 *
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
85 * @param parent
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
86 */
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
87 public void createControl(Composite parent) {
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
88 Composite container = new Composite(parent, SWT.NULL);
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
89 final GridLayout gridLayout = new GridLayout();
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
90 gridLayout.numColumns = 2;
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
91 container.setLayout(gridLayout);
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
92 //
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
93 setControl(container);
90
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
94
99
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
95 final Group bothEvenOrGroup = new Group(container, SWT.NONE);
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
96 bothEvenOrGroup.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false,
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
97 false));
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
98 bothEvenOrGroup.setText("Numbers must be both even or both odd");
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
99 final GridLayout gridLayout_1 = new GridLayout();
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
100 gridLayout_1.numColumns = 3;
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
101 bothEvenOrGroup.setLayout(gridLayout_1);
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
102 new Label(bothEvenOrGroup, SWT.NONE);
90
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
103
99
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
104 final Label targetLabel = new Label(bothEvenOrGroup, SWT.NONE);
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
105 targetLabel.setText("Target");
90
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
106
99
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
107 final Label modelLabel = new Label(bothEvenOrGroup, SWT.NONE);
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
108 modelLabel.setText("Model");
90
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
109
99
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
110 final Label field1Label = new Label(bothEvenOrGroup, SWT.NONE);
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
111 field1Label.setText("Field 1");
90
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
112
99
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
113 field1Target = new Text(bothEvenOrGroup, SWT.BORDER);
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
114 final GridData gd_field1Target = new GridData(SWT.FILL, SWT.CENTER,
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
115 true, false);
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
116 field1Target.setLayoutData(gd_field1Target);
90
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
117
99
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
118 field1ModelValue = new Text(bothEvenOrGroup, SWT.READ_ONLY | SWT.BORDER);
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
119 final GridData gd_field1ModelValue = new GridData(SWT.FILL, SWT.CENTER,
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
120 true, false);
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
121 field1ModelValue.setLayoutData(gd_field1ModelValue);
90
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
122
99
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
123 final Label field2Label = new Label(bothEvenOrGroup, SWT.NONE);
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
124 field2Label.setText("Field 2");
90
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
125
99
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
126 field2Target = new Text(bothEvenOrGroup, SWT.BORDER);
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
127 final GridData gd_field2Target = new GridData(SWT.FILL, SWT.CENTER,
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
128 true, false);
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
129 field2Target.setLayoutData(gd_field2Target);
90
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
130
99
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
131 field2ModelValue = new Text(bothEvenOrGroup, SWT.READ_ONLY | SWT.BORDER);
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
132 final GridData gd_field2ModelValue = new GridData(SWT.FILL, SWT.CENTER,
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
133 true, false);
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
134 field2ModelValue.setLayoutData(gd_field2ModelValue);
90
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
135
99
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
136 final Group sumOfAllGroup = new Group(container, SWT.NONE);
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
137 sumOfAllGroup.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false,
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
138 true));
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
139 sumOfAllGroup.setText("Addends must add up to sum");
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
140 final GridLayout gridLayout_2 = new GridLayout();
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
141 gridLayout_2.numColumns = 3;
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
142 sumOfAllGroup.setLayout(gridLayout_2);
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
143 new Label(sumOfAllGroup, SWT.NONE);
90
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
144
99
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
145 final Label targetLabel_1 = new Label(sumOfAllGroup, SWT.NONE);
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
146 targetLabel_1.setText("Target");
90
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
147
99
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
148 final Label modelLabel_1 = new Label(sumOfAllGroup, SWT.NONE);
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
149 modelLabel_1.setText("Model");
90
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
150
99
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
151 final Label expectedSumLabel = new Label(sumOfAllGroup, SWT.NONE);
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
152 expectedSumLabel.setText("Sum");
90
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
153
99
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
154 sumTarget = new Text(sumOfAllGroup, SWT.BORDER);
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
155 final GridData gd_sumTarget = new GridData(SWT.FILL, SWT.CENTER, true,
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
156 false);
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
157 sumTarget.setLayoutData(gd_sumTarget);
90
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
158
99
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
159 sumModelValue = new Text(sumOfAllGroup, SWT.READ_ONLY | SWT.BORDER);
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
160 final GridData gd_sumModelValue = new GridData(SWT.FILL, SWT.CENTER,
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
161 true, false);
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
162 sumModelValue.setLayoutData(gd_sumModelValue);
90
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
163
99
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
164 final Label addendsLabel = new Label(sumOfAllGroup, SWT.NONE);
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
165 addendsLabel.setText("Addends");
90
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
166
99
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
167 addendsTarget = new ListViewer(sumOfAllGroup, SWT.V_SCROLL | SWT.BORDER);
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
168 list_1 = addendsTarget.getList();
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
169 list_1
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
170 .setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, true, 1,
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
171 2));
90
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
172
99
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
173 addendsModelValue = new ListViewer(sumOfAllGroup, SWT.V_SCROLL
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
174 | SWT.BORDER);
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
175 list = addendsModelValue.getList();
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
176 list.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, true, 1, 2));
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 final Composite composite = new Composite(sumOfAllGroup, SWT.NONE);
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
179 composite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false));
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
180 final GridLayout gridLayout_3 = new GridLayout();
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
181 gridLayout_3.marginWidth = 0;
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
182 gridLayout_3.marginHeight = 0;
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
183 composite.setLayout(gridLayout_3);
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 addAddendButton = new Button(composite, SWT.NONE);
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
186 addAddendButton.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false,
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
187 false));
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
188 addAddendButton.setText("Add");
90
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
189
99
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
190 removeAddendButton = new Button(composite, SWT.NONE);
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
191 removeAddendButton.setLayoutData(new GridData(SWT.FILL, SWT.CENTER,
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
192 false, false));
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
193 removeAddendButton.setText("Remove");
90
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
194
99
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
195 bindUI();
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
196 }
90
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
197
99
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
198 private void bindUI() {
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
199 DataBindingContext dbc = new DataBindingContext();
90
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
200
99
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
201 bindEvensAndOddsGroup(dbc);
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
202 bindSumAndAddendsGroup(dbc);
90
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
203
99
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
204 WizardPageSupport.create(this, dbc);
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 private void bindEvensAndOddsGroup(DataBindingContext dbc) {
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
208 IObservableValue targetField1 = SWTObservables.observeText(
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
209 field1Target, SWT.Modify);
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
210 final IObservableValue middleField1 = new WritableValue(null,
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
211 Integer.TYPE);
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
212 dbc.bindValue(targetField1, middleField1);
90
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
213
99
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
214 IObservableValue targetField2 = SWTObservables.observeText(
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
215 field2Target, SWT.Modify);
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
216 final IObservableValue middleField2 = new WritableValue(null,
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
217 Integer.TYPE);
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
218 dbc.bindValue(targetField2, middleField2);
90
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
219
99
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
220 MultiValidator validator = new MultiValidator() {
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
221 protected IStatus validate() {
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
222 Integer field1 = (Integer) middleField1.getValue();
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
223 Integer field2 = (Integer) middleField2.getValue();
100
e884642ad36e more work on examples
Frank Benoit <benoit@tionex.de>
parents: 99
diff changeset
224 if (Math.abs(field1.intValue()) % 2 !is Math.abs(field2
99
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
225 .intValue()) % 2)
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
226 return ValidationStatus
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
227 .error("Fields 1 and 2 must be both even or both odd");
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
228 return null;
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
229 }
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
230 };
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
231 dbc.addValidationStatusProvider(validator);
90
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
232
99
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
233 IObservableValue modelField1 = new WritableValue(new Integer(1),
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
234 Integer.TYPE);
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
235 IObservableValue modelField2 = new WritableValue(new Integer(4),
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
236 Integer.TYPE);
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
237 dbc.bindValue(validator.observeValidatedValue(middleField1),
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
238 modelField1);
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
239 dbc.bindValue(validator.observeValidatedValue(middleField2),
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
240 modelField2);
90
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
241
99
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
242 dbc.bindValue(SWTObservables.observeText(field1ModelValue, SWT.Modify),
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
243 modelField1);
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
244 dbc.bindValue(SWTObservables.observeText(field2ModelValue, SWT.Modify),
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
245 modelField2);
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
246 }
90
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
247
99
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
248 private void bindSumAndAddendsGroup(DataBindingContext dbc) {
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
249 IObservableValue targetSum = SWTObservables.observeText(sumTarget,
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
250 SWT.Modify);
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
251 final IObservableValue middleSum = new WritableValue(null, Integer.TYPE);
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
252 dbc.bindValue(targetSum, middleSum);
90
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
253
99
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
254 final IObservableList targetAddends = new WritableList(new ArrayList(),
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
255 Integer.TYPE);
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
256 addendsTarget.setContentProvider(new ObservableListContentProvider());
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
257 addendsTarget.setInput(targetAddends);
90
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
258
99
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
259 addAddendButton.addSelectionListener(new SelectionAdapter() {
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
260 public void widgetSelected(final SelectionEvent e) {
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
261 InputDialog dialog = new InputDialog(getShell(),
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
262 "Input addend", "Enter an integer addend", "0",
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
263 new IInputValidator() {
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
264 public String isValid(String newText) {
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
265 try {
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
266 Integer.valueOf(newText);
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
267 return null;
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
268 } catch (NumberFormatException e) {
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
269 return "Enter a number between "
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
270 + Integer.MIN_VALUE + " and "
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
271 + Integer.MAX_VALUE;
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
272 }
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
273 }
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
274 });
100
e884642ad36e more work on examples
Frank Benoit <benoit@tionex.de>
parents: 99
diff changeset
275 if (dialog.open() is Window.OK) {
99
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
276 targetAddends.add(Integer.valueOf(dialog.getValue()));
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
277 }
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
278 }
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
279 });
90
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
280
99
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
281 removeAddendButton.addSelectionListener(new SelectionAdapter() {
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
282 public void widgetSelected(SelectionEvent e) {
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
283 IStructuredSelection selection = (IStructuredSelection) addendsTarget
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
284 .getSelection();
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
285 if (!selection.isEmpty())
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
286 targetAddends.remove(selection.getFirstElement());
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
287 }
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
288 });
90
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
289
99
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
290 IObservableValue modelSum = new WritableValue(new Integer(5),
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
291 Integer.TYPE);
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
292 dbc.bindValue(SWTObservables.observeText(sumModelValue, SWT.Modify),
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
293 modelSum);
90
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
294
99
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
295 IObservableList modelAddends = new WritableList(new ArrayList(),
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
296 Integer.TYPE);
90
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
297
99
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
298 MultiValidator validator = new MultiValidator() {
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
299 protected IStatus validate() {
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
300 Integer sum = (Integer) middleSum.getValue();
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
301 int actualSum = 0;
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
302 for (Iterator iterator = targetAddends.iterator(); iterator
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
303 .hasNext();) {
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
304 actualSum += ((Integer) iterator.next()).intValue();
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
305 }
100
e884642ad36e more work on examples
Frank Benoit <benoit@tionex.de>
parents: 99
diff changeset
306 if (sum.intValue() !is actualSum)
99
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
307 return ValidationStatus.error("Sum of addends is "
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
308 + actualSum + ", expecting " + sum);
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
309 return ValidationStatus.ok();
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
310 }
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
311 };
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
312 dbc.addValidationStatusProvider(validator);
90
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
313
99
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
314 addendsModelValue
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
315 .setContentProvider(new ObservableListContentProvider());
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
316 addendsModelValue.setInput(modelAddends);
90
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
317
99
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
318 dbc.bindValue(validator.observeValidatedValue(middleSum), modelSum);
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
319 dbc.bindList(validator.observeValidatedList(targetAddends),
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
320 modelAddends);
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
321 }
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
322
100
e884642ad36e more work on examples
Frank Benoit <benoit@tionex.de>
parents: 99
diff changeset
323 static class MultiFieldValidationWizard : Wizard {
99
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
324 public void addPages() {
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
325 addPage(new Snippet021MultiFieldValidation());
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
326 }
90
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
327
99
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
328 public String getWindowTitle() {
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
329 return "Snippet 021 - Multi-field Validation";
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
330 }
90
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
331
99
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
332 public bool performFinish() {
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
333 return true;
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
334 }
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
335 }
90
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
336
99
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
337 public static void main(String[] args) {
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
338 Display display = new Display();
90
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
339
99
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
340 Realm.runWithDefault(SWTObservables.getRealm(display), new Runnable() {
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
341 public void run() {
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
342 IWizard wizard = new MultiFieldValidationWizard();
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
343 WizardDialog dialog = new WizardDialog(null, wizard);
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
344 dialog.open();
90
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
345
99
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
346 // The SWT event loop
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
347 Display display = Display.getCurrent();
100
e884642ad36e more work on examples
Frank Benoit <benoit@tionex.de>
parents: 99
diff changeset
348 while (dialog.getShell() !is null
99
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
349 && !dialog.getShell().isDisposed()) {
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
350 if (!display.readAndDispatch()) {
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
351 display.sleep();
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
352 }
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
353 }
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
354 }
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
355 });
90
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
356
99
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
357 display.dispose();
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
358 }
90
6086085e153d Added databinding snippets. unmodified java sources.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
359 }
99
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
360 void main( String[] args ){
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
361 Snippet021MultiFieldValidation.main(args);
5d5bd660917f build some databind snippets
Frank Benoit <benoit@tionex.de>
parents: 90
diff changeset
362 }