This is a FilteredList issue that Martin Sladecek is looking into. -- Jonathan Sent from a touch device. Please excuse my brevity.
"Martin Klähn" <grazer...@gmail.com> wrote: >I've created https://javafx-jira.kenai.com/browse/RT-32391 for the >problem >that TableView is not sortable with a FilteredList > >- Martin > > >On Mon, Aug 12, 2013 at 1:14 PM, Martin Klähn <grazer...@gmail.com> >wrote: > >> Sorry for the link I had that in the original mail but by adding it >seems >> to have vanished. >> So I had a chance to test the TableView with SortedList and >FilteredList >> with b102. >> >> Sorting is enabled with SortedList but not with FilteredList. I guess >> you'll want a issue for filtering with FilteredList? >> >> However I've run into a range of Exception in conjunction with >SortedLists >> created from FilteredList as item in TableView and user ordering of >Columns >> and user based changes of the FilteredList.predicate. They range from >> ArrayIndexOutOfBoundsException out of SortedList.java:313 to >> IndexOutOfBoundsException caused by TextInputControlBehavior.java:334 >and >> NullPointerException in SortedList.java:247. >> >> I've built a small test class a user has to interact with. We've >searched >> for some automatic way of reproducing the error to no avail (up to >now). >> See https://www.dropbox.com/s/bfhqm0xk4y9r1oz/FilterSortedList.java >> >> Steps to reproduce: >> 1) change column sort of any column >> 2) type two characters in the textfield below which will change the >> FilterList.predicate based on String.startsWith-condition. >> >> Regards, >> Martin >> >> >> >> On Thu, Aug 8, 2013 at 10:30 PM, Jonathan Giles ><jonathan.gi...@oracle.com >> > wrote: >> >>> Funny you should ask about this - I just blogged about SortedList >and >>> TableView the other day, over at FXExperience: >>> http://fxexperience.com/2013/**08/returning-a-tableview-back-** >>> >to-an-unsorted-state-in-**javafx-8-0<http://fxexperience.com/2013/08/returning-a-tableview-back-to-an-unsorted-state-in-javafx-8-0> >>> >>> Of course, I can see that you've already read that post (I see a >comment >>> from the code in my post in your code below). What might have been >missed >>> is that I noted earlier on in the blog post I had to make a few >small >>> changes to properly get SortedList support in TableView, so you'll >want to >>> try again in b102 (or b103). >>> >>> Regarding your use of FilteredList as well - I've not tried this at >all, >>> but I'll add it to my todo list to investigate today. I imagine >there might >>> be a bug somewhere. Whatever I find will probably make for a good >post at >>> FXExperience, so keep an eye out there too. >>> >>> Thanks, and if you do run into further issues, please don't hesitate >to >>> file bugs. In general, if TableView isn't sorting then something is >going >>> really wrong! >>> >>> -- Jonathan >>> >>> >>> On 8/08/2013 11:17 p.m., Martin Klähn wrote: >>> >>>> Hi guys, >>>> >>>> I'm working on a business application that makes use of TableView >and I'm >>>> working with JDK 8 build b101. >>>> >>>> Displaying the data works like a charm. Row sorting for ordinary >>>> ObservableLists is fine too. >>>> >>>> Then I've set TableView.items to FilteredList and row sorting was >>>> disabled. >>>> replacing TableView.item with SortedList does not allow row sorting >as >>>> well. Binding the comparator of SortedList to the >TableView.comparator >>>> has >>>> no effect either. >>>> >>>> >>>> // row sorting possible >>>> //final TableView<Integer> tableView = new >>>> TableView<>(FXCollections.**observableArrayList(2, 1, 3)); >>>> >>>> // row sorting not possible (SortedList) >>>> // create a TableView with the sorted list set as the items it will >show >>>> // bind the sortedList comparator to the TableView comparator >>>> //SortedList<Integer> sortedList = new >>>> SortedList<>(FXCollections.**observableArrayList(2, 1, 3)); >>>> //sortedList.**comparatorProperty().bind(** >>>> tableView.comparatorProperty()**); >>>> //final TableView<Integer> tableView = new TableView<>(sortedList); >>>> >>>> // row sorting not possible (FilteredList) >>>> //FilteredList<Integer> filteredList = new >>>> FilteredList<>(FXCollections.**observableArrayList(2, 1, 3), (e) -> >>>> true); >>>> //final TableView<Integer> tableView = new TableView<>(filteredList >); >>>> >>>> // Don't forget to define columns! >>>> final TableColumn<Integer, Number> integerColumn = new >>>> TableColumn<>("Integer"); >>>> final TableColumn<Integer, String> hexColumn = new >TableColumn<>("Integer >>>> Hex"); >>>> >>>> integerColumn.**setCellValueFactory(javaClass -> new >>>> SimpleLongProperty(javaClass.**getValue())); >>>> hexColumn.setCellValueFactory(**javaClass -> new >>>> >SimpleStringProperty(Integer.**toHexString(javaClass.**getValue()))); >>>> >>>> tableView.getColumns().addAll(**integerColumn, hexColumn); >>>> >>>> >>>> Any pointers on what I'm doing wrong or where I have to adapt my >>>> expectations. >>>> Is it correct that row sorting in a TableView is only possible for >>>> ordinary >>>> ObservableLists? >>>> >>>> >>>> With Regards >>>> Martin >>>> >>> >>> >>