-
Notifications
You must be signed in to change notification settings - Fork 482
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
8277000: Tree-/TableRowSkin: replace listener to fixedCellSize by live lookup #1645
base: master
Are you sure you want to change the base?
8277000: Tree-/TableRowSkin: replace listener to fixedCellSize by live lookup #1645
Conversation
👋 Welcome back mhanl! A progress list of the required criteria for merging this PR into |
❗ This change is not yet ready to be integrated. |
@@ -97,10 +97,6 @@ public TreeTableRowSkin(TreeTableRow<T> control) { | |||
|
|||
ListenerHelper lh = ListenerHelper.get(this); | |||
|
|||
lh.addChangeListener(control.indexProperty(), (ev) -> { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Since #1635 got merged, this is not needed as TableRowSkinBase
does that already:
registerChangeListener(control.indexProperty(), e -> requestCellUpdate());
. So this is basically a noop.
Webrevs
|
/reviewers 2 |
@kevinrushforth |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Tested with the Monkey Tester, both TreeTableView and TableView - looks good, responds to fixed cell size changes.
Left a few minor comments.
modules/javafx.controls/src/main/java/javafx/scene/control/skin/TableRowSkinBase.java
Outdated
Show resolved
Hide resolved
modules/javafx.controls/src/main/java/javafx/scene/control/skin/TableRowSkinBase.java
Show resolved
Hide resolved
…tree-table-row-skin-live-lookup
// TableCells in the scenegraph | ||
getChildren().remove(tableCell); | ||
} | ||
// we only add/remove to the scenegraph if the fixed cell |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
are you sure this is correct?
the tableCell is added in L343 only if fixedCellSize > 0
the removal in L424 misses that logic
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, IntelliJ actually gave me the hint.
isVisible
can only be false
, when a fixedCellSize
is set. So the else branch can only ever be executed when fixedCellSize > 0
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
it's hard to tell (for me): there are just too many conditions: isColumnParticallyOrFullVisible(), if parent == null...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It will be much better after #1644 :)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
can you apply the same treatment as in #1644? there at least it makes sense.
This PR improves the
Tree-/TableRowSkin
code by doing a normal live lookup for thefixedCellSize
instead of adding listener just to update variables(fixedCellSizeEnabled
andfixedCellSize
) which can otherwise be also just lookup'd without the hassle of listeners.While this is mostly a cleanup, it does improve the state of the
Tree-/TableRow
, as when theTableRowSkinBase
constructor is called, the variables are not yet set.It is also consistent with the other cells, see also JDK-8246745.
Helps a bit with JDK-8185887 (#1644), but as written above, not required as there is no (visible) effect.
Progress
Issue
Reviewing
Using
git
Checkout this PR locally:
$ git fetch https://git.openjdk.org/jfx.git pull/1645/head:pull/1645
$ git checkout pull/1645
Update a local copy of the PR:
$ git checkout pull/1645
$ git pull https://git.openjdk.org/jfx.git pull/1645/head
Using Skara CLI tools
Checkout this PR locally:
$ git pr checkout 1645
View PR using the GUI difftool:
$ git pr show -t 1645
Using diff file
Download this PR as a diff file:
https://git.openjdk.org/jfx/pull/1645.diff
Using Webrev
Link to Webrev Comment