diff options
Diffstat (limited to 'modules/miglayout/src/test/clojure/clojure/contrib/test_miglayout.clj')
-rw-r--r-- | modules/miglayout/src/test/clojure/clojure/contrib/test_miglayout.clj | 145 |
1 files changed, 145 insertions, 0 deletions
diff --git a/modules/miglayout/src/test/clojure/clojure/contrib/test_miglayout.clj b/modules/miglayout/src/test/clojure/clojure/contrib/test_miglayout.clj new file mode 100644 index 00000000..0ec32167 --- /dev/null +++ b/modules/miglayout/src/test/clojure/clojure/contrib/test_miglayout.clj @@ -0,0 +1,145 @@ +;; Copyright (c) Stephen C. Gilardi. All rights reserved. The use and +;; distribution terms for this software are covered by the Eclipse Public +;; License 1.0 (http://opensource.org/licenses/eclipse-1.0.php) which can +;; be found in the file epl-v10.html at the root of this distribution. By +;; using this software in any fashion, you are agreeing to be bound by the +;; terms of this license. You must not remove this notice, or any other, +;; from this software. +;; +;; clojure.contrib.miglayout.test +;; +;; Test/example for clojure.contrib.miglayout +;; +;; scgilardi (gmail) +;; Created 5 October 2008 + +(ns clojure.contrib.test-miglayout + (:import (javax.swing JButton JFrame JLabel JList JPanel + JScrollPane JTabbedPane JTextField JSeparator)) + (:use clojure.contrib.miglayout)) + +(def tests) + +(defn run-test + [index] + (let [panel ((tests index) (JPanel.))] + (println index (components panel)) + (doto (JFrame. (format "MigLayout Test %d" index)) + (.add panel) + (.pack) + (.setVisible true)))) + +(defn label + "Returns a swing label" + [text] + (JLabel. text)) + +(defn text-field + "Returns a swing text field" + ([] (text-field 10)) + ([width] + (JTextField. width))) + +(defn sep + "Returns a swing separator" + [] + (JSeparator.)) + +(def tests [ + + (fn test0 + [panel] + (miglayout panel + (label "Hello") + (label "World") {:gap :unrelated} + (text-field) :wrap + (label "Bonus!") + (JButton. "Bang it") {:wmin :button :grow :x :span 2} :center)) + + ;; test1 and test2 are based on code from + ;; http://www.devx.com/java/Article/38017/1954 + + ;; constraints as strings exclusively + (fn test1 + [panel] + (miglayout panel + :column "[right]" + (label "General") "split, span" + (sep) "growx, wrap" + (label "Company") "gap 10" + (text-field "") "span, growx" + (label "Contact") "gap 10" + (text-field "") "span, growx, wrap" + (label "Propeller") "split, span, gaptop 10" + (sep) "growx, wrap, gaptop 10" + (label "PTI/kW") "gapx 10, gapy 15" + (text-field) + (label "Power/kW") "gap 10" + (text-field) "wrap" + (label "R/mm") "gap 10" + (text-field) + (label "D/mm") "gap 10" + (text-field))) + + ;; the same constraints as strings, keywords, vectors, and maps + (fn test2 + [panel] + (miglayout panel + :column "[right]" + (label "General") "split, span" + (sep) :growx :wrap + (label "Company") [:gap 10] + (text-field "") :span :growx + (label "Contact") [:gap 10] + (text-field "") :span :growx :wrap + (label "Propeller") :split :span [:gaptop 10] + (sep) :growx :wrap [:gaptop 10] + (label "PTI/kW") {:gapx 10 :gapy 15} + (text-field) + (label "Power/kW") [:gap 10] + (text-field) :wrap + (label "R/mm") [:gap 10] + (text-field) + (label "D/mm") [:gap 10] + (text-field))) + + ;; the same constraints using symbols to name groups of constraints + (fn test3 + [panel] + (let [g [:gap 10] + gt [:gaptop 10] + gxs #{:growx :span} + gxw #{:growx :wrap} + gxy {:gapx 10 :gapy 15} + right "[right]" + ss #{:split :span} + w :wrap] + (miglayout panel + :column right + (label "General") ss + (sep) gxw + (label "Company") g + (text-field "") gxs + (label "Contact") g + (text-field "") gxs + (label "Propeller") ss gt + (sep) gxw g + (label "PTI/kW") gxy + (text-field) + (label "Power/kW") g + (text-field) w + (label "R/mm") g + (text-field) + (label "D/mm") g + (text-field)))) + + (fn test4 + [panel] + (miglayout panel + (label "First Name") + (text-field) {:id :firstname} + (label "Surname") [:gap :unrelated] + (text-field) {:id :surname} :wrap + (label "Address") + (text-field) {:id :address} :span :grow)) +]) |