WidgetFX is an open-source desktop widget platform written in the JavaFX Script language. It takes advantage of the latest features in the Java Consumer JRE and runs on all major platforms including Windows XP/Vista, Linux, and Mac OS X.
WidgetFX proclaims several benefits over other widget containers:
- Open-Source - WidgetFX is a 100% open-source widget container (widgets themselves can be licensed commercially)
- Cross-platform Support - There are a plethora of widget frameworks, but they are all incompatible, and none of them are truly cross-platform. WidgetFX runs on all major platforms including Windows XP/Vista, Linux, and Mac OS X.
- Robust Security Model - The migration of web technologies to widgets has left gaping security holes, which is a problem all Javascript based widget frameworks share. In contrast, WidgetFX has a robust security model that leverages the secure sandbox of the Java platform. (planned for 0.2 release)
- Rich Desktop Applications - Most widget containers are porting legacy web technologies like HTML, CSS, and Javascript back to the desktop, which doesn't allow them to take advantage of Rich Internet Application (RIA) functionality. In contrast, WidgetFX is designed to be on the front-end of a Rich Desktop Application (RDA) movement by providing a very rich library of visual, animation, and media capabilities.
WidgetFX deployment options of also differ from existing Java deployment options (Applets/Web Start):
- Low-memory Footprint - Within a browser applets can share a single VM, but once they are dragged to the desktop to be "web-startified" they lose this capability. For a large number of widgets, this will quickly add up to a large footprint both in memory and JVM startup time.
- Open on Startup - Widget containers both startup automatically on boot and also start any widgets that were open on close. While you could add hooks to a web-start application to do this for a single application, it is not as seamless as having the user "expect" your widget to be there on start-up.
- Widget Mindshare - Widgets are becoming mainstream, and while they may be comparable to desktop applications, Java will not be perceived as being a player in this space without having a viable offering. Perhaps the biggest jab on this one came from the w3c in their Widget Landscape report:
- "3.2 Differences from Java Applets ... It is argued that the most notable difference between them is that widgets are easier for authors to create than Java applets. ... Applets are intended to run inside Web pages, while widgets as described in this document generally serve the purpose of stand-alone applications that run outside of a Web browser."
- WidgetFX directly addresses these issues through the JavaFX Script language, which simplifies authoring of widgets, and desktop integration features which set WidgetFX widgets apart from standard Java applets
WidgetFX developer Stephen Chin has contacted InfoQ explaining his vision:
The WidgetFX 0.1 release is targeted at developers who are interested in authoring new desktop widgets. Widgets can be written in a combination of JavaFX Script and Java to take advantage of a very rich platform for graphics, animation, and media capabilities. To simplify development, the WidgetFX SDK ships with a lightweight Widget Runner, full API documentation, and a Getting Started tutorial. The 0.1 WidgetFX Dock and Developer SDK can be downloaded from: http://widgetfx.org/
Desktop widget engines have become increasingly popular as a way of deploying lightweight, frequently-used applications, such as a clocks, slide shows, or web feeds. WidgetFX is a fully functional docking system for desktop widgets with support for translucency, shaped windows, resizing, configuration, and one-click installation. Unlike other proprietary offerings, WidgetFX is 100% open source software written from the ground up in JavaFX Script, and can be run on any platform where Java is supported including Windows XP/Vista, Linux, and Mac OS X.
WidgetFX has been based on the codebase of AB5k aka Glossitope as Joshua Marinacci explains:
I always hate it when I get so busy that I can't finish an open source project I started. On the other hand, I absolutely love it when someone likes an idea I came up with but feels they can do it better, and then does. Case in point: AB5k aka Glossitope aka a new widget system for Java. I started this about two years ago, showing it off at JavaOne 2007. Alas, it ran into technical difficulties right at the time I started working on JavaFX, sucking away all of my time. Thus, the project is dead and the domain turned to dust. Or has it .... ?
Earlier this year Stephen Chin emailed me about the AB5k code base, asking if the project was still going. I said no, but that the code was still available for anyone to pick up if they so chose. I also recommend using JavaFX instead of straight Java, since JavaFX has already solved a lot of the problems I was struggling with (like transparent windows and virtualizing components). Thus, Stephen started a new project: WidgetFX: The JavaFX Desktop Widget Platform.
The project is still in its infancy, but being built on JavaFX it looks pretty good right out of the gate.
You can read a short tutorial or download the latest version of WidgetFX.
Lots more information on Rich Internet Applications at: http://www.infoq.com/ria