Overview of the Generic Workbench (Eclipse RCP UI) Presented … · Overview of the Generic...
-
Upload
vuongkhanh -
Category
Documents
-
view
218 -
download
0
Transcript of Overview of the Generic Workbench (Eclipse RCP UI) Presented … · Overview of the Generic...
![Page 1: Overview of the Generic Workbench (Eclipse RCP UI) Presented … · Overview of the Generic Workbench (Eclipse RCP UI) Presented by Nick Edgar, IBM Ottawa Eclipse Rich Client Applications.](https://reader031.fdocuments.us/reader031/viewer/2022021903/5ba213f609d3f2c06a8d8bdc/html5/thumbnails/1.jpg)
© 2002 IBM CorporationConfidential | Date | Other Information, if necessary© 2004 IBM Corporation | February 3, 2004
Overview of the Generic Workbench (Eclipse RCP UI)
Presented by Nick Edgar, IBM Ottawa
Eclipse Rich Client Applications
![Page 2: Overview of the Generic Workbench (Eclipse RCP UI) Presented … · Overview of the Generic Workbench (Eclipse RCP UI) Presented by Nick Edgar, IBM Ottawa Eclipse Rich Client Applications.](https://reader031.fdocuments.us/reader031/viewer/2022021903/5ba213f609d3f2c06a8d8bdc/html5/thumbnails/2.jpg)
2 Eclipse Rich Client Platform UI | Presented by Nick Edgar | © 2004 IBM Corporation
Just what does “RCP” mean?!?
! The Eclipse OSGi runtime (dynamic plug-ins)?! The Eclipse Generic Workbench?! The foundation for Lotus Workplace?! “Really Cool Platform”?! A Platform we want to sell to really Rich Clients ?
! Answer: All the above?
![Page 3: Overview of the Generic Workbench (Eclipse RCP UI) Presented … · Overview of the Generic Workbench (Eclipse RCP UI) Presented by Nick Edgar, IBM Ottawa Eclipse Rich Client Applications.](https://reader031.fdocuments.us/reader031/viewer/2022021903/5ba213f609d3f2c06a8d8bdc/html5/thumbnails/3.jpg)
3 Eclipse Rich Client Platform UI | Presented by Nick Edgar | © 2004 IBM Corporation
Just what does “RCP” mean?!?
! The Eclipse OSGi runtime (dynamic plug-ins)?! The Eclipse Generic Workbench?! The foundation for Lotus Workplace?! “Really Cool Platform”?! A Platform we want to sell to really Rich Clients ?
! Answer: All the above (except the last one -- Eclipse is still open source).
! “Rich Client Platform”A Platform for building Client applications with Rich functionality
![Page 4: Overview of the Generic Workbench (Eclipse RCP UI) Presented … · Overview of the Generic Workbench (Eclipse RCP UI) Presented by Nick Edgar, IBM Ottawa Eclipse Rich Client Applications.](https://reader031.fdocuments.us/reader031/viewer/2022021903/5ba213f609d3f2c06a8d8bdc/html5/thumbnails/4.jpg)
4 Eclipse Rich Client Platform UI | Presented by Nick Edgar | © 2004 IBM Corporation
What is the Eclipse RCP?
That was then: “Eclipse is a kind of universal tool platform - an open extensible IDE for anything and nothing in particular.”
This is now: Eclipse is an open, extensible platform for any application.
![Page 5: Overview of the Generic Workbench (Eclipse RCP UI) Presented … · Overview of the Generic Workbench (Eclipse RCP UI) Presented by Nick Edgar, IBM Ottawa Eclipse Rich Client Applications.](https://reader031.fdocuments.us/reader031/viewer/2022021903/5ba213f609d3f2c06a8d8bdc/html5/thumbnails/5.jpg)
5 Eclipse Rich Client Platform UI | Presented by Nick Edgar | © 2004 IBM Corporation
Why are we doing this?Just look around at EclipseCon for non-IDE uses of Eclipse:
! “Building Large-Scale Enterprise Applications with Eclipse”(Michael Bechauf, SAP AG)
! “UrbanSim” – urban growth simulation platform(Bjorn Freeman-Benson, U. of Washington)
! Panel: “Eclipse in the Enterprise – not just for Dev Tools anymore”(Mike Taylor, Instantiations)
! “Eclipse-based Apps – Java on the Desktop Revisited(Todd Williams, Genuitec)
! “Lotus Workplace: Rich Client Platform”(Richard Wilson, IBM Lotus)
! “Experiences with Rich Client Application Development”(Frank Gerhardt, SENS; Chris Wege, DaimlerChrysler)
![Page 6: Overview of the Generic Workbench (Eclipse RCP UI) Presented … · Overview of the Generic Workbench (Eclipse RCP UI) Presented by Nick Edgar, IBM Ottawa Eclipse Rich Client Applications.](https://reader031.fdocuments.us/reader031/viewer/2022021903/5ba213f609d3f2c06a8d8bdc/html5/thumbnails/6.jpg)
6 Eclipse Rich Client Platform UI | Presented by Nick Edgar | © 2004 IBM Corporation
Logiball GDF Suite, an industrial-strength Geographic Data Management System (courtesy of Frank Gerhardt)
![Page 7: Overview of the Generic Workbench (Eclipse RCP UI) Presented … · Overview of the Generic Workbench (Eclipse RCP UI) Presented by Nick Edgar, IBM Ottawa Eclipse Rich Client Applications.](https://reader031.fdocuments.us/reader031/viewer/2022021903/5ba213f609d3f2c06a8d8bdc/html5/thumbnails/7.jpg)
7 Eclipse Rich Client Platform UI | Presented by Nick Edgar | © 2004 IBM Corporation
Life Sciences / BioTech Workbench (mockup)(courtesy of Elias Torres, WebAhead group, IBM)
![Page 8: Overview of the Generic Workbench (Eclipse RCP UI) Presented … · Overview of the Generic Workbench (Eclipse RCP UI) Presented by Nick Edgar, IBM Ottawa Eclipse Rich Client Applications.](https://reader031.fdocuments.us/reader031/viewer/2022021903/5ba213f609d3f2c06a8d8bdc/html5/thumbnails/8.jpg)
8 Eclipse Rich Client Platform UI | Presented by Nick Edgar | © 2004 IBM Corporation
Lotus Workplace Personal Productivity (mockup)(courtesy of Matthew Hatem, Lotus RCP group)
![Page 9: Overview of the Generic Workbench (Eclipse RCP UI) Presented … · Overview of the Generic Workbench (Eclipse RCP UI) Presented by Nick Edgar, IBM Ottawa Eclipse Rich Client Applications.](https://reader031.fdocuments.us/reader031/viewer/2022021903/5ba213f609d3f2c06a8d8bdc/html5/thumbnails/9.jpg)
9 Eclipse Rich Client Platform UI | Presented by Nick Edgar | © 2004 IBM Corporation
Goals for Eclipse RCP UI (Generic Workbench)
! Without losing focus on Eclipse as a tools platform, open it up to allow it to be used for arbitrary applications.
! Remove IDE personality from the Workbench proper.
! Remove assumptions that the Workspace is the data model.
! Make the Workbench configurable (and get out of the driver’s seat).
! Make most other components optional (rich function, low footprint).
! Minimize API breakage.
![Page 10: Overview of the Generic Workbench (Eclipse RCP UI) Presented … · Overview of the Generic Workbench (Eclipse RCP UI) Presented by Nick Edgar, IBM Ottawa Eclipse Rich Client Applications.](https://reader031.fdocuments.us/reader031/viewer/2022021903/5ba213f609d3f2c06a8d8bdc/html5/thumbnails/10.jpg)
10 Eclipse Rich Client Platform UI | Presented by Nick Edgar | © 2004 IBM Corporation
Eclipse Platform 2.1 (pre-RCP)
Runtime
SWT
JFace
UI
Workbench(with IDE personality)
Text IDE Views
Resources
Help Update Compare Debug Search Team/CVS
PrimaryApplication
![Page 11: Overview of the Generic Workbench (Eclipse RCP UI) Presented … · Overview of the Generic Workbench (Eclipse RCP UI) Presented by Nick Edgar, IBM Ottawa Eclipse Rich Client Applications.](https://reader031.fdocuments.us/reader031/viewer/2022021903/5ba213f609d3f2c06a8d8bdc/html5/thumbnails/11.jpg)
11 Eclipse Rich Client Platform UI | Presented by Nick Edgar | © 2004 IBM Corporation
Eclipse Platform 3.0 (post-RCP)
PrimaryApplication
Runtime (OSGi)
SWT
JFace
UI (Generic Workbench)
TextIDE
Resources
Help UpdateCompare Debug Search
Team/CVS
Eclipse RCP
(optional) (optional) (optional)
(optional)
IDEText
![Page 12: Overview of the Generic Workbench (Eclipse RCP UI) Presented … · Overview of the Generic Workbench (Eclipse RCP UI) Presented by Nick Edgar, IBM Ottawa Eclipse Rich Client Applications.](https://reader031.fdocuments.us/reader031/viewer/2022021903/5ba213f609d3f2c06a8d8bdc/html5/thumbnails/12.jpg)
12 Eclipse Rich Client Platform UI | Presented by Nick Edgar | © 2004 IBM Corporation
API Changes: Extension Points
Workbench (unchanged):! Action Sets! Commands! Contexts! Decorators! Editors! New/Import/Export Wizards! Perspectives! Popup Menus! Preference Pages! Property Pages! Views! Working Sets
New to Workbench in 3.0:! Activities! Contexts! Themes
Moved to IDE layer:! Marker Help and Resolutions! Marker and Project Nature Images! Resource Filters
Moved to Text component:! Document Providers! Marker Updaters
A few IDE- or Text-specific extension points have moved.Workbench retains most extension points for rich function.
![Page 13: Overview of the Generic Workbench (Eclipse RCP UI) Presented … · Overview of the Generic Workbench (Eclipse RCP UI) Presented by Nick Edgar, IBM Ottawa Eclipse Rich Client Applications.](https://reader031.fdocuments.us/reader031/viewer/2022021903/5ba213f609d3f2c06a8d8bdc/html5/thumbnails/13.jpg)
13 Eclipse Rich Client Platform UI | Presented by Nick Edgar | © 2004 IBM Corporation
API Changes: Java API
IWorkbenchPage! openEditor(IFile, …)! openEditor(IMarker, …)! openSystemEditor(IFile)
IEditorPart! gotoMarker(IMarker)
IEditorLauncher! open(IFile)
IEditorRegistry! get/setDefaultEditor(IFile, …)! getImageDescriptor(IFile)
IWorkbench! getMarkerHelpRegistry()
IDE! openEditor(IWorkbenchPage, IFile, …)! openEditor(IWorkbenchPage, IMarker, …)! openSystemEditor(IWorkbenchPage, IFile)
IDE.gotoMarker(IEditorPart, IMarker, …) // callerIGotoMarker.gotoMarker(IMarker) // implementor
IEditorLauncher! open(IPath)
IDE! get/setDefaultEditor(IFile, …)! getImageDescriptor(IFile)
IDE! getMarkerHelpRegistry
A handful of breaking API changes were needed to remove the biason the Workspace as the underlying data model.
Equivalents for most of these are provided at the IDE level.
![Page 14: Overview of the Generic Workbench (Eclipse RCP UI) Presented … · Overview of the Generic Workbench (Eclipse RCP UI) Presented by Nick Edgar, IBM Ottawa Eclipse Rich Client Applications.](https://reader031.fdocuments.us/reader031/viewer/2022021903/5ba213f609d3f2c06a8d8bdc/html5/thumbnails/14.jpg)
14 Eclipse Rich Client Platform UI | Presented by Nick Edgar | © 2004 IBM Corporation
Compatibility Story
! Porting guide! Describes all breaking API changes and how to adapt to them.
! For manifest files:! plugin.xml files are tagged with version (no tag means <= 2.1).
! Runtime automatically converts pre-3.0 plug-ins to 3.0 structure:! Converts plug-in dependencies and extension point ids
! PDE wizards for development-time conversion
! For API changes:! Binary compatibility fragment (runtime only)
![Page 15: Overview of the Generic Workbench (Eclipse RCP UI) Presented … · Overview of the Generic Workbench (Eclipse RCP UI) Presented by Nick Edgar, IBM Ottawa Eclipse Rich Client Applications.](https://reader031.fdocuments.us/reader031/viewer/2022021903/5ba213f609d3f2c06a8d8bdc/html5/thumbnails/15.jpg)
15 Eclipse Rich Client Platform UI | Presented by Nick Edgar | © 2004 IBM Corporation
Binary compatibility for removed methods ?!?
2.1 (before):
interface IWorkbenchPage {IViewPart showView(String viewId);IEditorPart openEditor(IFile file); // to remove…
}
3.0 (after):
interface IWorkbenchPageextends ICompatibleWorkbenchPage {
IViewPart showView(String viewId);…
}
Development time:
interface ICompatibleWorkbenchPage {// empty
}
Runtime:(in org.eclipse.ui.workbench.compatibility fragment)
interface ICompatibleWorkbenchPage {IEditorPart openEditor(IFile file); // to remove
}
![Page 16: Overview of the Generic Workbench (Eclipse RCP UI) Presented … · Overview of the Generic Workbench (Eclipse RCP UI) Presented by Nick Edgar, IBM Ottawa Eclipse Rich Client Applications.](https://reader031.fdocuments.us/reader031/viewer/2022021903/5ba213f609d3f2c06a8d8bdc/html5/thumbnails/16.jpg)
16 Eclipse Rich Client Platform UI | Presented by Nick Edgar | © 2004 IBM Corporation
Configuring the Workbench
IWorkbenchConfigurer! setSaveAndRestore(boolean)! getWindowConfigurer(window)! …
IWorkbenchWindowConfigurer! setTitle(String)! setShowMenuBar(boolean)! setShowCoolBar(boolean)! setShowStatusLine(boolean)! setShowShortcutBar(boolean)! …
WorkbenchAdvisor! initialize(workbenchConfigurer)! getInitialWindowPerspectiveId()! fillActionBars(window, actionBarConfigurer, flags)! pre/postStartup()! pre/postShutdown()! pre/postWindowOpen(windowConfigurer)! pre/postWindowClose(windowConfigurer)! eventLoopIdle(Display)! …
! New APIs to allow the application to configure the Workbench for its needs, in package org.eclipse.ui.application.
! These privileged APIs are not available to regular plug-ins.
Workbench implements Application implements
![Page 17: Overview of the Generic Workbench (Eclipse RCP UI) Presented … · Overview of the Generic Workbench (Eclipse RCP UI) Presented by Nick Edgar, IBM Ottawa Eclipse Rich Client Applications.](https://reader031.fdocuments.us/reader031/viewer/2022021903/5ba213f609d3f2c06a8d8bdc/html5/thumbnails/17.jpg)
17 Eclipse Rich Client Platform UI | Presented by Nick Edgar | © 2004 IBM Corporation
Configuring the Workbench: Control flow
Diagram courtesy of Ed Burnette.
![Page 18: Overview of the Generic Workbench (Eclipse RCP UI) Presented … · Overview of the Generic Workbench (Eclipse RCP UI) Presented by Nick Edgar, IBM Ottawa Eclipse Rich Client Applications.](https://reader031.fdocuments.us/reader031/viewer/2022021903/5ba213f609d3f2c06a8d8bdc/html5/thumbnails/18.jpg)
18 Eclipse Rich Client Platform UI | Presented by Nick Edgar | © 2004 IBM Corporation
Relationship to OSGi Runtime (Equinox)
! Workbench runs on top of the Runtime (obviously)
! Workbench is now “dynamic aware”:! Reacts to plug-ins getting installed and uninstalled dynamically.
! Adds/removes perspectives, views, action sets, etc., updating UIaccordingly.
! Provides event listeners for downstream plug-ins to react to Workbench changes in turn.
![Page 19: Overview of the Generic Workbench (Eclipse RCP UI) Presented … · Overview of the Generic Workbench (Eclipse RCP UI) Presented by Nick Edgar, IBM Ottawa Eclipse Rich Client Applications.](https://reader031.fdocuments.us/reader031/viewer/2022021903/5ba213f609d3f2c06a8d8bdc/html5/thumbnails/19.jpg)
19 Eclipse Rich Client Platform UI | Presented by Nick Edgar | © 2004 IBM Corporation
Footprint
! What is the minimal footprint?! 4.8M (as of 3.0 M6):
! Runtime/OSGi: 0.9M! SWT: 1.4M! JFace: 0.5M! Workbench: 2.0M
![Page 20: Overview of the Generic Workbench (Eclipse RCP UI) Presented … · Overview of the Generic Workbench (Eclipse RCP UI) Presented by Nick Edgar, IBM Ottawa Eclipse Rich Client Applications.](https://reader031.fdocuments.us/reader031/viewer/2022021903/5ba213f609d3f2c06a8d8bdc/html5/thumbnails/20.jpg)
20 Eclipse Rich Client Platform UI | Presented by Nick Edgar | © 2004 IBM Corporation
Demo
![Page 21: Overview of the Generic Workbench (Eclipse RCP UI) Presented … · Overview of the Generic Workbench (Eclipse RCP UI) Presented by Nick Edgar, IBM Ottawa Eclipse Rich Client Applications.](https://reader031.fdocuments.us/reader031/viewer/2022021903/5ba213f609d3f2c06a8d8bdc/html5/thumbnails/21.jpg)
21 Eclipse Rich Client Platform UI | Presented by Nick Edgar | © 2004 IBM Corporation
Where can I find out more?
RCP UI Proposal page: eclipse.org/platform > UI > Proposals > Rich Client Platform
More at EclipseCon:! “Implementing Rich Client Applications” Technology Exchange
(tomorrow at 17:00)! RCP BOF, other talks
! Ed Burnette’s RCP tutorials (on proposal page)
! Browser example (on proposal page)
! Platform newsgroup:news://news.eclipse.org/eclipse.platform