eclipse rich client platform discover the anatomy of an application based on eclipse wayne beaton...

25
Eclipse Rich Client Platform Discover the Anatomy of an Application Based On Eclipse Wayne Beaton Evangelist, Eclipse Foundation

Upload: bethanie-marilynn-lloyd

Post on 17-Jan-2016

225 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Eclipse Rich Client Platform Discover the Anatomy of an Application Based On Eclipse Wayne Beaton Evangelist, Eclipse Foundation

Eclipse Rich Client PlatformDiscover the Anatomy of an Application Based On Eclipse

Wayne Beaton

Evangelist, Eclipse Foundation

Page 2: 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

Page 3: Eclipse Rich Client Platform Discover the Anatomy of an Application Based On Eclipse Wayne Beaton Evangelist, Eclipse Foundation

What is the Eclipse Rich Client Platform?

Page 4: 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

What is a Rich Client?

Application Server

Rich Client

Bu

sin

ess

Lo

gic

an

d

Pro

cess

Co

ntr

ol

DataVie

w

ok

Page 5: 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

Composition of Components

EquinoxEquinox

SWTSWTJFaceJFace

UIUIUpdateUpdate

RuntimeRuntime

IDE UIIDE UI

LTKLTK

SearchSearch

DebugDebug

HelpHelp

TeamTeam

AntAnt

JDTJDT

PDEPDE

Eclipse SDK/Java IDE

Page 6: 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

Generic IDE Components

EquinoxEquinox

SWTSWTJFaceJFace

UIUIUpdateUpdate

RuntimeRuntime

IDE UIIDE UI

LTKLTK

SearchSearch

DebugDebug

HelpHelp

TeamTeam

AntAnt

JDTJDT

PDEPDE

Page 7: 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

Eclipse Rich Client Platform

EquinoxEquinox

SWTSWTJFaceJFace

UIUIUpdateUpdate

RuntimeRuntime

IDE UIIDE UI

LTKLTK

SearchSearch

DebugDebug

HelpHelp

TeamTeam

AntAnt

JDTJDT

PDEPDE

Page 8: Eclipse Rich Client Platform Discover the Anatomy of an Application Based On Eclipse Wayne Beaton Evangelist, Eclipse Foundation

Overview of the Application

Page 9: 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

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!

Page 10: 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

Organizer as an Eclipse RCP Application

Let’s have a look!

Page 11: 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

Organizer as Eclipse Plug-ins

Page 12: 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

Projects

Page 13: 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

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

Page 14: 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

Dependency Graph

ui.modelui.model

applicationapplication

corecore

derbyderby

ui.switcherui.switcher

ui.taskui.task

ui.utilui.util

ui.mailui.mail dnd.outlookdnd.outlook

Page 15: 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

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

Page 16: 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

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!

Page 17: 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

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!

Page 18: 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

Switcher UI Component

Sets the active feature Listens for changes in the view model

Let’s have a look!

Page 19: 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

Task UI Component

TasksView Dynamic Table

Extensible Drag and Drop

ImportTasksWizard TaskEditor

Let’s have a look!

Page 20: 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

Application Component

Binds the parts together Provides branding, initial window layout,

menus, tool bars, …

Let’s have a look!

Page 21: 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

UI Utils Component

“Super” TableViewer Date Picker

Let’s have a look!

Page 22: 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

Custom Presentation

Tunes the appearance of workbench Very plain: no decoration around view stacks

Let’s have a look!

Page 23: 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

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

Page 24: 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

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?

Page 25: 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

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