anchor.diff:      } else {
         _grid.setSelectedRows(_grid.getSelectedRows()..add(row));
       }
  +  }
  +
  +  /// Check whether the [row] is currently selected.
  +  bool isRowSelected(int row) {
  +    return _selectedRowsLookup.containsKey(row);
     }
   
     void handleHeaderClick(core.HeaderClick e) {
  
positive.code: 
    void handleClick(core.Click e) {
      // clicking on a row select checkbox
      if (_grid.getColumns[e.cell.cell].id == id && e.causedBy.target is dom.CheckboxInputElement) {
        // if editing, try to commit
        if (_grid.getEditorLock.isActive && !_grid.getEditorLock.commitCurrentEdit()) {
          e.preventDefault();
  
negative.code:   List<async.StreamSubscription> _subscriptions = [];
    Map<int,bool>_selectedRowsLookup = {};
    CheckboxSelectColumn({String id: '_checkbox_selector', String cssClass,
                         toolTip: 'Select/Deselect All', int width: 30})
    : super(id: id, cssClass: cssClass, toolTip: toolTip, width: width,
        name: 'Column selector', nameElement: new dom.CheckboxInputElement() , field: 'sel', resizable: false,
        sortable: false) {
      if(formatter != null) {
        this.formatter = formatter;
      } else {
        this.formatter = new CheckboxSelectionFormatter(this);
      }
    }
  
  