class ColumnDefinitionTableBinder implements Observer, ListSelectionListener {

    @Override
    public void update(Observable o, Object arg)
    {
        if (ColumnDefinitionModel.SELECTED_DEFINITION_PROPERTY.equals(arg))
        {
            int currentSelection = myTable.getSelectionModel().getAnchorSelectionIndex();
            ColumnDefinitionRow selectedRow = myModel.getSelectedDefinition();
            if (selectedRow != null && (currentSelection < 0 || selectedRow.getColumnId() != currentSelection))
            {
                myTable.getSelectionModel().setSelectionInterval(selectedRow.getColumnId(), selectedRow.getColumnId());
            }
            else if (selectedRow == null && currentSelection >= 0)
            {
                myTable.getSelectionModel().clearSelection();
                myTable.getSelectionModel().setAnchorSelectionIndex(-1);
            }
        }
    }

    public  ColumnDefinitionTableBinder(JTable definitionTable, ColumnDefinitionModel model);

}