Bidirectional binding with conversion
michael.heinrichs at oracle.com
Fri Dec 9 08:14:06 PST 2011
On 09.12.2011, at 16:55, Richard Bair wrote:
> Hi Michael,
> What about adding:
> public void bindBidirectional(Property<?> other, StringConverter)
> as well? The StringConverter is in javafx.util and seems like another well suited means for conversion to/from String.
Yeah, makes sense. I did not know this class exists.
> One other question not directly related -- why do our bindBidirectional methods take a Property instead of a WritableValue?
Because a WritableValue is not observable. I think at some point we had something like
public static <E, T extends WritableValue<E> & ObservableValue<E>> void bindBidirectional(T obj1, T obj2)
but then we dropped it and used properties instead to make the signature more readable. So far properties are the only implementation of both interfaces.
> On Dec 9, 2011, at 1:33 AM, Michael Heinrichs wrote:
>> Hi everybody,
>> I am working on a solution for the Binding API that allows bidirectional bindings between an arbitrary property and a StringProperty. (The long term plan is to allow bidirectional bindings between two arbitrary properties in JavaFX 3.0). The request is tracked here: http://javafx-jira.kenai.com/browse/RT-18203
>> The class javafx.beans.binding.Bindings will get two new methods:
>> public static void bindBidirectional(Property<String> stringProperty, Property<?> otherProperty, Format format)
>> public static void unbindBidirectional(Object property1, Object property2)
>> The class javafx.beans.property.StringProperty will also get two new methods:
>> public void bindBidirectional(Property<?> other, Format format)
>> public void unbindBidirectional(Object other)
>> If parsing the StringProperty fails, the other property will be set to the default value. If formatting the arbitraty property fails, the StringProperty will be set to the empty String.
>> Any thoughts?
More information about the openjfx-dev