Eclipse RCP Overview @ Rheinjug

Post on 09-May-2015

2.581 views 6 download

description

Eclipse RCP Overview

Transcript of Eclipse RCP Overview @ Rheinjug

Eclipse Rich Client Platform

The amazing simplicity of creating RCP application

Lars Vogelhttp://www.vogella.de

• What is RCP?

• OSGi

• Modular Architecture

• RCP

• e4 (lets see if we have time….)

… and some life hacking

Agenda

• Local running application using the native widget toolkit

• Based on the Eclipse runtime and technology

What is an Eclipse RCP application?

Eclipse (RCP) applications are written in

Java

in little pieces (plugins)

Extensible Application - Firefox

Plugins The Browser

OSGiDynamic module system in Java

Bundle

Smallest deployment and development component in OSGi

Bundle == Plugin

BundlePlugin

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

Standard Java App Modular Java App

OSGi – Enforced Modularity

Anatomy of Eclipse RCP

In Eclipse everything is a plugin (except the core runtime)

Runtime

Plugin

PluginPlugin

Plugin

Plugin

Eclipse IDE

Runtime / Equinox (OSGi)SWT

JFace

Workbench

Resources

IDE personality

Help P2 Update Text Compare Debug Search Team/ cvs

• Component model• Rich user experience • OS independent• Extensible• Community• e4

Why Eclipse RCP?

Eclipse Plugins

Your plugins

Eclipse RCP

Runtime / Equinox (OSGi)SWT

JFace

Workbench

Your data model

Your UI LayerHelpP2

Update Other Stuff

Your Server communication

Your Security

A closer look

Your first RCP app in < 10 secs

• Defines OSGi bundle properties

Important configuration file- MANIFEST.MF -

You said that already in the OSGi chapter ….

• Defines extensions and extension points

Important configuration files- plugin.xml -

Extensions

Extension Points

Provide functionality to predefined slots (== extension points)

Define places where others (== extensions) can provide functionality

The building blocks

• Thin layer upon the native GUI libraries • JNI calls• Not a lot of convenient functionality

SWT - Standard Widget Toolkit

• 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

JFace & Workbench

Lets create a RCP app

• 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 Plug-in Spy in your own RCP application

29

Excursus: Plug-in Spy

Lars Vogel 4/22/2009

How did he do it?

Plugin Spy = Shortcut Alt+Shift+F1

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

Declarative Styling

Modeled Workbench

Rendering Engine

Dependecy Injection

Context

Core Services

Summary

Eclipse: Where to go from here:

Eclipse Wikihttp://wiki.eclipse.org/

Eclipse RCP Tutorialhttp://www.vogella.de/articles/RichClientPlatform/article.html

Eclipse Plugin Development http://www.vogella.de/articles/EclipsePlugIn/article.html

Eclipse e4 Tutorialhttp://www.vogella.de/articles/EclipseE4/article.html

Photo credits

• Clothes http://www.sxc.hu/photo/418618• Agenda http://www.sxc.hu/photo/1089869• Dotted guy http://www.sxc.hu/photo/1103660• RCP Definition http://www.sxc.hu/photo/930468• OSGI Defintion

http://www.sxc.hu/photo/975495• Building block http://www.sxc.hu/photo/596908• Where to go http://www.sxc.hu/photo/448543• Hurt fingers http://www.sxc.hu/photo/906072• Police http://www.sxc.hu/photo/860421• API http://www.sxc.hu/photo/603920• Plugin vrs. bundles

http://www.sxc.hu/photo/1010558• Manifst.mf http://www.sxc.hu/photo/764999• Structured vrs. chaos

• http://www.sxc.hu/photo/941292• Why RCP http://www.sxc.hu/photo/660438• Woman with phone

http://www.sxc.hu/photo/485640• Funny guy http://www.sxc.hu/photo/1173019• Dependencies http://www.sxc.hu/photo/182575• Extension http://www.sxc.hu/photo/721092• Dog http://www.sxc.hu/photo/302062• Plugin spy http://www.sxc.hu/photo/130484• Lego http://www.sxc.hu/photo/338038• e4 target http://www.sxc.hu/photo/839037• Summary http://www.sxc.hu/photo/1184807• Question http://www.sxc.hu/photo/418215• Reading material

http://www.sxc.hu/photo/406547• Thank you http://www.sxc.hu/photo/986313

Thank you

For further questions:

Lars.Vogel@gmail.comhttp://www.vogella.dehttp://www.twitter.com/vogella

License & Acknowledgements

• This work is licensed under the Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 Germany License

– See http://creativecommons.org/licenses/by-nc-nd/3.0/de/deed.en_US