From 56b39c480d66d96814dad081db9e66666ddffdb8 Mon Sep 17 00:00:00 2001
From: dgelessus <dgelessus@users.noreply.github.com>
Date: Tue, 2 Jul 2024 13:21:02 +0200
Subject: [PATCH] Replace uses of deprecated Eclipse APIs that were removed in
 Rodin 3.9

These APIs were deprecated since 2014, but our code that used them was
written in 2012...
---
 .../META-INF/MANIFEST.MF                      |  1 +
 .../gef/editor/edit/IntEditingSupport.java    |  8 ++--
 .../editor/edit/PredicateEditingSupport.java  |  8 ++--
 .../gef/editor/edit/TextEditingSupport.java   |  8 ++--
 .../gef/editor/edit/TypeEditingSupport.java   |  8 ++--
 .../observer/wizard/WizardColumnObserver.java | 17 +++----
 .../WizardObserverCSwitchCoordinates.java     | 16 ++++---
 ...ardObserverListenOperationByPredicate.java | 15 +++---
 .../wizard/WizardObserverSetAttribute.java    | 14 +++---
 .../WizardObserverSimpleValueDisplay.java     | 23 +++++-----
 .../WizardObserverSwitchCoordinates.java      | 12 +++--
 .../wizard/WizardObserverSwitchImage.java     | 12 +++--
 .../observer/wizard/WizardTableObserver.java  | 29 ++++++------
 .../wizard/SchedulerObjectDialog.java         | 12 +++--
 .../WizardExecuteOperationByPredicate.java    | 46 +++++++++----------
 ...izardExecuteOperationByPredicateMulti.java | 14 +++---
 .../wizard/WizardExecuteScheduler.java        | 11 +++--
 17 files changed, 133 insertions(+), 121 deletions(-)

diff --git a/de.bmotionstudio.gef.editor/META-INF/MANIFEST.MF b/de.bmotionstudio.gef.editor/META-INF/MANIFEST.MF
index b11db45f..097c59ff 100644
--- a/de.bmotionstudio.gef.editor/META-INF/MANIFEST.MF
+++ b/de.bmotionstudio.gef.editor/META-INF/MANIFEST.MF
@@ -7,6 +7,7 @@ Bundle-Activator: de.bmotionstudio.gef.editor.BMotionEditorPlugin
 Require-Bundle: de.prob.core;bundle-version="[9.5.2,9.6.0)";visibility:=reexport,
  org.eclipse.core.databinding;bundle-version="[1.10.0,2.0.0)",
  org.eclipse.core.databinding.beans;bundle-version="[1.7.0,2.0.0)",
+ org.eclipse.core.databinding.property;bundle-version="[1.7.0,2.0.0)",
  org.eclipse.core.resources;bundle-version="[3.13.0,4.0.0)",
  org.eclipse.core.runtime;bundle-version="[3.20.0,4.0.0)",
  org.eclipse.gef;bundle-version="[3.11.0,4.0.0)";visibility:=reexport,
diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/edit/IntEditingSupport.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/edit/IntEditingSupport.java
index 26a29edc..ba70873a 100644
--- a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/edit/IntEditingSupport.java
+++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/edit/IntEditingSupport.java
@@ -7,9 +7,9 @@
 package de.bmotionstudio.gef.editor.edit;
 
 import org.eclipse.core.databinding.DataBindingContext;
-import org.eclipse.core.databinding.beans.BeansObservables;
+import org.eclipse.core.databinding.beans.typed.BeanProperties;
 import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.jface.databinding.swt.SWTObservables;
+import org.eclipse.jface.databinding.swt.typed.WidgetProperties;
 import org.eclipse.jface.databinding.viewers.ObservableValueEditingSupport;
 import org.eclipse.jface.viewers.CellEditor;
 import org.eclipse.jface.viewers.TableViewer;
@@ -47,13 +47,13 @@ public class IntEditingSupport extends ObservableValueEditingSupport {
 	@Override
 	protected IObservableValue doCreateCellEditorObservable(
 			CellEditor cellEditor) {
-		return SWTObservables.observeText(cellEditor.getControl(), SWT.Modify);
+		return WidgetProperties.text(SWT.Modify).observe(cellEditor.getControl());
 	}
 
 	@Override
 	protected IObservableValue doCreateElementObservable(Object element,
 			ViewerCell cell) {
-		return BeansObservables.observeValue(element, atr);
+		return BeanProperties.value(atr).observe(element);
 	}
 
 	@Override
diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/edit/PredicateEditingSupport.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/edit/PredicateEditingSupport.java
index 3ad7a19c..08dff2da 100644
--- a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/edit/PredicateEditingSupport.java
+++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/edit/PredicateEditingSupport.java
@@ -6,9 +6,9 @@
 package de.bmotionstudio.gef.editor.edit;
 
 import org.eclipse.core.databinding.DataBindingContext;
-import org.eclipse.core.databinding.beans.BeansObservables;
+import org.eclipse.core.databinding.beans.typed.BeanProperties;
 import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.jface.databinding.swt.SWTObservables;
+import org.eclipse.jface.databinding.swt.typed.WidgetProperties;
 import org.eclipse.jface.databinding.viewers.ObservableValueEditingSupport;
 import org.eclipse.jface.viewers.CellEditor;
 import org.eclipse.jface.viewers.TableViewer;
@@ -41,13 +41,13 @@ public class PredicateEditingSupport extends ObservableValueEditingSupport {
 	@Override
 	protected IObservableValue doCreateCellEditorObservable(
 			CellEditor cellEditor) {
-		return SWTObservables.observeText(cellEditor.getControl(), SWT.Modify);
+		return WidgetProperties.text(SWT.Modify).observe(cellEditor.getControl());
 	}
 
 	@Override
 	protected IObservableValue doCreateElementObservable(Object element,
 			ViewerCell cell) {
-		return BeansObservables.observeValue(element, property);
+		return BeanProperties.value(property).observe(element);
 	}
 
 	@Override
diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/edit/TextEditingSupport.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/edit/TextEditingSupport.java
index 4181dbeb..4dc64fe1 100644
--- a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/edit/TextEditingSupport.java
+++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/edit/TextEditingSupport.java
@@ -7,9 +7,9 @@
 package de.bmotionstudio.gef.editor.edit;
 
 import org.eclipse.core.databinding.DataBindingContext;
-import org.eclipse.core.databinding.beans.BeansObservables;
+import org.eclipse.core.databinding.beans.typed.BeanProperties;
 import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.jface.databinding.swt.SWTObservables;
+import org.eclipse.jface.databinding.swt.typed.WidgetProperties;
 import org.eclipse.jface.databinding.viewers.ObservableValueEditingSupport;
 import org.eclipse.jface.viewers.CellEditor;
 import org.eclipse.jface.viewers.ColumnViewer;
@@ -34,13 +34,13 @@ public class TextEditingSupport extends ObservableValueEditingSupport {
 	@Override
 	protected IObservableValue doCreateCellEditorObservable(
 			CellEditor cellEditor) {
-		return SWTObservables.observeText(cellEditor.getControl(), SWT.Modify);
+		return WidgetProperties.text(SWT.Modify).observe(cellEditor.getControl());
 	}
 
 	@Override
 	protected IObservableValue doCreateElementObservable(Object element,
 			ViewerCell cell) {
-		return BeansObservables.observeValue(element, property);
+		return BeanProperties.value(property).observe(element);
 	}
 
 	@Override
diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/edit/TypeEditingSupport.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/edit/TypeEditingSupport.java
index 8c009c4b..4316d510 100644
--- a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/edit/TypeEditingSupport.java
+++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/edit/TypeEditingSupport.java
@@ -7,9 +7,9 @@
 package de.bmotionstudio.gef.editor.edit;
 
 import org.eclipse.core.databinding.DataBindingContext;
-import org.eclipse.core.databinding.beans.BeansObservables;
+import org.eclipse.core.databinding.beans.typed.BeanProperties;
 import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.jface.databinding.swt.SWTObservables;
+import org.eclipse.jface.databinding.swt.typed.WidgetProperties;
 import org.eclipse.jface.databinding.viewers.ObservableValueEditingSupport;
 import org.eclipse.jface.viewers.CellEditor;
 import org.eclipse.jface.viewers.ColumnViewer;
@@ -33,13 +33,13 @@ public class TypeEditingSupport extends ObservableValueEditingSupport {
 	@Override
 	protected IObservableValue doCreateCellEditorObservable(
 			CellEditor cellEditor) {
-		return SWTObservables.observeSelection(cellEditor.getControl());
+		return WidgetProperties.widgetSelection().observe(cellEditor.getControl());
 	}
 
 	@Override
 	protected IObservableValue doCreateElementObservable(Object element,
 			ViewerCell cell) {
-		return BeansObservables.observeValue(element, propertyName);
+		return BeanProperties.value(propertyName).observe(element);
 	}
 
 	@Override
diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/observer/wizard/WizardColumnObserver.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/observer/wizard/WizardColumnObserver.java
index 7929eef1..9312d519 100644
--- a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/observer/wizard/WizardColumnObserver.java
+++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/observer/wizard/WizardColumnObserver.java
@@ -7,8 +7,8 @@
 package de.bmotionstudio.gef.editor.observer.wizard;
 
 import org.eclipse.core.databinding.DataBindingContext;
-import org.eclipse.core.databinding.beans.BeansObservables;
-import org.eclipse.jface.databinding.swt.SWTObservables;
+import org.eclipse.core.databinding.beans.typed.BeanProperties;
+import org.eclipse.jface.databinding.swt.typed.WidgetProperties;
 import org.eclipse.jface.dialogs.MessageDialog;
 import org.eclipse.jface.wizard.WizardPage;
 import org.eclipse.swt.SWT;
@@ -75,14 +75,15 @@ public class WizardColumnObserver extends ObserverWizard {
 
 		private void initBindings(DataBindingContext dbc) {
 
-			dbc.bindValue(SWTObservables.observeText(txtPredicate, SWT.Modify),
-					BeansObservables.observeValue(
-							(ColumnObserver) getObserver(), "predicate"));
+			dbc.bindValue(
+					WidgetProperties.text(SWT.Modify).observe(txtPredicate),
+					BeanProperties.value(ColumnObserver.class, "predicate")
+							.observe((ColumnObserver) getObserver()));
 
 			dbc.bindValue(
-					SWTObservables.observeText(txtExpression, SWT.Modify),
-					BeansObservables.observeValue(
-							(ColumnObserver) getObserver(), "expression"));
+					WidgetProperties.text(SWT.Modify).observe(txtExpression),
+					BeanProperties.value(ColumnObserver.class, "expression")
+							.observe((ColumnObserver) getObserver()));
 
 		}
 
diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/observer/wizard/WizardObserverCSwitchCoordinates.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/observer/wizard/WizardObserverCSwitchCoordinates.java
index 9f89e701..f0b3c4a0 100644
--- a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/observer/wizard/WizardObserverCSwitchCoordinates.java
+++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/observer/wizard/WizardObserverCSwitchCoordinates.java
@@ -7,7 +7,7 @@
 package de.bmotionstudio.gef.editor.observer.wizard;
 
 import org.eclipse.core.databinding.DataBindingContext;
-import org.eclipse.core.databinding.beans.BeansObservables;
+import org.eclipse.core.databinding.beans.typed.BeanProperties;
 import org.eclipse.core.databinding.observable.list.WritableList;
 import org.eclipse.core.databinding.observable.map.IObservableMap;
 import org.eclipse.jface.databinding.viewers.ObservableListContentProvider;
@@ -41,6 +41,7 @@ import de.bmotionstudio.gef.editor.edit.PredicateEditingSupport;
 import de.bmotionstudio.gef.editor.edit.TextEditingSupport;
 import de.bmotionstudio.gef.editor.model.BControl;
 import de.bmotionstudio.gef.editor.observer.Observer;
+import de.bmotionstudio.gef.editor.observer.ObserverEvalObject;
 import de.bmotionstudio.gef.editor.observer.ObserverWizard;
 import de.bmotionstudio.gef.editor.observer.SwitchChildCoordinates;
 import de.bmotionstudio.gef.editor.observer.ToggleObjectCoordinates;
@@ -168,12 +169,13 @@ public class WizardObserverCSwitchCoordinates extends ObserverWizard {
 
 			ObservableListContentProvider contentProvider = new ObservableListContentProvider();
 			tableViewer.setContentProvider(contentProvider);
-			tableViewer
-					.setLabelProvider(new ObserverLabelProvider(
-							BeansObservables.observeMaps(
-									contentProvider.getKnownElements(),
-									new String[] { "eval", "bcontrol", "x",
-											"y", "animate" })));
+			tableViewer.setLabelProvider(new ObserverLabelProvider(new IObservableMap[] {
+				BeanProperties.value(ObserverEvalObject.class, "eval").observeDetail(contentProvider.getKnownElements()),
+				BeanProperties.value(ToggleObjectCoordinates.class, "bcontrol").observeDetail(contentProvider.getKnownElements()),
+				BeanProperties.value(ToggleObjectCoordinates.class, "x").observeDetail(contentProvider.getKnownElements()),
+				BeanProperties.value(ToggleObjectCoordinates.class, "y").observeDetail(contentProvider.getKnownElements()),
+				BeanProperties.value(ToggleObjectCoordinates.class, "animate").observeDetail(contentProvider.getKnownElements()),
+			}));
 
 			final WritableList input = new WritableList(
 					((SwitchChildCoordinates) getObserver()).getToggleObjects(),
diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/observer/wizard/WizardObserverListenOperationByPredicate.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/observer/wizard/WizardObserverListenOperationByPredicate.java
index 6959c465..8595875b 100644
--- a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/observer/wizard/WizardObserverListenOperationByPredicate.java
+++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/observer/wizard/WizardObserverListenOperationByPredicate.java
@@ -10,7 +10,7 @@ import java.util.ArrayList;
 import java.util.List;
 
 import org.eclipse.core.databinding.DataBindingContext;
-import org.eclipse.core.databinding.beans.BeansObservables;
+import org.eclipse.core.databinding.beans.typed.BeanProperties;
 import org.eclipse.core.databinding.observable.list.ComputedList;
 import org.eclipse.core.databinding.observable.list.WritableList;
 import org.eclipse.core.databinding.observable.map.IObservableMap;
@@ -55,6 +55,7 @@ import de.bmotionstudio.gef.editor.edit.PredicateEditingSupport;
 import de.bmotionstudio.gef.editor.model.BControl;
 import de.bmotionstudio.gef.editor.observer.ListenOperationByPredicate;
 import de.bmotionstudio.gef.editor.observer.Observer;
+import de.bmotionstudio.gef.editor.observer.ObserverEvalObject;
 import de.bmotionstudio.gef.editor.observer.ObserverWizard;
 import de.bmotionstudio.gef.editor.property.CheckboxCellEditorHelper;
 import de.bmotionstudio.gef.editor.scheduler.PredicateOperation;
@@ -169,11 +170,13 @@ public class WizardObserverListenOperationByPredicate extends ObserverWizard {
 
 			ObservableListContentProvider contentProvider = new ObservableListContentProvider();
 			tableViewer.setContentProvider(contentProvider);
-			tableViewer.setLabelProvider(new ObserverLabelProvider(
-					BeansObservables.observeMaps(
-							contentProvider.getKnownElements(), new String[] {
-									"operationName", "predicate", "attribute",
-									"value", "isExpressionMode" })));
+			tableViewer.setLabelProvider(new ObserverLabelProvider(new IObservableMap[] {
+				BeanProperties.value(PredicateOperation.class, "operationName").observeDetail(contentProvider.getKnownElements()),
+				BeanProperties.value(PredicateOperation.class, "predicate").observeDetail(contentProvider.getKnownElements()),
+				BeanProperties.value(ObserverEvalObject.class, "attribute").observeDetail(contentProvider.getKnownElements()),
+				BeanProperties.value(ObserverEvalObject.class, "value").observeDetail(contentProvider.getKnownElements()),
+				BeanProperties.value(ObserverEvalObject.class, "isExpressionMode").observeDetail(contentProvider.getKnownElements()),
+			}));
 			final WritableList input = new WritableList(
 					((ListenOperationByPredicate) getObserver()).getList(),
 					PredicateOperation.class);
diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/observer/wizard/WizardObserverSetAttribute.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/observer/wizard/WizardObserverSetAttribute.java
index 40b7c19c..6801af40 100644
--- a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/observer/wizard/WizardObserverSetAttribute.java
+++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/observer/wizard/WizardObserverSetAttribute.java
@@ -9,7 +9,7 @@ import java.util.ArrayList;
 import java.util.List;
 
 import org.eclipse.core.databinding.DataBindingContext;
-import org.eclipse.core.databinding.beans.BeansObservables;
+import org.eclipse.core.databinding.beans.typed.BeanProperties;
 import org.eclipse.core.databinding.observable.list.ComputedList;
 import org.eclipse.core.databinding.observable.list.WritableList;
 import org.eclipse.core.databinding.observable.map.IObservableMap;
@@ -54,6 +54,7 @@ import de.bmotionstudio.gef.editor.edit.IsExpressionModeEditingSupport;
 import de.bmotionstudio.gef.editor.edit.PredicateEditingSupport;
 import de.bmotionstudio.gef.editor.model.BControl;
 import de.bmotionstudio.gef.editor.observer.Observer;
+import de.bmotionstudio.gef.editor.observer.ObserverEvalObject;
 import de.bmotionstudio.gef.editor.observer.ObserverWizard;
 import de.bmotionstudio.gef.editor.observer.SetAttribute;
 import de.bmotionstudio.gef.editor.observer.SetAttributeObject;
@@ -161,11 +162,12 @@ public class WizardObserverSetAttribute extends ObserverWizard {
 			ObservableListContentProvider contentProvider = new ObservableListContentProvider();
 			tableViewer.setContentProvider(contentProvider);
 
-			tableViewer.setLabelProvider(new ObserverLabelProvider(
-					BeansObservables.observeMaps(
-							contentProvider.getKnownElements(), new String[] {
-									"eval", "attribute", "value",
-									"isExpressionMode" })));
+			tableViewer.setLabelProvider(new ObserverLabelProvider(new IObservableMap[] {
+				BeanProperties.value(ObserverEvalObject.class, "eval").observeDetail(contentProvider.getKnownElements()),
+				BeanProperties.value(ObserverEvalObject.class, "attribute").observeDetail(contentProvider.getKnownElements()),
+				BeanProperties.value(ObserverEvalObject.class, "value").observeDetail(contentProvider.getKnownElements()),
+				BeanProperties.value(ObserverEvalObject.class, "isExpressionMode").observeDetail(contentProvider.getKnownElements()),
+			}));
 			input = new WritableList(
 					((SetAttribute) getObserver()).getSetAttributeObjects(),
 					SetAttributeObject.class);
diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/observer/wizard/WizardObserverSimpleValueDisplay.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/observer/wizard/WizardObserverSimpleValueDisplay.java
index 6a4ee8d9..e708b45b 100644
--- a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/observer/wizard/WizardObserverSimpleValueDisplay.java
+++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/observer/wizard/WizardObserverSimpleValueDisplay.java
@@ -7,8 +7,8 @@
 package de.bmotionstudio.gef.editor.observer.wizard;
 
 import org.eclipse.core.databinding.DataBindingContext;
-import org.eclipse.core.databinding.beans.BeansObservables;
-import org.eclipse.jface.databinding.swt.SWTObservables;
+import org.eclipse.core.databinding.beans.typed.BeanProperties;
+import org.eclipse.jface.databinding.swt.typed.WidgetProperties;
 import org.eclipse.jface.dialogs.MessageDialog;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.graphics.Font;
@@ -93,18 +93,17 @@ public class WizardObserverSimpleValueDisplay extends ObserverWizard {
 
 		private void initBindings(DataBindingContext dbc) {
 
-			dbc.bindValue(SWTObservables.observeText(txtPredicate, SWT.Modify),
-					BeansObservables.observeValue(
-							(SimpleValueDisplay) getObserver(), "predicate"));
+			dbc.bindValue(WidgetProperties.text(SWT.Modify).observe(txtPredicate),
+					BeanProperties.value(SimpleValueDisplay.class, "predicate")
+							.observe((SimpleValueDisplay) getObserver()));
 
-			dbc.bindValue(
-					SWTObservables.observeText(txtExpression, SWT.Modify),
-					BeansObservables.observeValue(
-							(SimpleValueDisplay) getObserver(), "eval"));
+			dbc.bindValue(WidgetProperties.text(SWT.Modify).observe(txtExpression),
+					BeanProperties.value(SimpleValueDisplay.class, "eval")
+							.observe((SimpleValueDisplay) getObserver()));
 
-			dbc.bindValue(SWTObservables.observeText(txtReplacementString,
-					SWT.Modify), BeansObservables.observeValue(
-					(SimpleValueDisplay) getObserver(), "replacementString"));
+			dbc.bindValue(WidgetProperties.text(SWT.Modify).observe(txtReplacementString), 
+					BeanProperties.value(SimpleValueDisplay.class, "replacementString")
+							.observe((SimpleValueDisplay) getObserver()));
 
 		}
 
diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/observer/wizard/WizardObserverSwitchCoordinates.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/observer/wizard/WizardObserverSwitchCoordinates.java
index 0b4bb1df..334516db 100644
--- a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/observer/wizard/WizardObserverSwitchCoordinates.java
+++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/observer/wizard/WizardObserverSwitchCoordinates.java
@@ -7,7 +7,7 @@
 package de.bmotionstudio.gef.editor.observer.wizard;
 
 import org.eclipse.core.databinding.DataBindingContext;
-import org.eclipse.core.databinding.beans.BeansObservables;
+import org.eclipse.core.databinding.beans.typed.BeanProperties;
 import org.eclipse.core.databinding.observable.list.WritableList;
 import org.eclipse.core.databinding.observable.map.IObservableMap;
 import org.eclipse.jface.databinding.viewers.ObservableListContentProvider;
@@ -42,6 +42,7 @@ import de.bmotionstudio.gef.editor.edit.PredicateEditingSupport;
 import de.bmotionstudio.gef.editor.edit.TextEditingSupport;
 import de.bmotionstudio.gef.editor.model.BControl;
 import de.bmotionstudio.gef.editor.observer.Observer;
+import de.bmotionstudio.gef.editor.observer.ObserverEvalObject;
 import de.bmotionstudio.gef.editor.observer.ObserverWizard;
 import de.bmotionstudio.gef.editor.observer.SwitchCoordinates;
 import de.bmotionstudio.gef.editor.observer.ToggleObjectCoordinates;
@@ -154,10 +155,11 @@ public class WizardObserverSwitchCoordinates extends ObserverWizard {
 
 			ObservableListContentProvider contentProvider = new ObservableListContentProvider();
 			tableViewer.setContentProvider(contentProvider);
-			tableViewer.setLabelProvider(new ObserverLabelProvider(
-					BeansObservables.observeMaps(
-							contentProvider.getKnownElements(), new String[] {
-									"eval", "x", "y" })));
+			tableViewer.setLabelProvider(new ObserverLabelProvider(new IObservableMap[] {
+				BeanProperties.value(ObserverEvalObject.class, "eval").observeDetail(contentProvider.getKnownElements()),
+				BeanProperties.value(ToggleObjectCoordinates.class, "x").observeDetail(contentProvider.getKnownElements()),
+				BeanProperties.value(ToggleObjectCoordinates.class, "y").observeDetail(contentProvider.getKnownElements()),
+			}));
 
 			final WritableList input = new WritableList(
 					((SwitchCoordinates) getObserver()).getToggleObjects(),
diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/observer/wizard/WizardObserverSwitchImage.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/observer/wizard/WizardObserverSwitchImage.java
index c9530533..4f3f429e 100644
--- a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/observer/wizard/WizardObserverSwitchImage.java
+++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/observer/wizard/WizardObserverSwitchImage.java
@@ -7,7 +7,7 @@
 package de.bmotionstudio.gef.editor.observer.wizard;
 
 import org.eclipse.core.databinding.DataBindingContext;
-import org.eclipse.core.databinding.beans.BeansObservables;
+import org.eclipse.core.databinding.beans.typed.BeanProperties;
 import org.eclipse.core.databinding.observable.list.WritableList;
 import org.eclipse.core.databinding.observable.map.IObservableMap;
 import org.eclipse.jface.databinding.viewers.ObservableListContentProvider;
@@ -44,6 +44,7 @@ import de.bmotionstudio.gef.editor.edit.IsExpressionModeEditingSupport;
 import de.bmotionstudio.gef.editor.edit.PredicateEditingSupport;
 import de.bmotionstudio.gef.editor.model.BControl;
 import de.bmotionstudio.gef.editor.observer.Observer;
+import de.bmotionstudio.gef.editor.observer.ObserverEvalObject;
 import de.bmotionstudio.gef.editor.observer.ObserverWizard;
 import de.bmotionstudio.gef.editor.observer.SwitchImage;
 import de.bmotionstudio.gef.editor.observer.ToggleObjectImage;
@@ -144,10 +145,11 @@ public class WizardObserverSwitchImage extends ObserverWizard {
 			ObservableListContentProvider contentProvider = new ObservableListContentProvider();
 			tableViewer.setContentProvider(contentProvider);
 
-			tableViewer.setLabelProvider(new ObserverLabelProvider(
-					BeansObservables.observeMaps(
-							contentProvider.getKnownElements(), new String[] {
-									"eval", "image", "isExpressionMode" })));
+			tableViewer.setLabelProvider(new ObserverLabelProvider(new IObservableMap[] {
+				BeanProperties.value(ObserverEvalObject.class, "eval").observeDetail(contentProvider.getKnownElements()),
+				BeanProperties.value(ToggleObjectImage.class, "image").observeDetail(contentProvider.getKnownElements()),
+				BeanProperties.value(ObserverEvalObject.class, "isExpressionMode").observeDetail(contentProvider.getKnownElements()),
+			}));
 			final WritableList input = new WritableList(
 					((SwitchImage) getObserver()).getToggleObjects(),
 					ToggleObjectImage.class);
diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/observer/wizard/WizardTableObserver.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/observer/wizard/WizardTableObserver.java
index 3eeeef60..74f3765b 100644
--- a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/observer/wizard/WizardTableObserver.java
+++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/observer/wizard/WizardTableObserver.java
@@ -9,8 +9,8 @@ package de.bmotionstudio.gef.editor.observer.wizard;
 import java.util.ArrayList;
 
 import org.eclipse.core.databinding.DataBindingContext;
-import org.eclipse.core.databinding.beans.BeansObservables;
-import org.eclipse.jface.databinding.swt.SWTObservables;
+import org.eclipse.core.databinding.beans.typed.BeanProperties;
+import org.eclipse.jface.databinding.swt.typed.WidgetProperties;
 import org.eclipse.jface.dialogs.MessageDialog;
 import org.eclipse.jface.wizard.WizardPage;
 import org.eclipse.swt.SWT;
@@ -152,22 +152,21 @@ public class WizardTableObserver extends ObserverWizard {
 
 		private void initBindings(DataBindingContext dbc) {
 
-			dbc.bindValue(SWTObservables.observeText(txtPredicate, SWT.Modify),
-					BeansObservables.observeValue(
-							(TableObserver) getObserver(), "predicate"));
+			dbc.bindValue(WidgetProperties.text(SWT.Modify).observe(txtPredicate),
+					BeanProperties.value(TableObserver.class, "predicate")
+							.observe((TableObserver) getObserver()));
 
-			dbc.bindValue(
-					SWTObservables.observeText(txtExpression, SWT.Modify),
-					BeansObservables.observeValue(
-							(TableObserver) getObserver(), "expression"));
+			dbc.bindValue(WidgetProperties.text(SWT.Modify).observe(txtExpression),
+					BeanProperties.value(TableObserver.class, "expression")
+							.observe((TableObserver) getObserver()));
 
-			dbc.bindValue(SWTObservables.observeSelection(cbOverrideCells),
-					BeansObservables.observeValue(
-							(TableObserver) getObserver(), "overrideCells"));
+			dbc.bindValue(WidgetProperties.widgetSelection().observe(cbOverrideCells),
+					BeanProperties.value(TableObserver.class, "overrideCells")
+							.observe((TableObserver) getObserver()));
 
-			dbc.bindValue(SWTObservables.observeSelection(cbKeepHeader),
-					BeansObservables.observeValue(
-							(TableObserver) getObserver(), "keepHeader"));
+			dbc.bindValue(WidgetProperties.widgetSelection().observe(cbKeepHeader),
+					BeanProperties.value(TableObserver.class, "keepHeader")
+							.observe((TableObserver) getObserver()));
 
 		}
 
diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/scheduler/wizard/SchedulerObjectDialog.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/scheduler/wizard/SchedulerObjectDialog.java
index 48f20af7..ea4fb929 100644
--- a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/scheduler/wizard/SchedulerObjectDialog.java
+++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/scheduler/wizard/SchedulerObjectDialog.java
@@ -7,8 +7,9 @@
 package de.bmotionstudio.gef.editor.scheduler.wizard;
 
 import org.eclipse.core.databinding.DataBindingContext;
-import org.eclipse.core.databinding.beans.BeansObservables;
+import org.eclipse.core.databinding.beans.typed.BeanProperties;
 import org.eclipse.core.databinding.observable.list.WritableList;
+import org.eclipse.core.databinding.observable.map.IObservableMap;
 import org.eclipse.jface.databinding.viewers.ObservableListContentProvider;
 import org.eclipse.jface.databinding.viewers.ObservableMapLabelProvider;
 import org.eclipse.jface.dialogs.Dialog;
@@ -100,10 +101,11 @@ public class SchedulerObjectDialog extends Dialog {
 
 		ObservableListContentProvider contentProvider = new ObservableListContentProvider();
 		tableViewer.setContentProvider(contentProvider);
-		tableViewer.setLabelProvider(new ObservableMapLabelProvider(
-				BeansObservables.observeMaps(
-						contentProvider.getKnownElements(), new String[] {
-								"command", "parameter", "maxrandom" })) {
+		tableViewer.setLabelProvider(new ObservableMapLabelProvider(new IObservableMap[] {
+			BeanProperties.value(AnimationScriptStep.class, "command").observeDetail(contentProvider.getKnownElements()),
+			BeanProperties.value(AnimationScriptStep.class, "parameter").observeDetail(contentProvider.getKnownElements()),
+			BeanProperties.value(AnimationScriptStep.class, "maxrandom").observeDetail(contentProvider.getKnownElements()),
+		}) {
 
 			@Override
 			public Image getColumnImage(final Object element,
diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/scheduler/wizard/WizardExecuteOperationByPredicate.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/scheduler/wizard/WizardExecuteOperationByPredicate.java
index 8ee01a56..2cc81c49 100644
--- a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/scheduler/wizard/WizardExecuteOperationByPredicate.java
+++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/scheduler/wizard/WizardExecuteOperationByPredicate.java
@@ -7,17 +7,17 @@
 package de.bmotionstudio.gef.editor.scheduler.wizard;
 
 import org.eclipse.core.databinding.DataBindingContext;
-import org.eclipse.core.databinding.beans.BeansObservables;
+import org.eclipse.core.databinding.beans.typed.BeanProperties;
 import org.eclipse.core.databinding.observable.list.WritableList;
 import org.eclipse.core.databinding.observable.map.IObservableMap;
 import org.eclipse.core.databinding.observable.value.IObservableValue;
 import org.eclipse.core.databinding.observable.value.IValueChangeListener;
 import org.eclipse.core.databinding.observable.value.ValueChangeEvent;
 import org.eclipse.draw2d.ColorConstants;
-import org.eclipse.jface.databinding.swt.SWTObservables;
+import org.eclipse.jface.databinding.swt.typed.WidgetProperties;
 import org.eclipse.jface.databinding.viewers.ObservableListContentProvider;
 import org.eclipse.jface.databinding.viewers.ObservableMapLabelProvider;
-import org.eclipse.jface.databinding.viewers.ViewersObservables;
+import org.eclipse.jface.databinding.viewers.typed.ViewerProperties;
 import org.eclipse.jface.dialogs.MessageDialog;
 import org.eclipse.jface.resource.JFaceResources;
 import org.eclipse.jface.viewers.ComboViewer;
@@ -46,6 +46,7 @@ import de.bmotionstudio.gef.editor.eventb.MachineContentObject;
 import de.bmotionstudio.gef.editor.eventb.MachineOperation;
 import de.bmotionstudio.gef.editor.model.BControl;
 import de.bmotionstudio.gef.editor.scheduler.ExecuteOperationByPredicate;
+import de.bmotionstudio.gef.editor.scheduler.PredicateOperation;
 import de.bmotionstudio.gef.editor.scheduler.SchedulerEvent;
 import de.bmotionstudio.gef.editor.scheduler.SchedulerWizard;
 
@@ -173,9 +174,9 @@ public class WizardExecuteOperationByPredicate extends SchedulerWizard {
 
 			ObservableListContentProvider cbOpContentProvider = new ObservableListContentProvider();
 			cbOperation.setContentProvider(cbOpContentProvider);
-			IObservableMap[] attributeMaps = BeansObservables.observeMaps(
-					cbOpContentProvider.getKnownElements(),
-					MachineContentObject.class, new String[] { "label" });
+			IObservableMap[] attributeMaps = {
+				BeanProperties.value(MachineContentObject.class, "label").observeDetail(cbOpContentProvider.getKnownElements()),
+			};
 			cbOperation.setLabelProvider(new ObservableMapLabelProvider(
 					attributeMaps));
 			cbOperation.setInput(new WritableList(EventBHelper
@@ -185,19 +186,16 @@ public class WizardExecuteOperationByPredicate extends SchedulerWizard {
 					new Font(Display.getDefault(), new FontData("Arial", 10,
 							SWT.NONE)));
 
-			final IObservableValue observeSelection = ViewersObservables
-					.observeSingleSelection(cbOperation);
+			IObservableValue observeSelection = ViewerProperties.singleSelection().observe(cbOperation);
 
-			dbc.bindValue(SWTObservables.observeSelection(cbOperation
-					.getCombo()), BeansObservables.observeValue(
-					((ExecuteOperationByPredicate) getScheduler())
-							.getPredicateOperation(), "operationName"), null,
-					null);
+			dbc.bindValue(WidgetProperties.widgetSelection().observe(cbOperation.getCombo()),
+					BeanProperties.value(PredicateOperation.class, "operationName")
+							.observe(((ExecuteOperationByPredicate) getScheduler()).getPredicateOperation()),
+					null, null);
 
-			dbc.bindValue(SWTObservables.observeText(txtPredicate, SWT.Modify),
-					BeansObservables.observeValue(
-							((ExecuteOperationByPredicate) getScheduler())
-									.getPredicateOperation(), "predicate"));
+			dbc.bindValue(WidgetProperties.text(SWT.Modify).observe(txtPredicate),
+					BeanProperties.value(PredicateOperation.class, "predicate")
+							.observe(((ExecuteOperationByPredicate) getScheduler()).getPredicateOperation()));
 
 			observeSelection.addValueChangeListener(new IValueChangeListener() {
 				public void handleValueChange(ValueChangeEvent event) {
@@ -206,15 +204,13 @@ public class WizardExecuteOperationByPredicate extends SchedulerWizard {
 				}
 			});
 
-			dbc.bindValue(SWTObservables.observeSelection(checkboxRandomMode),
-					BeansObservables.observeValue(
-							((ExecuteOperationByPredicate) getScheduler())
-									.getPredicateOperation(), "random"));
+			dbc.bindValue(WidgetProperties.widgetSelection().observe(checkboxRandomMode),
+					BeanProperties.value(PredicateOperation.class, "random")
+							.observe(((ExecuteOperationByPredicate) getScheduler()).getPredicateOperation()));
 
-			dbc.bindValue(SWTObservables.observeText(txtMaxRandomOperations,
-					SWT.Modify), BeansObservables.observeValue(
-					((ExecuteOperationByPredicate) getScheduler())
-							.getPredicateOperation(), "maxrandom"));
+			dbc.bindValue(WidgetProperties.text(SWT.Modify).observe(txtMaxRandomOperations),
+					BeanProperties.value(PredicateOperation.class, "maxrandom")
+							.observe(((ExecuteOperationByPredicate) getScheduler()).getPredicateOperation()));
 
 		}
 
diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/scheduler/wizard/WizardExecuteOperationByPredicateMulti.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/scheduler/wizard/WizardExecuteOperationByPredicateMulti.java
index 332fd422..5afd5784 100644
--- a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/scheduler/wizard/WizardExecuteOperationByPredicateMulti.java
+++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/scheduler/wizard/WizardExecuteOperationByPredicateMulti.java
@@ -6,8 +6,9 @@
 package de.bmotionstudio.gef.editor.scheduler.wizard;
 
 import org.eclipse.core.databinding.DataBindingContext;
-import org.eclipse.core.databinding.beans.BeansObservables;
+import org.eclipse.core.databinding.beans.typed.BeanProperties;
 import org.eclipse.core.databinding.observable.list.WritableList;
+import org.eclipse.core.databinding.observable.map.IObservableMap;
 import org.eclipse.jface.databinding.viewers.ObservableListContentProvider;
 import org.eclipse.jface.databinding.viewers.ObservableMapLabelProvider;
 import org.eclipse.jface.dialogs.MessageDialog;
@@ -98,11 +99,12 @@ public class WizardExecuteOperationByPredicateMulti extends SchedulerWizard {
 			ObservableListContentProvider contentProvider = new ObservableListContentProvider();
 			tableViewer.setContentProvider(contentProvider);
 
-			tableViewer.setLabelProvider(new ObservableMapLabelProvider(
-					BeansObservables.observeMaps(
-							contentProvider.getKnownElements(), new String[] {
-									"executePredicate", "operationName",
-									"predicate", "maxrandom" })));
+			tableViewer.setLabelProvider(new ObservableMapLabelProvider(new IObservableMap[] {
+				BeanProperties.value(PredicateOperation.class, "executePredicate").observeDetail(contentProvider.getKnownElements()),
+				BeanProperties.value(PredicateOperation.class, "operationName").observeDetail(contentProvider.getKnownElements()),
+				BeanProperties.value(PredicateOperation.class, "predicate").observeDetail(contentProvider.getKnownElements()),
+				BeanProperties.value(PredicateOperation.class, "maxrandom").observeDetail(contentProvider.getKnownElements()),
+			}));
 			final WritableList input = new WritableList(
 					((ExecuteOperationByPredicateMulti) getScheduler())
 							.getOperationList(),
diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/scheduler/wizard/WizardExecuteScheduler.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/scheduler/wizard/WizardExecuteScheduler.java
index 538631f4..c0de0d6b 100644
--- a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/scheduler/wizard/WizardExecuteScheduler.java
+++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/scheduler/wizard/WizardExecuteScheduler.java
@@ -7,8 +7,9 @@
 package de.bmotionstudio.gef.editor.scheduler.wizard;
 
 import org.eclipse.core.databinding.DataBindingContext;
-import org.eclipse.core.databinding.beans.BeansObservables;
+import org.eclipse.core.databinding.beans.typed.BeanProperties;
 import org.eclipse.core.databinding.observable.list.WritableList;
+import org.eclipse.core.databinding.observable.map.IObservableMap;
 import org.eclipse.jface.databinding.viewers.ObservableListContentProvider;
 import org.eclipse.jface.databinding.viewers.ObservableMapLabelProvider;
 import org.eclipse.jface.dialogs.Dialog;
@@ -40,6 +41,7 @@ import de.bmotionstudio.gef.editor.edit.PredicateEditingSupport;
 import de.bmotionstudio.gef.editor.model.BControl;
 import de.bmotionstudio.gef.editor.scheduler.AnimationScriptObject;
 import de.bmotionstudio.gef.editor.scheduler.ExecuteAnimationScript;
+import de.bmotionstudio.gef.editor.scheduler.PredicateOperation;
 import de.bmotionstudio.gef.editor.scheduler.SchedulerEvent;
 import de.bmotionstudio.gef.editor.scheduler.SchedulerWizard;
 import de.bmotionstudio.gef.editor.util.BMotionWizardUtil;
@@ -84,10 +86,9 @@ public class WizardExecuteScheduler extends SchedulerWizard {
 			ObservableListContentProvider contentProvider = new ObservableListContentProvider();
 			tableViewer.setContentProvider(contentProvider);
 
-			tableViewer.setLabelProvider(new ObservableMapLabelProvider(
-					BeansObservables.observeMaps(
-							contentProvider.getKnownElements(),
-							new String[] { "predicate" })) {
+			tableViewer.setLabelProvider(new ObservableMapLabelProvider(new IObservableMap[] {
+				BeanProperties.value(PredicateOperation.class, "predicate").observeDetail(contentProvider.getKnownElements()),
+			}) {
 
 				@Override
 				public String getColumnText(Object element, int columnIndex) {
-- 
GitLab