On Sun, 6 Jun 2021 12:44:00 GMT, Marius Hanl <[email protected]> wrote:

> This PR enables Tree- and TableCells to also check the row editability when 
> an edit should happen. With this a Tree- or TableCell is not editable, when 
> the row where the cell is in is not.
> 
> While this PR fixes the problem described in the ticket, it does not fix the 
> example.
> This is due the example uses the **CheckBoxTableCell**, which is a 
> ready-to-use subclass of **TableCell**. 
> 
> While looking into this, I found out that multiple sub implementations still 
> have this issue, but the fix is not always the same, e.g. CheckBoxTableCell 
> should disable the CheckBox (in **updateItem**), while the ChoiceBoxTableCell 
> should check the row editability in the **startEdit** method (like this PR 
> does).
> 
> I created a follow-up issues for fixing all the sub Tree- and TableCell 
> implementation which do not count the row editability in:
> [JDK-8268295](https://bugs.openjdk.java.net/browse/JDK-8268295)

modules/javafx.controls/src/main/java/javafx/scene/control/TableCell.java line 
310:

> 308:                 (table != null && !table.isEditable()) ||
> 309:                 (column != null && !column.isEditable()) ||
> 310:                 (row != null) && !row.isEditable()) {

Incorrect Line ---- "(row != null) && !row.isEditable())"
Correction required ----  "(row != null && !row.isEditable()))"

Refer similar line which is rightly implemented in TreeTableCell.java.

modules/javafx.controls/src/test/java/test/javafx/scene/control/TableCellTest.java
 line 327:

> 325: 
> 326:     @Test
> 327:     public void testCellInUneditableRowIsNotEditable() {

I recommend adding tests for cell.startEdit() using all combinations of 
TableView, TableColumn and TableRow editable states.

modules/javafx.controls/src/test/java/test/javafx/scene/control/TreeTableCellTest.java
 line 638:

> 636:     @Test
> 637:     public void testCellInUneditableRowIsNotEditable() {
> 638:         tree.setEditable(true);

I recommend adding tests for cell.startEdit() using all combinations of 
TreeTableView, TreeTableColumn and TreeTableRow editable states.

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

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

Reply via email to