Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Newer
Older
100644 72 lines (46 sloc) 2.894 kb
c4fbc21 @daveray notes
authored
1 _Note that current development is on the *develop* branch, not master_
2
6a9c005 @daveray Update readme
authored
3 # Seesaw: Clojure + UI
cdb4045 @daveray readme and various cleanup
authored
4
6a9c005 @daveray Update readme
authored
5 _"killing CamelCase, proxy and reify, one class at a time"_
27ed119 @daveray Bump version to 1.0.0 for a release. More readme stuff. Removed cloju…
authored
6
6a9c005 @daveray Update readme
authored
7 *_Seesaw's experimental and subject to radical change_*
8
9 _*See [the Seesaw Wiki] (https://github.com/daveray/seesaw/wiki) for more detailed docs*_
10
11 Seesaw is a library/DSL for constructing user interfaces in Clojure. It happens to be built on Swing, but please don't hold that against it. It's an experiment to see what I can do to make user interface development funner in Clojure. It's kinda inspired by [Shoes](http://shoesrb.com/), [Stuart Sierra's Swing posts](http://stuartsierra.com/tag/swing), etc. [clojure.contrib.swing-utils](http://richhickey.github.com/clojure-contrib/swing-utils-api.html) is useful, but minimal and still means a lot of "Java-in-Clojure" coding.
cdb4045 @daveray readme and various cleanup
authored
12
e5e53e5 @daveray Moved most stuff over to the wiki. README was getting unwieldy.
authored
13
97c54c9 @daveray Lein getting started...
authored
14 ## TL;DR
15
16 Here's how you use Seesaw with [Leiningen] (https://github.com/technomancy/leiningen)
17
18 Install `lein` as described and then:
19
20 $ lein new hello-seesaw
21 $ cd hello-seesaw
22
23 Add Seesaw to `project.clj`
24
25 (defproject hello-seesaw "1.0.0-SNAPSHOT"
26 :description "FIXME: write"
27 :dependencies [[org.clojure/clojure "1.2.0"]
28 [org.clojure/clojure-contrib "1.2.0"]
bfe3669 @daveray Figuring out this whole versioning/release process.
authored
29 [seesaw "1.0.1"]])
30
4b13830 @daveray add a note about bleeding edge
authored
31 _Replace the Seesaw version with whatever the latest version tag is in case I forget to update this. See below!_
97c54c9 @daveray Lein getting started...
authored
32
33 Now edit the generated `src/hello_seesaw/core.clj` file:
34
35 (ns hello-seesaw.core
36 (:use seesaw.core))
37
38 (defn -main [& args]
39 (invoke-later
40 (frame :title "Hello",
41 :content "Hello, Seesaw",
42 :on-close :exit)))
43
44 Now run it:
45
46 $ lein run -m hello-seesaw.core
47
4b13830 @daveray add a note about bleeding edge
authored
48 *NOTE:* As mentioned above, Seesaw is experimental and changing daily. Thus, there's a good chance that what's on clojars and what's written here are out of sync. Here's how you can run against the bleeding edge of Seesaw:
49
d0962ce @daveray Mention dev branch
authored
50 * Clone Seesaw from github. Fork if you like. *Switch to the "develop" branch.*
4b13830 @daveray add a note about bleeding edge
authored
51 * In your Seesaw checkout, run `lein install` to build it
52 * In your project's `project.clj` file, change the Seesaw version to `X.Y.Z-SNAPSHOT` to match whatever's in Seesaw's `project.clj`.
53 * Run `lein deps`
54 * Move along
97c54c9 @daveray Lein getting started...
authored
55
a159b03 @daveray removed dumb boolean literal tests
authored
56 ## TODO
57
1008435 @daveray Readme updates.
authored
58 * A non-trivial example app to see if this stuff holds up
7b575f4 @daveray Basic GridBagLayout (form-panel) support. Needs some thought.
authored
59 * GridBagLayout needs more work
fd2c9c0 @daveray XML in a JTree example.
authored
60 * Graphics - I'd rather not wrap the entire Java2D API if there's already something out there (maybe processing?) that does that.
1008435 @daveray Readme updates.
authored
61 * Structural manip - add/remove widgets to containers.
62 * Selectors - select widgets by class, data, etc.
a159b03 @daveray removed dumb boolean literal tests
authored
63 * Styling
b264998 @daveray update readme
authored
64 * Some kind of ToModel protocol for auto-converting Clojure data-structures to Swing models.
1008435 @daveray Readme updates.
authored
65 * Investigate how a framework like [cljque] (https://github.com/stuartsierra/cljque) might fit in with Seesaw
a159b03 @daveray removed dumb boolean literal tests
authored
66
cdb4045 @daveray readme and various cleanup
authored
67 ## License
68
69 Copyright (C) 2011 Dave Ray
70
71 Distributed under the Eclipse Public License, the same as Clojure.
Something went wrong with that request. Please try again.