daveray/seesaw — pull request #173 by MIvanchev (2014-06-07 23:20:19+00:00)
Title: Added optional constructor arguments to 'construct' and made 'base-resource-options' public.

This resolves #172. The motivation behind the changes is to be able to write libraries which use the seesaw facilities to provide more components. Especially components which are not likely to be included in future versions of seesaw. Consider a possible extension my-custom-lib.core containing code for a seesaw-ish JMyCustomComponent wrapper:

```clojure
(def my-custom-component-options
(merge
default-options
(option-map
(resource-option :resource base-resource-options)
...)))

(widget-option-provider JMyCustomComponent my-custom-component-options)

(defn my-custom-component
"TODO"
[& opts]
(apply-options
(construct JMyCustomComponent ...)))
```

The need for making base-resource-options public is self-explanatory. The addition of optional parameters to construct is driven by the fact that some components do not have no argument constructors.