     (assert (not (nil? sql-text-area)))
     (seesaw.core/listen sql-text-area :key-pressed (partial on-key-press! handler ctrl-enter-keystroke))))
 
+(defn set-on-commit-handler!
+  [frame handler]
+  (let [btn-commit (seesaw.core/select frame [:#commit])]
+    (seesaw.core/listen btn-commit :action (fn [_] (handler)))))
+
 (defn set-on-rollback-handler!
   [frame handler]
   (let [btn-rollback (seesaw.core/select frame [:#rollback])]

  [^JFrame frame
   handlers]
  {:pre [(:ctrl-enter handlers)
         (:rollback handlers)
         (:closed handlers)]}
  (set-ctrl-enter-handler! frame (:ctrl-enter handlers))
  (set-on-rollback-handler! frame (:rollback handlers))
  (seesaw.core/listen frame :window-closed (fn [_] ((:closed handlers)))))

(defn get-contents!

    (assert (not= btn-new nil))
    (seesaw.core/listen btn-new :action (fn [_] (handler)))))

(defn set-on-save-handler
  "Set Save button handler."
  [frame handler]
  (let [btn-save (seesaw.core/select frame [:#save])]
    (assert (not= btn-save nil))
    (seesaw.core/listen btn-save :action (fn [_] (handler)))))

(defn set-on-open-handler
  [frame handler]
