Skip to content

Instantly share code, notes, and snippets.

@r-moeritz
Created June 16, 2011 19:09
Show Gist options
  • Save r-moeritz/1029989 to your computer and use it in GitHub Desktop.
Save r-moeritz/1029989 to your computer and use it in GitHub Desktop.
hello jwt in clojure : hello.clj
(ns jwt-examples.hello)
(defmacro create-listener [args & body]
(let [argsnum (if (< 0 (count args)) (count args) "") ]
`(proxy [ ~(symbol (str "Signal" argsnum "$Listener")) ] [] (trigger ~args ~@body))))
(import [eu.webtoolkit.jwt WObject Signal WApplication WBreak WtServlet
WEnvironment WLineEdit WPushButton WText Signal$Listener Signal1
EventSignal WWidget Side]
[java.util EnumSet])
(defn- make-app [env]
(let [wapp (doto (WApplication. env)
(.setTitle "Hello world"))
root (.getRoot wapp)
name-edit (doto (WLineEdit.)
(.setFocus))
greeting (WText.)]
(WText. "Your name, please? " root)
(.addWidget root name-edit)
(.. (doto (WPushButton. "Greet me." root)
(.setMargin 5 (EnumSet/of Side/Left))) clicked
(addListener
wapp
(create-listener []
(.setText greeting (.getText name-edit)))))
(.. name-edit enterPressed
(addListener
wapp
(create-listener []
(.setText greeting (.getText name-edit)))))
(WBreak. root)
(.addWidget root greeting)
wapp))
(defn make-servlet []
(proxy [WtServlet] []
(createApplication [env]
(make-app env))))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment