     (let [location-column (.indexOf tags "Location")]
       (alter current-data
              (fn [coll] (vec (remove #(= (nth % location-column) loc) coll))))))
-  (awt-event (-> @browser :table .getModel .fireTableDataChanged)
+  (awt-event (update-browser-table)
              (-> @settings-window :locations :table .getModel .fireTableDataChanged)
 ))
 

      data
      (conj data new-row))))

(defn add-browser-table-row [new-row]
  (let [row-vec (vec new-row)
        location (row-vec (.indexOf tags "Location"))]
    (dosync
      (if (or (contains? @current-locations location) (= location ""))
        (alter current-data refresh-row row-vec))))
  (awt-event (.fireTableDataChanged (.getModel (@browser :table)))))
    
(defn remove-location [loc]
  (dosync

        (changedUpdate [_ _] (f))
        (removeUpdate [_ _] (f))))))

(defn row-index-to-path [i]
  (let [table (@browser :table)]
    (.. table getModel
        (getValueAt (.convertRowIndexToModel table i)
                    (.indexOf tags "Path")))))

(defn open-selected-files [table]
  (doseq [i (.getSelectedRows table)]
    (let [f (row-index-to-path i)]
      (if (.exists (File. f))
        (.openAcquisitionData gui f)
        (ReportingUtils/showError "File not found.")))))

(defn listen-to-open [table]
  (.addMouseListener table
