Rich Client Platform
While the Eclipse platform is designed to serve as an open tools platform, it is architected so that its components could be used to build just about any client application. The minimal set of plug-ins needed to build a rich client application is collectively known as the Rich Client Platform.
Applications other than IDEs can be built using a subset of the platform. These rich applications are still based on a dynamic plug-in model, and the UI is built using the same toolkits and extension points. The layout and function of the workbench is under fine-grained control of the plug-in developer in this case.
When we say that the Rich Client Platform is the minimal set of plug-ins needed to build a platform application with a UI, we mean that your application need only require two plug-ins, org.eclipse.ui and org.eclipse.core.runtime, and their prerequisites.
However, rich client applications are free to use any API deemed necessary for their feature set, and can require any plug-ins above the bare minimum. Examples include the Help UI, and the Update Manager.
For more details on what is included in the Rich Client Platform, see the RCP FAQ.
Books on RCP or with chapters on RCP
- "Eclipse Rich Client Platform - Designing, Coding and Packaging Java Applications" by Jeff McAffer and Jean-Michel Lemieux.
- "The Java Developer's Guide to Eclipse (2nd ed.)" by Jim d'Anjou, Scott Fairbrother et al. See Chapter 10 - Creating Applications Using the Rich Client Platform.
- "Official Eclipse FAQs" by Chris Laffra and John Arthorne. See Chapter 13 - Building Your Own Application.
- Rich Client Platform Tutorial, by Ed Burnette. Part 1 Part 2 Part 3
- Eclipse's Rich Client Platform, by Jeff Gunther (on IBM developerWorks). Part 1, Part 2
Related Articles and Wiki pages
- Smart Client development with the Eclipse Rich Client Platform (PDF) (PPT) by Nick Edgar and Pascal Rapicault, presented at JAOO 2005.
The source for the accompanying "Go Wild Travel - Adventure Builder RCP Client" example is being cleaned up, and will be posted shortly.
- Developing for the Rich Client Platform (PDF) by Nick Edgar and Pascal Rapicault, from their tutorial presented at EclipseCon, February 28, 2005.
- The Hyperbola example source is available from CVS. The steps from within Eclipse are:
- Window > Open Perspective > Other? > CVS Repository Exploring
- In CVS Repositories view context menu: New > Repository Location
- Enter host: dev.eclipse.org repo path: /home/eclipse user: anonymous password: <none> connection type: pserver
- In CVS Repositories view, expand: HEAD/platform-ui-home/eclipsecon/tutorial/example1
- Select org.eclipsercp.hyperbola.mockup and choose Check Out
- Likewise, for example 2, check out both projects under example2.
- The solutions to the exercises are in the Solutions branch of the Hyperbola projects. After loading from HEAD, use Compare With (or Replace With) > Another Branch or Version, press Refresh Tags, select Branches / Solutions.
- Eclipse Rich Client Applications - Overview of the Generic Workbench (PDF) (PPT) by Nick Edgar, presented at EclipseCon, February 2004.
- Eclipse RCP Runtime (PDF) by Jeff McAffer, presented at EclipseCon February 2004.
- Eclipse Rich Client Platform (Zip) by Ed Burnette, presented at the RTP Websphere Users Group, August 2004.
- The Eclipse Rich Client Platform (PPT) by various members of the Eclipse JDT and Platform teams, last updated November 5, 2004.
- The Eclipse Rich Client Platform (HTML) by Chris Laffra, presented at the Colorado Software Summit, October 2004.
The following are relevant help topics from the Platform Plug-in Developer Guide (from within the Eclipse IDE: Help > Help Contents > Platform Plug-in Developer Guide). The links below are to the online Eclipse 3.1 help.
- Building a Rich Client Platform application
- Defining a Product
- Plugging into the workbench
- Runtime overview
- SWT - Standard Widget Toolkit
- JFace UI Framework
- Dialogs and wizards
- Advanced Workbench Concepts
- API rules of engagement
- Runtime options
- Map of Platform Plug-ins
- Eclipse 2.1->3.0 and 3.0->3.1 Plug-in Migration Guides
The following eclipse newsgroups have useful discussions, questions and answers relevant to the development of RCP applications.
If you have a question, please check the RCP FAQ before posting to the newsgroups. Kindly avoid posting to the developer (*-dev) mailing lists as these are intended for use by the development teams and others participating in the development of Eclipse itself.
- news://news.eclipse.org/eclipse.platform.rcp - For questions specific to the development of RCP applications. Also available via EclipseZone.
- news://news.eclipse.org/eclipse.platform - For general Workbench and JFace questions that could apply both to RCP applications and IDE plug-ins. Also available via EclipseZone.
- news://news.eclipse.org/eclipse.platform.swt - For SWT-specific questions. Also available via EclipseZone.
The following are some examples showing how to build applications using RCP:
Several applications have been built using the Rich Client Platform.
- The RCP Applications section of the Eclipse Community page lists several apps, including case studies of a few.
- The onEclipse site lists several RCP and standalone SWT applications, in two parts: Part 1, Part 2.
- NASA/JPL is using Eclipse RCP as the foundation of their next version of Maestro, and more. See the case study, session 11.3 - "A Martian Eclipse" at EclipseCon 2005, and Scott Schram's blog entry on the presentation. Jeff Norris from NASA/JPL also wrote a nice forward to the RCP Book.
The following are blogs with a fair bit of coverage of RCP:
The following are other resources describing the Eclipse Rich Client Platform, or related subjects:
Elsewhere at eclipse.org
Content is in the process of being migrated here from the old RCP Home Page.
Original Design Documents
The following are the original design documents for the RCP work done in Eclipse 3.0. They are somewhat out of date and are provided here mainly for historical interest. The tutorials and help topics above provide better materials for getting started with RCP.
- Original plan item in Bugzilla: Enable Eclipse to be used as a rich client platform
- Executive Summary of the Eclipse Rich Client Platform UI (includes excerpts from the documents below)
- Statement of Direction for the Eclipse Rich Client Platform UI
- Eclipse Rich Client Platform UI Proposed Approach
- Overview of the Generic Workbench
- Generic Workbench Plug-in Structure