Regression: JavaFX 8 doesn't call listeners in Skin implementations

Stephen F Northover steve.x.northover at oracle.com
Wed Jan 8 09:55:56 PST 2014


If the code sample is small, then it can be pasted into comments. 
Otherwise, please contact the bug owner and he/she can attach the files.

This is not optimal.  I'm looking into getting attachments re-enabled 
for the JIRA.

Steve

On 2014-01-07 5:28 PM, Florian Brunner wrote:
> Hi Steve,
>
> Ok, I've reported the issue here:
> https://javafx-jira.kenai.com/browse/RT-35208
>
> I even have a small sample application with a small custom control showing the issue, but I don't have an option to add an attachement to the issue in Jira...
>
> -Florian
>
> Am Freitag, 3. Januar 2014, 11.23:03 schrieb Stephen F Northover:
>> Hi Florian,
>>
>> I would enter a JIRA with the steps to make the problem happen and the
>> smallest possible example code that shows it.
>>
>> Thanks,
>> Steve
>>
>> On 2014-01-02 5:10 PM, Florian Brunner wrote:
>>> I also tried to add a listener directly to control.getDockingSplitPaneChildren() in case the issue is with Bindings.bindContent, but also this listener doesn't get called.
>>>
>>> member:
>>>
>>>       private final ListChangeListener<DockingSplitPaneChildBase> dockingSplitPaneChildrenListener = new ListChangeListener<DockingSplitPaneChildBase>() {
>>>           @Override
>>>           public void onChanged(Change<? extends DockingSplitPaneChildBase> change) {
>>>               System.out.println("Change!");
>>>           }
>>>       };
>>>
>>>    ...
>>>
>>> in constructor:
>>>
>>>    control.getDockingSplitPaneChildren().addListener(dockingSplitPaneChildrenListener);
>>>
>>> -Florian
>>>
>>> Am Donnerstag, 2. Januar 2014, 22.51:23 schrieb Florian Brunner:
>>>> Hi,
>>>>
>>>> I'm in the process of upgrading Drombler FX to JavaFX 8 and hit another regression issue: JavaFX 8 doesn't call listeners in my Skin implementation (it used to work with JavaFX 2.x !)
>>>>
>>>> Here is the Skin implementation:
>>>>
>>>> https://sourceforge.net/p/drombler/drombler-fx/ci/default/tree/drombler-fx-core-docking/src/main/java/org/drombler/fx/core/docking/impl/skin/DockingSplitPaneSkin.java
>>>>
>>>> When I add something to
>>>>
>>>> control.getDockingSplitPaneChildren()
>>>>
>>>> what should trigger the listeners, then with a debugger I can trace the call up to the WeakListChangeListener where on line 87 the listener is null.
>>>>
>>>> Note that I'm not using a WeakListChangeListener explicitly - JavaFX 8 must have created this somewhere and for some reason the listener from the Skin got lost!
>>>>
>>>> I also tried to keep a reference to my listeners as a member variable in the Skin implementation, but this didn't work either.
>>>>
>>>> I haven't filed an issue yet because I guess there is already a new way how to solve this.
>>>>
>>>> Note that I would like to solve this first with this "basic" Skin implementation and not with the new SkinBase class just yet, as I'm not familiar with that new class yet. One refactoring step at a time. ;-)
>>>>
>>>> -Florian
>>>>
>>>>



More information about the openjfx-dev mailing list