aboutsummaryrefslogtreecommitdiff
path: root/src/clojure/contrib/miglayout/test.clj
blob: 888285c0b747507320eb8dd4d8e200cfcfa453b3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
;;  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.miglayout.test
  (:import (javax.swing JButton JFrame JLabel JList JPanel
                        JScrollPane JTabbedPane JTextField JSeparator))
  (:use clojure.contrib.miglayout))

(def tests)

(defn run-test
  [index]
  (doto (JFrame. (format "MigLayout Test %d" index))
    (.add ((tests index) (JPanel.)))
    (.pack)
    (.setVisible true)))

(def tests [

  (fn test0
    [panel]
    (miglayout panel
      (JLabel. "Hello")
      (JLabel. "World") {:gap :unrelated}
      (JTextField. 10) :wrap
      (JLabel. "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]"
      (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)))

  ;; 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)))])