   of :none, :rows, :columns or :cells"
   [otable mode]
   (assert (keyword-isa? otable table-control))
-  (let [table (get-control otable)]
+  (let [^JTable table (get-control otable)]
     (condp = mode
      :none    (.setCellSelectionEnabled table false)
      :rows    (doto table

    columns to the according index values."
  [otable]
  (assert (keyword-isa? otable table-control))
  (let [table     (get-control otable),
        col-count (.getColumnCount table),
        col-range (range col-count),
        col-model (.getColumnModel table),

  "Selects a single cell given as view-coordinates in the given table control"
  [otable row column]
  (assert (keyword-isa? otable table-control))
  (.changeSelection ^JTable (get-control otable) row column false false))

(defn-swing set-value-at-view
  "Sets the value of a cell in the table according to a view position."
  [otable row column contents]
  (assert (keyword-isa? otable table-control))
  (let [columns (get-column-count otable),
        rows    (get-row-count otable)]
    (if (>= column columns)
      (call-hook otable "extend-columns-to" (+ 1 column)))
    (if (>= row rows)
      (call-hook otable "extend-rows-to" (+ 1 row)))
    (.setValueAt ^JTable  (get-control otable) (str contents) row column)))

(defn set-value-at-index
  "Sets the value of a cell in the table according to the model
