Thursday, November 25, 2010

SteelSeries 2.2

Hi there, back from Devoxx (which was some kind of a brain booster) i got a lot of new ideas...unfortunately i do not have the time to realize them all but a have a loooong list.
During Devoxx i met Jan Goyvaerts who gave me some really useful feedback to the steelseries project. Right at the conference i started working on his ideas and yesterday i released the next revision of the steelseries library.
The biggest new thing is a modified version of the Radial1Square component which represents a quarter of a circle. The default quarter was the upper left part of a circle and the request was to support all four quarters of a circle.
Well that gave me a hard time because this component was always a little bit special. First of all i adjusted the size of the component because i was not at the same size as the Radial components (e.g. if the widht of the component was 200px, it used only around 190px of the area). The new version really uses the complete width and height of the component.
That was the easy part (thanx to the FXG converter).

The hard part was creating the other three quarters from the existing component. To achieve this, had to modify a lot of the internal methods because i suddenly needed the possibility to count the tickmark labels in counter clockwise direction, and also the area, the sections and the track needed some modifications.

Well the track was tough because the conical gradient paint was designed to work clockwise and not counter clockwise. After i tried to modify the conical gradient paint in the right way i canceled this approach and implemented a different solution which was much easier to realize.
Now the three colored track will be drawn by a series of lines that will get the right color for it's position and so all of the lines together will result in a gradient.

I also did some internal refactoring where i deprecated some methods and classes that won't be used in future releases anylonger.

The ColorDef class was extended so that it now supports not only DARK, MEDIUM and LIGHT versions of each color but VERY_DARK, DARK, MEDIUM, LIGHT, LIGHTER and VERY_LIGHT versions.
With this modification i was able to get rid of the PointerColor class and i'm also thinking about using the new colors in the LedColor class.

So here is a screenshot of the Radial1Square component with all of it's variations...

I also added icons and BeanInfo classes to all components which should it make easier to choose the right component in the ui editor of your choice.
For example i took a screenshot in JFormDesigner that i use as a plugin in InteliJ Idea...

I hope this will make things easier in the future and i'm looking forward to your feedback.

Currently i'm working on a mavenized version of the steelseries library which seems to be better for one or the other...

That's it for today, keep coding...


  1. Cool components! I made an extra component to your library. How can I share them with you?

  2. First if all..let me know how to contact you...

  3. It's my email.

  4. Hi! I just found your website and its really interesting! I might use a few of you components in my applications. I was wondering if you have any suggestions on how to develop an 'artificial horizon' component.
    Thank you very much for your help!

  5. well believe it or not but i've created an artificial horizon some time ago...i never really used it but you could get the code if you like, just drop me a mail...