def _selection_column_updated ( self, event ):
        """ Handles single column selection changes.
        """
        cols = self.columns
        tl   = self.grid._grid.GetSelectionBlockTopLeft()
        br   = iter( self.grid._grid.GetSelectionBlockBottomRight() )

        # Get the column items and indices in the selection:
        values = []
        for row0, col0 in tl:
            row1, col1 = br.next()
            for col in xrange( col0, col1 + 1 ):
                values.append( ( col, cols[ col ].name ) )

        if len( values ) > 0:
            # Sort by increasing column index:
            values.sort(key=itemgetter(0))
            index, column = values[0]
        else:
            index, column = -1, ''

        # Save the new selection information:
        self.set( selected_column_index = index,
                  trait_change_notify   = False )
        self.setx( selected_column = column )

        # Invoke the user 'on_select' handler:
        self.ui.evaluate( self.factory.on_select, column )
dataset/ETHPy150Open enthought/traitsui/traitsui/wx/table_editor.py/TableEditor._selection_column_updated/original