Albireo is an Eclipse Technology project that will simplify the task of combining user interface components from the Swing and SWT toolkits. It will build on SWT's standard SWT_AWT bridge, implementing much of the tricky code that is currently left to the developer.
Motivation
Many adopters of the Eclipse Rich Client Platform (RCP) start with large component libraries that target the Swing user interface toolkit. These libraries provide high business value in specific application domains and cannot be replaced with a third-party SWT library. Since a complete, immediate conversion to SWT may be impractical, these developers need a way to embed the existing Swing components into their new RCP applications as they begin the transition to the RCP.
Other developers, who are creating new RCP or SWT applications, may be forced to use third-party Swing component libraries simply because there are no existing SWT equivalents.
Since Eclipse 3.0, SWT has addressed these use cases with the basic Swing/SWT integration support in the SWT_AWT bridge. The bridge provides the critical infrastructure necessary to integrate the two toolkits, but it takes a very minimal approach. The recent Eclipse Corner article on Swing/SWT Integration describes several additional techniques required to effectively combine Swing and SWT components into production-quality applications. So, while the SWT_AWT bridge makes integration possible, it is still quite difficult.
By providing a higher-level Swing/SWT integration framework, the Albireo project will make the reuse of existing Swing components easier and further reduce the "barriers to entry" encountered by new RCP adopters.
Initial Goals
Initially, the Albireo project will be focused on support for embedding Swing components (and their associated dialogs) into SWT and RCP applications. In particular we will seek to provide:
- reduced flicker in embedded Swing components
- correct behavior for modal dialogs across both toolkits
- proper focus handling
- proper tab traversal among components from both toolkits
- reduced keystroke contention between the toolkits
- easier operation in multiple event thread environments
- smoother integration of size (layout) management between the two toolkits.
- management of SWT pop-ups on AWT/Swing components
Initial implementation and testing is planned for these platforms:
- Windows (Vista/XP/2000/WPF)
- Linux/GTK
- Mac OS X
The initial Albireo testing will focus on versions 1.5 and higher of the Java runtime, but it will be possible to run it under version 1.4. (In other words no language features or APIs from Java 5 or Java 6 will be required.) The extent of testing under the 1.4 Java runtime will depend on community interest and involvement.
Albireo will run on version 3.3 and higher of SWT.


