Eclipse Rich Client Platform Discover 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 Business Logic and Process Control Data View ok
Copyright © 2007 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0 Composition of Components Equinox SWT JFace UI Update Runtime IDE UI LTK Search Debug Help Team Ant JDT PDE Eclipse SDK/Java IDE
Copyright © 2007 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0 Generic IDE Components Equinox SWT JFace UI Update Runtime IDE UI LTK Search Debug Help Team Ant JDT PDE
Copyright © 2007 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0 Eclipse Rich Client Platform Equinox SWT JFace UI Update Runtime IDE UI LTK Search Debug Help Team Ant JDT PDE
Overview of the Application
Copyright © 2007 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0 Eclipse Organizer , Task List, Calendar Composition of components Custom branding Extensible Back ends Features Drop handlers … 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 Equinox SWT JFace UI Update Runtime Organizer Core Organizer UI Custom Widgets Outlook DND Text DND Derby Backend Organizer Application Help
Copyright © 2007 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0 Dependency Graph ui.model application core derby ui.switcher ui.task ui.util ui.maildnd.outlook
Copyright © 2007 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.0 Platform Eclipse RCP Organizer Platform EquinoxSWTJFace UI UpdateRuntime Organizer CoreOrganizer UICustom Widgets Organizer Application Outlook DND Text DND Derby Backend Workspace Backend Thunderbird DND Web Services Backend Tasks Feature Mail FeatureCalendar Feature Help
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.model application ui.switcher ui.task ui.mail ui.calendar contribution Event: Show view Action: Set active feature 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:
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: Official Eclipse 3.0 FAQs by John Arthorne, Chris Laffra Addison-Wesley Professional ISBN: Contributing to Eclipse: Principles, Patterns, and Plugins By Erich Gamma, Kent Beck Addison-Wesley Professional ISBN: