Here are some Swing links that you might have missed during this week:

  • Thierry Lefort joins the ranks of Swing bloggers and opens his blog with a slew of posts. The first entry talks about rendering bar charts in table renderers, the second one adds zooming capabilities to tables (with a very interesting zooming on selection mode) and the third one shows how to use Swing worker in a modal cancellable dialog.
  • Geertjan Wielenga has a three-part introduction series to Beans Binding. Part 1, part 2 and part 3 walk through the various parts of the Beans Binding project.
  • Chet Haase has posted a video for his QCon 2007 talk. While there is nothing new there (it has been held last November), you might still be interested in a general overview of what is scheduled for 6.0 update N and 7.0.
  • Joshua Marinacci seems to confirm my guess on exporting Adobe artwork into JavaFX and SceneGraph formats. Here is what he says in the comments on a non-directly related blog entry: [h]owever, at JavaOne we will show you how to easily pull graphics created by designers using traditional design tools into your JavaFX applications
  • Alexander Potochkin reports on providing more support for JPopupMenus on system tray. Based on the comments on this entry, and on earlier entry by Artem Ananiev, this is another sore point for desktop-integrated Swing applications.
  • Finally, it looks like the next build (12) of 6.0 update N will have significant new functionality for Swing developers. In addition to a few performance-related issues on the new Direct3D pipeline, two new enhancements that i’ve talked about earlier have been marked as fixed for 6.0u10-b12: 6656651 for native text rasterization, and 6655001 for window translucency. Now this is definitely worth the wait.

The release candidate for version 3.0 of Flamingo component suite (code-named Deirdre) is available. The goal of this project is to provide a small and cohesive set of powerful UI components that allow creating modern applications that provide visual functionality similar to or superseding that of Vista Explorer and Office 2007. The components provide consistent visuals under the existing core and third-party look-and-feels, respect the DPI settings of the user desktop and follow the core Swing guidelines in the external APIs and the internal implementation details.

The component suite includes:

The project is licensed under BSD license and requires JDK 6.0. You can see the demo applications here. The binary and source bits are available here. The final release is scheduled for February 18.

Here are some Swing links that you might have missed during this week:

  • Christopher Deckers writes about the new functionality in drop 0.9.3 of his DJ Native Swing project. The main focus is on the possibility to mix heavyweight and lightweight components with lightweight components on top, to change their Z-order or re-parent them.
  • The new Metawidget project led by Richard Kennard announced its first drop. The stated goal of the project is to create UI components by inspecting existing back-end architectures (beans, annotations, XML config files). The target UI frameworks include Swing, JSF, Struts and Android, and it is possible to add support for more.
  • froglogic announced release 3.3 of their Squish UI testing tool. Main new features relevant to Swing development include support for testing mixed Swing / SWT applications, applets and WebStart applications.
  • Jan Haderka writes about the planned schedule for drop 0.9.2 of SwingX. The current timeline is late February or early March. Are we talking about the first stable release for JavaOne? :)
  • Philipp Meier shares a tip on writing cross-LAF cell renderers, based on an example of a combobox under the Nimbus look-and-feel.
  • Vaclav Pech is a new voice in the Groovy community that uses Swing as the “native” UI toolkit. His entries on binding and multithreading show a few examples of conciseness and expressive power of SwingBuilder. Now, if only my action listeners were all that simple…
  • Andres Almiray continues his tutorials on GraphicsBuilder. The second part talks about shapes and outlines.

The ribbon component is one of the major parts of the Flamingo component suite. It is a Swing component that provides capabilities of Office 2007 Command Bar, and the detailed documentation has been updated to show the latest visuals, APIs and terminology of the ribbon component. Here, i will show a few screenshots that illustrate the ribbon functionality.

The following screenshot shows a sample ribbon component (under Metal look-and-feel with the default Ocean theme):

Ribbon consists of a set of ribbon tasks. Only one task is visible at a time (a-la card layout). Logically, a task also includes its toggle button (the top portion of the ribbon control):

When another task is selected (programmatically or via user interaction), the contents of the selected task replace the previously selected task:

A ribbon task consists of a number of ribbon task bands:

A ribbon task band can contain command buttons in different states, usual core Swing controls (buttons, check boxes, combo boxes) and in-ribbon galleries. The available width is distributed between the task bands based on the priority of the elements in the task. As can be seen in these screenshots, some command buttons are in <font color="darkblue">ElementState.BIG</font> (big icon and text), some are in <font color="darkblue">ElementState.MEDIUM</font> (small icon and text), and the others are in <font color="darkblue">ElementState.SMALL</font> (only small icon).

An in-ribbon gallery allows scrolling and operating a large number of command buttons in a limited space.

Clicking on the gallery expand button opens a popup panel that shows the gallery command buttons arranged in a multi-row scrollable grid:

As mentioned earlier on this blog, the ribbon component uses the visuals of the current look-and-feel. Here is how ribbon looks under the Windows XP with Windows look-and-feel:

And under Windows Vista:

And under Ubuntu 7.10 with GTK look-and-feel:

And under Looks Plastic XP:

And under Synthetica Mauve Metallic:

And finally under Pagosoft:

The release candidate of Flamingo 3.0 is scheduled for February 11, with the official release scheduled for February 18. The latest binaries and source can be downloaded here.