diff options
author | scgilardi <scgilardi@gmail.com> | 2009-05-29 20:52:50 +0000 |
---|---|---|
committer | scgilardi <scgilardi@gmail.com> | 2009-05-29 20:52:50 +0000 |
commit | 59e48bbc1fbfb666962d931eb41452850c73759f (patch) | |
tree | f143f342c85a607debbd252701f5261387c3a19f | |
parent | c23478d4a698744869732edd80ae9ebd4e48422c (diff) |
miglayout: refactoring for clarity
-rw-r--r-- | src/clojure/contrib/miglayout.clj | 22 | ||||
-rw-r--r-- | src/clojure/contrib/miglayout/internal.clj | 18 |
2 files changed, 24 insertions, 16 deletions
diff --git a/src/clojure/contrib/miglayout.clj b/src/clojure/contrib/miglayout.clj index 0e03f8d4..d8f37180 100644 --- a/src/clojure/contrib/miglayout.clj +++ b/src/clojure/contrib/miglayout.clj @@ -20,8 +20,8 @@ ;; Created 5 October 2008 (ns - #^{:author "Stephen C. Gilardi", - :doc "Clojure support for the MiGLayout layout manager + #^{:author "Stephen C. Gilardi", + :doc "Clojure support for the MiGLayout layout manager http://www.miglayout.com/ Example: @@ -31,8 +31,7 @@ Example: "} clojure.contrib.miglayout - (:import (java.awt Container Component) - (clojure.lang RT)) + (:import java.awt.Container) (:use clojure.contrib.miglayout.internal)) (defn miglayout @@ -66,14 +65,7 @@ Example: [#^Container container & args] (let [item-constraints (apply parse-item-constraints args) {:keys [keywords components]} item-constraints - {:keys [layout column row]} keywords - class (RT/classForName "net.miginfocom.swing.MigLayout") - layout-manager (.newInstance class)] - (doto layout-manager - (.setLayoutConstraints layout) - (.setColumnConstraints column) - (.setRowConstraints row)) - (.setLayout container layout-manager) - (doseq [[#^Component component constraints] components] - (.add container component constraints)) - container)) + {:keys [layout column row]} keywords] + (doto container + (.setLayout (new-instance layout column row)) + (add-components components)))) diff --git a/src/clojure/contrib/miglayout/internal.clj b/src/clojure/contrib/miglayout/internal.clj index 2db25457..fb6d7257 100644 --- a/src/clojure/contrib/miglayout/internal.clj +++ b/src/clojure/contrib/miglayout/internal.clj @@ -14,7 +14,8 @@ ;; Created 13 October 2008 (ns clojure.contrib.miglayout.internal - (:import (java.awt Component)) + (:import (java.awt Container Component) + clojure.lang.RT) (:use (clojure.contrib [except :only (throwf)] [fcase :only (fcase)] @@ -22,6 +23,21 @@ (declare format-constraints) +(defn new-instance + "Returns a new instance of MigLayout with the specified constraints" + [layout column row] + (doto (.newInstance (RT/classForName "net.miginfocom.swing.MigLayout")) + (.setLayoutConstraints layout) + (.setColumnConstraints column) + (.setRowConstraints row))) + +(defn add-components + "Adds components with constraints to a container" + [#^Container container components] + (doseq [[#^Component component constraints] components] + (.add container component constraints)) + container) + (defn format-constraint "Returns a vector of vectors representing one or more constraints separated by commas. Constraints may be specified in Clojure using |