*/
public TableCellRenderer getCellRenderer(int row, int column) {
if (message == null) {
int sortedRow = sorter.getSortedRowForRow(row);
try {
TableRow tableRow = tableDataModel.getTableRow(sortedRow);
String key = (String) columnKeys.get(column);
if (tableRow.hasCustomRenderer(key)) {
Widget renderer =
tableRow.getRenderer(
Table.this,
getValueAt(row, column),
isCellSelected(row, column),
hasFocus(),
tableRow,
key);
if (renderer != null) {
return new CustomCellRenderer(renderer);
}
}
} catch (GUIException e) {
/* There should be no exception here */
throw new RuntimeException(e);
}
if (tableDataModel != null) {
Object object = tableDataModel.getValue(sortedRow, (String) columnKeys.get(column));
if (object != null) {
return getDefaultRenderer(object.getClass());
}
}
}
/* Fall back to the JTable internal processing */
return super.getCellRenderer(row, column);
}
public TableCellEditor getCellEditor(int row, int column) {
if (message == null) {
int sortedRow = sorter.getSortedRowForRow(row);
try {
TableRow tableRow = tableDataModel.getTableRow(sortedRow);
String key = (String) columnKeys.get(column);
Widget editor =
tableRow.getEditor(
Table.this,
getValueAt(row, column),
tableDataModel.getTableRow(sortedRow),
key);