// We have to manually generate events for the JTreeTable,
// since it has installed some wrapper object to convert the
// TreeTableModel into a TableModel.
AbstractTableModel model =
(AbstractTableModel) treeTable.getModel();
model.fireTableChanged(new TableModelEvent(model, 0,
treeTable.getRowCount()-1));
// Calculating the schedule may mean that direct time columns now
// need to be displayed or hidden
showHideColumns();