diff org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/masterdetail/DetailObservableValue.d @ 85:6be48cf9f95c

Work on databinding
author Frank Benoit <benoit@tionex.de>
date Sat, 18 Apr 2009 13:54:50 +0200
parents 0a55d2d5a946
children
line wrap: on
line diff
--- a/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/masterdetail/DetailObservableValue.d	Sat Apr 18 09:25:29 2009 +0200
+++ b/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/masterdetail/DetailObservableValue.d	Sat Apr 18 13:54:50 2009 +0200
@@ -31,7 +31,8 @@
 
     private bool updating = false;
 
-    private IValueChangeListener innerChangeListener = new class() IValueChangeListener {
+    private IValueChangeListener innerChangeListener;
+    class InnerChangeListener : IValueChangeListener {
         public void handleValueChange(ValueChangeEvent event) {
             if (!updating) {
                 fireValueChange(event.diff);
@@ -56,6 +57,8 @@
      */
     public this(IObservableValue outerObservableValue,
             IObservableFactory factory, Object detailType) {
+innerChangeListener = new InnerChangeListener();
+outerChangeListener = new OuterChangeListener();
         super(outerObservableValue.getRealm());
         this.factory = factory;
         this.detailType = detailType;
@@ -65,7 +68,8 @@
         outerObservableValue.addValueChangeListener(outerChangeListener);
     }
 
-    IValueChangeListener outerChangeListener = new class() IValueChangeListener {
+    IValueChangeListener outerChangeListener;
+    class OuterChangeListener : IValueChangeListener {
         public void handleValueChange(ValueChangeEvent event) {
             Object oldValue = doGetValue();
             updateInnerObservableValue(outerObservableValue);
@@ -90,8 +94,8 @@
             if (detailType !is null) {
                 Assert
                         .isTrue(
-                                detailType.equals(innerValueType),
-                                "Cannot change value type in a nested observable value, from " + innerValueType + " to " + detailType); //$NON-NLS-1$ //$NON-NLS-2$
+                                cast(bool)detailType.opEquals(innerValueType),
+                                Format("Cannot change value type in a nested observable value, from {} to {}", innerValueType, detailType)); //$NON-NLS-1$ //$NON-NLS-2$
             }
             innerObservableValue.addValueChangeListener(innerChangeListener);
         }