Eclipse RCP Overview @ Rheinjug

  • 2,464 views
Uploaded on

Eclipse RCP Overview

Eclipse RCP Overview

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
2,464
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
84
Comments
0
Likes
1

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Eclipse Rich Client Platform
    The amazing simplicity of creating RCP application
    Lars Vogel
    http://www.vogella.de
  • 2. Agenda
    What is RCP?
    OSGi
    Modular Architecture
    RCP
    e4 (lets see if we have time….)
    … and some life hacking
  • 3. What is an Eclipse RCP application?
    Local running application using the native widget toolkit
    Based on the Eclipse runtime and technology
  • 4. Eclipse (RCP) applications are written in Javain little pieces (plugins)
  • 5. Extensible Application - Firefox
    Plugins
    The Browser
  • 6. OSGi
    Dynamic module system in Java
  • 7. Bundle
    Smallest deployment and development component in OSGi
    Bundle == Plugin
    Bundle
    Plugin
  • 8. Each Plugin defines its available API
  • 9. Each Plugin defines also its dependencies
  • 10. MANIFEST.MF –
    Additional metadata for OSGi runtime
  • 11. Runtime (OSGi) makes sure the API contacts are fulfilled
  • 12. Demo
  • 13. OSGi – Enforced Modularity
    Standard Java App
    Modular Java App
  • 14. Anatomy of Eclipse RCP
  • 15. In Eclipse everything is a plugin (except the core runtime)
    Plugin
    Plugin
    Plugin
    Plugin
    Plugin
    Runtime
  • 16. Eclipse IDE
    Help
    P2 Update
    Text
    Compare
    Debug
    Search
    Team/ cvs
    IDE personality
    Workbench
    Resources
    JFace
    Runtime / Equinox (OSGi)
    SWT
  • 17. Component model
    Rich user experience
    OS independent
    Extensible
    Community
    e4
    Why Eclipse RCP?
  • 18. Your plugins
    Eclipse Plugins
  • 19. Eclipse RCP
    Your Server communication
    Your Security
    Your UI Layer
    Help
    P2 Update
    Other Stuff
    Workbench
    Your data model
    JFace
    Runtime / Equinox (OSGi)
    SWT
  • 20. A closer look
  • 21. Your first RCP app in < 10 secs
  • 22. Defines OSGi bundle properties
    Important configuration file- MANIFEST.MF -
    You said that already in the OSGi chapter ….
  • 23. Important configuration files- plugin.xml -
    Defines extensions and extension points
  • 24. Extensions
    Extension Points
    Provide functionality to predefined slots (== extension points)
    Define places where others (== extensions) can provide functionality
  • 25. The building blocks
  • 26. Thin layer upon the native GUI libraries
    JNI calls
    Not a lot of convenient functionality
    SWT - Standard Widget Toolkit
  • 27. 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
  • 28. Lets create a RCP app
  • 29. 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
  • 30. e4 ?
  • 31. Eclipse e4
    Eclipse e4 is the incubator project which will produce the Eclipse 4.0 SDK
  • 32. Eclipse e4 Scope
    Make developmentfor Eclipseeasier
  • 33. 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
  • 34. Eclipse e4 – Building blocks
    Modeled Workbench
    Rendering Engine
    Declarative Styling
    Dependecy Injection
    Context
    Core Services
  • 35. Summary
  • 36. 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
  • 37. 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
    • 38. Why RCP http://www.sxc.hu/photo/660438
    • 39. Woman with phone http://www.sxc.hu/photo/485640
    • 40. Funny guy http://www.sxc.hu/photo/1173019
    • 41. Dependencies http://www.sxc.hu/photo/182575
    • 42. Extension http://www.sxc.hu/photo/721092
    • 43. Dog http://www.sxc.hu/photo/302062
    • 44. Plugin spy http://www.sxc.hu/photo/130484
    • 45. Lego http://www.sxc.hu/photo/338038
    • 46. e4 target http://www.sxc.hu/photo/839037
    • 47. Summary http://www.sxc.hu/photo/1184807
    • 48. Question http://www.sxc.hu/photo/418215
    • 49. Reading material http://www.sxc.hu/photo/406547
    • 50. Thank you http://www.sxc.hu/photo/986313
  • 51. Thank you
    For further questions:
    Lars.Vogel@gmail.com
    http://www.vogella.de
    http://www.twitter.com/vogella
  • 52. 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