Introduction To The Eclipse Platform

2,091
-1

Published on

Published in: Business, Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,091
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
122
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Introduction To The Eclipse Platform

  1. 1. Introduction to the Eclipse Platform <ul><li>Introduction </li></ul><ul><li>..... </li></ul>
  2. 2. Overview of the platform Rich Client Platform OSGi RCP Application Help Update Text Workspace Workbench Native UI Native Resources SWT JFace Plug-ins Plug-ins Development Java Development Other IDE Text Compare Debug Search Team IDE
  3. 3. <ul><li>SWT </li></ul><ul><li>(Standard Widget Toolkit) </li></ul>
  4. 4. SWT <ul><li>IBM developed VisualAge: IDE coded in Smalltalk </li></ul><ul><li>VisualAge becomes Open Source project: Eclipse, intended to compete against other IDEs such as Microsoft Visual Studio </li></ul><ul><li>Why a whole new GUI toolkit? </li></ul><ul><ul><li>native look and feel </li></ul></ul><ul><ul><li>native performance </li></ul></ul>
  5. 5. SWT
  6. 6. SWT: Comparison with AWT/Swing <ul><li>AWT: thin wrapper around native UI widgets </li></ul>SWT AWT wrapper Native UI widgets Native Graphics Library Swing wrapper
  7. 7. SWT: Comparison with AWT/Swing <ul><li>Swing: full-blown 100% Java widgets </li></ul>SWT AWT wrapper Native UI widgets Native Graphics Library Swing wrapper
  8. 8. SWT: Comparison with AWT/Swing <ul><li>SWT </li></ul><ul><ul><ul><li>wrapper around native UI widgets: GTK+, Motif, win32 </li></ul></ul></ul><ul><ul><ul><li>missing functionality is developed in Java at SWT level </li></ul></ul></ul>SWT AWT wrapper Native UI widgets Native Graphics Library Swing wrapper
  9. 9. SWT: Comparison with AWT/Swing <ul><li>SWT </li></ul><ul><ul><li>Does not implement Model-View-Controller (JFace) </li></ul></ul><ul><ul><li>Is relatively simpler than Swing </li></ul></ul>
  10. 10. <ul><li>JFace </li></ul>
  11. 11. JFace - Resources <ul><li>Provides registries that hold Images and Fonts </li></ul>
  12. 12. JFace - Actions <ul><li>Actions to allow users to define their own behavior and to assign that behavior to components (menu items, tool items, push buttons, etc. </li></ul>
  13. 13. JFace - MVC <ul><li>Viewer classes that handle data populating, sorting, filtering, and updating widgets (the MVC pattern ) </li></ul>
  14. 14. JFace - User Interaction <ul><li>Defines standard dialogs and wizards, and defines a framework for building complex interactions with the user </li></ul>
  15. 15. JFace - Long-running operations <ul><li>Long-running operations that require progress indicators or allow user cancellation of the operation. </li></ul>
  16. 16. JFace - SWT <ul><li>JFace is completely dependent on SWT, but SWT is not dependent on JFace. </li></ul><ul><li>The Eclipse Workbench is built on both JFace and SWT. In some instances, it bypasses JFace and accesses SWT directly. </li></ul>Workbench Native UI SWT JFace
  17. 17. JFace - Summary <ul><li>Primary goal is to free the developer up, letting to focus on the implementation of an application without having to be concerned with the underlying widget system or solving problems that are common in almost all UI applications. </li></ul>
  18. 18. <ul><li>OSGi </li></ul><ul><li>(Open Services Gateway initiative) </li></ul>
  19. 19. OSGi <ul><li>OSGi is an independent, non-profit corporation </li></ul><ul><li>Open specifications for the delivery of managed services to networked environments </li></ul><ul><li>The specification define the OSGi Service Platform: </li></ul><ul><ul><li>the OSGi framework </li></ul></ul><ul><ul><li>a set of standard service definitions </li></ul></ul><ul><li>The core part of the specifications is a framework that defines an application life cycle model and a service registry. </li></ul>
  20. 20. OSGi - Services Platform Publish Discover Bind Bundle Service Registry Service Provider Service Requester
  21. 21. OSGi Service Definition <ul><li>A service is defined by: </li></ul><ul><ul><li>the service interface - Java class or interface, </li></ul></ul><ul><ul><li>the service properties - name and value pairs </li></ul></ul>
  22. 22. OSGi Services <ul><li>Wide range of services is already defined ... </li></ul><ul><li>Security; Module; Life Cycle, and Service Layers; Framework API; Package Admin Service; Start Level Service; Conditional Permission Admin; Permission Admin Service; URL Handlers Service; Log Service; HTTP Service (runs servlets); Device Access; Configuration Admin Service; Metatype Service; Preferences Service; User Admin Service; Wire Admin Service; I/O Connector Service; Initial Provisioning; UPnP Device Service; Declarative Services; Event Admin Service; Deployment Admin; Auto Configuration; Application Admin Service; DMT Admin Service; Monitor Admin Service; Foreign Application Service; Service Tracker; XML Parser Service; Position; Measurement and State; Execution Environments </li></ul><ul><li>... plus all your own services. </li></ul>
  23. 23. OSGi Features <ul><li>Lazzy loading </li></ul><ul><li>Service decoupling </li></ul><ul><li>Mix'n'Match services from different vendors (e.g. Spring Dynamic Modules) </li></ul><ul><li>Lifecycle control </li></ul>
  24. 24. OSGi Eclipse Equinox <ul><li>Equinox is one of many OSGi implementations </li></ul><ul><ul><li>Knopflerfish </li></ul></ul><ul><ul><li>Apache Felix </li></ul></ul><ul><li>Solid base for Eclipse platform </li></ul>
  25. 25. <ul><li>Eclipse Plug-ins </li></ul>
  26. 26. Eclipse Plug-ins <ul><li>OSGi bundle </li></ul><ul><li>Provide extension points </li></ul><ul><li>Contribute to extension points </li></ul>
  27. 27. Eclipse Plug-ins host plug-in exposes extension point extender plug-in contributes to an extension point extension point plug-in: org.eclipse.ui WorkbenchPlugin actionSets plug-in: org.eclipse.help.ui Help -> Help Contents menu item
  28. 28. <ul><li>Rich Client Platform (RCP) </li></ul>
  29. 29. RCP <ul><li>Eclipse RCP is a platform for building and deploying rich client applications. </li></ul><ul><li>This is the heart of any Eclipse based application </li></ul>
  30. 30. Quick Summary <ul><li>SWT (Standard Widgets Toolkit) </li></ul><ul><li>JFace </li></ul><ul><li>OSGi (Open Services Gateway initiative) </li></ul><ul><li>Eclipse Plug-ins </li></ul><ul><li>RCP (Rich Client Platform) </li></ul>Rich Client Platform OSGi Workbench Native UI SWT JFace Plug-ins
  31. 31. Quick Summary <ul><li>Questions? </li></ul>
  32. 32. <ul><li>RCP Aplication </li></ul>
  33. 33. RCP Aplication - General Layout View Toolbar View View Editor Menu View's Toolbar View's Toolbar View's Toolbar
  34. 34. RCP Aplication - General Layout
  35. 35. RCP Aplication - Flexible Layout
  36. 36. RCP Aplication - Editors <ul><li>Edit you data model in user friendly manner </li></ul><ul><li>Editing ecosystem: </li></ul><ul><ul><li>markers (e.g. error, todo) </li></ul></ul><ul><ul><li>undo/redo </li></ul></ul><ul><ul><li>copy&paste </li></ul></ul>
  37. 37. RCP Aplication - Views Editor Editor related views Not realted views Java source editing Java class outline Java errors list Java project structure Java search results Other Other Other Other
  38. 38. RCP Aplication - Perspectives <ul><li>Show items related to the task </li></ul><ul><li>Help to focus on primary objectives </li></ul><ul><li>Avoid user confusing interface </li></ul><ul><li>Customize </li></ul><ul><ul><li>views </li></ul></ul><ul><ul><li>layout </li></ul></ul><ul><ul><li>menu </li></ul></ul><ul><ul><li>toolbar </li></ul></ul>
  39. 39. RCP Aplication - Perspectives Java Programmer Plug-in Developer Debug J2EE Developer
  40. 40. RCP Aplication – Add-ons <ul><li>Help system </li></ul><ul><li>Update manager </li></ul>
  41. 41. <ul><li>Workspace </li></ul>
  42. 42. Workspace Rich Client Platform OSGi RCP Application Help Update Text Workspace Workbench Native UI Native Resources SWT JFace Plug-ins Plug-ins Development Java Development Other IDE Text Compare Debug Search Team IDE
  43. 43. Workspace <ul><li>Why cover the file system? </li></ul><ul><li>Local history </li></ul><ul><li>Markers </li></ul><ul><li>Projects </li></ul><ul><ul><li>builders </li></ul></ul><ul><ul><li>natures </li></ul></ul>
  44. 44. <ul><li>IDE </li></ul>
  45. 45. IDE Rich Client Platform OSGi RCP Application Help Update Text Workspace Workbench Native UI Native Resources SWT JFace Plug-ins Plug-ins Development Java Development Other IDE Text Compare Debug Search Team IDE
  46. 46. IDE <ul><li>Provides soild ground for building development environment: </li></ul><ul><ul><li>editors </li></ul></ul><ul><ul><li>debug </li></ul></ul><ul><ul><li>search </li></ul></ul><ul><ul><li>compare </li></ul></ul><ul><ul><li>team (code share: cvs, svn) </li></ul></ul><ul><li>Java, C, Python, Ruby </li></ul><ul><li>any other language you like </li></ul>
  47. 47. Quick Summary <ul><li>RCP Application </li></ul><ul><ul><li>views, perspectives, editors </li></ul></ul><ul><li>Workspace </li></ul><ul><li>IDE </li></ul>RCP Application Help Update Text Workspace Native Resources Plug-ins Development Java Development Other IDE Text Compare Debug Search Team IDE
  48. 48. <ul><li>Questions? </li></ul>
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×