public synchronized Object getValueAt(int rowIndex, int columnIndex) { TableRowProgressMonitor monitor = monitors.get(rowIndex); switch (columnIndex) { case TITLE_COLUMN: return monitor.getTitle(); case PROGRESS_COLUMN: return monitor.getProgressBar(); case STATUS_COLUMN: return monitor.getStatus(); default: throw new IndexOutOfBoundsException(); } }