;; Command_Launcher.clj starts here:
(import '(java.awt Color)
        '(java.awt.event TextListener)
	'(ij.gui GenericDialog)
	'(ij IJ)
        '(ij Menus))

(let [commands (keys (. Menus getCommands))
      gd (GenericDialog. "Command Launcher")]
  (.addStringField gd "Command: " "")
  (let [prompt (. (. gd getStringFields) get 0)]
    (doto prompt
      (.setForeground (. Color red))
      (.addTextListener (proxy [TextListener] []
        (textValueChanged [tvc]
          (let [text (.getText prompt)]
            (.setForeground prompt
              (if (some #{text} commands)
                (. Color black)
                (. Color red)))))))))
  (.showDialog gd)
  (when-not (.wasCanceled gd)
    (IJ/doCommand (.getNextString gd))))
;; end of file
