I had some good hacking time last week
and I've cranked out an initial draft of 'passive'
SortedList. This class works as follows:
1. Calling setComparator() sorts the list
2. Updates after a sort happen in place (ie. no move)
3. Inserts after a sort happen at the end
This works good but it's not quite perfect. I
would prefer for inserts after a Comparator
has been applied to happen in the appropriate
sorted order. That'll require a bunch of work
on my behalf, but I think it'll improve the user
experience and that's worthwhile.
If you'd like to try it out, update CVS and launch
the issues browser. I've temporarily made the
issues table editable, and you can experiment
with applying sorting, then seeing how that
plays with filtering etc. Hopefully you can see
how it's still suboptimal!
Finally you'll note that the sort indicator icons
do not disappear when the sort order becomes
stale. I'll have to think about what I want to do here.
At work, our table's header icons vanish when your
sort order is stale. But I think that Windows' Explorer
keeps them when the sort order is stale. This is
a particularly sticky issue with multiple column sort,
where assembling a sort is a multiple step process!
I'm going to write a bunch more code to solve
this problem. It'll require a bunch of work on
IndexedTree but I think that it's totally doable.
PS - The score is 14-14. Hopefully I don't have to spam you
anymore, I think my Glazed Lists emails are almost all handled!