(defn tree-example []
(let [sr (ref "")
m (ref {{:name "Cookies"} {{:name "Chocolat"} 1 {:name "Vanilla"} { {:name "with sparkles"} 2 {:name "without sparkles"} 3}}})
path (atom nil)]
(frame :title "Tree example" :show true :size [400 200]
[_ (stack
[tf (text-field :str-ref sr)
_ (tree
:name tr
:action ([old new]
(prn (.getSelectionPath tr))
(if new
(dosync
(swap! path (constantly new))
(alter sr (constantly (:name (last new)))))))
:model (mapref-tree-model m {:name "Food"}
:node-wrapper (fn [node path] (Pathed. node (str (:name node)) path))))]
(add-action-listener
tf
([_]
(dosync
(let [c (get-in @m @path)]
(prn 10 c @sr @m)
(if-let [r (butlast @path)]
(do
(alter m update-in r dissoc (last @path))
(alter m update-in r assoc {:name @sr} c))
(do
(alter m dissoc (last @path))
(alter m assoc {:name @sr} c)))))
(prn @m))))])))
Vars in
clj-swing.example/tree-example:
defn
let
Used in 0 other vars
Comments top
No comments for tree-example. Log in to add a comment.