RCP goes Web 2.0 The Rich Ajax Platform (RAP)

18
© 2002 IBM Corporation Confidential | Date | Other Information, if necessary Sept 26, 2007 Copyright Innoopract – made available under the EPL 1.0 RCP goes Web 2.0 The Rich Ajax Platform (RAP) Ralf Sternberg Benjamin Muskalla [email protected] [email protected]

Transcript of RCP goes Web 2.0 The Rich Ajax Platform (RAP)

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

[email protected] [email protected]

Page 2: RCP goes Web 2.0 The Rich Ajax Platform (RAP)

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

Page 3: RCP goes Web 2.0 The Rich Ajax Platform (RAP)

Eclipse RAP 1.0 New & Noteworthy Copyright Innoopract – made available under the EPL 1.0 page: 3

User's View on a RAP Application

Page 4: RCP goes Web 2.0 The Rich Ajax Platform (RAP)

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 ...

Page 5: RCP goes Web 2.0 The Rich Ajax Platform (RAP)

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

Page 6: RCP goes Web 2.0 The Rich Ajax Platform (RAP)

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

Page 7: RCP goes Web 2.0 The Rich Ajax Platform (RAP)

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

Page 8: RCP goes Web 2.0 The Rich Ajax Platform (RAP)

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) ...

Page 9: RCP goes Web 2.0 The Rich Ajax Platform (RAP)

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

Page 10: RCP goes Web 2.0 The Rich Ajax Platform (RAP)

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" );

Page 11: RCP goes Web 2.0 The Rich Ajax Platform (RAP)

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..

Page 12: RCP goes Web 2.0 The Rich Ajax Platform (RAP)

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&apos;s tea-time" favicon="icons/favicon2.ico" body="body.html" exitConfirmation="Do you really want to leave the party?"> </branding></extension>

Page 13: RCP goes Web 2.0 The Rich Ajax Platform (RAP)

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

Page 14: RCP goes Web 2.0 The Rich Ajax Platform (RAP)

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

Page 15: RCP goes Web 2.0 The Rich Ajax Platform (RAP)

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

Page 16: RCP goes Web 2.0 The Rich Ajax Platform (RAP)

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

Page 17: RCP goes Web 2.0 The Rich Ajax Platform (RAP)

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

Page 18: RCP goes Web 2.0 The Rich Ajax Platform (RAP)

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