method private _get_selection =
    let table_selection =
      match table_view.tv_view#selection#get_selected_rows with
        | [path] ->
            let iter = table_model#get_iter path in
              Some (path, table_model#get_data ~row:iter)
        | _  -> None
    in
      match table_selection with
        | None -> None
        | Some ((_, _) as ts) -> begin
            match column_view.col_view#selection#get_selected_rows with
              | [path] ->
                  let iter = current_column_model#get_iter path in
                  let r    = current_column_model#get_data ~row:iter in
                    Some (ts, Some (path, r))
              | _ -> Some (ts, None)
          end