Swing Frameworks and Best Practices
HOLY COW! I have considerable google-fu powers and so I spent a more than my fair share of hours looking for Swing Best Practices and/or Frameworks.
I *am* simply stunned by all the great components people are developing and all of the interesting exporation into XML generated GUIs. It's Great! However the lack of the basics is equally stunningly frustrating? You wonder why there are no Java Desktop applications? No one seems to know how to design one.
I mean the idea was to find a means by which to structure my Swing applications that makes sense; is clean and tidy; and is scalable. A "This is how I build my Swing Applications" type document/discussion.
I was also interested in what sort of Application Frameworks exist for Swing. Someone who'd done a little high level development such that everyone doesn't have to write an application from scratch.
So I searched. I looked into ever facet of Swing Development I could get my hangs on. The following is just a fraction of a hair of the searching that I did but they are the most telling results:
"Swing Best Practices" - 34 hits
"Swing Application Framework" - 205 hits
"Designing Swing Applications" - 28 hits
I mean one really basic question I have is that I have a great little application interface that I've developed and I've got "business logic model" that hooks into that interface and then I would like to use XML as my means of persisting that logic model.
The interface consists of a few panels of collections of widgets like tables and text fields that the user fills out, the "business model" is suppose to be a reflection of what's in the UI.
Now in the case of Tables and Trees, they have a great Model abstraction interface that you can apply to your business model. Sweet, done.... but what about my text fields? It seems to me that they lack that ability ot set a model object. Is it just me, or is the MVC not extended to all the component widgets?
Now what about persisting my "logic model" to XML? I want my XML to be readable so the actual XML Object persistence tools seem a little over kill. I'm just writing XML some simple XML. So, how *do* you hook a DOM into a business logic model.
Now I thought about Aspect-Oriented Design. I mean persistence is a "cross cutting concern" it seems? but I imagine that is equally overkill.
There are a *few* great Swing Application out there... but most of my friends laugh at me when I suggest that Swing has great potential to be as powerful as a lot of the native applications we see on our desktops.
I want *someone* to say "Hey, this is how I think swing applications should be structured". They don't have to be right... but born from this is the possibility that everyone will start expressing their option on the subject.
I'm starting to form an opinion but I'm working on my *first* swing application framework so once it's done, I'll come back and put my money where my mouth is...
In the meanwhile? Anyone want to take the challenge?
I throw down the gauntlet!