class ColumnDefinitionTableBinder implements Observer, ListSelectionListener {

    @Override
    public void valueChanged(ListSelectionEvent e)
    {
        int selectedIndex = myTable.getSelectionModel().getMinSelectionIndex();
        ColumnDefinitionRow selectedRow = null;
        if (selectedIndex >= 0)
        {
            selectedRow = myModel.getDefinitionTableModel().getRow(selectedIndex);
        }

        if (myModel.getSelectedDefinition() != selectedRow)
        {
            myModel.setSelectedDefinition(selectedRow);
        }

        // start cell editing so that it can reread the table model, just incase
        // the isEditable changed after teh selected definition has been set in
        // the model.
        int column = myTable.getSelectedColumn();
        myTable.editCellAt(selectedIndex, column);
    }

    public  ColumnDefinitionTableBinder(JTable definitionTable, ColumnDefinitionModel model);

}