Regression: JavaFX 8 doesn't call listeners in Skin implementations
Florian Brunner
fbrunnerlist at gmx.ch
Thu Jan 2 14:10:24 PST 2014
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