Introduction To The Eclipse Platform

download Introduction To The Eclipse Platform

If you can't read please download the document

Transcript of Introduction To The Eclipse Platform

  • 1. Introduction to the Eclipse Platform
    • Introduction
  • .....

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.

  • SWT
  • (Standard Widget Toolkit)

4. SWT

  • IBM developed VisualAge: IDE coded in Smalltalk
  • VisualAge becomes Open Source project: Eclipse, intended to compete against other IDEs such as Microsoft Visual Studio
  • Why a whole new GUI toolkit?
    • native look and feel
    • native performance

5. SWT 6. SWT: Comparison with AWT/Swing

  • AWT: thin wrapper around native UI widgets

SWT AWT wrapper Native UI widgets Native Graphics Library Swing wrapper 7. SWT: Comparison with AWT/Swing

  • Swing: full-blown 100% Java widgets

SWT AWT wrapper Native UI widgets Native Graphics Library Swing wrapper 8. SWT: Comparison with AWT/Swing

  • SWT
      • wrapper around native UI widgets: GTK+, Motif, win32
      • missing functionality is developed in Java at SWT level

SWT AWT wrapper Native UI widgets Native Graphics Library Swing wrapper 9. SWT: Comparison with AWT/Swing

  • SWT
    • Does not implement Model-View-Controller (JFace)
    • Is relatively simpler than Swing

10.

  • JFace

11. JFace - Resources

  • Provides registries that hold Images and Fonts

12. JFace - Actions

  • Actions to allow users to define their own behavior and to assign that behavior to components (menu items, tool items, push buttons, etc.

13. JFace - MVC

  • Viewer classes that handle data populating, sorting, filtering, and updating widgets (the MVC pattern )

14. JFace - User Interaction

  • Defines standard dialogs and wizards, and defines a framework for building complex interactions with the user

15. JFace - Long-running operations

  • Long-running operations that require progress indicators or allow user cancellation of the operation.

16. JFace - SWT

  • JFace is completely dependent on SWT, but SWT is not dependent on JFace.
  • The Eclipse Workbench is built on both JFace and SWT. In some instances, it bypasses JFace and accesses SWT directly.

Workbench Native UI SWT JFace 17. JFace - Summary

  • 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.

18.

  • OSGi
  • (Open Services Gateway initiative)

19. OSGi

  • OSGi is an independent, non-profit corporation
  • Open specifications for the delivery of managed services to networked environments
  • The specification define the OSGi Service Platform:
    • the OSGi framework
    • a set of standard service definitions
  • The core part of the specifications is a framework that defines an application life cycle model and a service registry.

20. OSGi - Services Platform Publish Discover Bind Bundle Service Registry Service Provider Service Requester 21. OSGi Service Definition

  • A service is defined by:
    • the service interface - Java class or interface,
    • the service properties - name and value pairs

22. OSGi Services

  • Wide range of services is already defined ...
  • 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
  • ... plus all your own services.

23. OSGi Features

  • Lazzy loading
  • Service decoupling
  • Mix'n'Match services from different vendors (e.g. Spring Dynamic Modules)
  • Lifecycle control

24. OSGi Eclipse Equinox

  • Equinox is one of many OSGi implementations
    • Knopflerfish
    • Apache Felix
  • Solid base for Eclipse platform

25.

  • Eclipse Plug-ins

26. Eclipse Plug-ins

  • OSGi bundle
  • Provide extension points
  • Contribute to extension points

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.

  • Rich Client Platform (RCP)

29. RCP

  • Eclipse RCP is a platform for building and deploying rich client applications.
  • This is the heart of any Eclipse based application

30. Quick Summary

  • SWT (Standard Widgets Toolkit)
  • JFace
  • OSGi (Open Services Gateway initiative)
  • Eclipse Plug-ins
  • RCP (Rich Client Platform)

Rich Client Platform OSGi Workbench Native UI SWT JFace Plug-ins 31. Quick Summary

  • Questions?

32.

  • RCP Aplication

33. RCP Aplication - General Layout View Toolbar View View Editor Menu View's Toolbar View's Toolbar View's Toolbar 34. RCP Aplication - General Layout 35. RCP Aplication - Flexible Layout 36. RCP Aplication - Editors

  • Edit you data model in user friendly manner
  • Editing ecosystem:
    • markers (e.g. error, todo)
    • undo/redo
    • copy&paste

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. RCP Aplication - Perspectives

  • Show items related to the task
  • Help to focus on primary objectives
  • Avoid user confusing interface
  • Customize
    • views
    • layout
    • menu
    • toolbar

39. RCP Aplication - Perspectives Java Programmer Plug-in Developer Debug J2EE Developer 40. RCP Aplication Add-ons

  • Help system
  • Update manager

41.

  • Workspace

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. Workspace

  • Why cover the file system?
  • Local history
  • Markers
  • Projects
    • builders
    • natures

44.

  • IDE

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. IDE

  • Provides soild ground for building development environment:
    • editors
    • debug
    • search
    • compare
    • team (code share: cvs, svn)
  • Java, C, Python, Ruby
  • any other language you like

47. Quick Summary

  • RCP Application
    • views, perspectives, editors
  • Workspace
  • IDE

RCP Application Help Update Text Workspace Native Resources Plug-ins Development Java Development Other IDE Text Compare Debug Search Team IDE 48.

  • Questions?