Greetings everyone,
I am pleased to announce the first public release of my "Snow" library, available at http://alessiostalla.altervista.org/software/snow/index.php
It is a declarative DSL for creating GUIs (Swing-only for now) built on ABCL 0.16. It supports Cells by Ken Tilton and MiG Layout (a declarative, CSS-like layout manager for Swing and SWT). As a bonus, Snow includes the GUI versions of ABCL's inspector, debugger and REPL.
Snow is to be considered alpha quality. In particular, % of Swing supported is ridiculously small, and little testing has been performed.
If you feel brave enough to play with it, let me know about your experience.
Cheers, Alessio
"as" == Alessio Stalla alessiostalla@gmail.com writes:
as> It is a declarative DSL for creating GUIs (Swing-only for now) built as> on ABCL 0.16. It supports Cells by Ken Tilton and MiG Layout (a as> declarative, CSS-like layout manager for Swing and SWT).
Hi Alessio,
This looks very interesting, thanks! I have written a Swing interface with ABCL for some data visualization at work (also using MigLayout, which is great), and it looks like Snow would result in less verbiage. In particular, the ugliest parts of my code are for event handling and triggering changes elsewhere in the application, it it looks like your use of JGoodies & Cells might make that much cleaner.
There are some very useful-looking functions for Java interfacing in sexy-java.lisp.
I have had trouble overriding the repaint() method, to draw in a Panel (runtime-class.lisp is a little fragile, it seems). Have you worked on that?
Cheers,
On Mon, Sep 7, 2009 at 11:48 PM, Eric Marsdeneric.marsden@free.fr wrote:
"as" == Alessio Stalla alessiostalla@gmail.com writes:
as> It is a declarative DSL for creating GUIs (Swing-only for now) built as> on ABCL 0.16. It supports Cells by Ken Tilton and MiG Layout (a as> declarative, CSS-like layout manager for Swing and SWT).
Hi Alessio,
This looks very interesting, thanks! I have written a Swing interface with ABCL for some data visualization at work (also using MigLayout, which is great), and it looks like Snow would result in less verbiage. In particular, the ugliest parts of my code are for event handling and triggering changes elsewhere in the application, it it looks like your use of JGoodies & Cells might make that much cleaner.
That's what I hope, too ;) however, I'm still unsure about the API for that part (in fact it is not exported). In particular, I used the word "binding" (from "data binding") to indicate the relation between a GUI property and an application property, but "binding" already has another meaning in Lisp and it can be confusing. I thought about "connection" (and a :connect-to property), but I'm not sure.
There are some very useful-looking functions for Java interfacing in sexy-java.lisp.
Well, that's my NIH-syndrome answer to invoke.lisp. It is handy indeed, but you pay a runtime performance penalty (since the correct method/constructor is determined at runtime via reflection). It could be optimized more if the ABCL compiler did type inference for Java objects, and exposed the API for querying the compiler about the inferred type of a variable; but that is hardly worth the effort imho.
I have had trouble overriding the repaint() method, to draw in a Panel (runtime-class.lisp is a little fragile, it seems). Have you worked on that?
My initial idea about that is to do it in Java and use the widget via the with-widget macro. This is sub-optimal for Lisp applications, but it's something Snow alone cannot do - it needs support from ABCL. Which problems have you found with runtime-class? I never used it.
On second thought, what I could do in Snow is to implement a sort of "dynamic widget" that delegates the most important methods (paint() included) to Lisp functions. Not optimal either, but better than nothing.
So, thank you for taking the time to look at Snow. I hope it is a nice addition to ABCL. Unfortunately the widgets it supports are embarassingly few. If you are interested in some widgets in particular, I'll give priority to those.
Btw, I plan to set up a c-l.net project for it soon, so it will get its own mailing list - I posted here because it's where people working on/with abcl are most likely to look for news, but having a dedicated forum is the right thing.
Bye, Alessio
On Tue, Sep 8, 2009 at 9:34 AM, Alessio Stalla alessiostalla@gmail.com wrote:
Btw, I plan to set up a c-l.net project for it soon, so it will get its own mailing list - I posted here because it's where people working on/with abcl are most likely to look for news, but having a dedicated forum is the right thing.
Snow is now hosted at common-lisp.net[1], and has its own mailing list, so no more Snow-related spam by me here ;)
Bye, Alessio
armedbear-devel@common-lisp.net