Flamingo component suite 3.0 – ribbon

February 8th, 2008

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 ElementState.BIG (big icon and text), some are in ElementState.MEDIUM (small icon and text), and the others are in ElementState.SMALL (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.