aboutsummaryrefslogtreecommitdiff
path: root/src/clojure/contrib/miglayout/test.clj
diff options
context:
space:
mode:
authorscgilardi <scgilardi@gmail.com>2009-03-13 06:23:48 +0000
committerscgilardi <scgilardi@gmail.com>2009-03-13 06:23:48 +0000
commitdba39786323602b548faad6088a5f2ef72b3430d (patch)
tree0d4025cbe5d8cc8d941d0ffe63a8baf73cba0da0 /src/clojure/contrib/miglayout/test.clj
parent08cfc276dfc60d9a45b4dff7581597dd23682bfb (diff)
miglayout: add support for set as a group of constraints that can be named, bound, etc. update tests with more examples and some helper functions
Diffstat (limited to 'src/clojure/contrib/miglayout/test.clj')
-rw-r--r--src/clojure/contrib/miglayout/test.clj134
1 files changed, 96 insertions, 38 deletions
diff --git a/src/clojure/contrib/miglayout/test.clj b/src/clojure/contrib/miglayout/test.clj
index 888285c0..abdc89c4 100644
--- a/src/clojure/contrib/miglayout/test.clj
+++ b/src/clojure/contrib/miglayout/test.clj
@@ -27,15 +27,31 @@
(.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
- (JLabel. "Hello")
- (JLabel. "World") {:gap :unrelated}
- (JTextField. 10) :wrap
- (JLabel. "Bonus!")
+ (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
@@ -45,42 +61,84 @@
(fn test1
[panel]
(miglayout panel
- :column "[right]"
- (JLabel. "General") "split, span"
- (JSeparator.) "growx, wrap"
- (JLabel. "Company") "gap 10"
- (JTextField. "") "span, growx"
- (JLabel. "Contact") "gap 10"
- (JTextField. "") "span, growx, wrap"
- (JLabel. "Propeller") "split, span, gaptop 10"
- (JSeparator.) "growx, wrap, gaptop 10"
- (JLabel. "PTI/kW") "gapx 10, gapy 15"
- (JTextField. 10)
- (JLabel. "Power/kW") "gap 10"
- (JTextField. 10) "wrap"
- (JLabel. "R/mm") "gap 10"
- (JTextField. 10)
- (JLabel. "D/mm") "gap 10"
- (JTextField. 10)))
+ :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]"
- (JLabel. "General") "split, span"
- (JSeparator.) :growx :wrap
- (JLabel. "Company") [:gap 10]
- (JTextField. "") :span :growx
- (JLabel. "Contact") [:gap 10]
- (JTextField. "") :span :growx :wrap
- (JLabel. "Propeller") :split :span [:gaptop 10]
- (JSeparator.) :growx :wrap [:gaptop 10]
- (JLabel. "PTI/kW") {:gapx 10 :gapy 15}
- (JTextField. 10)
- (JLabel. "Power/kW") [:gap 10]
- (JTextField. 10) :wrap
- (JLabel. "R/mm") [:gap 10]
- (JTextField. 10)
- (JLabel. "D/mm") [:gap 10]
- (JTextField. 10)))])
+ :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)
+ (label "Surname") [:gap :unrelated]
+ (text-field) :wrap
+ (label "Address")
+ (text-field) :span :grow))
+
+])