Post on 17-Jan-2016
transcript
Eclipse Rich Client PlatformDiscover the Anatomy of an Application Based On Eclipse
Wayne Beaton
Evangelist, Eclipse Foundation
Copyright © 2007 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0
Agenda
What is the Eclipse Rich Client Platform? Overview of the application Code walkthrough
Application
Models
Views
Summary
What is the Eclipse Rich Client Platform?
Copyright © 2007 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0
What is a Rich Client?
Application Server
Rich Client
Bu
sin
ess
Lo
gic
an
d
Pro
cess
Co
ntr
ol
DataVie
w
ok
Copyright © 2007 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0
Composition of Components
EquinoxEquinox
SWTSWTJFaceJFace
UIUIUpdateUpdate
RuntimeRuntime
IDE UIIDE UI
LTKLTK
SearchSearch
DebugDebug
HelpHelp
TeamTeam
AntAnt
JDTJDT
PDEPDE
Eclipse SDK/Java IDE
Copyright © 2007 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0
Generic IDE Components
EquinoxEquinox
SWTSWTJFaceJFace
UIUIUpdateUpdate
RuntimeRuntime
IDE UIIDE UI
LTKLTK
SearchSearch
DebugDebug
HelpHelp
TeamTeam
AntAnt
JDTJDT
PDEPDE
Copyright © 2007 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0
Eclipse Rich Client Platform
EquinoxEquinox
SWTSWTJFaceJFace
UIUIUpdateUpdate
RuntimeRuntime
IDE UIIDE UI
LTKLTK
SearchSearch
DebugDebug
HelpHelp
TeamTeam
AntAnt
JDTJDT
PDEPDE
Overview of the Application
Copyright © 2007 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0
Eclipse Organizer
E-Mail, Task List, Calendar Composition of components Custom branding Extensible
Back ends
Features
Drop handlers
…
http://www.eclipse.org/evangelism/samples/organizer/install.php
WARNING:The sample
application is under
development!
Copyright © 2007 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0
Organizer as an Eclipse RCP Application
Let’s have a look!
Copyright © 2007 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0
Organizer as Eclipse Plug-ins
Copyright © 2007 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0
Projects
Copyright © 2007 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0
Components
EquinoxEquinox
SWTSWTJFaceJFace
UIUIUpdateUpdate
RuntimeRuntimeOrganizer CoreOrganizer Core
Organizer UIOrganizer UI
Custom WidgetsCustom Widgets
Outlook DNDOutlook DND
Text DNDText DNDDerby BackendDerby Backend
Organizer ApplicationOrganizer Application
HelpHelp
Copyright © 2007 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0
Dependency Graph
ui.modelui.model
applicationapplication
corecore
derbyderby
ui.switcherui.switcher
ui.taskui.task
ui.utilui.util
ui.mailui.mail dnd.outlookdnd.outlook
Copyright © 2007 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0
Platform
Eclipse RCPEclipse RCP
Organizer PlatformOrganizer Platform
EquinoxEquinox SWTSWTJFaceJFace
UIUIUpdateUpdate RuntimeRuntime
Organizer CoreOrganizer Core Organizer UIOrganizer UI Custom WidgetsCustom Widgets
Organizer ApplicationOrganizer Application
Outlook DNDOutlook DND
Text DNDText DND
Derby BackendDerby Backend
Workspace Backend
Workspace Backend
Thunderbird DNDThunderbird DNDWeb Services
BackendWeb Services
BackendTasks FeatureTasks Feature
Mail FeatureMail FeatureCalendar FeatureCalendar Feature
HelpHelp
Copyright © 2007 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0
Models Component
Object Model Pluggable support for multiple back ends Currently hard coded support for tasks
Ripe for implementation as OSGi Services (pending)
Change notification using observer pattern
Let’s have a look!
WARNING:The object model
needs some work!
Copyright © 2007 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0
UI Model
ui.modelui.model applicationapplication
ui.switcherui.switcher
ui.taskui.task
ui.mailui.mailui.calendarui.calendar
contribution
contributioncontribution
Event:Show view
Action:Set activefeature
Event: Change appearance
Let’s have a look!
Copyright © 2007 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0
Switcher UI Component
Sets the active feature Listens for changes in the view model
Let’s have a look!
Copyright © 2007 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0
Task UI Component
TasksView Dynamic Table
Extensible Drag and Drop
ImportTasksWizard TaskEditor
Let’s have a look!
Copyright © 2007 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0
Application Component
Binds the parts together Provides branding, initial window layout,
menus, tool bars, …
Let’s have a look!
Copyright © 2007 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0
UI Utils Component
“Super” TableViewer Date Picker
Let’s have a look!
Copyright © 2007 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0
Custom Presentation
Tunes the appearance of workbench Very plain: no decoration around view stacks
Let’s have a look!
Copyright © 2007 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0
Summary
Application plug-in
Model plug-in
View plug-in
Custom extension points Back ends and Back end Factories
Drop handlers
More information about the various technologies, see: http://www.eclipse.org/articles
http://www.eclipse.org/resources
Copyright © 2007 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0
The Future
This application is still under development Save and restore state of all views Revamp the object model with OSGi Services Key bindings Package for update sites Support for dragging from MacMail, Thunderbird, etc. Web Services based backend Improve ICU4J support More complete help contents Custom ICO for launcher Dig into Outlook to get dragged task details?
Copyright © 2007 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0
Recommended Reading
Eclipse Rich Client Platform By Jeff McAffer and Jean-Michel Lemieux
Addison-Wesley Professional
ISBN: 0321334612
Official Eclipse 3.0 FAQs by John Arthorne, Chris Laffra
Addison-Wesley Professional
ISBN: 0321268385
Contributing to Eclipse: Principles, Patterns, and Plugins
By Erich Gamma, Kent Beck
Addison-Wesley Professional
ISBN: 0321205758