Mercurial > lasercutter
comparison src/clojure/contrib/test_contrib/test_miglayout.clj @ 10:ef7dbbd6452c
added clojure source goodness
author | Robert McIntyre <rlm@mit.edu> |
---|---|
date | Sat, 21 Aug 2010 06:25:44 -0400 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
9:35cf337adfcf | 10:ef7dbbd6452c |
---|---|
1 ;; Copyright (c) Stephen C. Gilardi. All rights reserved. The use and | |
2 ;; distribution terms for this software are covered by the Eclipse Public | |
3 ;; License 1.0 (http://opensource.org/licenses/eclipse-1.0.php) which can | |
4 ;; be found in the file epl-v10.html at the root of this distribution. By | |
5 ;; using this software in any fashion, you are agreeing to be bound by the | |
6 ;; terms of this license. You must not remove this notice, or any other, | |
7 ;; from this software. | |
8 ;; | |
9 ;; clojure.contrib.miglayout.test | |
10 ;; | |
11 ;; Test/example for clojure.contrib.miglayout | |
12 ;; | |
13 ;; scgilardi (gmail) | |
14 ;; Created 5 October 2008 | |
15 | |
16 (ns clojure.contrib.test-miglayout | |
17 (:import (javax.swing JButton JFrame JLabel JList JPanel | |
18 JScrollPane JTabbedPane JTextField JSeparator)) | |
19 (:use clojure.contrib.miglayout)) | |
20 | |
21 (def tests) | |
22 | |
23 (defn run-test | |
24 [index] | |
25 (let [panel ((tests index) (JPanel.))] | |
26 (println index (components panel)) | |
27 (doto (JFrame. (format "MigLayout Test %d" index)) | |
28 (.add panel) | |
29 (.pack) | |
30 (.setVisible true)))) | |
31 | |
32 (defn label | |
33 "Returns a swing label" | |
34 [text] | |
35 (JLabel. text)) | |
36 | |
37 (defn text-field | |
38 "Returns a swing text field" | |
39 ([] (text-field 10)) | |
40 ([width] | |
41 (JTextField. width))) | |
42 | |
43 (defn sep | |
44 "Returns a swing separator" | |
45 [] | |
46 (JSeparator.)) | |
47 | |
48 (def tests [ | |
49 | |
50 (fn test0 | |
51 [panel] | |
52 (miglayout panel | |
53 (label "Hello") | |
54 (label "World") {:gap :unrelated} | |
55 (text-field) :wrap | |
56 (label "Bonus!") | |
57 (JButton. "Bang it") {:wmin :button :grow :x :span 2} :center)) | |
58 | |
59 ;; test1 and test2 are based on code from | |
60 ;; http://www.devx.com/java/Article/38017/1954 | |
61 | |
62 ;; constraints as strings exclusively | |
63 (fn test1 | |
64 [panel] | |
65 (miglayout panel | |
66 :column "[right]" | |
67 (label "General") "split, span" | |
68 (sep) "growx, wrap" | |
69 (label "Company") "gap 10" | |
70 (text-field "") "span, growx" | |
71 (label "Contact") "gap 10" | |
72 (text-field "") "span, growx, wrap" | |
73 (label "Propeller") "split, span, gaptop 10" | |
74 (sep) "growx, wrap, gaptop 10" | |
75 (label "PTI/kW") "gapx 10, gapy 15" | |
76 (text-field) | |
77 (label "Power/kW") "gap 10" | |
78 (text-field) "wrap" | |
79 (label "R/mm") "gap 10" | |
80 (text-field) | |
81 (label "D/mm") "gap 10" | |
82 (text-field))) | |
83 | |
84 ;; the same constraints as strings, keywords, vectors, and maps | |
85 (fn test2 | |
86 [panel] | |
87 (miglayout panel | |
88 :column "[right]" | |
89 (label "General") "split, span" | |
90 (sep) :growx :wrap | |
91 (label "Company") [:gap 10] | |
92 (text-field "") :span :growx | |
93 (label "Contact") [:gap 10] | |
94 (text-field "") :span :growx :wrap | |
95 (label "Propeller") :split :span [:gaptop 10] | |
96 (sep) :growx :wrap [:gaptop 10] | |
97 (label "PTI/kW") {:gapx 10 :gapy 15} | |
98 (text-field) | |
99 (label "Power/kW") [:gap 10] | |
100 (text-field) :wrap | |
101 (label "R/mm") [:gap 10] | |
102 (text-field) | |
103 (label "D/mm") [:gap 10] | |
104 (text-field))) | |
105 | |
106 ;; the same constraints using symbols to name groups of constraints | |
107 (fn test3 | |
108 [panel] | |
109 (let [g [:gap 10] | |
110 gt [:gaptop 10] | |
111 gxs #{:growx :span} | |
112 gxw #{:growx :wrap} | |
113 gxy {:gapx 10 :gapy 15} | |
114 right "[right]" | |
115 ss #{:split :span} | |
116 w :wrap] | |
117 (miglayout panel | |
118 :column right | |
119 (label "General") ss | |
120 (sep) gxw | |
121 (label "Company") g | |
122 (text-field "") gxs | |
123 (label "Contact") g | |
124 (text-field "") gxs | |
125 (label "Propeller") ss gt | |
126 (sep) gxw g | |
127 (label "PTI/kW") gxy | |
128 (text-field) | |
129 (label "Power/kW") g | |
130 (text-field) w | |
131 (label "R/mm") g | |
132 (text-field) | |
133 (label "D/mm") g | |
134 (text-field)))) | |
135 | |
136 (fn test4 | |
137 [panel] | |
138 (miglayout panel | |
139 (label "First Name") | |
140 (text-field) {:id :firstname} | |
141 (label "Surname") [:gap :unrelated] | |
142 (text-field) {:id :surname} :wrap | |
143 (label "Address") | |
144 (text-field) {:id :address} :span :grow)) | |
145 ]) |