I've read through the API docs and the tag library (and a fair bit of
the archives). I have some selfish interests in this project--I'm
looking at several XML-based approaches for GUI development. Swixml
seems to be Just Right--very lightweight and straightforward. I've got
a few things I'd like to do with XML-based GUI development that I'd like
to pass by everyone.
+Interpreted vs Generated
From what I can tell, Theodore presents an XML interpreter for swixml
files, right? Has anyone considered the option of generating Java code
from the XML files that is 100% compatible with the existing stuff?
Please stop me if this is redundant or off-topic. I would like to use
XML while prototyping, then flip a switch for the final product.
Here's what I was thinking:
-XSL to convert swixml files to Java code
-A gui builder factory that either builds the GUI using the interpreter
or using java code (depending on some given property that indicates
which mode is prefered).
+Binding
Has anyone considered adding binding language for attaching listeners to
GUI elements? I'm looking to separate my business logic (i.e.
listeners) from my view (i.e. the GUI). Right now, it seems like swixml
still requires Java code with intimate knowledge of the GUI defined in
the XML file (such as the names of widgets). I'd like to separate that
out into an external file, sort of like XBL. Of course, I want a much
lighter-weight language than XBL, but XBL has a lot of good things from
which to learn.
----- </end_suggestions>
I've done some work in this area years ago, back when XML was first
emerging. I had built my own Swixml-like interpreter for a project I
was working on. When XSL emerged, I investigated using it to generate
the Java code, too, instead of interpreting it. My initial tests
indicated it would be fairly straightforward, but the project got
cancelled, I left the company, and I started focusing on server-side Java.
I may be able to offer some assistance with the project if you still
need some. I'm a 5+ year veteran of Java, with about a 50/50 split
between client-side and server-side. I used to write Java/Swing
components for software tools company, so I feel fairly comfortable with
Swing and all. I probably wouldn't be able to commit to more than 10
hours a week, and my availability varies with my career load (currently
very low--anybody looking for programmers?). How do I like to share
code? I'm not sure what you mean by that. LGPL is nice because I like
to use the code in commercial products. But, hey, there are lots of
reasonable licenses out there. I've got plenty of experience (?7 years)
with other CVS clients (if you're a windows user, I suggest
TortoiseCVS...plus they have a similar shell plug-in for Subversion).
Sorry for the long email. I didn't want to bother everyone with
multiple emails to the forum.
-dan