The Swing/SWT Integration (Albireo) project is a proposed project under the Eclipse Technology Project.
This proposal is in the Project Proposal Phase (as defined in the Eclipse Development Process document) and is written to declare its intent and scope. This proposal is written to solicit additional participation and input from the Eclipse community. You are invited to comment on and/or join the project. Please send all feedback to the http://www.eclipse.org/newsportal/thread.php?group=eclipse.technology.albireo newsgroup.
Many adopters of the Eclipse Rich Client Platform (RCP) have a history of developing applications for the AWT and Swing user interface toolkits. These developers often have a rich library of Swing components that have been created over time for use in their applications. These Swing components provide high business value in their specific application domains and have no existing SWT equivalent.It is impractical to expect that such users will be able to convert their Swing component libraries to SWT in their entirety as they begin to adopt the RCP. The component libraries may be very large, and they may not be controlled by the group interested in using the RCP.
So, in order to eliminate the RCP "barriers of entry" and to provide the ability to incrementally convert Swing component libraries to SWT, these users need a way to include their existing Swing components in their SWT-based RCP applications. The inclusion may take the form of:
Since Eclipse 3.0, SWT has provided basic support for integrating SWT with AWT/Swing in the form of the SWT_AWT bridge. The bridge provides the critical infrastructure necessary to integrate the two toolkits, but it takes a very minimalistic approach. The recent Eclipse Corner article on Swing/SWT Integration details a number of additional steps that all applications must take in order to create production-quality integrated applications. These steps include:
Without this extra work, the initial "out-of-the-box" experience with the SWT_AWT bridge can be very disappointing to developers. They see Swing components which look unpolished and out of place in the RCP environment. It's easy to conclude that Swing/SWT integration is not truly possible for production-quality applications. In fact, the Official Eclipse 3.0 FAQs book reinforces this concern by claiming the SWT_AWT bridge alone is production-quality only on Windows. Even for those that are aware of the techniques to improve integration, the extra code is tricky to implement and maintain. It requires expertise that is not necessarily available to application developers.
... and hopefully much more. The end result will be a better "out-of-the-box" experience and more credibility for the entire notion of Swing/SWT integration. The additional credibility extends both to developers considering integration and to end users who have concerns about applications that mix the two toolkits.
It will be necessary to implement some portion of this project in platform-specific code. We plan to support at least these platforms:
Albireo will be built on top of the SWT component of the Eclipse Platform (especially the SWT_AWT bridge). It may also require JFace from the Platform UI component in order to provide integration at higher levels (such as actions).
Similar to the Nebula project, Albireo will provide custom SWT widgets. Unlike the emulated widgets in the Nebula project, these widgets will need to be partially implemented in a platform-specific way.
The following companies have expressed interest in this project. Key contacts listed.
SAS Institute, Inc. contributed its Swing/SWT integration code as part of the Eclipse Swing/SWT Integration article. This code would form part of the initial code contribution.
ILOG S.A. will contribute its Swing/SWT integration code to the effort (tentative).
Back to the top