Cleanup of Tree-/TableRowSkin to support switching skins The misbehavior/s - memory leaks due to manually registered listeners that were not removed - side-effects due to listeners still active on old skin (like NPEs)
Fix - use skin api for all listener registration (for automatic removal in dispose) - do not install listeners that are not needed (fixedCellSize, same as in fix of ListCellSkin [JDK-8246745](https://bugs.openjdk.java.net/browse/JDK-8246745)) Added tests for each listener involved in the fix to guarantee it's still working and does not have unwanted side-effects after switching skins. Note: there are pecularities in row skins (like not updating themselves on property changes of its control, throwing NPEs when not added to a VirtualFlow) which are not part of this issue but covered in [JDK-8274065](https://bugs.openjdk.java.net/browse/JDK-8274065) ------------- Commit messages: - 8274061: Tree-/TableRowSkin: misbehavior on switching skin Changes: https://git.openjdk.java.net/jfx/pull/632/files Webrev: https://webrevs.openjdk.java.net/?repo=jfx&pr=632&range=00 Issue: https://bugs.openjdk.java.net/browse/JDK-8274061 Stats: 1005 lines in 8 files changed: 882 ins; 100 del; 23 mod Patch: https://git.openjdk.java.net/jfx/pull/632.diff Fetch: git fetch https://git.openjdk.java.net/jfx pull/632/head:pull/632 PR: https://git.openjdk.java.net/jfx/pull/632