Bidirectional binding with conversion
Daniel Zwolenski
zonski at googlemail.com
Fri Dec 9 03:25:28 PST 2011
Nice idea, I can see it being useful.
Does it need to be limited to bidirectional bindings? Any reason unidirectional bindings cant use a converter too?
I wonder if we need a way to detect the failed parsing/formatting? For example if we were converting a TextField.textProperty to a Number (or Date) and it couldn't be parsed, I reckon I'd want to highlight the field as an error. Maybe this could be done with a custom formatter, is that the best way though?
On 09/12/2011, at 9:24 PM, Michael Heinrichs <michael.heinrichs at oracle.com> wrote:
> Hi Jonathan,
>
> it is very likely that we will add other types of bindings later. With a generic unbind method, we only have to add new bind methods in the future, significantly reducing the number of methods.
>
> Looking back it was a mistake to make the unbind methods symmetrical to the bind methods, they should have been generic right from the start. I hope I will have a chance to fix it at some point in the future.
>
> - Michael
>
>
>
> On 09.12.2011, at 10:42, Jonathan Giles wrote:
>
>> I'm sure there is a reason, but why do the unbind methods take Object rather than Property<?> or similar?
>>
>> -- Jonathan
>>
>> On Friday, 9 December 2011 7:33:30 p.m., 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?
>>>
>>> Thanks,
>>> Michael
>
More information about the openjfx-dev
mailing list