How to trigger property invalidation?
martin.sladecek at oracle.com
Fri Nov 2 11:12:59 PDT 2012
maybe an ObjectProperty isn't really what you are looking for. If you
have single bean with an non-observable property (BTW, how do you know
it has changed?) and you want to convert it to an FX property, why not
using a property of the same type as MyBean.myProperty and set FX
property when myProperty changes?
On 11/02/2012 04:25 PM, Werner Lehmann wrote:
> unfortunately I cannot listen to changes on myProperty because it is
> not an observable property: MyBean is a domain bean provided by the
> server and those beans do not have observable properties. Thanks for
> the clarification though.
> In my case this means that I have to clone the bean everytime when a
> slider position changes so that I can replace the property value I am
> actually observing (the MyBean property). Seems to be quick enough but
> is hardly elegant...
> On 02.11.2012 15:50, Pavel Safrata wrote:
>> Hi Werner,
>> I think that you cannot trigger invalidation manually by design. The
>> property holds a reference and should not be concerned with changes of
>> anything else than the reference. There would be various issues with it,
>> for example there are change notifications bound to the invalidation,
>> which would produce a weird notification of the property being changed
>> to the same value. I think the right approach is to listen directly on
>> the myProperty instead of tweaking the invalidation mechanism.
>> With Regards,
>> On 2.11.2012 12:55, Werner Lehmann wrote:
>>> for an ObjectProperty<MyBean>, is it possible to trigger invalidation
>>> manually when MyBean.myProperty changes? Basically I'd like to call
>>> markInvalid() but it is private. And set() compares old and new value
>>> by reference before invalidating, so won't see the change either.
>>> Workaround seems to be to copy the bean to another instance and assign
>>> the new instance to the object property.
More information about the openjfx-dev