From 66d19655db854cc8f6d04f04727d42b9436d2fe8 Mon Sep 17 00:00:00 2001 From: "Francis J. Hitchens" Date: Thu, 14 Jan 2016 10:05:40 -0600 Subject: [PATCH] Finished s-widget examples. --- clojure/sodium/README.md | 16 +++---- clojure/sodium/src/sodium/s_widgets.clj | 55 +++++++++++++------------ 2 files changed, 37 insertions(+), 34 deletions(-) diff --git a/clojure/sodium/README.md b/clojure/sodium/README.md index d45c159e..fc0fe57f 100644 --- a/clojure/sodium/README.md +++ b/clojure/sodium/README.md @@ -11,12 +11,14 @@ lein compile ## Usage -lein test -lein run -m sodium.memory-test-1 -lein run -m sodium.memory-test-3 -lein run -m sodium.memory-test-4 -lein run -m sodium.memory-test-5 -lein run -m sodium.s-widgets + lein test + lein run -m sodium.memory-test-1 + lein run -m sodium.memory-test-3 + lein run -m sodium.memory-test-4 + lein run -m sodium.memory-test-5 + lein run -m sodium.s-widgets + for all s-widger or any combination of the following parameters for individual widgets + lein run -m soduium.s-widgets form-validation spinme spinner translate redgreen gamechat frp-reverse label ### Any Other Sections ### That You Think @@ -31,4 +33,4 @@ mvn deploy:deploy-file -DgroupId=local -DartifactId=sodium -Dversion=1.0.0 - Copyright © 2016 Francis Hitchens Distributed under the Eclipse Public License either version 1.0 or (at -your option) any later version. \ No newline at end of file +your option) any later version. diff --git a/clojure/sodium/src/sodium/s_widgets.clj b/clojure/sodium/src/sodium/s_widgets.clj index ef2906e6..6fe834b1 100644 --- a/clojure/sodium/src/sodium/s_widgets.clj +++ b/clojure/sodium/src/sodium/s_widgets.clj @@ -5,7 +5,8 @@ (:import [javax.swing JButton JComponent JFrame JLabel JPanel JTextField SwingUtilities]) (:import [java.awt FlowLayout GridBagLayout GridBagConstraints]) (:import [java.awt.event ActionListener]) - (:import [javax.swing.event DocumentEvent DocumentListener])) + (:import [javax.swing.event DocumentEvent DocumentListener]) + (:gen-class)) (defn update-text [source sink] (let [text (.getText source)] @@ -38,7 +39,6 @@ (Transaction/post (fn [] (.setEnabled button (.sample enabled)))) (reset! l (.listen (Operational/updates enabled) (handler [ena] - (.println *err* "in s-button handler") (if (SwingUtilities/isEventDispatchThread) (.setEnabled button ena) (SwingUtilities/invokeLater (fn [] @@ -49,18 +49,17 @@ (defn s-label [c-text] - (let [l (atom false) + (let [l (atom 0) label (proxy [JLabel] [""] (removeNotify [] (.unlisten @l) (proxy-super removeNotify)))] (reset! l (.listen (Operational/updates c-text) - (handler [t] (println (str "Operational/updates handler t=" t)) + (handler [t] (if (SwingUtilities/isEventDispatchThread) - (.setText label t) - (SwingUtilities/invokeLater (fn [t] (println "invokeLater")(.setText label ) t)))))) + (.setText label t) + (SwingUtilities/invokeLater (fn [t] (.setText label ) t)))))) (Transaction/post (fn [] (SwingUtilities/invokeLater (fn [] - (println "invokeLaterLater") (.setText label (.sample c-text)))))) label)) @@ -105,10 +104,8 @@ (.listen (Operational/updates enabled) (handler [ena] (if (SwingUtilities/isEventDispatchThread) (do - (println "dispatch thread") (.setEnabled s-text-field ena)) (do - (println "dispatch else") (SwingUtilities/invokeLater (fn [] (.setEnabled s-text-field ena))))))))) {:jcomp s-text-field :jtext s-text-field :cell text :stream s-user-changes :dl dl}))) @@ -205,7 +202,7 @@ lbl-value (s-label (.map value (apply1 [i] (str i)))) plus (s-button "+") minus (s-button "-") - s-plus-delta (.map (:s-clicked plus) (apply1 [u] (println "plus") + s-plus-delta (.map (:s-clicked plus) (apply1 [u] 1)) s-minus-delta (.map (:s-clicked minus) (apply1 [u] -1)) s-delta (.orElse s-plus-delta s-minus-delta) @@ -232,8 +229,7 @@ 0))) a (.map (:cell txt-a) (apply1 [t] (parse-int t))) b (.map (:cell txt-b) (apply1 [t] (parse-int t))) - sum (Cell/lift (apply2 [a_ b_] (println (str a_ " + " b_)) - (+ a_ b_)) a b) + sum (Cell/lift (apply2 [a_ b_] (+ a_ b_)) a b) lbl-sum (s-label (.map sum (apply1 [i] (str i))))] (doto frame (.setLayout (FlowLayout.)) @@ -297,7 +293,6 @@ :gridx 1 :gridy 1 (:jbutton minus))) (.loop s-set-value (.snapshot s-delta value (apply2 [delta value] - (println (str delta ":" value)) (+ delta value)))) {:jcomp spinner :jpanel spinner :cell value})) @@ -353,7 +348,6 @@ :component (s-text-field "" 30 enabled) }})) (reset! valids (conj @valids {k-valid (Cell/lift (apply2 [e n] - (println (str "e: " e "n: " n)) (cond (>= row n) "" @@ -374,7 +368,6 @@ (dotimes [row (+ max-emails 2)] (let [k-row (keyword (str "row" row)) k-valid (keyword (str "valid" row))] - (println (str row "-> " k-row " -> " k-valid)) (doto view (grid-bag-layout :fill :BOTH @@ -398,22 +391,30 @@ :gridx 0 :gridy 6 :gridwidth 3 :fill :NONE - (:jbutton (s-button "OK" @all-valid)))) - (pr @valids)))) + (:jbutton (s-button "OK" @all-valid))))))) (doto view + (.setDefaultCloseOperation JFrame/DISPOSE_ON_CLOSE) (.setSize 600 200) (.setVisible true)))) (defn -main [& args] - (form-validation) - ;(spinme) - ;(add) - ;(spinner) - ;(translate) - ;(redgreen) - ;(gamechat) - ;(frp-reverse) - ;(label) - ) + (if (= nil args) + (do + (form-validation) + (spinme) + (add) + (spinner) + (translate) + (redgreen) + (gamechat) + (frp-reverse) + (label)) + (doall + (map + (fn [s] + ((ns-resolve 'sodium.s-widgets (symbol s)))) args)))) + + +