@Override public M getSelection() { GridSelectionModel<M> sm = grid.getSelectionModel(); if (sm instanceof CellSelectionModel) { CellSelectionModel<M>.CellSelection cell = ((CellSelectionModel<M>) sm).getSelectCell(); return cell == null ? null : cell.model; } else { return sm.getSelectedItem(); } }