WidgetFX 1.2.4 Released – Happy Halloween!

We have an early Halloween treat from the WidgetFX team… a new software release!  The 1.2.4 version of WidgetFX includes some new functionality and fixes a number of issues that our user community has requested.

New SlideShow Widget

The SlideShow widget was completely rewritten from scratch for this release.  It makes use of the pre-release JFXtras XShelf component for transitions and paging forward and back.  Simply click on the side images to scroll forwards and backwards through your library.

Here is a picture of the new SlideShow widget in action, paging through a set of Halloween pictures (courtesy of Keith Combs):

Happy Halloween from the WidgetFX Team!

Happy Halloween from the WidgetFX Team!

If you are enough of an Anime buff to know which series these pictures came from, be sure to leave a comment below!

Auto-start on 64-Bit and International Systems


Japanese WidgetFX Article

The link that gets created to restart WidgetFX now picks up the correct JVM version on 64-bit systems and even handles paths properly for non-US versions of Windows.  This is very important for our friends outsides the US, such as the growing Japanese WidgetFX community.  As an example, check out this translated Japanese article in @IT by long-time WidgetFX developer, Hideki Kobayashi (he is also responsible for the Japanese location of our website).

If you have trouble running WidgetFX on a 64-bit system, make sure you have the 32-bit JVM installed on your machine.  This can be installed side-by-side with a 64-bit JVM, and is required for JavaFX applications to run.

Certificate Update

java-web-start-applicationOur application signing certificate expired, producing warnings upon launch of WidgetFX.  We have generated a new certificate, which should be good for another year.

If you noticed any problems with launching WidgetFX this week, please try again.  We ran into a Webstart bug where it did not correctly update the jar file after the certificate upgrade causing a verification error on start-up.  We were able to fix this by doing nothing but revving the version (missing some great opportunities for bad puns on the intermediate 1.2.3 version number).

And Some Bugfixes…

We are always fixing small bugs or issues as they come up.  One in particular was an infinite loop during start-up caused by some specific network settings.

If you notice any issues with WidgetFX, let us know so we can make it better!

WidgetFX Contest Winners!

I am pleased to announce the winners of the WidgetFX Developer’s Contest.  There were lots of great entries (22 in total), which made this a very hard decision.  You can browse the full set of entries yourself on the WidgetFX Library page:


To try any of the contest entries below, simply click on the image which will install/open WidgetFX and add the widget to your dock.

1st Place – ScreenshotFX

In first place is Pär Dahlberg with his ScreenshotFX widget.  Pär definitely went above and beyond in all respects, entering a full-blown application for taking screen captures and then editing them in a pop-up window.  Some of the cool features in his application include:

  • A delay timer to give you time to arrange windows and menus before the capture occurs
  • Multi-monitor support via a drop-down (This was sure to impress Keith)
  • Drawing tools to markup the image with annotations
  • Crop/Fill and a whole host of other editing tools

Pär has a great blog on JavaFX, WidgetFX, and other topics of interest, so make sure to check out his contest winning speech.

2nd Place – RadioFX

Second place went to Yannick Van Godtsenhoven for his RadioFX Widget.  In terms of visual design and widget polish, Yannick was head-and-shoulders above the competition.

He built a simple, yet functional widget that streams radio over the internet right to your WidgetFX dock.  No more reaching for a web browser to catch your favorite Belgium tunes on StuBru!

I am definitely looking forward to more great creations from Yannick!

3rd Place – Infix WeatherWidget

Finally, third place went to Larry Dickson for his Infix WeatherWidget.  Besides his Weather widget, he also submitted 3 other widgets including a Clock, Calendar, and G-Mail widget, although his original creation was still the judges’ favorite.

By the way, Larry submitted this widget before the start of the contest, which was perfectly valid.  Similarly, if you submit a widget anytime between now and the start of our next contest you will automatically be entered to win!

Congratulations to all of our winners!!!  I have already sent them their prizes, which were contributed through a generous donation from my publisher, Apress.

WidgetFX Developer Contest
WidgetFX Contest – Finish Line

Tomorrow is the last day for the WidgetFX Contest! We don’t have as grand of a finish line as IRONMAN in Germany, but I am sure there will be some excitement as we get down to the last couple hours.

It is a little too late to start a new Widget from scratch, but still plenty of time to wrap an existing JavaFX application as a Widget and submit it. (By the way, if you have trouble uploading a widget, drop an e-mail on the WidgetFX Users List.)

Best of luck to all the WidgetFX Contest Entrants!

WidgetFX Contest Heating Up!

With only 12 days left in the WidgetFX contest, there are a bunch of new entrants.  You can see them all on the Widget Library page:

This includes Till Balendat’s TwitterFX Widget:

Takaaki Nakamura’s Bookmark and ColorPalet Widgets:


Henry Zhang’s Pac-Man Widget:

And also 4! widgets submitted by Larry Dickson:



Just as a reminder, here are the judging criteria:

  • Effective use of WidgetFX features and APIs.
  • Practical utility of the widget as a pervasive prescence on the user’s desktop.
  • Broad use of JavaFX libraries and APIs.
  • Technical difficulty of implementation.
  • Community features of the widget that tie in with social networking or online services.
  • Originality of the submitted widget.
  • Quality of widget functionality and dock integration.

(Also found on the contest details page: http://widgetfx.org/portal/contest)

Good luck with the contest, and thanks for supporting WidgetFX!

Watch WidgetFX and JFXtras at the SDForum

Last night I presented at the SDForum Java SIG to a very engaged and enthusiastic crowd.  This was the longest presentation to date, but the audience was great, and even stayed afterwards to ask questions.  Also, Rich Rein was an outstanding host, inviting us out to drink beers until midnight after the event (I hope his wife wasn’t upset!)

This is my last presentation gig until Devoxx at the end of the year, but I was able to get a great screencast recording of the session, which you can watch in full resolution on blip.tv:

Note: The end of the presentation got cut off due to a technical glitch in Camtasia, but to their credit it recovered the bulk of the recording on restart.

You can also browse the slide decks at your own pace in PDF format:

Part A (JFXtras): SuperchargingWithJFXtras-SDForum

Part B (WidgetFX): SuperchargingWithWidgetFX-SDForum

I hope you enjoy the video and slides!

WidgetFX 1.2 Release Announcement

I am pleased to announce the 1.2 release of the WidgetFX project.  This brings the project up to speed with the latest JavaFX 1.2 release, and includes many bugfixes and improvements to the framework.

I want to thank all the widget authors who made an extra effort to port their widgets during the beta period so they would be available from day 1 on the new version.

So what are you running in your dock?

WidgetFX 1.2 Widgets
(from left-to-right: Clock, DiskSpace, WebFeed, Weather, SlideShow, Pac-Man, World Clock, Calendar)
All these widgets are available and working today on the WidgetFX 1.2 release.  To run WidgetFX, simply go to the WidgetFX home page and click on the Launch Dock link: http://widgetfx.org/

Here is a list of the major changes in this release:

  • Improved Performance – The widget dock, as well as all widgets will benefit from performance improvements in JavaFX 1.2.
  • Built-in Layout – Widgets now have an onLayout() function that can be used to layout the top-level nodes.
  • Signed Widgets – Widgets can now be signed with certificates to get out of the sandbox and gain access to system resources.
  • Additional API Hooks – New event handlers for onShow and onHide.
  • Macintosh Bugfixes – Transparency now works with the latest JDK (1.6.0_13), and dialog interaction issues have been fixed.

You too can be a widget author and win some free prizes in our widget development contest.  The deadline is July 31st with a grand prize of a year’s worth of free books donated by my publisher, Apress.

WidgetFX Developer Contest

WidgetFX Developer Contest

Happy Widget Hacking!

WidgetFX 1.2 Beta Announcement

We are proud to announce the 1.2 beta release of the WidgetFX framework.

Here are some of the new and noteworthy features and changes:

  1. JavaFX 1.2 Support – You can finally take advantage of all the new features of JavaFX 1.2, such as Controls, Layouts, and Charts in your desktop widgets!
  2. Built-in Layout - Widgets now have an onLayout() function that can be used to layout the top-level nodes.
  3. Improved Performance – The widget dock, as well as all widgets will benefit from performance improvements in the framework.
  4. Signed Widgets – Widgets can now be signed with certificates to get out of the sandbox and gain access to system resources. 
WidgetFX Info Dialog


We will be adding more goodness before the official release, but wanted to get the major features implemented that would have API impacts on widget authors.  Any changes from this point will be API compatible with the final 1.2 release.

The beta version of the WidgetFX dock can be launched via the following URL:

IMPORTANT: If you are an existing WidgetFX user, please delete your widget configuration prior to launching the new dock. This will ensure that the 1.2 versions of the built-in widgets will be loaded.  Your widget configuration directory is under $USER_HOME/.WidgetFX.

We will release the final WidgetFX 1.2 version at 11:59PM PST on June 28th.  If you have widgets that are available to the general public, please upgrade and test them in advance of this date, and push your 1.2 compatible widget out at approximately this time.  This is required, because the 1.2 release is not binary compatible with 1.1…  *sigh*

Upgrading an Existing Widget

So, you have a Widget that you would like to upgrade to 1.2 and don’t know where to start…  Here are the basics:

1. Upgrade to the latest beta version of the SDK.
You can pick up the beta SDK here: http://code.google.com/p/widgetfx/downloads/list

The SDK is setup to automatically launch the widget runner against the beta URL if you test your widget by running it as a Web Start application.  You can also use the following URL to directly invoke the beta widget runner:

In addition, if you use any JFXtras components in your project, make sure that you use the 0.5 beta JFXtras version that comes with the SDK.

2. Modify your widget to use the new content sequence.
The Widget base class now extends Panel rather than Skin. This was necessary to take advantage of layouts in JavaFX 1.2, but introduced a small API change. As an example, if you had the following code:

  1. Widget {   
  2.     ...   
  3.     skin: Skin {   
  4.         scene: Group {   
  5.             content: xxx   
  6.         }   
  7.     }   
  8. }  

This becomes:

  1. Widget {   
  2.     ...   
  3.     content: xxx   
  4. }  

Pretty nice, eh?

If you want to get adventurous, check out the Javafxdoc for Panel and make use of the layout features to improve your Widget code.

3. Upgrade the rest of your code to be JavaFX 1.2 compatible.
This is beyond the scope of this article, but I happen to know an excellent migration guide: http://steveonjava.com/2009/05/31/javafx-1-2-top-10/

4. Sign your widget.
If your widget invokes any operations that require access to resources outside the sandbox, you will need to sign it.  The easiest way to do this is to self-sign your widget, which the javafxpackager will automatically take care of for you.  The disadvantage is that since your widget can not be verified, you will get the mean yellow warning box:

WidgetFX Warning Dialog


If you put a little more effort in and sign up for a free trusted certificate service, such as Thawte Freemail, you can get a friendly blue information box instead (as shown at the top of this post).

Here are some very good instructions on how to sign your code using Thawte Freemail:

Good luck developing on the WidgetFX 1.2 beta release, and don’t forget to enter the WidgetFX Developer Contest!

The WidgetFX+++ JavaOne Recap

I had the unique opportunity to present 3 different sessions, plus assist with a University Session at JavaOne this year, and had a blast doing all of it.

I put this blog post together as a reference for anyone who is interested in JavaFX, WidgetFX, and/or Piccolo2D and wants to learn more. Hopefully you will find it valuable!

The JavaFX University Session

Jim Weaver invited the entire Pro JavaFX author team to help out with presenting content for his Monday morning JavaFX University Session. Presenting at a University Session was an entirely new experience for me, because I have never attended one myself. I have to say that the format really lends itself to digging in much deeper on a technology than normal technical sessions can accommodate. Even after 3.5 hours, we still had not covered all our material, but the JavaOne University slides are a great reference!

As an example of mobile technology, we passed around an XPERIA X1 running the DrawJFX example from our book to give everyone a chance to try it out. Here is a photo of the collage the class drew as a collective:

JavaFX University Session DrawJFXtras Picture

JavaFX University Session DrawJavaFX Collage

Pro JavaFX Platform

The first technical session was with Jim Weaver, who is a seasoned presenter. Before we even got started with the session he already had the audience enthralled with his intro music! Rather than getting in the details, I encourage you to read Ed Ort’s excellent article on the Pro JavaFX session.

JavaOne Author Team

Pro JavaFX Book Signing (left-to-right: Weiqi, Dean, Steve, and Jim)

The highlight of the week came right after this session when Neal Gafter dropped in on our book plate signing. To my relief he was not there to sue me for defacing his book cover in the Pro JavaFX Platform slides, but instead dropped by for a chat with the Pro JavaFX authors.

Piccolo2D BOF

I helped get the Piccolo2D project off the ground over a year ago with the support of Ben Bederson from UMD and the help of Michael Heuer, Sam Reid, Marcus Rohrmoser, and Willis Morse. While most of the project members couldn’t make it out for JavaOne this year, Michael Heuer made the trip, and both of us co-presented an evening BOF on Zooming User Interfaces.

If you are interested to learn more about Zooming User Interfaces, the Piccolo2D Presentation Slides are a great reference (and testament to all of Michael’s hard fought research).  This was also a great chance to show off the MangaDesu Manga Viewer application that I wrote a little over a year ago (you may see this in the Java Store sometime soon):

Java Manga Viewer with a Zooming User Interface

Java Manga Viewer with a Zooming User Interface

Getting Started With WidgetFX

The WidgetFX session was probably the most fun of the entire week.

The session had a great turnout, especially for the last day of JavaOne.

WidgetFX Session in Progress

WidgetFX Session in Progress

As promised, we demonstrated Henry Zhang’s Pacman widget to the audience, which he put together in response to Jim’s challenge. We tried to have a little fun at the expense of the audience, but it quickly backfired when our random volunteer from the audience, Dan, easily bested us at our own game.

However, we struck back with a vengeance by having our Nabaztag rabbit (who was conspicuously sitting on the stage the entire time) trash-talk Carl of the Java Posse about his new Tesla.

Josh Interviewing Carl from the Java Posse

Josh Interviewing Carl from the Java Posse

Carl took it in good humor, and we unveiled the Nabaztag widget that we were using to control the wifi-enabled rabbit. Besides being a great ambient notifier, Josh also choreographed a dance sequence to the music of the Bee Gees:

Nabaztag Bunny Dancing to the Bee Gees

Nabaztag Bunny Dancing to the Bee Gees

We ended the session with the announcement of a Widget Development Contest with a grand prize of a year of books!

You can browse the full photostream from the event on Flickr, and download the slide deck here.

This was definitely a new JavaOne experience, because rather than being in the audience and heckling the presenter’s mistakes, I was the one on stage being scrutinized…  Fortunately, I had great co-presenters (Jim, Josh, and Michael) and was so busy preparing that I didn’t have time to panic.

I hope you enjoyed this journey through my presentations, and maybe I will see you in the presenter’s lounge at a future JavaOne conference!

Speaking at JavaOne

I just got word back yesterday that the WidgetFX session for JavaOne was approved!  Josh Marinacci and I will be hosting the definitive session on desktop widgets for all you JavaFX fans.

WidgetFX JavaOne Session
WidgetFX JavaOne Session, sign up today!

The session is entitled "Getting Started with WidgetFX: Open-Source Widget Desktop Platform with JavaFXTM Technology", and will cover how to:

  • Convert a JavaFX application to a desktop widget
  • Package your widget so it will install and execute with one click
  • Reuse existing JavaFX and Java technology-based APIs in your widget
  • Develop signed widgets with access to system resources
  • Communicate with enterprise Web services from the desktop, using JavaFX technology
  • Hook into existing APIs to do cool things such as interact with hardware, use 3-D, and embed Flash
  • Build widgets that can also be deployed on mobile devices

If you haven't already signed up for JavaOne and are a JUG member, make sure to take advantage of the $100 discount mentioned on Van Riper's blog.

See you at JavaOne!

WidgetFX Server Migration

We migrated the WidgetFX instance to a new server that has a number of benefits:

  • Higher level of uptime via hotswap deployments
  • Newer, more reliable server
  • Support for a content management system for Widget distribution (coming soon)

Depending upon how fast the DNS changes propagated, you may have noticed some downtime if you launched the dock in the past 24 hours while we worked out some of the kinks on the new server.

In particular, if your dock launches with an error of "<jnlp>codebase has an invalid value: $$codebase" then you might have a bad jnlp file wedged in your cache.  It will eventually unwedge itself (jnlp caching is a black art), but you can fix it immediately by doing the following:

Web Start Control Panel
Web Start Control Panel

Open the Java Control Panel and click on "Settings...":

Web Start Settings
Web Start Settings

The next time you load the dock it will get a clean copy of the jnlp file and jars.  (Good housekeeping anyway, because a large jnlp cache can cause performance problems.)

Showing 10 results.
Recent Bloggers Recent Bloggers
Stephen Chin Posts: 10
Stars: 0
Date: 10/25/09