Single Sourcing RAP and RCP - Desktop and web clients from a single code base
RCP goes Web 2.0 The Rich Ajax Platform (RAP)
Transcript of RCP goes Web 2.0 The Rich Ajax Platform (RAP)
© 2002 IBM Corporation
Confidential | Date | Other Information, if necessarySept 26, 2007 Copyright Innoopract – made available under the EPL 1.0
RCP goes Web 2.0The Rich Ajax Platform (RAP)
Ralf Sternberg Benjamin Muskalla
Eclipse RAP 1.0 New & Noteworthy Copyright Innoopract – made available under the EPL 1.0 page: 2
Eclipse Rich Ajax Platform Project (RAP)
RCP well established application platform
Growing demand for Ajax-enabled web applications
RAP allows to develop Ajax web applications coding in Java, UI development with SWT, JFace, Workbench Application runs on the server and can be accessed with a browser
Build on top of Equinox, running in server environment
Provides Eclipse extension point mechanism
RAP complies with the JEE servlet standards 2.3, 2.4 and 2.5
RAP applications can be deployed as standard web archives (war)
Enables single sourcing of rich client and rich internet applications
RAP enables developers to build rich, Ajax-enabled web applications by using the Eclipse development model, plug-ins and a Java-only API
Eclipse RAP 1.0 New & Noteworthy Copyright Innoopract – made available under the EPL 1.0 page: 3
User's View on a RAP Application
Eclipse RAP 1.0 New & Noteworthy Copyright Innoopract – made available under the EPL 1.0 page: 4
Developer's View on a RAP Application
Developer does not get in touch with Javascript, CSS, HTTP ...
Eclipse RAP 1.0 New & Noteworthy Copyright Innoopract – made available under the EPL 1.0 page: 5
RAP Architecture Overview
Subset of SWT, JFace, and Workbench APIs
RWT uses qooxdoo javascript library to render widgets on the client
Differences: multi-user environment OSGi bundles are shared between sessions
Eclipse RAP 1.0 New & Noteworthy Copyright Innoopract – made available under the EPL 1.0 page: 6
RWT Controls
Most basic SWT widgets
Workbench specials like
CTabFolder, CBanner, etc.
Combo boxes are now editable
Tree improvedsupports columns now
Table: new implementationVIRTUAL, CHECK,improved performance
Eclipse RAP 1.0 New & Noteworthy Copyright Innoopract – made available under the EPL 1.0 page: 7
RWT Layouts Layouts are computed on the server
All usual layouts: GridLayout, RowLayout FillLayout FormLayout StackLayout and a lot more ...
mostly 1:1 copies of SWT
Layout algorithms work exactly as in SWT
Eclipse RAP 1.0 New & Noteworthy Copyright Innoopract – made available under the EPL 1.0 page: 8
RWT Events and Listeners
Typed and untyped Listeners are supported
Most Listeners implemented: SelectionListener ControlListener ShellListener (supports doit flag now) MenuListener ModifyListener VerifyListener (new) ...
Eclipse RAP 1.0 New & Noteworthy Copyright Innoopract – made available under the EPL 1.0 page: 9
Additional RWT Functionality
RWT provides additional API for the web environment
Access to session, HTTP request parameters
Register external resources (Javascript, images etc.)
Support for session singletons Multiple users access the same application Singletons are shared application-wide SessionSingletonBase allows for simple session singletons
Graphics Access to resources: Colors, Fonts, Images Text size determination
Eclipse RAP 1.0 New & Noteworthy Copyright Innoopract – made available under the EPL 1.0 page: 10
Custom Widgets Like in SWT, requires good knowledge of the platform
Component developer needs Javascript, qooxdoo and RAP knowledge
Application developer simply uses Java API
Tutorial in RAP Help
GMap map = new GMap( shell, SWT.NONE );map.setAddress( "5001 Great America Pkwy, Santa Clara" );
Eclipse RAP 1.0 New & Noteworthy Copyright Innoopract – made available under the EPL 1.0 page: 11
RWT Theming
Objective: allow for a fresh look of web applications
Predefined properties of widgets can be customized
Simple Java .properties file
Themeable custom widgets
shell.BORDER.border: 3px #1695d4shell.title.background: #9dd0eashell.title.padding: 2px 5px 2px 2pxshell.padding: 5pxshell.button.margin: 0px 2px 8px 0px...text.BORDER.border: 1px solid #1695d4..
Eclipse RAP 1.0 New & Noteworthy Copyright Innoopract – made available under the EPL 1.0 page: 12
RAP Branding
<extension point="org.eclipse.rap.ui.branding"> <branding id="org.eclipse.rap.demo.branding1" servletName="tea" defaultEntrypointId="org.eclipse.rap.demo.entrypoint1" themeId="org.eclipse.rap.demo.alttheme" title="It's tea-time" favicon="icons/favicon2.ico" body="body.html" exitConfirmation="Do you really want to leave the party?"> </branding></extension>
Eclipse RAP 1.0 New & Noteworthy Copyright Innoopract – made available under the EPL 1.0 page: 13
JFace
Dialogs (blocking) All standard JFace dialogs like
ErrorDialog TrayDialog
Support for own Dialogs
Wizards
Support for all JFace viewers TableViewer TreeViewer ...
Support for most Viewer concepts Provider (Content, Label, Color...) Sorter Filter Decorator (text only yet) ....
Support for Field Decorations
Eclipse RAP 1.0 New & Noteworthy Copyright Innoopract – made available under the EPL 1.0 page: 14
Workbench: Parts, Perspectives & Interaction
Full support for views Additional views
Outline Properties
Editor support Multi-page editors available ISaveablePart available
Support for perspectives Perspective Switcher Extensions
New Eclipse 3.3 Menus Framework Commands & Handler Expression support for visibleWhen
and enabledWhen
Eclipse RAP 1.0 New & Noteworthy Copyright Innoopract – made available under the EPL 1.0 page: 15
Workbench: Jobs
General support for background jobs in RWT
Support for long-running tasks in the UI
Progress View
Eclipse RAP 1.0 New & Noteworthy Copyright Innoopract – made available under the EPL 1.0 page: 16
Additional bundles: Data Binding & Forms
Introduction of 3.3 Data Binding Support for all available RAP
widgets
Eclipse UI Forms Initial support for Forms Toolkit
and Forms Editors UI does not yet mimic original
implementation
Eclipse RAP 1.0 New & Noteworthy Copyright Innoopract – made available under the EPL 1.0 page: 17
Developing with RAP
Tooling Online Help Launcher Cheat sheets PDE Templates
Eclipse RAP 1.0 New & Noteworthy Copyright Innoopract – made available under the EPL 1.0 page: 18
References
http://www.eclipse.org/rap - RAP project page
http://wiki.eclipse.org/RAP - RAP project wiki
http://www.qooxdoo.org - qooxdoo js library