- 1. Introduction to the Eclipse Platform
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.
- (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?
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
-
-
- 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
-
- Does not implement Model-View-Controller (JFace)
-
- Is relatively simpler than Swing
10.
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.
- (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:
-
- 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
-
- 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
- Mix'n'Match services from different vendors (e.g. Spring
Dynamic Modules)
24. OSGi Eclipse Equinox
- Equinox is one of many OSGi implementations
- Solid base for Eclipse platform
25.
26. Eclipse Plug-ins
- 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)
- OSGi (Open Services Gateway initiative)
- RCP (Rich Client Platform)
Rich Client Platform OSGi Workbench Native UI SWT JFace Plug-ins
31. Quick Summary
32.
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
-
- markers (e.g. error, todo)
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
39. RCP Aplication - Perspectives Java Programmer Plug-in
Developer Debug J2EE Developer 40. RCP Aplication Add-ons
41.
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?
44.
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:
-
- team (code share: cvs, svn)
- any other language you like
47. Quick Summary
-
- views, perspectives, editors
RCP Application Help Update Text Workspace Native Resources
Plug-ins Development Java Development Other IDE Text Compare Debug
Search Team IDE 48.