Skip to main content
Jump to: navigation, search

Wire EMF Databinding RCP

Revision as of 20:45, 10 July 2007 by (Talk | contribs) (Create an EMF-Project)


Abstract/Requirements Definition

I'm trying to implement a fairly simple address book application on top of RCP using frameworks provided by Eclipse in 3.3. There's also focus on how to structure and design an RCP to be as extensible and as flexible as possible, including theming, internationalization, datastorage independency, ... .

Setup the Toolchain

  1. Eclipse 3.3 for RCP-Developers (available from
  2. EMF using the Update-Manager (Help>Software Updates>Find and Install)
  3. Derby-Plugins (available from
    To install:
    1. Stop your eclipse (if running)
    2. Unzip „“s (as of this writing and into your %ECLIPSE_HOME/plugin directory
    3. Start up eclipse
  4. iBatis (available from
  5. Fetch application icons (e.g. available from using your favorite SVN-Client)
  6. (Optional) Visual-Database Design
    1. Install Clay for Eclipse (available from
    2. Download Clay-Utils used for creation of DDL and documentation (available from
    3. DDL-Utils to create database DDL for any database you want (available from
  7. (Optional) Subclipse for Version-Control (available from

Application Design



The main RCP-Application


This plugin provides the UI bits (ViewPart, ...) for the addressbook application.


This plugin addresses the themeability of the application by providing a plugable theme-API. It will by default provide a standard theme.


This plugin provides the none GUI bits for the application like Command-Definitions, handlers, ...


This plugin provides the model implementation created using EMF


This plugin will provide the API to provide plugable datasources in our case


This plugin provides a datasource implementation on top of XMI (directly supported by EMF)


This plugin provides a datasource implementation on top of iBatis

Plugin Overview

EMF RCP PluginOverview.png

Domain Model

The domain model is fairly simple and can be represented by 2 classes as shown in the diagram below. The only interesting thing is that there's a bidirectional relationship between Person(Attribute: primaryAddress) and Address(Attribute: person).

EMF RCP Domain.png

Hands on practice or „Let's begin our journey“

Implementing at.bestsolution.addressbook.core.model

Create an EMF-Project

  1. Select Eclipse Modeling Framework
    EMF RCP EMF1.png

Back to the top