[prev in list] [next in list] [prev in thread] [next in thread] 

List:       openjdk-openjfx-dev
Subject:    Re: Discuss: SkinBase - add api to support register InvalidationListeners
From:       Kevin Rushforth <kevin.rushforth () oracle ! com>
Date:       2021-01-26 22:31:10
Message-ID: c75b12e6-e8fe-11e0-cfaa-7392948590c6 () oracle ! com
[Download RAW message or body]

I like the look of that. It's nice to see more boilerplate code being 
taken care of by shared code in the SkinBase superclass.

-- Kevin

On 1/25/2021 6:09 AM, Jeanette Winzenburg wrote:
>
> After playing a bit with the issue, it looks like it might be a good 
> idea to go a step further and also add support for listChangeListener, 
> added some finger-flexing to the issue 
> https://bugs.openjdk.java.net/browse/JDK-8258777
>
> To feel the code's weight (-lessness :), there's a gist comparing the 
> effect w/out api 
> https://gist.github.com/kleopatra/fcce1e40c48e84b37f62631df348be90
>
> -- Jeanette
>
>
> Zitat von Jeanette Winzenburg <fastegal@swingempire.de>:
>
>> Thanks, Kevin :)
>>
>> Starting work.
>>
>> -- Jeanette
>>
>> Zitat von Kevin Rushforth <kevin.rushforth@oracle.com>:
>>
>>> I think this sounds like a very natural addition to the API. Making 
>>> it easier for controls to clean up after themselves seems like a win.
>>>
>>> -- Kevin
>>>
>>>
>>> On 1/7/2021 5:45 AM, Jeanette Winzenburg wrote:
>>>>
>>>> Recently filed (RFE) 
>>>> https://bugs.openjdk.java.net/browse/JDK-8258777 - it's about 
>>>> adding api to support un/register invalidationListener just the 
>>>> same way as changeListener.
>>>>
>>>> Trigger was work on cleaning up skins such that they don't 
>>>> misbehave (f.i. leaking memory or throwing exception, 
>>>> https://bugs.openjdk.java.net/browse/JDK-8241364) on switching the 
>>>> skin. Most of the related issues boil down to incomplete removal of 
>>>> listeners. As far as manual added (but not removed) changeListeners 
>>>> are involved, the fix is to use skin.registerChangeListener: all 
>>>> those are auto-removed in skinbase.dispose.
>>>>
>>>> For InvalidationListeners, the fix is cumbersome: it requires 
>>>> storing both the listener and its weak wrapper, manually adding the 
>>>> weak wrapper and manually removing it in dispose. Getting really 
>>>> boring if a skin (like TextInputXX) registers many of them ..
>>>>
>>>> IMO, not having symmetric support of invalidation- vs 
>>>> changeListeners in SkinBase api very much feels like an omission - 
>>>> which would be fixed by this :)
>>>>
>>>> Opinions, please.
>>>>
>>>> -- Jeanette
>>>>
>
>
>

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic