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 50596 Details for
Bug 158065
[DataBinding] ValidationError observables need a nudge to hook themselves up
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]
Patch
patch.txt (text/plain), 9.60 KB, created by
Dave Orme
on 2006-09-20 16:40:16 EDT
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Dave Orme
Created:
2006-09-20 16:40:16 EDT
Size:
9.60 KB
patch
obsolete
>### Eclipse Workspace Patch 1.0 >#P org.eclipse.jface.databinding >Index: src/org/eclipse/jface/internal/databinding/provisional/DataBindingContext.java >=================================================================== >RCS file: /home/eclipse/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/DataBindingContext.java,v >retrieving revision 1.6 >diff -u -r1.6 DataBindingContext.java >--- src/org/eclipse/jface/internal/databinding/provisional/DataBindingContext.java 18 Aug 2006 03:58:11 -0000 1.6 >+++ src/org/eclipse/jface/internal/databinding/provisional/DataBindingContext.java 20 Sep 2006 20:00:48 -0000 >@@ -258,8 +258,9 @@ > IObservable modelObservable, BindSpec bindSpec) { > Binding result = doCreateBinding(targetObservable, modelObservable, > bindSpec, this); >- if (result != null) >+ if (result != null) { > return result; >+ } > throw new BindingException( > "No binding found for target: " + targetObservable.getClass().getName() + ", model: " + modelObservable.getClass().getName()); //$NON-NLS-1$ //$NON-NLS-2$ > } >Index: src/org/eclipse/jface/internal/databinding/internal/viewers/StructuredViewerObservableCollectionWithLabels.java >=================================================================== >RCS file: /home/eclipse/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/internal/viewers/StructuredViewerObservableCollectionWithLabels.java,v >retrieving revision 1.6 >diff -u -r1.6 StructuredViewerObservableCollectionWithLabels.java >--- src/org/eclipse/jface/internal/databinding/internal/viewers/StructuredViewerObservableCollectionWithLabels.java 19 Jun 2006 13:43:33 -0000 1.6 >+++ src/org/eclipse/jface/internal/databinding/internal/viewers/StructuredViewerObservableCollectionWithLabels.java 20 Sep 2006 20:00:48 -0000 >@@ -315,7 +315,9 @@ > } > Object oldObject = null; > oldObject = wrappedList.remove(index); >- elementsAsSet.remove(oldObject); >+ if (!elementsAsSet.remove(oldObject)) { >+ throw new IllegalArgumentException("wrappedList.size() != elementsAsSet.size(): (Did you implement equals() and hashCode() correctly?)"); //$NON-NLS-1$ >+ } > removeFromViewer(oldObject); > fireListChange(Diffs.createListDiff(Diffs.createListDiffEntry( > index, false, oldObject))); >@@ -333,6 +335,9 @@ > Collections.EMPTY_SET)); > addToViewer(index, element); > } >+ if (wrappedList.size() != elementsAsSet.size()) { >+ throw new IllegalArgumentException("wrappedList.size() != elementsAsSet.size(): (Did you implement equals() and hashCode() correctly?)"); //$NON-NLS-1$ >+ } > } > > public boolean addAll(int index, Collection c) { >Index: src/org/eclipse/jface/internal/databinding/internal/ValueBinding.java >=================================================================== >RCS file: /home/eclipse/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/internal/ValueBinding.java,v >retrieving revision 1.4 >diff -u -r1.4 ValueBinding.java >--- src/org/eclipse/jface/internal/databinding/internal/ValueBinding.java 8 Jun 2006 22:40:42 -0000 1.4 >+++ src/org/eclipse/jface/internal/databinding/internal/ValueBinding.java 20 Sep 2006 20:00:48 -0000 >@@ -204,7 +204,7 @@ > fireBindingEvent(e); > } catch (Exception ex) { > ValidationError error = ValidationError.error(BindingMessages >- .getString("ValueBinding_ErrorWhileSettingValue")); //$NON-NLS-1$ >+ .getString("ValueBinding_ErrorWhileSettingValue"), ex); //$NON-NLS-1$ > validationErrorObservable.setValue(error); > } finally { > updating = false; >@@ -281,6 +281,10 @@ > doValidate(target.getValue()); > e.pipelinePosition = BindingEvent.PIPELINE_AFTER_VALIDATE; > fireBindingEvent(e); >+ } catch (Exception ex) { >+ ValidationError error = ValidationError.error(BindingMessages >+ .getString("ValueBinding_ErrorWhileSettingValue"), ex); //$NON-NLS-1$ >+ validationErrorObservable.setValue(error); > } finally { > updating = false; > } >Index: src/org/eclipse/jface/internal/databinding/provisional/validation/ValidationError.java >=================================================================== >RCS file: /home/eclipse/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/validation/ValidationError.java,v >retrieving revision 1.4 >diff -u -r1.4 ValidationError.java >--- src/org/eclipse/jface/internal/databinding/provisional/validation/ValidationError.java 19 Jun 2006 14:09:52 -0000 1.4 >+++ src/org/eclipse/jface/internal/databinding/provisional/validation/ValidationError.java 20 Sep 2006 20:00:48 -0000 >@@ -36,17 +36,33 @@ > * Holds the current error or warning message. > */ > public final String message; >+ >+ /** >+ * Holds the exception that was thrown, if any. >+ */ >+ public final Throwable exception; > >- /** >- * A convenience factory for {@link #ERROR} ValidationErrors. >- * >- * @param message The error message >- * @return A new ValidationError representing the error >- */ >- public static ValidationError error(String message) { >- return new ValidationError(ERROR, message); >- } >- >+ /** >+ * A convenience factory for {@link #ERROR} ValidationErrors. >+ * >+ * @param message The error message >+ * @return A new ValidationError representing the error >+ */ >+ public static ValidationError error(String message) { >+ return new ValidationError(ERROR, message, null); >+ } >+ >+ /** >+ * A convenience factory for {@link #ERROR} ValidationErrors. >+ * >+ * @param message The error message >+ * @param exception The exception that was thrown >+ * @return A new ValidationError representing the error >+ */ >+ public static ValidationError error(String message, Throwable exception) { >+ return new ValidationError(ERROR, message, exception); >+ } >+ > /** > * A convenience factory for {@link #WARNING} ValidationErrors. > * >@@ -54,7 +70,7 @@ > * @return A new ValidationError representing the warning > */ > public static ValidationError warning(String message) { >- return new ValidationError(WARNING, message); >+ return new ValidationError(WARNING, message, null); > } > > /** >@@ -62,10 +78,12 @@ > * > * @param status either {@link #WARNING} or {@link #ERROR} > * @param message An error message string or warning. >+ * @param exception The exception that was thrown or null. > */ >- public ValidationError(int status, String message) { >+ public ValidationError(int status, String message, Throwable exception) { > this.status = status; > this.message = message; >+ this.exception = exception; > } > > public String toString() { >Index: src/org/eclipse/jface/internal/databinding/provisional/observable/value/ComputedValue.java >=================================================================== >RCS file: /home/eclipse/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/observable/value/Attic/ComputedValue.java,v >retrieving revision 1.2 >diff -u -r1.2 ComputedValue.java >--- src/org/eclipse/jface/internal/databinding/provisional/observable/value/ComputedValue.java 13 Mar 2006 04:58:19 -0000 1.2 >+++ src/org/eclipse/jface/internal/databinding/provisional/observable/value/ComputedValue.java 20 Sep 2006 20:00:48 -0000 >@@ -167,4 +167,24 @@ > public Object getValueType() { > return valueType; > } >+ >+ /* (non-Javadoc) >+ * @see org.eclipse.jface.internal.databinding.provisional.observable.AbstractObservable#addChangeListener(org.eclipse.jface.internal.databinding.provisional.observable.IChangeListener) >+ */ >+ public void addChangeListener(IChangeListener listener) { >+ super.addChangeListener(listener); >+ // If somebody is listening, we need to make sure we attach our own >+ // listeners >+ getValue(); >+ } >+ >+ /* (non-Javadoc) >+ * @see org.eclipse.jface.internal.databinding.provisional.observable.value.AbstractObservableValue#addValueChangeListener(org.eclipse.jface.internal.databinding.provisional.observable.value.IValueChangeListener) >+ */ >+ public void addValueChangeListener(IValueChangeListener listener) { >+ super.addValueChangeListener(listener); >+ // If somebody is listening, we need to make sure we attach our own >+ // listeners >+ getValue(); >+ } >+ } > >
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 158065
: 50596