On Sun, 19 Sep 2021 11:24:43 GMT, Marius Hanl <mh...@openjdk.org> 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

Reply via email to