Difference between revisions of "Wire EMF Databinding RCP"
(→Create the Ecore-Model) |
(→Create an EMF-Project) |
||
Line 77: | Line 77: | ||
</li> | </li> | ||
</ol> | </ol> | ||
+ | |||
+ | Now we have to add our Domain-Objects <font family="Courier">Person</font> and Address to the Ecore-Model. | ||
==== Create the Ecore-Model ==== | ==== Create the Ecore-Model ==== |
Revision as of 01:49, 11 July 2007
THIS IS AN ARTICLE WORK IN PROGRESS (Bug 195163)
Contents
- 1 Abstract/Requirements Definition
- 2 Setup the Toolchain
- 3 Application Design
- 3.1 Plugin-Design
- 3.1.1 at.bestsolution.addressbook
- 3.1.2 at.bestsolution.addressbook.ui
- 3.1.3 at.bestsolution.addressbook.ui.theme
- 3.1.4 at.bestsolution.addressbook.core
- 3.1.5 at.bestsolution.addressbook.core.model
- 3.1.6 at.bestsolution.addressbook.core.datasource
- 3.1.7 at.bestsolution.addressbook.core.datasource.xmi
- 3.1.8 at.bestsolution.addressbook.core.datasource.iBatis
- 3.2 Plugin Overview
- 3.3 Domain Model
- 3.1 Plugin-Design
- 4 Hands on practice or „Let's begin our journey“
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
- Eclipse 3.3 for RCP-Developers (available from http://www.eclipse.org/downloads)
- EMF using the Update-Manager (Help>Software Updates>Find and Install)
- Derby-Plugins (available from http://db.apache.org/derby/derby_downloads.html)
To install:- Stop your eclipse (if running)
- Unzip „derby.zip“s (as of this writing derby_core_plugin_10.2.2.485682.zip and derby_ui_plugin_1.1.0.zip) into your %ECLIPSE_HOME/plugin directory
- Start up eclipse
- iBatis (available from http://ibatis.apache.org)
- Fetch application icons (e.g. available from http://websvn.kde.org/trunk/KDE/kdelibs/pics/oxygen/ using your favorite SVN-Client)
- (Optional) Visual-Database Design
- Install Clay for Eclipse (available from http://www.azzurri.jp/en/software/clay/)
- Download Clay-Utils used for creation of DDL and documentation (available from http://publicsvn.bestsolution.at/repos/java/clayUtils/release/at.bestsolution.clayutils-nodeps-0.0.7.jar)
- DDL-Utils to create database DDL for any database you want (available from http://db.apache.org/ddlutils)
- (Optional) Subclipse for Version-Control (available from http://subclipse.tigris.org)
Application Design
Plugin-Design
at.bestsolution.addressbook
The main RCP-Application
at.bestsolution.addressbook.ui
This plugin provides the UI bits (ViewPart, ...) for the addressbook application.
at.bestsolution.addressbook.ui.theme
This plugin addresses the themeability of the application by providing a plugable theme-API. It will by default provide a standard theme.
at.bestsolution.addressbook.core
This plugin provides the none GUI bits for the application like Command-Definitions, handlers, ...
at.bestsolution.addressbook.core.model
This plugin provides the model implementation created using EMF
at.bestsolution.addressbook.core.datasource
This plugin will provide the API to provide plugable datasources in our case
at.bestsolution.addressbook.core.datasource.xmi
This plugin provides a datasource implementation on top of XMI (directly supported by EMF)
at.bestsolution.addressbook.core.datasource.iBatis
This plugin provides a datasource implementation on top of iBatis
Plugin Overview
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).
Hands on practice or „Let's begin our journey“
Implementing at.bestsolution.addressbook.core.model
Create an EMF-Project
- Open the "New Project Wizard"
- Select Eclipse Modeling Framework
- Name the project "at.bestsolution.addressbook.core.model"
- The resulting workspace looks like this
Now we have to add our Domain-Objects Person and Address to the Ecore-Model.