Download
Getting Started
Members
Projects
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
More
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
Toggle navigation
Bugzilla – Attachment 122609 Details for
Bug 194734
[Databinding] Property-based observables
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read
this important communication.
[patch]
Update
clipboard.txt (text/plain), 54.48 KB, created by
Matthew Hall
on 2009-01-14 18:48:24 EST
(
hide
)
Description:
Update
Filename:
MIME Type:
Creator:
Matthew Hall
Created:
2009-01-14 18:48:24 EST
Size:
54.48 KB
patch
obsolete
>### Eclipse Workspace Patch 1.0 >#P org.eclipse.jface.examples.databinding >Index: src/org/eclipse/jface/examples/databinding/snippets/Snippet026AnonymousBeanProperties.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/snippets/Attic/Snippet026AnonymousBeanProperties.java,v >retrieving revision 1.1.2.1 >diff -u -r1.1.2.1 Snippet026AnonymousBeanProperties.java >--- src/org/eclipse/jface/examples/databinding/snippets/Snippet026AnonymousBeanProperties.java 8 Jan 2009 01:24:43 -0000 1.1.2.1 >+++ src/org/eclipse/jface/examples/databinding/snippets/Snippet026AnonymousBeanProperties.java 14 Jan 2009 23:37:31 -0000 >@@ -257,7 +257,7 @@ > > public void propertyChange(java.beans.PropertyChangeEvent evt) { > listener.handlePropertyChange(new PropertyChangeEvent(evt >- .getSource(), ContactGroupContactsProperty.this)); >+ .getSource(), ContactGroupContactsProperty.this, null)); > } > } > >#P org.eclipse.core.databinding.beans >Index: src/org/eclipse/core/internal/databinding/beans/BeanSetProperty.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/Attic/BeanSetProperty.java,v >retrieving revision 1.1.2.6 >diff -u -r1.1.2.6 BeanSetProperty.java >--- src/org/eclipse/core/internal/databinding/beans/BeanSetProperty.java 6 Jan 2009 06:21:00 -0000 1.1.2.6 >+++ src/org/eclipse/core/internal/databinding/beans/BeanSetProperty.java 14 Jan 2009 23:37:32 -0000 >@@ -20,6 +20,7 @@ > import java.util.HashSet; > import java.util.Set; > >+import org.eclipse.core.databinding.observable.Diffs; > import org.eclipse.core.databinding.observable.set.SetDiff; > import org.eclipse.core.databinding.property.INativePropertyListener; > import org.eclipse.core.databinding.property.IPropertyChangeListener; >@@ -94,9 +95,17 @@ > } > > public void propertyChange(java.beans.PropertyChangeEvent evt) { >+ SetDiff diff; >+ Object oldValue = evt.getOldValue(); >+ Object newValue = evt.getNewValue(); >+ if (oldValue != null && newValue != null) { >+ diff = Diffs.computeSetDiff(asSet(oldValue), asSet(newValue)); >+ } else { >+ diff = null; >+ } > if (propertyDescriptor.getName().equals(evt.getPropertyName())) { > listener.handlePropertyChange(new PropertyChangeEvent(evt >- .getSource(), BeanSetProperty.this)); >+ .getSource(), BeanSetProperty.this, diff)); > } > } > } >Index: src/org/eclipse/core/internal/databinding/beans/BeanListProperty.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/Attic/BeanListProperty.java,v >retrieving revision 1.1.2.5 >diff -u -r1.1.2.5 BeanListProperty.java >--- src/org/eclipse/core/internal/databinding/beans/BeanListProperty.java 6 Jan 2009 06:21:00 -0000 1.1.2.5 >+++ src/org/eclipse/core/internal/databinding/beans/BeanListProperty.java 14 Jan 2009 23:37:32 -0000 >@@ -19,6 +19,7 @@ > import java.util.Arrays; > import java.util.List; > >+import org.eclipse.core.databinding.observable.Diffs; > import org.eclipse.core.databinding.observable.list.ListDiff; > import org.eclipse.core.databinding.property.INativePropertyListener; > import org.eclipse.core.databinding.property.IPropertyChangeListener; >@@ -95,8 +96,17 @@ > > public void propertyChange(java.beans.PropertyChangeEvent evt) { > if (propertyDescriptor.getName().equals(evt.getPropertyName())) { >+ ListDiff diff; >+ Object oldValue = evt.getOldValue(); >+ Object newValue = evt.getNewValue(); >+ if (oldValue != null && newValue != null) { >+ diff = Diffs.computeListDiff(asList(oldValue), >+ asList(newValue)); >+ } else { >+ diff = null; >+ } > listener.handlePropertyChange(new PropertyChangeEvent(evt >- .getSource(), BeanListProperty.this)); >+ .getSource(), BeanListProperty.this, diff)); > } > } > } >Index: src/org/eclipse/core/internal/databinding/beans/BeanMapProperty.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/Attic/BeanMapProperty.java,v >retrieving revision 1.1.2.5 >diff -u -r1.1.2.5 BeanMapProperty.java >--- src/org/eclipse/core/internal/databinding/beans/BeanMapProperty.java 6 Jan 2009 06:21:00 -0000 1.1.2.5 >+++ src/org/eclipse/core/internal/databinding/beans/BeanMapProperty.java 14 Jan 2009 23:37:32 -0000 >@@ -17,6 +17,7 @@ > import java.util.HashMap; > import java.util.Map; > >+import org.eclipse.core.databinding.observable.Diffs; > import org.eclipse.core.databinding.observable.map.MapDiff; > import org.eclipse.core.databinding.property.INativePropertyListener; > import org.eclipse.core.databinding.property.IPropertyChangeListener; >@@ -82,8 +83,17 @@ > > public void propertyChange(java.beans.PropertyChangeEvent evt) { > if (propertyDescriptor.getName().equals(evt.getPropertyName())) { >+ MapDiff diff; >+ Object oldValue = evt.getOldValue(); >+ Object newValue = evt.getNewValue(); >+ if (oldValue != null && newValue != null) { >+ diff = Diffs.computeMapDiff(asMap(oldValue), >+ asMap(newValue)); >+ } else { >+ diff = null; >+ } > listener.handlePropertyChange(new PropertyChangeEvent(evt >- .getSource(), BeanMapProperty.this)); >+ .getSource(), BeanMapProperty.this, diff)); > } > } > } >Index: src/org/eclipse/core/internal/databinding/beans/BeanValueProperty.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/Attic/BeanValueProperty.java,v >retrieving revision 1.1.2.5 >diff -u -r1.1.2.5 BeanValueProperty.java >--- src/org/eclipse/core/internal/databinding/beans/BeanValueProperty.java 6 Jan 2009 06:21:00 -0000 1.1.2.5 >+++ src/org/eclipse/core/internal/databinding/beans/BeanValueProperty.java 14 Jan 2009 23:37:32 -0000 >@@ -15,6 +15,8 @@ > import java.beans.PropertyChangeListener; > import java.beans.PropertyDescriptor; > >+import org.eclipse.core.databinding.observable.Diffs; >+import org.eclipse.core.databinding.observable.value.ValueDiff; > import org.eclipse.core.databinding.property.INativePropertyListener; > import org.eclipse.core.databinding.property.IPropertyChangeListener; > import org.eclipse.core.databinding.property.PropertyChangeEvent; >@@ -66,8 +68,16 @@ > > public void propertyChange(java.beans.PropertyChangeEvent evt) { > if (propertyDescriptor.getName().equals(evt.getPropertyName())) { >+ ValueDiff diff; >+ Object oldValue = evt.getOldValue(); >+ Object newValue = evt.getNewValue(); >+ if (oldValue != null && newValue != null) { >+ diff = Diffs.createValueDiff(oldValue, newValue); >+ } else { >+ diff = null; >+ } > listener.handlePropertyChange(new PropertyChangeEvent(evt >- .getSource(), BeanValueProperty.this)); >+ .getSource(), BeanValueProperty.this, diff)); > } > } > } >#P org.eclipse.core.databinding >Index: src/org/eclipse/core/databinding/property/value/IValueProperty.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.core.databinding/src/org/eclipse/core/databinding/property/value/Attic/IValueProperty.java,v >retrieving revision 1.1.2.3 >diff -u -r1.1.2.3 IValueProperty.java >--- src/org/eclipse/core/databinding/property/value/IValueProperty.java 6 Jan 2009 06:21:06 -0000 1.1.2.3 >+++ src/org/eclipse/core/databinding/property/value/IValueProperty.java 14 Jan 2009 23:37:34 -0000 >@@ -68,11 +68,11 @@ > public IObservableValue observe(Realm realm, Object source); > > /** >- * Returns a factory for creating observable values in the current default >- * realm, tracking this property of a particular property source. >+ * Returns a factory for creating observable values tracking this property >+ * of a particular property source. > * >- * @return a factory for creating observable values in current default >- * realm, tracking this property of a particular property source. >+ * @return a factory for creating observable values tracking this property >+ * of a particular property source. > */ > public IObservableFactory valueFactory(); > >Index: src/org/eclipse/core/databinding/property/value/ValueProperty.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.core.databinding/src/org/eclipse/core/databinding/property/value/Attic/ValueProperty.java,v >retrieving revision 1.1.2.5 >diff -u -r1.1.2.5 ValueProperty.java >--- src/org/eclipse/core/databinding/property/value/ValueProperty.java 8 Jan 2009 01:24:49 -0000 1.1.2.5 >+++ src/org/eclipse/core/databinding/property/value/ValueProperty.java 14 Jan 2009 23:37:34 -0000 >@@ -17,7 +17,6 @@ > import org.eclipse.core.databinding.observable.masterdetail.IObservableFactory; > import org.eclipse.core.databinding.observable.masterdetail.MasterDetailObservables; > import org.eclipse.core.databinding.observable.value.IObservableValue; >-import org.eclipse.core.databinding.property.Property; > import org.eclipse.core.databinding.property.list.IListProperty; > import org.eclipse.core.databinding.property.map.IMapProperty; > import org.eclipse.core.databinding.property.set.ISetProperty; >@@ -31,16 +30,17 @@ > * > * @since 1.2 > */ >-public abstract class ValueProperty extends Property implements IValueProperty { >+public abstract class ValueProperty implements IValueProperty { > public IObservableValue observe(Object source) { >- Realm realm = getPreferredRealm(source); >- if (realm == null) >- realm = Realm.getDefault(); >- return observe(realm, source); >+ return observe(Realm.getDefault(), source); > } > > public IObservableFactory valueFactory() { >- return valueFactory(Realm.getDefault()); >+ return new IObservableFactory() { >+ public IObservable createObservable(Object target) { >+ return observe(target); >+ } >+ }; > } > > public IObservableFactory valueFactory(final Realm realm) { >Index: src/org/eclipse/core/databinding/property/value/SimpleValuePropertyObservableValue.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.core.databinding/src/org/eclipse/core/databinding/property/value/Attic/SimpleValuePropertyObservableValue.java,v >retrieving revision 1.1.2.4 >diff -u -r1.1.2.4 SimpleValuePropertyObservableValue.java >--- src/org/eclipse/core/databinding/property/value/SimpleValuePropertyObservableValue.java 23 Dec 2008 18:24:44 -0000 1.1.2.4 >+++ src/org/eclipse/core/databinding/property/value/SimpleValuePropertyObservableValue.java 14 Jan 2009 23:37:34 -0000 >@@ -14,6 +14,7 @@ > import org.eclipse.core.databinding.observable.Diffs; > import org.eclipse.core.databinding.observable.Realm; > import org.eclipse.core.databinding.observable.value.AbstractObservableValue; >+import org.eclipse.core.databinding.observable.value.ValueDiff; > import org.eclipse.core.databinding.property.INativePropertyListener; > import org.eclipse.core.databinding.property.IProperty; > import org.eclipse.core.databinding.property.IPropertyChangeListener; >@@ -54,11 +55,11 @@ > listener = property > .adaptListener(new IPropertyChangeListener() { > public void handlePropertyChange( >- PropertyChangeEvent event) { >+ final PropertyChangeEvent event) { > if (!isDisposed() && !updating) { > getRealm().exec(new Runnable() { > public void run() { >- notifyIfChanged(); >+ notifyIfChanged((ValueDiff) event.diff); > } > }); > } >@@ -77,7 +78,7 @@ > } > > protected Object doGetValue() { >- notifyIfChanged(); >+ notifyIfChanged(null); > return property.getValue(source); > } > >@@ -89,15 +90,17 @@ > updating = false; > } > >- notifyIfChanged(); >+ notifyIfChanged(null); > } > >- private void notifyIfChanged() { >+ private void notifyIfChanged(ValueDiff diff) { > if (hasListeners()) { > Object oldValue = cachedValue; > Object newValue = cachedValue = property.getValue(source); >+ if (diff == null) >+ diff = Diffs.createValueDiff(oldValue, newValue); > if (hasListeners() && !Util.equals(oldValue, newValue)) { >- fireValueChange(Diffs.createValueDiff(oldValue, newValue)); >+ fireValueChange(diff); > } > } > } >Index: src/org/eclipse/core/databinding/property/value/DelegatingValueProperty.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.core.databinding/src/org/eclipse/core/databinding/property/value/Attic/DelegatingValueProperty.java,v >retrieving revision 1.1.2.1 >diff -u -r1.1.2.1 DelegatingValueProperty.java >--- src/org/eclipse/core/databinding/property/value/DelegatingValueProperty.java 8 Jan 2009 01:24:50 -0000 1.1.2.1 >+++ src/org/eclipse/core/databinding/property/value/DelegatingValueProperty.java 14 Jan 2009 23:37:34 -0000 >@@ -18,7 +18,6 @@ > import org.eclipse.core.databinding.observable.value.IObservableValue; > import org.eclipse.core.databinding.property.INativePropertyListener; > import org.eclipse.core.databinding.property.IPropertyChangeListener; >-import org.eclipse.core.databinding.property.Property; > > /** > * @since 1.2 >@@ -60,16 +59,6 @@ > return valueType; > } > >- public Realm getPreferredRealm(Object source) { >- IValueProperty delegate = getDelegate(source); >- Realm realm = null; >- if (delegate instanceof Property) >- realm = ((Property) delegate).getPreferredRealm(source); >- if (realm == null) >- realm = super.getPreferredRealm(source); >- return realm; >- } >- > public IObservableValue observe(Realm realm, Object source) { > return getDelegate(source).observe(realm, source); > } >Index: src/org/eclipse/core/databinding/property/list/DelegatingListProperty.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.core.databinding/src/org/eclipse/core/databinding/property/list/Attic/DelegatingListProperty.java,v >retrieving revision 1.1.2.1 >diff -u -r1.1.2.1 DelegatingListProperty.java >--- src/org/eclipse/core/databinding/property/list/DelegatingListProperty.java 8 Jan 2009 01:24:50 -0000 1.1.2.1 >+++ src/org/eclipse/core/databinding/property/list/DelegatingListProperty.java 14 Jan 2009 23:37:33 -0000 >@@ -19,7 +19,6 @@ > import org.eclipse.core.databinding.observable.list.ListDiff; > import org.eclipse.core.databinding.property.INativePropertyListener; > import org.eclipse.core.databinding.property.IPropertyChangeListener; >-import org.eclipse.core.databinding.property.Property; > > /** > * @since 1.2 >@@ -53,16 +52,6 @@ > return elementType; > } > >- public Realm getPreferredRealm(Object source) { >- IListProperty delegate = getDelegate(source); >- Realm realm = null; >- if (delegate instanceof Property) >- realm = ((Property) delegate).getPreferredRealm(source); >- if (realm == null) >- realm = super.getPreferredRealm(source); >- return realm; >- } >- > public IObservableList observe(Realm realm, Object source) { > return getDelegate(source).observe(realm, source); > } >Index: src/org/eclipse/core/databinding/property/list/SimpleListPropertyObservableList.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.core.databinding/src/org/eclipse/core/databinding/property/list/Attic/SimpleListPropertyObservableList.java,v >retrieving revision 1.1.2.4 >diff -u -r1.1.2.4 SimpleListPropertyObservableList.java >--- src/org/eclipse/core/databinding/property/list/SimpleListPropertyObservableList.java 23 Dec 2008 18:24:44 -0000 1.1.2.4 >+++ src/org/eclipse/core/databinding/property/list/SimpleListPropertyObservableList.java 14 Jan 2009 23:37:34 -0000 >@@ -73,7 +73,7 @@ > if (!isDisposed() && !updating) { > getRealm().exec(new Runnable() { > public void run() { >- notifyIfChanged(); >+ notifyIfChanged((ListDiff) event.diff); > } > }); > } >@@ -173,7 +173,7 @@ > updating = wasUpdating; > } > >- notifyIfChanged(); >+ notifyIfChanged(null); > } > > public Iterator iterator() { >@@ -219,7 +219,7 @@ > updating = wasUpdating; > } > >- notifyIfChanged(); >+ notifyIfChanged(null); > > lastElement = null; > lastIndex = -1; >@@ -263,7 +263,7 @@ > updating = wasUpdating; > } > >- notifyIfChanged(); >+ notifyIfChanged(null); > > return element; > } >@@ -354,7 +354,7 @@ > updating = wasUpdating; > } > >- notifyIfChanged(); >+ notifyIfChanged(null); > > lastElement = null; > lastIndex = -1; >@@ -379,7 +379,7 @@ > updating = wasUpdating; > } > >- notifyIfChanged(); >+ notifyIfChanged(null); > > lastElement = o; > expectedModCount = modCount; >@@ -404,7 +404,7 @@ > updating = wasUpdating; > } > >- notifyIfChanged(); >+ notifyIfChanged(null); > > lastElement = null; > lastIndex = -1; >@@ -435,7 +435,7 @@ > updating = wasUpdating; > } > >- notifyIfChanged(); >+ notifyIfChanged(null); > > return element; > } >@@ -458,7 +458,7 @@ > updating = wasUpdating; > } > >- notifyIfChanged(); >+ notifyIfChanged(null); > > return oldElement; > } >@@ -505,7 +505,7 @@ > updating = wasUpdating; > } > >- notifyIfChanged(); >+ notifyIfChanged(null); > > return true; > } >@@ -547,7 +547,7 @@ > updating = wasUpdating; > } > >- notifyIfChanged(); >+ notifyIfChanged(null); > > return !diff.isEmpty(); > } >@@ -591,7 +591,7 @@ > updating = wasUpdating; > } > >- notifyIfChanged(); >+ notifyIfChanged(null); > > return !diff.isEmpty(); > } >@@ -620,14 +620,15 @@ > updating = wasUpdating; > } > >- notifyIfChanged(); >+ notifyIfChanged(null); > } > >- private void notifyIfChanged() { >+ private void notifyIfChanged(ListDiff diff) { > if (hasListeners()) { > List oldList = cachedList; > List newList = cachedList = property.getList(source); >- ListDiff diff = Diffs.computeListDiff(oldList, newList); >+ if (diff == null) >+ diff = Diffs.computeListDiff(oldList, newList); > if (!diff.isEmpty()) { > fireListChange(diff); > } >Index: src/org/eclipse/core/databinding/property/list/IListProperty.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.core.databinding/src/org/eclipse/core/databinding/property/list/Attic/IListProperty.java,v >retrieving revision 1.1.2.3 >diff -u -r1.1.2.3 IListProperty.java >--- src/org/eclipse/core/databinding/property/list/IListProperty.java 6 Jan 2009 06:21:06 -0000 1.1.2.3 >+++ src/org/eclipse/core/databinding/property/list/IListProperty.java 14 Jan 2009 23:37:33 -0000 >@@ -66,11 +66,11 @@ > public IObservableList observe(Realm realm, Object source); > > /** >- * Returns a factory for creating observable lists in the current default >- * realm, tracking this property of a particular property source. >+ * Returns a factory for creating observable lists tracking this property of >+ * a particular property source. > * >- * @return a factory for creating observable lists in current default realm, >- * tracking this property of a particular property source. >+ * @return a factory for creating observable lists tracking this property of >+ * a particular property source. > */ > public IObservableFactory listFactory(); > >Index: src/org/eclipse/core/databinding/property/list/ListProperty.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.core.databinding/src/org/eclipse/core/databinding/property/list/Attic/ListProperty.java,v >retrieving revision 1.1.2.5 >diff -u -r1.1.2.5 ListProperty.java >--- src/org/eclipse/core/databinding/property/list/ListProperty.java 8 Jan 2009 01:24:50 -0000 1.1.2.5 >+++ src/org/eclipse/core/databinding/property/list/ListProperty.java 14 Jan 2009 23:37:33 -0000 >@@ -18,7 +18,6 @@ > import org.eclipse.core.databinding.observable.masterdetail.IObservableFactory; > import org.eclipse.core.databinding.observable.masterdetail.MasterDetailObservables; > import org.eclipse.core.databinding.observable.value.IObservableValue; >-import org.eclipse.core.databinding.property.Property; > import org.eclipse.core.databinding.property.value.IValueProperty; > import org.eclipse.core.internal.databinding.property.ListPropertyDetailValuesList; > >@@ -27,16 +26,17 @@ > * > * @since 1.2 > */ >-public abstract class ListProperty extends Property implements IListProperty { >+public abstract class ListProperty implements IListProperty { > public IObservableList observe(Object source) { >- Realm realm = getPreferredRealm(source); >- if (realm == null) >- realm = Realm.getDefault(); >- return observe(realm, source); >+ return observe(Realm.getDefault(), source); > } > > public IObservableFactory listFactory() { >- return listFactory(Realm.getDefault()); >+ return new IObservableFactory() { >+ public IObservable createObservable(Object target) { >+ return observe(target); >+ } >+ }; > } > > public IObservableFactory listFactory(final Realm realm) { >Index: src/org/eclipse/core/databinding/observable/value/ValueDiff.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/value/ValueDiff.java,v >retrieving revision 1.3 >diff -u -r1.3 ValueDiff.java >--- src/org/eclipse/core/databinding/observable/value/ValueDiff.java 16 Mar 2007 18:00:56 -0000 1.3 >+++ src/org/eclipse/core/databinding/observable/value/ValueDiff.java 14 Jan 2009 23:37:33 -0000 >@@ -7,17 +7,19 @@ > * > * Contributors: > * IBM Corporation - initial API and implementation >+ * Matthew Hall - bug 194734 > *******************************************************************************/ > > package org.eclipse.core.databinding.observable.value; > > import org.eclipse.core.databinding.observable.Diffs; >+import org.eclipse.core.databinding.observable.IDiff; > > /** > * @since 1.0 > * > */ >-public abstract class ValueDiff { >+public abstract class ValueDiff implements IDiff { > /** > * Creates a value diff. > */ >Index: src/org/eclipse/core/databinding/property/map/DelegatingMapProperty.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.core.databinding/src/org/eclipse/core/databinding/property/map/Attic/DelegatingMapProperty.java,v >retrieving revision 1.1.2.1 >diff -u -r1.1.2.1 DelegatingMapProperty.java >--- src/org/eclipse/core/databinding/property/map/DelegatingMapProperty.java 8 Jan 2009 01:24:50 -0000 1.1.2.1 >+++ src/org/eclipse/core/databinding/property/map/DelegatingMapProperty.java 14 Jan 2009 23:37:34 -0000 >@@ -19,7 +19,6 @@ > import org.eclipse.core.databinding.observable.map.MapDiff; > import org.eclipse.core.databinding.property.INativePropertyListener; > import org.eclipse.core.databinding.property.IPropertyChangeListener; >-import org.eclipse.core.databinding.property.Property; > > /** > * @since 1.2 >@@ -58,16 +57,6 @@ > return valueType; > } > >- public Realm getPreferredRealm(Object source) { >- IMapProperty delegate = getDelegate(source); >- Realm realm = null; >- if (delegate instanceof Property) >- realm = ((Property) delegate).getPreferredRealm(source); >- if (realm == null) >- realm = super.getPreferredRealm(source); >- return realm; >- } >- > public IObservableMap observe(Realm realm, Object source) { > return getDelegate(source).observe(realm, source); > } >Index: src/org/eclipse/core/databinding/property/map/SimpleMapPropertyObservableMap.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.core.databinding/src/org/eclipse/core/databinding/property/map/Attic/SimpleMapPropertyObservableMap.java,v >retrieving revision 1.1.2.4 >diff -u -r1.1.2.4 SimpleMapPropertyObservableMap.java >--- src/org/eclipse/core/databinding/property/map/SimpleMapPropertyObservableMap.java 23 Dec 2008 18:24:44 -0000 1.1.2.4 >+++ src/org/eclipse/core/databinding/property/map/SimpleMapPropertyObservableMap.java 14 Jan 2009 23:37:34 -0000 >@@ -85,7 +85,7 @@ > if (!isDisposed() && !updating) { > getRealm().exec(new Runnable() { > public void run() { >- notifyIfChanged(); >+ notifyIfChanged((MapDiff) event.diff); > } > }); > } >@@ -165,7 +165,7 @@ > updating = wasUpdating; > } > >- notifyIfChanged(); >+ notifyIfChanged(null); > > last = null; > expectedModCount = modCount; >@@ -208,7 +208,7 @@ > updating = wasUpdating; > } > >- notifyIfChanged(); >+ notifyIfChanged(null); > > return oldValue; > } >@@ -249,7 +249,7 @@ > updating = wasUpdating; > } > >- notifyIfChanged(); >+ notifyIfChanged(null); > } > > public Object remove(Object key) { >@@ -259,16 +259,17 @@ > > public Collection values() { > getterCalled(); >- // AbstractMap depends on entrySet() to fulfil keySet() API, so all >+ // AbstractMap depends on entrySet() to fulfil values() API, so all > // getterCalled() and comodification checks will still be handled > return super.values(); > } > >- private void notifyIfChanged() { >+ private void notifyIfChanged(MapDiff diff) { > if (hasListeners()) { > Map oldMap = cachedMap; > Map newMap = cachedMap = property.getMap(source); >- MapDiff diff = Diffs.computeMapDiff(oldMap, newMap); >+ if (diff == null) >+ diff = Diffs.computeMapDiff(oldMap, newMap); > if (!diff.isEmpty()) > fireMapChange(diff); > } >Index: src/org/eclipse/core/databinding/property/map/MapProperty.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.core.databinding/src/org/eclipse/core/databinding/property/map/Attic/MapProperty.java,v >retrieving revision 1.1.2.5 >diff -u -r1.1.2.5 MapProperty.java >--- src/org/eclipse/core/databinding/property/map/MapProperty.java 8 Jan 2009 01:24:50 -0000 1.1.2.5 >+++ src/org/eclipse/core/databinding/property/map/MapProperty.java 14 Jan 2009 23:37:34 -0000 >@@ -18,7 +18,6 @@ > import org.eclipse.core.databinding.observable.masterdetail.IObservableFactory; > import org.eclipse.core.databinding.observable.masterdetail.MasterDetailObservables; > import org.eclipse.core.databinding.observable.value.IObservableValue; >-import org.eclipse.core.databinding.property.Property; > import org.eclipse.core.databinding.property.value.IValueProperty; > import org.eclipse.core.internal.databinding.property.MapPropertyDetailValuesMap; > >@@ -27,16 +26,17 @@ > * > * @since 1.2 > */ >-public abstract class MapProperty extends Property implements IMapProperty { >+public abstract class MapProperty implements IMapProperty { > public IObservableMap observe(Object source) { >- Realm realm = getPreferredRealm(source); >- if (realm == null) >- realm = Realm.getDefault(); >- return observe(realm, source); >+ return observe(Realm.getDefault(), source); > } > > public IObservableFactory mapFactory() { >- return mapFactory(Realm.getDefault()); >+ return new IObservableFactory() { >+ public IObservable createObservable(Object target) { >+ return observe(target); >+ } >+ }; > } > > public IObservableFactory mapFactory(final Realm realm) { >Index: src/org/eclipse/core/databinding/property/map/IMapProperty.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.core.databinding/src/org/eclipse/core/databinding/property/map/Attic/IMapProperty.java,v >retrieving revision 1.1.2.3 >diff -u -r1.1.2.3 IMapProperty.java >--- src/org/eclipse/core/databinding/property/map/IMapProperty.java 6 Jan 2009 06:21:06 -0000 1.1.2.3 >+++ src/org/eclipse/core/databinding/property/map/IMapProperty.java 14 Jan 2009 23:37:34 -0000 >@@ -75,11 +75,11 @@ > public IObservableMap observe(Realm realm, Object source); > > /** >- * Returns a factory for creating observable maps in the current default >- * realm, tracking this property of a particular property source. >+ * Returns a factory for creating observable maps tracking this property of >+ * a particular property source. > * >- * @return a factory for creating observable maps in current default realm, >- * tracking this property of a particular property source. >+ * @return a factory for creating observable maps tracking this property of >+ * a particular property source. > */ > public IObservableFactory mapFactory(); > >Index: src/org/eclipse/core/databinding/property/set/SetProperty.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.core.databinding/src/org/eclipse/core/databinding/property/set/Attic/SetProperty.java,v >retrieving revision 1.1.2.5 >diff -u -r1.1.2.5 SetProperty.java >--- src/org/eclipse/core/databinding/property/set/SetProperty.java 8 Jan 2009 01:24:50 -0000 1.1.2.5 >+++ src/org/eclipse/core/databinding/property/set/SetProperty.java 14 Jan 2009 23:37:34 -0000 >@@ -18,7 +18,6 @@ > import org.eclipse.core.databinding.observable.masterdetail.MasterDetailObservables; > import org.eclipse.core.databinding.observable.set.IObservableSet; > import org.eclipse.core.databinding.observable.value.IObservableValue; >-import org.eclipse.core.databinding.property.Property; > import org.eclipse.core.databinding.property.map.IMapProperty; > import org.eclipse.core.databinding.property.value.IValueProperty; > import org.eclipse.core.internal.databinding.property.SetPropertyDetailValuesMap; >@@ -28,16 +27,17 @@ > * > * @since 1.2 > */ >-public abstract class SetProperty extends Property implements ISetProperty { >+public abstract class SetProperty implements ISetProperty { > public IObservableSet observe(Object source) { >- Realm realm = getPreferredRealm(source); >- if (realm == null) >- realm = Realm.getDefault(); >- return observe(realm, source); >+ return observe(Realm.getDefault(), source); > } > > public IObservableFactory setFactory() { >- return setFactory(Realm.getDefault()); >+ return new IObservableFactory() { >+ public IObservable createObservable(Object target) { >+ return observe(target); >+ } >+ }; > } > > public IObservableFactory setFactory(final Realm realm) { >Index: src/org/eclipse/core/databinding/property/set/ISetProperty.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.core.databinding/src/org/eclipse/core/databinding/property/set/Attic/ISetProperty.java,v >retrieving revision 1.1.2.3 >diff -u -r1.1.2.3 ISetProperty.java >--- src/org/eclipse/core/databinding/property/set/ISetProperty.java 6 Jan 2009 06:21:06 -0000 1.1.2.3 >+++ src/org/eclipse/core/databinding/property/set/ISetProperty.java 14 Jan 2009 23:37:34 -0000 >@@ -68,11 +68,11 @@ > public IObservableSet observe(Realm realm, Object source); > > /** >- * Returns a factory for creating observable sets in the current default >- * realm, tracking this property of a particular property source. >+ * Returns a factory for creating observable sets tracking this property of >+ * a particular property source. > * >- * @return a factory for creating observable sets in current default realm, >- * tracking this property of a particular property source. >+ * @return a factory for creating observable sets tracking this property of >+ * a particular property source. > */ > public IObservableFactory setFactory(); > >Index: src/org/eclipse/core/databinding/property/set/SimpleSetPropertyObservableSet.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.core.databinding/src/org/eclipse/core/databinding/property/set/Attic/SimpleSetPropertyObservableSet.java,v >retrieving revision 1.1.2.4 >diff -u -r1.1.2.4 SimpleSetPropertyObservableSet.java >--- src/org/eclipse/core/databinding/property/set/SimpleSetPropertyObservableSet.java 23 Dec 2008 18:24:44 -0000 1.1.2.4 >+++ src/org/eclipse/core/databinding/property/set/SimpleSetPropertyObservableSet.java 14 Jan 2009 23:37:34 -0000 >@@ -70,7 +70,7 @@ > if (!isDisposed() && !updating) { > getRealm().exec(new Runnable() { > public void run() { >- notifyIfChanged(); >+ notifyIfChanged((SetDiff) event.diff); > } > }); > } >@@ -113,10 +113,6 @@ > return getSet().containsAll(c); > } > >- protected int doGetSize() { >- return getSet().size(); >- } >- > public boolean isEmpty() { > getterCalled(); > return getSet().isEmpty(); >@@ -153,7 +149,7 @@ > updating = wasUpdating; > } > >- notifyIfChanged(); >+ notifyIfChanged(null); > > return true; > } >@@ -196,7 +192,7 @@ > updating = wasUpdating; > } > >- notifyIfChanged(); >+ notifyIfChanged(null); > > last = null; > expectedModCount = modCount; >@@ -228,7 +224,7 @@ > updating = wasUpdating; > } > >- notifyIfChanged(); >+ notifyIfChanged(null); > > return true; > } >@@ -264,7 +260,7 @@ > updating = wasUpdating; > } > >- notifyIfChanged(); >+ notifyIfChanged(null); > > return true; > } >@@ -301,7 +297,7 @@ > updating = wasUpdating; > } > >- notifyIfChanged(); >+ notifyIfChanged(null); > > return true; > } >@@ -343,7 +339,7 @@ > updating = wasUpdating; > } > >- notifyIfChanged(); >+ notifyIfChanged(null); > > return true; > } >@@ -366,14 +362,15 @@ > updating = wasUpdating; > } > >- notifyIfChanged(); >+ notifyIfChanged(null); > } > >- private void notifyIfChanged() { >+ private void notifyIfChanged(SetDiff diff) { > if (hasListeners()) { > Set oldSet = cachedSet; > Set newSet = cachedSet = property.getSet(source); >- SetDiff diff = Diffs.computeSetDiff(oldSet, newSet); >+ if (diff == null) >+ diff = Diffs.computeSetDiff(oldSet, newSet); > if (!diff.isEmpty()) > fireSetChange(diff); > } >Index: src/org/eclipse/core/databinding/property/set/DelegatingSetProperty.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.core.databinding/src/org/eclipse/core/databinding/property/set/Attic/DelegatingSetProperty.java,v >retrieving revision 1.1.2.1 >diff -u -r1.1.2.1 DelegatingSetProperty.java >--- src/org/eclipse/core/databinding/property/set/DelegatingSetProperty.java 8 Jan 2009 01:24:50 -0000 1.1.2.1 >+++ src/org/eclipse/core/databinding/property/set/DelegatingSetProperty.java 14 Jan 2009 23:37:34 -0000 >@@ -19,7 +19,6 @@ > import org.eclipse.core.databinding.observable.set.SetDiff; > import org.eclipse.core.databinding.property.INativePropertyListener; > import org.eclipse.core.databinding.property.IPropertyChangeListener; >-import org.eclipse.core.databinding.property.Property; > > /** > * @since 1.2 >@@ -52,16 +51,6 @@ > return elementType; > } > >- public Realm getPreferredRealm(Object source) { >- ISetProperty delegate = getDelegate(source); >- Realm realm = null; >- if (delegate instanceof Property) >- realm = ((Property) delegate).getPreferredRealm(source); >- if (realm == null) >- realm = super.getPreferredRealm(source); >- return realm; >- } >- > public IObservableSet observe(Realm realm, Object source) { > return getDelegate(source).observe(realm, source); > } >Index: src/org/eclipse/core/databinding/observable/set/SetDiff.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/set/SetDiff.java,v >retrieving revision 1.4 >diff -u -r1.4 SetDiff.java >--- src/org/eclipse/core/databinding/observable/set/SetDiff.java 23 Oct 2008 18:27:48 -0000 1.4 >+++ src/org/eclipse/core/databinding/observable/set/SetDiff.java 14 Jan 2009 23:37:33 -0000 >@@ -7,18 +7,20 @@ > * > * Contributors: > * IBM Corporation - initial API and implementation >- * Matthew Hall - bug 251884 >+ * Matthew Hall - bugs 251884, 194734 > *******************************************************************************/ > > package org.eclipse.core.databinding.observable.set; > > import java.util.Set; > >+import org.eclipse.core.databinding.observable.IDiff; >+ > /** > * @since 1.0 > * > */ >-public abstract class SetDiff { >+public abstract class SetDiff implements IDiff { > > /** > * @return the set of added elements >Index: src/org/eclipse/core/databinding/property/Property.java >=================================================================== >RCS file: src/org/eclipse/core/databinding/property/Property.java >diff -N src/org/eclipse/core/databinding/property/Property.java >--- src/org/eclipse/core/databinding/property/Property.java 8 Jan 2009 01:24:51 -0000 1.1.2.6 >+++ /dev/null 1 Jan 1970 00:00:00 -0000 >@@ -1,49 +0,0 @@ >-/******************************************************************************* >- * Copyright (c) 2008 Matthew Hall and others. >- * All rights reserved. This program and the accompanying materials >- * are made available under the terms of the Eclipse Public License v1.0 >- * which accompanies this distribution, and is available at >- * http://www.eclipse.org/legal/epl-v10.html >- * >- * Contributors: >- * Matthew Hall - initial API and implementation (bug 194734) >- * Matthew Hall - bug 195222 >- ******************************************************************************/ >- >-package org.eclipse.core.databinding.property; >- >-import org.eclipse.core.databinding.observable.Realm; >-import org.eclipse.core.databinding.property.list.IListProperty; >-import org.eclipse.core.databinding.property.map.IMapProperty; >-import org.eclipse.core.databinding.property.set.ISetProperty; >-import org.eclipse.core.databinding.property.value.IValueProperty; >- >-/** >- * Abstract IProperty implementation >- * >- * @since 1.2 >- */ >-public abstract class Property implements IProperty { >- /** >- * Returns the preferred realm to use when observing the specified property >- * source. This method is used to determine the default realm for methods >- * lacking an explicit or implicit realm. >- * <p> >- * The default implementation of this method returns <code>null</code> >- * (indicating no preference). Subclasses may override this method to >- * return an appropriate realm. >- * >- * @param source >- * the property source >- * @return the preferred realm to use when observing the specified property >- * source, or null if the source object has no implicit preference. >- * >- * @see IValueProperty#observe(Object) >- * @see IListProperty#observe(Object) >- * @see ISetProperty#observe(Object) >- * @see IMapProperty#observe(Object) >- */ >- public Realm getPreferredRealm(Object source) { >- return null; >- } >-} >Index: src/org/eclipse/core/databinding/property/PropertyChangeEvent.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.core.databinding/src/org/eclipse/core/databinding/property/Attic/PropertyChangeEvent.java,v >retrieving revision 1.1.2.2 >diff -u -r1.1.2.2 PropertyChangeEvent.java >--- src/org/eclipse/core/databinding/property/PropertyChangeEvent.java 23 Dec 2008 18:24:44 -0000 1.1.2.2 >+++ src/org/eclipse/core/databinding/property/PropertyChangeEvent.java 14 Jan 2009 23:37:33 -0000 >@@ -13,6 +13,7 @@ > > import java.util.EventObject; > >+import org.eclipse.core.databinding.observable.IDiff; > import org.eclipse.core.internal.databinding.Util; > > /** >@@ -29,16 +30,26 @@ > public final IProperty property; > > /** >+ * A diff object describing the change in state, or null for an unknown >+ * change. >+ */ >+ public final IDiff diff; >+ >+ /** > * Constructs a PropertyChangeEvent with the given attributes > * > * @param source > * the property source > * @param property > * the property that changed on the source >+ * @param diff >+ * a diff describing the change in state, or null if the change >+ * is unknown. > */ >- public PropertyChangeEvent(Object source, IProperty property) { >+ public PropertyChangeEvent(Object source, IProperty property, IDiff diff) { > super(source); > this.property = property; >+ this.diff = diff; > } > > public boolean equals(Object obj) { >@@ -51,13 +62,15 @@ > > PropertyChangeEvent that = (PropertyChangeEvent) obj; > return Util.equals(getSource(), that.getSource()) >- && Util.equals(this.property, that.property); >+ && Util.equals(this.property, that.property) >+ && Util.equals(this.diff, that.diff); > } > > public int hashCode() { > int hash = 17; > hash = hash * 37 + getSource().hashCode(); > hash = hash * 37 + property.hashCode(); >+ hash = hash * 37 + (diff == null ? 0 : diff.hashCode()); > return hash; > } > } >Index: src/org/eclipse/core/databinding/observable/map/MapDiff.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/map/MapDiff.java,v >retrieving revision 1.4 >diff -u -r1.4 MapDiff.java >--- src/org/eclipse/core/databinding/observable/map/MapDiff.java 23 Oct 2008 18:27:48 -0000 1.4 >+++ src/org/eclipse/core/databinding/observable/map/MapDiff.java 14 Jan 2009 23:37:33 -0000 >@@ -7,7 +7,7 @@ > * > * Contributors: > * IBM Corporation - initial API and implementation >- * Matthew Hall - bug 251884 >+ * Matthew Hall - bugs 251884, 194734 > *******************************************************************************/ > > package org.eclipse.core.databinding.observable.map; >@@ -16,11 +16,13 @@ > import java.util.Map; > import java.util.Set; > >+import org.eclipse.core.databinding.observable.IDiff; >+ > /** > * @since 1.1 > * > */ >-public abstract class MapDiff { >+public abstract class MapDiff implements IDiff { > /** > * Returns true if the diff has no added, removed or changed entries. > * >Index: src/org/eclipse/core/databinding/observable/list/ListDiff.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/list/ListDiff.java,v >retrieving revision 1.6 >diff -u -r1.6 ListDiff.java >--- src/org/eclipse/core/databinding/observable/list/ListDiff.java 23 Oct 2008 18:27:48 -0000 1.6 >+++ src/org/eclipse/core/databinding/observable/list/ListDiff.java 14 Jan 2009 23:37:33 -0000 >@@ -7,13 +7,14 @@ > * > * Contributors: > * IBM Corporation - initial API and implementation >- * Matthew Hall - bug 208858, 251884 >+ * Matthew Hall - bugs 208858, 251884, 194734 > *******************************************************************************/ > > package org.eclipse.core.databinding.observable.list; > > import java.util.List; > >+import org.eclipse.core.databinding.observable.IDiff; > import org.eclipse.core.internal.databinding.Util; > > /** >@@ -21,7 +22,7 @@ > * > * @since 1.0 > */ >-public abstract class ListDiff { >+public abstract class ListDiff implements IDiff { > > /** > * Returns a ListDiffEntry array representing the differences in the list, >Index: src/org/eclipse/core/databinding/observable/IDiff.java >=================================================================== >RCS file: src/org/eclipse/core/databinding/observable/IDiff.java >diff -N src/org/eclipse/core/databinding/observable/IDiff.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/core/databinding/observable/IDiff.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,29 @@ >+/******************************************************************************* >+ * Copyright (c) 2009 Matthew Hall and others. >+ * All rights reserved. This program and the accompanying materials >+ * are made available under the terms of the Eclipse Public License v1.0 >+ * which accompanies this distribution, and is available at >+ * http://www.eclipse.org/legal/epl-v10.html >+ * >+ * Contributors: >+ * Matthew Hall - initial API and implementation (bug 194734) >+ ******************************************************************************/ >+ >+package org.eclipse.core.databinding.observable; >+ >+import org.eclipse.core.databinding.observable.list.ListDiff; >+import org.eclipse.core.databinding.observable.map.MapDiff; >+import org.eclipse.core.databinding.observable.set.SetDiff; >+import org.eclipse.core.databinding.observable.value.ValueDiff; >+ >+/** >+ * Marker interface for objects which describe a difference in state. >+ * >+ * @since 1.2 >+ * @see ValueDiff >+ * @see ListDiff >+ * @see SetDiff >+ * @see MapDiff >+ */ >+public interface IDiff { >+} >#P org.eclipse.jface.databinding >Index: src/org/eclipse/jface/internal/databinding/viewers/SelectionProviderSingleSelectionProperty.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/viewers/Attic/SelectionProviderSingleSelectionProperty.java,v >retrieving revision 1.1.2.6 >diff -u -r1.1.2.6 SelectionProviderSingleSelectionProperty.java >--- src/org/eclipse/jface/internal/databinding/viewers/SelectionProviderSingleSelectionProperty.java 6 Jan 2009 06:21:04 -0000 1.1.2.6 >+++ src/org/eclipse/jface/internal/databinding/viewers/SelectionProviderSingleSelectionProperty.java 14 Jan 2009 23:37:35 -0000 >@@ -72,10 +72,9 @@ > } > > public void selectionChanged(SelectionChangedEvent event) { >- listener >- .handlePropertyChange(new PropertyChangeEvent(event >- .getSource(), >- SelectionProviderSingleSelectionProperty.this)); >+ listener.handlePropertyChange(new PropertyChangeEvent(event >+ .getSource(), >+ SelectionProviderSingleSelectionProperty.this, null)); > } > } > >Index: src/org/eclipse/jface/internal/databinding/viewers/ViewerSetProperty.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/viewers/Attic/ViewerSetProperty.java,v >retrieving revision 1.1.2.4 >diff -u -r1.1.2.4 ViewerSetProperty.java >--- src/org/eclipse/jface/internal/databinding/viewers/ViewerSetProperty.java 12 Jan 2009 17:21:06 -0000 1.1.2.4 >+++ src/org/eclipse/jface/internal/databinding/viewers/ViewerSetProperty.java 14 Jan 2009 23:37:35 -0000 >@@ -22,12 +22,12 @@ > * > */ > public abstract class ViewerSetProperty extends SimpleSetProperty { >- public Realm getPreferredRealm(Object source) { >+ public IObservableSet observe(Object source) { > if (source instanceof Viewer) { >- return SWTObservables.getRealm(((Viewer) source).getControl() >- .getDisplay()); >+ return observe(SWTObservables.getRealm(((Viewer) source) >+ .getControl().getDisplay()), source); > } >- return super.getPreferredRealm(source); >+ return super.observe(source); > } > > public IObservableSet observe(Realm realm, Object source) { >Index: src/org/eclipse/jface/internal/databinding/viewers/ViewerValueProperty.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/viewers/Attic/ViewerValueProperty.java,v >retrieving revision 1.1.2.4 >diff -u -r1.1.2.4 ViewerValueProperty.java >--- src/org/eclipse/jface/internal/databinding/viewers/ViewerValueProperty.java 12 Jan 2009 17:21:06 -0000 1.1.2.4 >+++ src/org/eclipse/jface/internal/databinding/viewers/ViewerValueProperty.java 14 Jan 2009 23:37:35 -0000 >@@ -22,12 +22,12 @@ > * > */ > public abstract class ViewerValueProperty extends SimpleValueProperty { >- public Realm getPreferredRealm(Object source) { >+ public IObservableValue observe(Object source) { > if (source instanceof Viewer) { >- return SWTObservables.getRealm(((Viewer) source).getControl() >- .getDisplay()); >+ return observe(SWTObservables.getRealm(((Viewer) source) >+ .getControl().getDisplay()), source); > } >- return super.getPreferredRealm(source); >+ return super.observe(source); > } > > public IObservableValue observe(Realm realm, Object source) { >Index: src/org/eclipse/jface/internal/databinding/viewers/CheckableCheckedElementsProperty.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/viewers/Attic/CheckableCheckedElementsProperty.java,v >retrieving revision 1.1.2.6 >diff -u -r1.1.2.6 CheckableCheckedElementsProperty.java >--- src/org/eclipse/jface/internal/databinding/viewers/CheckableCheckedElementsProperty.java 6 Jan 2009 06:21:04 -0000 1.1.2.6 >+++ src/org/eclipse/jface/internal/databinding/viewers/CheckableCheckedElementsProperty.java 14 Jan 2009 23:37:35 -0000 >@@ -12,10 +12,12 @@ > > package org.eclipse.jface.internal.databinding.viewers; > >+import java.util.Collections; > import java.util.HashSet; > import java.util.Iterator; > import java.util.Set; > >+import org.eclipse.core.databinding.observable.Diffs; > import org.eclipse.core.databinding.observable.set.SetDiff; > import org.eclipse.core.databinding.property.INativePropertyListener; > import org.eclipse.core.databinding.property.IPropertyChangeListener; >@@ -95,8 +97,14 @@ > } > > public void checkStateChanged(CheckStateChangedEvent event) { >+ Object element = event.getElement(); >+ boolean checked = event.getChecked(); >+ Set elementSet = Collections.singleton(element); >+ Set additions = checked ? elementSet : Collections.EMPTY_SET; >+ Set removals = checked ? Collections.EMPTY_SET : elementSet; >+ SetDiff diff = Diffs.createSetDiff(additions, removals); > listener.handlePropertyChange(new PropertyChangeEvent(event >- .getSource(), CheckableCheckedElementsProperty.this)); >+ .getSource(), CheckableCheckedElementsProperty.this, diff)); > } > } > >Index: src/org/eclipse/jface/internal/databinding/viewers/ViewerListProperty.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/viewers/Attic/ViewerListProperty.java,v >retrieving revision 1.1.2.4 >diff -u -r1.1.2.4 ViewerListProperty.java >--- src/org/eclipse/jface/internal/databinding/viewers/ViewerListProperty.java 12 Jan 2009 17:21:06 -0000 1.1.2.4 >+++ src/org/eclipse/jface/internal/databinding/viewers/ViewerListProperty.java 14 Jan 2009 23:37:35 -0000 >@@ -22,12 +22,12 @@ > * > */ > public abstract class ViewerListProperty extends SimpleListProperty { >- public Realm getPreferredRealm(Object source) { >+ public IObservableList observe(Object source) { > if (source instanceof Viewer) { >- return SWTObservables.getRealm(((Viewer) source).getControl() >- .getDisplay()); >+ return observe(SWTObservables.getRealm(((Viewer) source) >+ .getControl().getDisplay()), source); > } >- return super.getPreferredRealm(source); >+ return super.observe(source); > } > > public IObservableList observe(Realm realm, Object source) { >Index: src/org/eclipse/jface/internal/databinding/viewers/SelectionProviderMultipleSelectionProperty.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/viewers/Attic/SelectionProviderMultipleSelectionProperty.java,v >retrieving revision 1.1.2.6 >diff -u -r1.1.2.6 SelectionProviderMultipleSelectionProperty.java >--- src/org/eclipse/jface/internal/databinding/viewers/SelectionProviderMultipleSelectionProperty.java 6 Jan 2009 06:21:04 -0000 1.1.2.6 >+++ src/org/eclipse/jface/internal/databinding/viewers/SelectionProviderMultipleSelectionProperty.java 14 Jan 2009 23:37:35 -0000 >@@ -76,7 +76,7 @@ > public void selectionChanged(SelectionChangedEvent event) { > listener.handlePropertyChange(new PropertyChangeEvent(event > .getSource(), >- SelectionProviderMultipleSelectionProperty.this)); >+ SelectionProviderMultipleSelectionProperty.this, null)); > } > } > >Index: src/org/eclipse/jface/internal/databinding/swt/WidgetValueProperty.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/swt/Attic/WidgetValueProperty.java,v >retrieving revision 1.1.2.7 >diff -u -r1.1.2.7 WidgetValueProperty.java >--- src/org/eclipse/jface/internal/databinding/swt/WidgetValueProperty.java 12 Jan 2009 17:21:07 -0000 1.1.2.7 >+++ src/org/eclipse/jface/internal/databinding/swt/WidgetValueProperty.java 14 Jan 2009 23:37:35 -0000 >@@ -39,13 +39,6 @@ > this.events = events; > } > >- public Realm getPreferredRealm(Object source) { >- if (source instanceof Widget) { >- return SWTObservables.getRealm(((Widget) source).getDisplay()); >- } >- return super.getPreferredRealm(source); >- } >- > protected INativePropertyListener adaptListener( > IPropertyChangeListener listener) { > return new WidgetListener(listener); >@@ -85,16 +78,24 @@ > > public void handleEvent(Event event) { > listener.handlePropertyChange(new PropertyChangeEvent(event.widget, >- WidgetValueProperty.this)); >+ WidgetValueProperty.this, null)); >+ } >+ } >+ >+ public IObservableValue observe(Object source) { >+ if (source instanceof Widget) { >+ return observe(SWTObservables.getRealm(((Widget) source) >+ .getDisplay()), source); > } >+ return super.observe(source); > } > > public IObservableValue observe(Realm realm, Object source) { > return wrapObservable(super.observe(realm, source), (Widget) source); > } > >- protected ISWTObservableValue wrapObservable( >- IObservableValue observable, Widget widget) { >+ protected ISWTObservableValue wrapObservable(IObservableValue observable, >+ Widget widget) { > return new SWTObservableValueDecorator(observable, widget); > } > } >Index: src/org/eclipse/jface/internal/databinding/swt/WidgetListProperty.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/swt/Attic/WidgetListProperty.java,v >retrieving revision 1.1.2.4 >diff -u -r1.1.2.4 WidgetListProperty.java >--- src/org/eclipse/jface/internal/databinding/swt/WidgetListProperty.java 12 Jan 2009 17:21:07 -0000 1.1.2.4 >+++ src/org/eclipse/jface/internal/databinding/swt/WidgetListProperty.java 14 Jan 2009 23:37:35 -0000 >@@ -22,10 +22,12 @@ > * > */ > public abstract class WidgetListProperty extends SimpleListProperty { >- public Realm getPreferredRealm(Object source) { >- if (source instanceof Widget) >- return SWTObservables.getRealm(((Widget) source).getDisplay()); >- return super.getPreferredRealm(source); >+ public IObservableList observe(Object source) { >+ if (source instanceof Widget) { >+ return observe(SWTObservables.getRealm(((Widget) source) >+ .getDisplay()), source); >+ } >+ return super.observe(source); > } > > public IObservableList observe(Realm realm, Object source) {
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 194734
:
106529
|
107000
|
107001
|
107041
|
107042
|
111164
|
111165
|
111335
|
111336
|
111448
|
111449
|
111640
|
111641
|
111717
|
111719
|
111845
|
111846
|
111897
|
111898
|
111993
|
111994
|
112161
|
112162
|
112268
|
112269
|
112360
|
112361
|
112370
|
112371
|
112471
|
112472
|
112606
|
112607
|
112629
|
112630
|
113149
|
113150
|
113165
|
113166
|
114858
|
114859
|
115196
|
115197
|
115284
|
115458
|
115459
|
117500
|
117501
|
117990
|
117991
|
119231
|
119232
|
119274
|
120541
|
120542
|
120651
|
120652
|
120653
|
120654
|
120914
|
120915
|
120989
|
120990
|
121020
|
121021
|
121141
|
121142
|
122228
|
122229
|
122234
|
122235
|
122288
|
122289
| 122609 |
122610
|
122613
|
122614
|
122775
|
122776
|
122813
|
122814
|
122852
|
122853
|
122864
|
122865
|
123137
|
123138