The Source for Java Technology Collaboration
User: Password:



Jan Haderka's Blog

Community: JavaDesktop Archives


SwingX 0.9.4 Released

Posted by rah003 on September 13, 2008 at 11:12 PM | Permalink | Comments (3)

Finally, after having to wait for few more weeks then originally planned, SwingX-0.9.4 is released. The main changes in this version were previously announced cleanup of the API, added switch to completely disable caps lock detection in LoginPane and about 45 bug fixes. Read the release notes to see complete list of resolved issues before downloading the release from SwingLabs website.

The SwingX team would also like to thank to everybody who reported or voted on issues and/or provided patches for issues. Your continuing interest helps us to make SwingX better.



SwingX 0.9.3 Released

Posted by rah003 on June 10, 2008 at 11:45 AM | Permalink | Comments (9)

0.9.3 release instead of concentrating on new features, delivers bug fixes for most pressing issues and should provide users with stable and usable code. This is ever more important as there will be some API changes made as a part of API cleanup planned for release 0.9.4. So hopefully 0.9.3 will provide necessary stability for those who won't be able or willing to jump up the wagon and accommodate API changes in their code immediately.

Binaries should be in central maven repo within a week.

In the mean time you can get the release from the downloads page.



SwingX 0.9.2 Released

Posted by rah003 on March 02, 2008 at 12:32 PM | Permalink | Comments (2)

First, but hopefully not last version this year.

SwingX 0.9.2 is out. Download here.

This release brings in over 100 bug fixes. Along with the fixes comes also removal of all deprecated code. I know this is one of the unpopular things but had to be done sooner or later as we are getting closer to 1.0 release.

Among other things JXDatePicker and Calendar components have been improved. Some critical bugs have been fixed in other components like JXLoginPane. JXBusyLabel have been reimplemented to offer more flexibility and ease of use.

For those of you who use maven, this release should be in central repo in week or two

Enjoy the release!

BTW, we will have a BOF about Swinglabs at JavaOne, so if there is any particular thing you would like to hear about, let us know.



Get Busy now

Posted by rah003 on December 29, 2007 at 12:26 PM | Permalink | Comments (8)

JXBusyLabel have been in SwingX for quite while. Introduced by Josh while ago component and associated painter have provided developers with ability to enrich their applications with nice infinite progress bar component. The initial version have been bit limited - it was not possible to scale the indicator, speed have been fixed, shape and trajectory have been fixed as well.

As soon as this component have been introduced I've started to look at the ways to extend its functionality. Being interrupted multiple times and having lost some changes to the code it took about 6 months before the final version have been committed back to the SwingX code base. New BusyPainter now supports nearly any kind of shape as a progress point as well as nearly any kind of closed path as trajectory.

Since it is not always easy to imagine kind of progress indicator that can be created by combination of different shapes as points and trajectories, below is simple demo that shows various combinations and can also produce the code necessary to recreate whatever kind of progress bar is currently shown. For those who can't run the demo or are too lazy to do so, here's at least a screenshot.

busy2.png

BusyLabel Demo:

Here's another demo showing use of the JXBusyLabel to as progress bar indicator common in the browsers - as part of the menu.

Menu Bar Demo:



SwingX 0.9.1 released

Posted by rah003 on November 20, 2007 at 03:59 AM | Permalink | Comments (14)

It is barely a month ago I have announced SwingX 0.9 release. Since then SwingX have seen renewed interest from users and some major work done on the backlog by its commiters. Due to this and due to the fact that we have managed to fix about 75 issues within last month, I'm happy to announce next release:

SwingX 0.9.1 is out. Download here.

This release brings some changes to the names of components as well as changes to the bundles. So make sure you review list of resolved issues to see what has changed. Those changes were necessary to correct violations of naming conventions and to streamline further development of localization and addon support.

Apart from all the changes and bug fixes there are also new features delivered with this release -JXLoginPane now has support for CapsLock notification, JXHeader is more friendly and configurable, JXMultiSplitPane now paints dividers and many others. Make sure you check it out.



Log me in, log me out!

Posted by rah003 on November 02, 2007 at 08:41 AM | Permalink | Comments (3)

There have been for long time open enhancement request in SwingX for notification about caps lock being switched on in JXLoginPanel. Over a time it acquired quite few votes (in comparison to your average swingx issue, not that 10 votes is much in absolute numbers) so I thought lets do this, it can't be that difficult.

In your average C program you just query the driver when you want to know the state of the caps lock or any other key for that matter. Not so in your average java program. Don't get me wrong, I know there is a method to get the state of the locking key java.awt.Toolkit.getToolkit().getLockingKeyState(KeyEvent.VK_CAPS_LOCK). However the methods implementation is in the very least not ready for the prime time yet. When you try to use it you might get lucky enough and it will just magically work, but most likely it will not. When you distribute your program or write a library to be used by others, sooner or later you will run into problems. Either you will encounter #4414164 issue (mind you: reported first time for JDK 1.3 in 2001 and from then still "in progress") or you end up with java.lang.UnsupportedOperationException: Toolkit.getLockingKeyState as I did (JDK 6_u2, linux 64 bit). Ever since I switched my main development enviroment to linux I'm discovering more and more of OUEs, but that's for another story.

The question remains: how to implement support or checking caps lock when function provided by the JDK doesn't do the job properly? You can rely on KeyEvent when your login panel have a focus, but otherwise? Even with the key events all you get is just the information that the key was pressed (and therefore state of caps lock changed), but not whether it was switched on or off. So as many others before me, I decided to resolve this problem with little trick - using java.awt.Robot login panel produces fake key event to determine whether caps lock has changed or not. Limitation of this kind of support are obvious:

  • First it's tricky and can lead into more issues in the future.
  • the notification works reliably only when login panel has focus (so changing caps on visible, but unfocused panel will not be updated until panel regains focus).

The second point could be possibly resolved by adding timer to the implementation which would check for the state by producing fake keyboard events, but it would also increase complexity of the feature (and thus putting even more weight on the first point - possible implementation issues).

Hopefully we can remove all this once the LockingKeyState can be obtained reliably on all platforms by querying jdk method. In the mean time I would be really interested in hearing from you how it works, or doesn't for that matter.

loginpanel.png

And since everybody naturally loves runnable demos here is one that shows Login Panel at work:

BTW, as you will notice, this little demo is signed and it needs to be signed in order for CapsLock notification to work. While this might be annoying at first consider this: When your application is distributed over the web and you require user to pass their password in, you should sign your application anyway. When running any app locally CapsLock notification will work without signing, when running unsigned app over the web the support will be switched off automatically and no exceptions thrown.


Enjoy!



Quo Vadis SwingX

Posted by rah003 on October 21, 2007 at 09:58 AM | Permalink | Comments (0)

It have been quite some time since the last release of Swinglabs/SwingX. However it was not due to lack of development. SwingX have been last time released as part of much larger Swinglabs project. That was nearly two years ago. Swinglabs have many subprojects, for example TimingFramework, ApplicationFramework, BeansBinding, Nimbus and others), since that old release various SwingLabs subprojects took life of their own and moved on with releases at different pace. Now the time has come for SwingX as well.

The goal is still the same. SwingLabs is a place to create new components, Swing utilities and to perfect technologies that can and will eventually make it back to JDK. And since JDK was open sourced, this goal should be even easier to achieve.

To cut long story short: We have improved and extended SwingX a lot since last release and we have paid attention to the voices in community that called for newer release (for example here or here. Now, I'm pleased to say that new milestone build of SwingX - Milestone 0.9 is now available at SwingLabs website for download.

There were many changes since the last release, to name just few:

  • new Painters API
  • new components - JXLabel, JXHeader, JXBusyLabel
  • improved API - JXTable, JXTreeTable, JXLoginPanel
  • notably there are over 300 bug fixes in this release

and many others.

There is much more work to be done. Many of existing components need to go through their review process to be ready for release 1.0, many more bugs needs to be fixed, many more tutorials and examples needs to be written, but rest assured that we still care about the project and will coninue to improve it.

Over the comming weeks we will come back to you and ask for some information. In order to better focus our work we will need to find what components are most used and what are most burning issues you have with SwingX. I would encourage everybody using SwingX to go to our issue tracker here and vote for issues you are concerned about.

That would be all for now. Enjoy the release.

And don't forget feedback is more then welcome.





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