public void setValueAt(Object obj, int row, int col) {
   if (col == 1 && !isRowHeader(row)) {
     RowData rd = (RowData) rows.get(row);
     if (!(obj instanceof MatchableCollection) || obj == MatchableCollection.none)
       rd.mc.setMatch(null);
     else rd.mc.setMatch((MatchableCollection) obj);
     rd.updateValues();
     fireTableRowsUpdated(row, row);
   }
 }
 public void setRowSelected(int row, boolean on) {
   RowData rd = (RowData) rows.get(row);
   rd.setSelected(on && rd.canSelect());
 }