Things missing in the SortableGridData implementation
- add as listener to the delegator, so we're notified of changes
- translate and multiplex those changes
- do own notifications (XGridDataListener.dataChanged) when the sort order changed
- (possibly) update the sort order when the data in the current sort-column changed
What's there is a IMouseFunction implementation which cares for sorting the ITableModel's data,
by the column whose header was clicked. This is dependent on the model declaring support for sorting,
by exposing a ITableSort interface.
Missing pieces:
- no UNO equivalent, yet (neither as design nor as implementation)
- visualization of the current sort order/column
Less cluttering in the InputHandler implementation this way.
Same outsourcing is still to happen to the row selection functionality.
The upcoming feature of column sorting will be a IMouseFunction implementation, too.
This means it doesn't interfere with the "normal" quick help (which is a singleton really dedicated to, well,
quickly displaying help). Also, it means we do not need the QUICKHELP_NO_DELAY flag.
To prevent flickering when repeatedly showing such a tip, introduced Help::UpdateTip, which updates an existing
tip, instead of destroying the old tip window, and creating a new one.
Used this new UpdateTip also in the BrowseBox, means means some less flickering there, too.
fact some clients (the A11Y API implementation) exploited this, e.g. by simply adding elements to the array,
without the owner (the TableControl/_Impl) ever noticing it. Replaced that with a working API.
In this course, removed XGridSelection::getMin/MaxSelectionIndex. Pretty useless IMO, unused, and ugly to
implement.
In this course, more code which was in SVTXGridControl was moved to the places it belongs to, effectively
meaning that the TableControl has better chances than before to be used outside an SVTXGridControl (though
we're not there, yet).
Also, the selection-related methods in TableControl/_Impl got some refactoring love, so the implementation
details are hidden in the Impl class now, instead of being exposed to an exploited by the TableControl.
And while we were there ... The XGridSelection does not provide a |selectColumn| anymore (there was no
preparation whatsoever for column selection, anywhere, thus it was a complete dummy.)
Also, its de/selectRows methods have been removed: They have questionable use, and make implementation
rather difficult, compared with multiple calls to de/selectRow.
having more reasonable defaults for the colors (VOID instead of some hard-coded values, which thus are unusable).
Also, introduced new property UseGridLines controlling whether or not to paint the table grid.