Eclipse RCP Overview @ Rheinjug
Upcoming SlideShare
Loading in...5
×
 

Eclipse RCP Overview @ Rheinjug

on

  • 3,077 views

Eclipse RCP Overview

Eclipse RCP Overview

Statistics

Views

Total Views
3,077
Views on SlideShare
3,077
Embed Views
0

Actions

Likes
1
Downloads
82
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Eclipse RCP Overview @ Rheinjug Eclipse RCP Overview @ Rheinjug Presentation Transcript

  • Eclipse Rich Client Platform
    The amazing simplicity of creating RCP application
    Lars Vogel
    http://www.vogella.de
  • Agenda
    What is RCP?
    OSGi
    Modular Architecture
    RCP
    e4 (lets see if we have time….)
    … and some life hacking
  • 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 Javain 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
    Plugin
    Plugin
    Runtime
  • Eclipse IDE
    Help
    P2 Update
    Text
    Compare
    Debug
    Search
    Team/ cvs
    IDE personality
    Workbench
    Resources
    JFace
    Runtime / Equinox (OSGi)
    SWT
  • Component model
    Rich user experience
    OS independent
    Extensible
    Community
    e4
    Why Eclipse RCP?
  • Your plugins
    Eclipse Plugins
  • Eclipse RCP
    Your Server communication
    Your Security
    Your UI Layer
    Help
    P2 Update
    Other Stuff
    Workbench
    Your data model
    JFace
    Runtime / Equinox (OSGi)
    SWT
  • 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 ….
  • 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
  • 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
    How did he do it?
    Plugin Spy = Shortcut Alt+Shift+F1
    Lars Vogel 4/22/2009
  • e4 ?
  • Eclipse e4
    Eclipse e4 is the incubator project which will produce the Eclipse 4.0 SDK
  • Eclipse e4 Scope
    Make developmentfor Eclipseeasier
  • 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
    http://wiki.eclipse.org/
    Eclipse RCP Tutorial
    http://www.vogella.de/articles/RichClientPlatform/article.html
    Eclipse Plugin Development
    http://www.vogella.de/articles/EclipsePlugIn/article.html
    Eclipse e4 Tutorial
    http://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
    Pluginvrs. 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.com
    http://www.vogella.de
    http://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