Eclipse Rich Client Platform The amazing simplicity of creating RCP application Lars Vogel Agenda What is an Eclipse RCP application? · Local running application using the native widget toolkit · Based on the Eclipse runtime and technology Eclipse (RCP) applications are written in Java in little pieces (plugins) Extensible Application - Firefox Plugins The Browser OSGi Dynamic module system in Java Bundle Smallest deployment and development component in OSGi Bundle == Plugin Bundle Plugin Each Plugin defines its available API Each Plugin defines also its dependencies MANIFEST.MF ­ Additional metadata for OSGi runtime Runtime (OSGi) makes sure the API contacts are fulfilled Demo OSGi ­ Enforced Modularity Standard Java App Modular Java App Anatomy of Eclipse RCP In Eclipse everything is a plugin (except the core runtime) Plugin Plugin Plugin Runtime Eclipse IDE Help P2 Update Text Compare Debug Search Team/ cvs IDE personality Workbench Resources JFace SWT Runtime / Equinox (OSGi) Why Eclipse RCP? · · · · · · Component model Rich user experience OS independent Extensible Community e4 Your plugins Eclipse Plugins Eclipse RCP Your Security P2 Update Help Workbench Your data model JFace SWT Runtime / Equinox (OSGi) Your UI Layer Your Server communication Other Stuff A closer look Your first RCP app in < 10 secs Important configuration file - MANIFEST.MF - · Defines OSGi bundle properties You said that already in the OSGi chapter .... Important configuration files - plugin.xml - · Defines extensions and extension points Extensions Extension Points Provide functionality to predefined slots (== extension points) Define places where others (== extensions) can provide functionality The building blocks SWT - Standard Widget Toolkit · Thin layer upon the native GUI libraries · JNI calls · Not a lot of convenient functionality JFace & Workbench · JFace ­ UI toolkit that provides helper classes for developing UI features ­ Makes SWT nicer but does not hide its complexity ­ Tables / TreeViewer / Dialogs / ­ Databinding · Workbench ­ multi-window environment ­ manages views, editors, perspectives Lets create a RCP app How did he do it? Excursus: Plug-in Spy · Find in Eclipse which parts you are looking at · Make coding analysis and re-use extremly easy · Shortcut Alt+Shift+F1 · Add org.eclipse.pde.runtime and org.eclipse.ui.forms as dependency to have Plugin Spy in your own RCP application Plugin Spy = Shortcut Alt+Shift+F1 Lars Vogel 4/22/2009 29 e4 ? Eclipse e4 Eclipse e4 is the incubator project which will produce the Eclipse 4.0 SDK Eclipse e4 Scope Make development for Eclipse easier Eclipse 3.x programming model · Complex · Lots of API · Platform functionality via singletons · Not easy to test · Not a consistent way to define the UI Eclipse e4 ­ Building blocks Modeled Workbench Rendering Engine Declarative Styling Dependecy Injection Context Core Services Summary Eclipse: Where to go from here: Eclipse Wiki Eclipse RCP Tutorial Eclipse Plugin Development Eclipse e4 Tutorial Photo credits · · · · · · · · · · · · · Clothes Agenda Dotted guy RCP Definition OSGI Defintion Building block Where to go Hurt fingers Police API Plugin vrs. bundles Structured vrs. chaos · · · · · · · · · · · · · · Why RCP Woman with phone Funny guy Dependencies Extension Dog Plugin spy Lego e4 target Summary Question Reading material Thank you Thank you For further questions: License & Acknowledgements · This work is licensed under the Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 Germany License ­ See