private void setupTableModel(ITableViewDescriptor viewDescriptor, IActionHandler actionHandler,
ICollectionConnector connector, EnhancedJTable viewComponent, TableModel tableModel) {
if (viewDescriptor.isSortable()) {
AbstractTableSorter sorterDecorator;
if (viewDescriptor.getSortingAction() != null) {
sorterDecorator = new ActionTableSorter(tableModel, viewComponent.getTableHeader(), actionHandler,
viewDescriptor.getSortingAction());
} else {
sorterDecorator = new TableSorter(tableModel, viewComponent.getTableHeader());
((TableSorter) sorterDecorator).setColumnComparator(String.class, String.CASE_INSENSITIVE_ORDER);
}
org.jspresso.framework.util.gui.Dimension iconSize = new org.jspresso.framework.util.gui.Dimension(
viewComponent.getTableHeader().getFont().getSize(), viewComponent.getTableHeader().getFont().getSize());
sorterDecorator.setUpIcon(getIconFactory().getUpIcon(iconSize));
sorterDecorator.setDownIcon(getIconFactory().getDownIcon(iconSize));
viewComponent.setModel(sorterDecorator);
listSelectionModelBinder.bindSelectionModel(viewComponent, connector, viewComponent.getSelectionModel(),
sorterDecorator);
} else {
viewComponent.setModel(tableModel);
listSelectionModelBinder.bindSelectionModel(viewComponent, connector, viewComponent.getSelectionModel(), null);
}
}