On Sun, 19 Sep 2021 11:24:43 GMT, Marius Hanl <[email protected]> wrote:
>> modules/javafx.controls/src/main/java/javafx/scene/control/cell/ChoiceBoxTreeCell.java
>> line 301:
>>
>>> 299: return;
>>> 300: }
>>> 301:
>>
>> (darn, can't add the important lines - which is backing out if treeItem is
>> null)
>>
>> The re-ordering leads to change of behavior, here's a test that's
>> passing/failing before/after:
>>
>> /**
>> * change of behavior: cell must not be editing if treeItem == null.
>> * fails with fix, passes without
>> */
>> @Test
>> public void testChoiceBoxTreeCellEditing() {
>> TreeView<String> treeView = new TreeView<>();
>> treeView.setEditable(true);
>> ChoiceBoxTreeCell<String> cell = new ChoiceBoxTreeCell<>();
>> cell.updateTreeView(treeView);
>> cell.updateItem("TEST", false);
>>
>> cell.startEdit();
>> assertFalse(cell.isEditing());
>> assertNull(cell.getGraphic());
>> }
>>
>> same for ComboBoxTreeCell
>
> Hm.. weird that the super class is firing an edit event even with `treeItem =
> null`. Maybe this should be investigated in a follow-up. Good catch though. :)
yeah, there are whacky aspects:
- we can switch a cell that's not attached to its surroundings (like table,
column, treeItem, off-range) into editing state - the only constraint being
that it's not empty
- the other way round: a cell that didn't switch into editing will nevertheless
fire a editStart on its target
Definitely leeway for improvements ;)
-------------
PR: https://git.openjdk.java.net/jfx/pull/569