RFR: 8188026: TextFieldXXCell: NPE on calling startEdit

Marius Hanl mhanl at openjdk.java.net
Wed Jul 7 22:40:06 UTC 2021


This PR sets an unified logic to every **startEdit()** method of all Cell implementations.
So startEdit() is always doing the same now:

`super.startEdit();`
`if (!isEditing()) {
return;
}` 

This will prevent a NPE while also being cleaner (no more double checks)
The commits are splitted into 4 base commits:
- First commit changes the startEdit() for TableCell implementations (8 files)
- Second commit changes the startEdit() for TreeTableCell implementations (7 files)
- Third commit changes the startEdit() for ListCell implementations (7 files)
- Fourth commit changes the startEdit() for TreeCell implementations (7 files)

While writing tests, I found out that the CheckBoxListCell and the CheckBoxTreeCell don't disable their CheckBox, which is wrong.
In CheckBoxTableCell and CheckBoxTreeTableCell the CheckBox is disabled, but they don't check their dependencies e.g. TableColumn for null, leading to a NPE if not set.

I wrote a follow-up and assigned it to myself: https://bugs.openjdk.java.net/browse/JDK-8270042
The aim of this should be, that all 4 CheckBox...Cells have a proper CheckBox disablement while also being nullsafe.

Note 1: I removed the tests in TableCellTest added in https://github.com/openjdk/jfx/pull/529 in favor of the new parameterized TableCellStartEditTest
Note 2: This also fixes https://bugs.openjdk.java.net/browse/JDK-8268295

-------------

Commit messages:
 - Merge remote-tracking branch 'openjfx/master' into 8188026-cell-editing
 - 8188026: Test clean up + added ignored test case
 - 8188026: Implemented for TreeCell
 - 8188026: Implemented for ListCell
 - 8188026: Implemented for TreeTableCell
 - 8188026: Implemented for TableCell

Changes: https://git.openjdk.java.net/jfx/pull/569/files
 Webrev: https://webrevs.openjdk.java.net/?repo=jfx&pr=569&range=00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8188026
  Stats: 966 lines in 29 files changed: 572 ins; 334 del; 60 mod
  Patch: https://git.openjdk.java.net/jfx/pull/569.diff
  Fetch: git fetch https://git.openjdk.java.net/jfx pull/569/head:pull/569

PR: https://git.openjdk.java.net/jfx/pull/569


More information about the openjfx-dev mailing list