The Source for Java Technology Collaboration
User: Password:



Richard Bair

Richard Bair's Blog

SwingLabs - Direction and Status

Posted by rbair on August 10, 2005 at 03:01 PM | Comments (15)

Around June of last year I first became aquainted with the JDNC project. As a professional Swing application developer, I was very interested in an open source project that would make my job easier. It was clear to me that JDNC was positioned at the right time to make a huge impact on rich client application development.

Swing is an excellent UI toolkit. It provides clean abstractions between the model for a UI component, the component, and it's painting code. In my years of working with Swing (and writing a few app frameworks and component heirarchies in the process) I was mostly satisfied. Yet there were a few things missing from the standard toolkit that I felt were really important, and that most of us writing Swing apps have implemented independently.

For example, in forms based database applications a "date chooser" component is a must have. Yet, there wasn't a default date chooser in the Swing toolkit. Other examples of often implemented features include sortable tables, saving component size/state to preferences, login dialogs, progress dialogs, error handling, action frameworks, row highlighting in JTables and JLists, and default renderers for currency, decimal, and other data types.

The JDNC project was initiated to do two things; first, to make writing Swing applications easier. Also, rather than having to wait 18 months to 2 years for new functionality to be rolled into the JDK, JDNC allows developers to get their hands on tomorrows technology today. Second, the JDNC project was established so Swing developers could prototype features, components, and prospective API's before actually incorporating them into the JDK. This provides the Swing team with much quicker and more applicable real world feedback, and has proved invaluable.

For all these reasons I was drawn into JDNC. Since having joined Sun in November of 2005, I'm now the SwingLabs team lead. The rest of the team is composed of a very talented and intelligent group of people from around the world, both within and without Sun. Together we are working towards a 1.0 release of the SwingLabs projects (which include JDNC).

I want to give a brief description of the current status of the project, where we are headed as a team, and how you can help us create a library so useful that you would recommend it to your collegues.

Earlier this year JDNC was subdivided into three different projects. These were DataBinding, SwingX, and JDNC. A single parent project, SwingLabs was also created. SwingLabs is intended to operate in a manner similar to the GNOME project. Just like GNOME, SwingLabs is really the sum of it's parts, not a true project on it's own. It serves as a single point of entry into a host of related sub projects.

At this moment, we are working hard to make the APIs in the SwingLabs projects (notably SwingX, DataBinding and JDNC) stable. We realize how important it is for developers to have a stable API base to work with. I wish I could say that we were finished making incompatible changes to the source code, but we aren't quite there yet. What I can say is that 80%-90% of the code base is stable. The majority of the flux is in the databinding APIs, particularly the binding packages. In a future set of articles I'll discuss the details of the binding framework.

The SwingLabs developers have done an awesome job working on demos and fixing bugs in the SwingX code base. The UI components are really looking good. There are some excellent components and code in the incubator as well.

I believe the biggest need we have in the project right now is better documentation and presentation. We have aquired the swinglabs.org domain which will soon host our "user" website. The java.net web pages will continue being used as the main development pages (meaning, advanced developer information will still be located on java.net), but http://www.swinglabs.org will be designed for individuals who are interested in getting the latest jars, but not in hacking on the sources themselves.

Second, there are three levels of documentation that need to be addressed within the projects, listed in order of importance:

  1. HowTo's, tutorials, code snippets, tips & tricks, etc
  2. JavaDoc
  3. High level "whitepaper" documentation

Finally, we are working closely with the NetBeans team (and all other IDE's are invited too!) to ensure that our components are toolable and comply with the JavaBeans specification. Tool support is a very important driver for the SwingLabs projects.

In summary, SwingLabs aims to provide a suite of components and technologies that will simplify data oriented application development in Swing. We're getting close to a 1.0 release (the exact date will be announced Friday, Aug 19th). We are working to provide better and more clear documentation, examples, tutorials, and a more pleasant user experience. We welcome help and advise!


Bookmark blog post: del.icio.us del.icio.us Digg Digg DZone DZone Furl Furl Reddit Reddit
Comments
Comments are listed in date ascending order (oldest first) | Post Comment

  • Subliminal message to the community: please ask for cool/eye candy features :)

    Posted by: gfx on August 10, 2005 at 03:42 PM

  • You are the lead?

    I think you oversold yourself a bit. I saw your code and your designs.
    What happened to Davidson?
    Amy I think is responsible for this, she should do a better job I think in due diligence, when people make claims.

    We need more senior people.
    .V

    Posted by: netsql on August 10, 2005 at 04:43 PM

  • Vic: Sorry to disappoint, but yes indeed I am the Team Lead. I know it comes as a shock, but it's true. Richard

    Posted by: rbair on August 10, 2005 at 05:56 PM

  • Long story
    I tried to use SwingX the other week. I found there was no immediately obvious way to download the latest build, and I ended up having to check out CVS and build it myself. No hassle, I didn't mind, but this would turn a lot of people off straight away.

    I think if the state of the project is such that it is expected that people check out and compile, that's fine, but the front page should at least state that somewhere. I arrived expecting to be able to click on a "download SwingX now". Others might have given up and left.

    Secondly, once I got it going, I used JXTaskPane(Container) and found that the preferred width didn't accomodate the text of my tasks. I figured it could be a bug or could be my fault, so I joined the users mailing list and posted a question about it. I'm still waiting for a response.

    Short story
    1) It should be very clear, I believe from the front page, how to get a binary of a project (or how to make one).
    2) All project developers should be on the users mailing lists and should make helping people use the project a first priority.

    Lot's of cool stuff going on here, but the delivery could be better. : )

    Graham.

    Posted by: grlea on August 10, 2005 at 07:06 PM

  • Firstly, congratulations for joining Sun in "November of 2005" ;)

    I always keep my eye on SwingLabs because it is adding great value to the existing Swing toolkit. One thing that confuses me is just *how* it interacts with Swing, within the development process, that is. SwingX is an incubator for neat features, for example, sortable tables. Yet the approach adopted by Swing devs in Mustang is different than that in SwingLabs. And license issues seem to be contradictory, with SwingLabs being LGPL, it can't ever be absorbed into the main Java code. I've personally communicated to Richard discussing this, but it would be worthwhile clarifying fully the interaction between Swing and SwingLabs for all.

    I think the improved support to allow integration into Netbeans is an excellent idea and should assist in reaching a wider audience. You should announce releases on freshmeat.net too, to help gather more exposure.

    I also agree that the documentation is key. Having said that, we're increasingly expecting webstart demos before we even look at 3rd party Swing widgets - so it's good that the demos exist - but they should be worked upon continually and not be allowed to become stale.

    Posted by: arooaroo on August 10, 2005 at 07:23 PM

  • Graham: we have some ideas for the binaries distribution but you're making a very good point here.

    Posted by: gfx on August 10, 2005 at 09:03 PM

  • Rich, you've done a great job taking the reins of an emerging project. The attitudes of the team and the code is very professional. You are doing great work. Keep it up. To Vic: the more you write stuff like this, the more you lose respect with people.

    Posted by: wsnyder6 on August 11, 2005 at 05:11 AM

  • Graham:
    I agree completely. A few months ago it didn't bother me that getting sources was a little difficult because the code wasn't at the point of general use. However now it is imperative that we make this easier for people coming into the project for the first time.

    Andy:
    Thanks for the good input. I'll take your advise and do a blog today on the JCA, SwingLabs and Swing. I'll cover how they relate, etc.

    Bill:
    Good to see you again :). Thanks

    Posted by: rbair on August 11, 2005 at 09:26 AM

  • Graham: With all due respect, you only posted the message yesterday, so it's a little premature to insinuate that you have been waiting a long time for a response isn't it. ;-)

    Posted by: evickroy on August 11, 2005 at 10:06 AM

  • Why is Sun still pushing Java to have two major UI frontends: Swing and JSP? We don't want to push a particular methodology necessarily but seems silly to put all this effort not to have them interchangeable in some ways as .NET does.

    Posted by: smartinumcp on August 11, 2005 at 11:06 AM

  • Joined in Nov.2005? No wonder the swing team is so far ahead of the competitors, they travel though time to get the best engineers. (We all make typos; sorry, I couldn't resist this one.)

    I've been impressed with what I've seen so far. Keep up the good work.

    Posted by: jtr on August 11, 2005 at 05:51 PM

  • evickroy,

    I originally posted to the users@swingx.dev.java.net list and got no response.
    Yesterday, after posting here, I came across the forums on javadesktop.org and they seemed quite lively, so I thought I posted the same question there, which is probably what you saw.
    I'm not *that* impatient. : )

    Graham.

    Posted by: grlea on August 11, 2005 at 06:46 PM

  • To all the SwingX team,

    This morning I plugged in a JXTable where I previously had a JTable, and what I really need to say is:

    Sweeeeeeeeeeeeeet.
    Well done. It's fantastic.

    G.

    Posted by: grlea on August 11, 2005 at 06:50 PM

  • It's exciting to see momentum in the Swing world again. Many of these projects are long overdue. I can see Java finally poised to become the "super browser" rich client platform. Keep up the excellent work! evickroy: quit harassing people ;-)

    Posted by: cmcbride on August 11, 2005 at 07:27 PM

  • Hey, I just came across this old post, and I checked out the swinglabs.org domain. It looks cool, but the easy to use content still isn't there yet. I am eagerly awaiting it...

    Posted by: dustin on October 11, 2005 at 09:41 PM





Powered by
Movable Type 3.01D
 Feed java.net RSS Feeds