Bug when combining ListView and SortedList?

Fisher, Robert robert.fisher.ext at zeiss.com
Fri Oct 30 11:07:22 UTC 2015


Hi,

I am wondering if this behaviour of ListView's MultipleSelectionModel is correct:


ListView<String> listView = new ListView<>();
ObservableList<String> items = FXCollections.observableArrayList();
SortedList<String> sortedItems = new SortedList<>(items);
sortedItems.setComparator(String::compareTo);
listView.setItems(sortedItems);

items.add("2");
listView.getSelectionModel().selectFirst();
items.addAll("1", "3");

System.out.println(listView.getSelectionModel().getSelectedItem());
System.out.println(listView.getSelectionModel().getSelectedItems());

This yields the following console output on JDK 8u66:

2
[1]

The "selected item" and "selected items" are out of sync. Interestingly if you attach a ListChangeListener to the selected items list, it only fires once (when selectFirst is called).

Is this a bug?

Cheers,
Rob


More information about the openjfx-dev mailing list