Skip to content

Commit a69bdcd

Browse files
committed
updates
1 parent 9b1270c commit a69bdcd

1 file changed

Lines changed: 112 additions & 44 deletions

File tree

  • de.vogella.databinding.windowbuilder.example/src/phonebook

de.vogella.databinding.windowbuilder.example/src/phonebook/PhoneBook.java

Lines changed: 112 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,17 @@
22

33
import org.eclipse.core.databinding.DataBindingContext;
44
import org.eclipse.core.databinding.UpdateValueStrategy;
5+
import org.eclipse.core.databinding.beans.BeanProperties;
56
import org.eclipse.core.databinding.beans.BeansObservables;
67
import org.eclipse.core.databinding.observable.Realm;
78
import org.eclipse.core.databinding.observable.list.IObservableList;
89
import org.eclipse.core.databinding.observable.map.IObservableMap;
910
import org.eclipse.core.databinding.observable.value.IObservableValue;
1011
import org.eclipse.jface.databinding.swt.SWTObservables;
12+
import org.eclipse.jface.databinding.swt.WidgetProperties;
1113
import org.eclipse.jface.databinding.viewers.ObservableListContentProvider;
1214
import org.eclipse.jface.databinding.viewers.ObservableMapLabelProvider;
15+
import org.eclipse.jface.databinding.viewers.ViewerProperties;
1316
import org.eclipse.jface.databinding.viewers.ViewersObservables;
1417
import org.eclipse.jface.dialogs.MessageDialog;
1518
import org.eclipse.jface.viewers.IStructuredSelection;
@@ -35,10 +38,6 @@
3538
import phonebook.model.Person;
3639
import phonebook.model.PhoneGroup;
3740
import phonebook.model.PhoneGroups;
38-
import org.eclipse.core.databinding.beans.BeanProperties;
39-
import org.eclipse.jface.databinding.viewers.ViewerProperties;
40-
import org.eclipse.jface.databinding.swt.WidgetProperties;
41-
import org.eclipse.core.databinding.property.Properties;
4241

4342
public class PhoneBook {
4443

@@ -181,7 +180,8 @@ public void widgetSelected(SelectionEvent e) {
181180
IStructuredSelection selection = (IStructuredSelection) m_groupViewer
182181
.getSelection();
183182
PhoneGroup group = (PhoneGroup) selection.getFirstElement();
184-
boolean confirm = MessageDialog.openConfirm(shell,
183+
boolean confirm = MessageDialog.openConfirm(
184+
shell,
185185
"Confirm Delete",
186186
"Are you sure you want to delete group '"
187187
+ group.getName() + "'?");
@@ -200,7 +200,8 @@ public void widgetSelected(SelectionEvent e) {
200200

201201
final SashForm personSashForm = new SashForm(sashForm, SWT.VERTICAL);
202202

203-
final Composite personComposite = new Composite(personSashForm, SWT.BORDER);
203+
final Composite personComposite = new Composite(personSashForm,
204+
SWT.BORDER);
204205
final GridLayout gridLayout_1 = new GridLayout();
205206
gridLayout_1.horizontalSpacing = 0;
206207
gridLayout_1.marginWidth = 0;
@@ -217,12 +218,14 @@ public void widgetSelected(SelectionEvent e) {
217218
newPersonButton.addSelectionListener(new SelectionAdapter() {
218219
public void widgetSelected(SelectionEvent e) {
219220
IStructuredSelection groupSelection = (IStructuredSelection) m_groupViewer
220-
.getSelection();
221-
PhoneGroup group = (PhoneGroup) groupSelection.getFirstElement();
221+
.getSelection();
222+
PhoneGroup group = (PhoneGroup) groupSelection
223+
.getFirstElement();
222224
if (group != null) {
223225
Person person = new Person();
224226
group.addPerson(person);
225-
m_personViewer.setSelection(new StructuredSelection(person), true);
227+
m_personViewer.setSelection(
228+
new StructuredSelection(person), true);
226229
m_bindingContext.updateModels();
227230
}
228231
}
@@ -233,12 +236,14 @@ public void widgetSelected(SelectionEvent e) {
233236
deletePersonButton.addSelectionListener(new SelectionAdapter() {
234237
public void widgetSelected(SelectionEvent e) {
235238
IStructuredSelection groupSelection = (IStructuredSelection) m_groupViewer
236-
.getSelection();
239+
.getSelection();
237240
IStructuredSelection personSelection = (IStructuredSelection) m_personViewer
238241
.getSelection();
239-
PhoneGroup group = (PhoneGroup) groupSelection.getFirstElement();
242+
PhoneGroup group = (PhoneGroup) groupSelection
243+
.getFirstElement();
240244
Person person = (Person) personSelection.getFirstElement();
241-
boolean confirm = MessageDialog.openConfirm(shell,
245+
boolean confirm = MessageDialog.openConfirm(
246+
shell,
242247
"Confirm Delete",
243248
"Are you sure you want to delete person '"
244249
+ person.getName() + "'?");
@@ -282,7 +287,8 @@ public void widgetSelected(SelectionEvent e) {
282287
newColumnTableColumn_4.setWidth(100);
283288
newColumnTableColumn_4.setText("Mobile Phone 2");
284289

285-
final Composite detailComposite = new Composite(personSashForm, SWT.BORDER);
290+
final Composite detailComposite = new Composite(personSashForm,
291+
SWT.BORDER);
286292
final GridLayout gridLayout_2 = new GridLayout();
287293
gridLayout_2.numColumns = 2;
288294
detailComposite.setLayout(gridLayout_2);
@@ -295,70 +301,132 @@ public void widgetSelected(SelectionEvent e) {
295301
label.setText("Name:");
296302

297303
m_nameText = new Text(detailComposite, SWT.BORDER);
298-
m_nameText.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true,
299-
false));
304+
m_nameText
305+
.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
300306

301307
final Label emailLabel = new Label(detailComposite, SWT.NONE);
302308
emailLabel.setText("E-mail:");
303309

304310
m_emailText = new Text(detailComposite, SWT.BORDER);
305-
m_emailText.setLayoutData(new GridData(SWT.FILL, SWT.CENTER,
306-
true, false));
311+
m_emailText.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true,
312+
false));
307313

308314
final Label phoneLabel = new Label(detailComposite, SWT.NONE);
309315
phoneLabel.setText("Phone:");
310316

311317
m_phoneText = new Text(detailComposite, SWT.BORDER);
312-
m_phoneText.setLayoutData(new GridData(SWT.FILL, SWT.CENTER,
313-
true, false));
318+
m_phoneText.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true,
319+
false));
314320

315321
final Label mobilePhone1Label = new Label(detailComposite, SWT.NONE);
316322
mobilePhone1Label.setText("Mobile Phone 1:");
317323

318324
m_mobile1Text = new Text(detailComposite, SWT.BORDER);
319-
m_mobile1Text.setLayoutData(new GridData(SWT.FILL, SWT.CENTER,
320-
true, false));
325+
m_mobile1Text.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true,
326+
false));
321327

322328
final Label mobilePhone2Label = new Label(detailComposite, SWT.NONE);
323329
mobilePhone2Label.setText("Mobile Phone 2:");
324330

325331
m_mobile2Text = new Text(detailComposite, SWT.BORDER);
326-
m_mobile2Text.setLayoutData(new GridData(SWT.FILL, SWT.CENTER,
327-
true, false));
332+
m_mobile2Text.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true,
333+
false));
328334
sashForm.setWeights(new int[] { 161, 617 });
329335
personSashForm.setWeights(new int[] { 1, 1 });
330336
m_bindingContext = initDataBindings();
331337
//
332338
}
339+
333340
protected DataBindingContext initDataBindings() {
334341
DataBindingContext bindingContext = new DataBindingContext();
335342
//
336-
ObservableListContentProvider listContentProvider = new ObservableListContentProvider();
337-
IObservableMap observeMap = BeansObservables.observeMap(listContentProvider.getKnownElements(), PhoneGroup.class, "name");
338-
m_groupViewer.setLabelProvider(new ObservableMapLabelProvider(observeMap));
339-
m_groupViewer.setContentProvider(listContentProvider);
343+
IObservableValue table_1SelectionIndexObserveWidget_1 = SWTObservables
344+
.observeSingleSelectionIndex(table_1);
345+
IObservableValue newGroupButtonEnabledObserveWidget = SWTObservables
346+
.observeEnabled(editGroupButton);
347+
bindingContext.bindValue(table_1SelectionIndexObserveWidget_1,
348+
newGroupButtonEnabledObserveWidget,
349+
new SelectionUpdateValueStrategy(), new UpdateValueStrategy(
350+
UpdateValueStrategy.POLICY_NEVER));
340351
//
341-
IObservableList groupsGroupsObserveList = BeanProperties.list("groups").observe(m_groups);
342-
m_groupViewer.setInput(groupsGroupsObserveList);
352+
IObservableValue table_1SelectionIndexObserveWidget = SWTObservables
353+
.observeSingleSelectionIndex(table_1);
354+
IObservableValue deleteGroupButtonEnabledObserveWidget = SWTObservables
355+
.observeEnabled(deleteGroupButton);
356+
bindingContext.bindValue(table_1SelectionIndexObserveWidget,
357+
deleteGroupButtonEnabledObserveWidget,
358+
new SelectionUpdateValueStrategy(), new UpdateValueStrategy(
359+
UpdateValueStrategy.POLICY_NEVER));
343360
//
344-
ObservableListContentProvider listContentProvider_1 = new ObservableListContentProvider();
345-
IObservableMap[] observeMaps = BeansObservables.observeMaps(listContentProvider_1.getKnownElements(), Person.class, new String[]{"name", "email", "phone", "mobilePhone2", "mobilePhone1"});
346-
m_personViewer.setLabelProvider(new ObservableMapLabelProvider(observeMaps));
347-
m_personViewer.setContentProvider(listContentProvider_1);
361+
IObservableValue tableSelectionIndexObserveWidget = SWTObservables
362+
.observeSingleSelectionIndex(table);
363+
IObservableValue deletePersonButtonEnabledObserveWidget = SWTObservables
364+
.observeEnabled(deletePersonButton);
365+
bindingContext.bindValue(tableSelectionIndexObserveWidget,
366+
deletePersonButtonEnabledObserveWidget,
367+
new SelectionUpdateValueStrategy(), new UpdateValueStrategy(
368+
UpdateValueStrategy.POLICY_NEVER));
348369
//
349-
IObservableValue observeSingleSelectionGroupViewer = ViewerProperties.singleSelection().observe(m_groupViewer);
350-
IObservableList groupViewerPersonsObserveDetailList = BeanProperties.list(PhoneGroup.class, "persons", Person.class).observeDetail(observeSingleSelectionGroupViewer);
351-
m_personViewer.setInput(groupViewerPersonsObserveDetailList);
370+
ObservableListContentProvider m_groupViewerContentProviderList = new ObservableListContentProvider();
371+
IObservableMap m_groupViewerLabelProviderMaps = BeansObservables
372+
.observeMap(
373+
m_groupViewerContentProviderList.getKnownElements(),
374+
PhoneGroup.class, "name");
375+
m_groupViewer.setLabelProvider(new ObservableMapLabelProvider(
376+
m_groupViewerLabelProviderMaps));
377+
m_groupViewer.setContentProvider(m_groupViewerContentProviderList);
352378
//
353-
IObservableValue observeTextNameTextObserveWidget = WidgetProperties.text(SWT.Modify).observe(m_nameText);
354-
IObservableValue observeSingleSelectionPersonViewer = ViewerProperties.singleSelection().observe(m_personViewer);
355-
IObservableValue personViewerNameObserveDetailValue = BeanProperties.value(Person.class, "name", String.class).observeDetail(observeSingleSelectionPersonViewer);
356-
bindingContext.bindValue(observeTextNameTextObserveWidget, personViewerNameObserveDetailValue, null, null);
379+
IObservableList m_groupsGroupsObserveList = BeansObservables
380+
.observeList(Realm.getDefault(), m_groups, "groups");
381+
m_groupViewer.setInput(m_groupsGroupsObserveList);
382+
//
383+
ObservableListContentProvider m_personViewerContentProviderList = new ObservableListContentProvider();
384+
IObservableMap[] m_personViewerLabelProviderMaps = BeansObservables
385+
.observeMaps(
386+
m_personViewerContentProviderList.getKnownElements(),
387+
Person.class, new String[] { "name", "email", "phone",
388+
"mobilePhone1", "mobilePhone2" });
389+
m_personViewer.setLabelProvider(new ObservableMapLabelProvider(
390+
m_personViewerLabelProviderMaps));
391+
m_personViewer.setContentProvider(m_personViewerContentProviderList);
392+
//
393+
IObservableValue groupViewerObserveSingleSelection = ViewersObservables
394+
.observeSingleSelection(m_groupViewer);
395+
IObservableList m_groupViewerPersonsObserveDetailList = BeansObservables
396+
.observeDetailList(groupViewerObserveSingleSelection,
397+
"persons", Person.class);
398+
m_personViewer.setInput(m_groupViewerPersonsObserveDetailList);
399+
//
400+
IObservableValue observeMessageNameTextObserveWidget = WidgetProperties
401+
.message().observe(m_nameText);
402+
IObservableValue observeSingleSelectionPersonViewer = ViewerProperties
403+
.singleSelection().observe(m_personViewer);
404+
IObservableValue personViewerNameObserveDetailValue = BeanProperties
405+
.value(Person.class, "name", String.class).observeDetail(
406+
observeSingleSelectionPersonViewer);
407+
bindingContext.bindValue(observeMessageNameTextObserveWidget,
408+
personViewerNameObserveDetailValue, null, null);
409+
//
410+
411+
IObservableValue observeTextEmailTextObserveWidget = WidgetProperties
412+
.text(SWT.Modify).observe(m_emailText);
413+
IObservableValue observeSingleSelectionPersonViewer_1 = ViewerProperties
414+
.singleSelection().observe(m_personViewer);
415+
IObservableValue personViewerEmailObserveDetailValue = BeanProperties
416+
.value(Person.class, "email", String.class).observeDetail(
417+
observeSingleSelectionPersonViewer_1);
418+
bindingContext.bindValue(observeTextEmailTextObserveWidget,
419+
personViewerEmailObserveDetailValue, null, null);
357420
//
358-
IObservableValue observeTextEmailTextObserveWidget = WidgetProperties.text(SWT.Modify).observe(m_emailText);
359-
IObservableValue observeSingleSelectionPersonViewer_1 = ViewerProperties.singleSelection().observe(m_personViewer);
360-
IObservableValue personViewerEmailObserveDetailValue = BeanProperties.value(Person.class, "email", String.class).observeDetail(observeSingleSelectionPersonViewer_1);
361-
bindingContext.bindValue(observeTextEmailTextObserveWidget, personViewerEmailObserveDetailValue, null, null);
421+
IObservableValue observeTextPhoneTextObserveWidget = WidgetProperties
422+
.text(SWT.Modify).observe(m_phoneText);
423+
IObservableValue observeSingleSelectionPersonViewer_2 = ViewerProperties
424+
.singleSelection().observe(m_personViewer);
425+
IObservableValue personViewerMobilePhone1ObserveDetailValue = BeanProperties
426+
.value(Person.class, "mobilePhone1", String.class)
427+
.observeDetail(observeSingleSelectionPersonViewer_2);
428+
bindingContext.bindValue(observeTextPhoneTextObserveWidget,
429+
personViewerMobilePhone1ObserveDetailValue, null, null);
362430
//
363431
return bindingContext;
364432
}

0 commit comments

Comments
 (0)