The Eclipse Rich Ajax Platform

Similar documents
RAP (The Rich Ajax Platform)

Rich Client GUI's with RCP & RAP

eclipse rich ajax platform (rap)

Eclipse 4.0. Jochen Krause EclipseSource

Web Applica+on Development. Budapes( Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék

An Easy Way to Web User Interfaces for Ground Segment Systems

ECLIPSE RICH CLIENT PLATFORM

Workbench and JFace Foundations. Part One, of a two part tutorial series

Foundations of User Interface Programming Using the Eclipse Rich Client Platform

Eclipse (1/3) Deepak Dhungana Institute for System Engineering and Automation

About Tom. CEO BestSolution Systemhaus GmbH. Eclipse Committer. Platform UI EMF. Projectlead: UFaceKit, Nebula. Member of the Architectual Council

Developing Eclipse Rich-Client Applications Tutorial

The Eclipse Rich Client Platform

Leveraging the Model-View- Presenter Pattern in Rich Client Applications

Eclipse as a Web 2.0 Application Position Paper

Getting the Most from Eclipse

The New Generation of the Eclipse Platform. Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék

Advanced User Interface Programming Using the Eclipse Rich Client Platform

The Next Generation of Eclipse: e4. Mike Milinkovich Executive Director Eclipse Foundation

AD105 Introduction to Application Development for the IBM Workplace Managed Client

Eclipse 4 Eclipse Day Toulouse 24 mai 2012

THE NEW ERA OF WEB DEVELOPMENT. qooxdoo. Andreas Ecker, Derrell Lipman

Plug-ins, RCP and SWT. Sample Content

Eclipse on Cell phones?

First Steps in RCP. Jan Blankenhorn, WeigleWilczek GmbH, Stuttgart, Germany. February 19th, 2009

Smart Client development with the Eclipse Rich Client Platform

Regular Forum of Lreis. Speechmaker: Gao Ang

McAffer_Index.qxd 9/20/2005 9:39 AM Page 495. Index

Adapting JDT to the Cloud. Alex Boyko Pivotal Jay Arthanareeswaran - IBM John Arthorne - IBM

OSGi on the Server. Martin Lippert (it-agile GmbH)

e4 Project 0.9 Release Review

Graphiti Release Review

Eclipse Layouts. by Shantha Ramachandran. Department of Computer Science, University of Manitoba, Winnipeg, Manitoba, Canada

Building XML-based content for Eclipse Help: a real experience. Christian Kurzke Gustavo de Paula Daniel Moura

QOOMdOO. 1 open source I community experience distilled. Beginner's Guide. Develop Rich Internet Applications (RIA) with qooxdoo. Rajesh Kumar Bachu

Overview. Principal Product Manager Oracle JDeveloper & Oracle ADF

Kai Tödter Siemens Corporate Technology

Department of Computer Science. Erik Olsson Haglund Fredrik Häggbom. Scrumptious. A Scrum Planning Tool Case Study to Evaluate the Rich Ajax Platform

Introduction to Eclipse

Expeditor Client for Desktop. Client Platform Overview

CS 349 / SE 382 Design Patterns. Professor Michael Terry January 21, 2009

Tools to Develop New Linux Applications

Implementation of a 2D Graph Viewer

Full Stack Web Developer

Eclipse in Embedded. Neha Garg : Prerna Rustagi :

Migration to E4. Eclipse Con France 2016

Introduction to Eclipse and Eclipse RCP

Testing Eclipse plug-ins: Tips & Tricks

Rich Client Viewer (applet)

Tooling for Ajax-Based Development. Craig R. McClanahan Senior Staff Engineer Sun Microsystems, Inc.

Spring and OSGi. Martin Lippert akquinet agile GmbH Bernd Kolb Gerd Wütherich

Eclipse Data Binding - Updating RCP Mail 2.0 Handout

Simulate This! - The Eclipse Platform as an Integrated Computational Environment

Stencil: The Time for Vanilla Web Components has Arrived

Building JavaServer Faces Applications

Oracle Developer Day

The 60-Minute Guide to Development Tools for IBM Lotus Domino, IBM WebSphere Portal, and IBM Workplace Applications

How we reached 0 technical debt in our Eclipse project

Eclipse 4. Brian de Alwis. Abstract

News in RSA-RTE 10.1 updated for sprint Mattias Mohlin, January 2018

IBM Forms V8.0 Custom Themes IBM Corporation

<Insert Picture Here> JavaFX 2.0

Liferay Portal 4 - Portal Administration Guide. Joseph Shum Alexander Chow Redmond Mar Jorge Ferrer

New Face of z/os Communications Server: V2R1 Configuration Assistant

inside eclipse Erich Gamma Eclipse Project Management Committee Member IBM Distinguished Engineer IBM Rational Software

Europe on a Disk Geodata Processing with Eclipse and OSGi. Harald Wellmann 10 Nov 2008

Widget Toolkits CS MVC

The Graphical Editing Framework

LSBG Vårseminar, maj 2011 Larvik, Norge

Eclipse Building Commercial-Quality Plug-ins Second Edition

From the RCP Book To Reality. Jean-Michel Lemieux IBM Rational, Ottawa, Canada

Eclipse + Html: A Journey

Rich Web UI made simple Building Data Dashboards without Code

Static Webpage Development

News in RSA-RTE 10.1 updated for sprint Mattias Mohlin, November 2017

FlexJS. OmPrakash Apache Flex PMC Member Advisory Software Engineer, IBM

VizzAnalyzer goes Eclipse!

About the Tutorial. Audience. Prerequisites. Copyright & Disclaimer

Keep on Swinging. Productivity layers on top of SWT. Karsten Schmidt SAP AG.

A Closer Look at XPages in IBM Lotus Domino Designer 8.5 Ray Chan Advisory I/T Specialist Lotus, IBM Software Group

Eclipse (3/3) Deepak Dhungana Institute for System Engineering and Automation

Eclipse project update by the Eclipse project PMC March 11 th 2008

Eclipse Scout. Release Notes. Scout Team. Version 7.0

PGT T3CHNOLOGY SCOUTING. Google Webtoolkit. JSF done right?

Create your own Carbon Component. Sameera Jayasoma Technical Lead and Product Manager of WSO2 Carbon

JBoss Portal Quickstart User Guide. Release 2.6.6

NASA World Wind Java SDK

20. Eclipse and Framework Extension Languages

Embedded Rich Client Platform (ercp) 1.0 Release Review

Developing Exceptional Mobile and Multi-Channel Applications using IBM Web Experience Factory

Beware: Testing RCP Applications in Tycho can cause Serious Harm to your Brain. OSGi p2

IBM Workplace Managed Client API Toolkit

Customizing the Blackboard Learn UI & Tag Libraries. George Kroner, Developer Relations Engineer

Equinox OSGi: Pervasive Componentization

Web Development. With PHP. Web Development With PHP

Full Stack Developer with Java

CIS 3308 Web Application Programming Syllabus

<Insert Picture Here> Advanced ADF Faces. Frank Nimphius Principal Product Manager

The Galilean Moons of Eclipse

CSCI 053. Week 5 Java is like Alice not based on Joel Adams you may want to take notes. Rhys Price Jones. Introduction to Software Development

Transcription:

The Eclipse Rich Ajax Platform Frank Appel RAP Tech Lead fappel@innoopract.com Eclipse RAP 1.1 Copyright Innoopract made available under the EPL 1.0 page: 1

The Innoopract pitch Integration & delivery Yoxos provides a plugin library and tools that enable enterprises to manage and deliver eclipse technology Technology Open Source Project that extends the reach of Eclipse components to the web Services Helping corporations to implement Eclipse strategies, offering consulting, development, support and training We offer RAP consulting, developer support, production support Eclipse RAP 1.1 Copyright Innoopract made available under the EPL 1.0 page: 2

Agenda What is RAP How does it work Delveloper s view Single Sourcing RAP/RCP Demo Outlook Eclipse RAP 1.1 Copyright Innoopract made available under the EPL 1.0 page: 3

Agenda What is RAP How does it work Delveloper s view Single Sourcing RAP/RCP Demo Outlook Eclipse RAP 1.1 Copyright Innoopract made available under the EPL 1.0 page: 4

What we like about Eclipse plug-ins, plug-ins, plug-ins bundles too... OSGi specifies a dynamic component model: Module encapsulation and declaration of dependencies Life Cycle API for life cycle management Service Registry providing functionality to other bundles Security layer - limit bundle functionality to pre-defined capabilities The Eclipse OSGi implementation is provided by the Equinox Project Eclipse RAP 1.1 Copyright Innoopract made available under the EPL 1.0 page: 5

What we like about Eclipse (cont d) contribution to a common ui concept Standard Widget Toolkit (SWT) delivers native widget functionality for the Eclipse platform in an operating system independent manner JFace sits on top of SWT and provides classes for handling common UI programming tasks Workbench is responsible for the presentation and coordination of the user interface Eclipse RAP 1.1 Copyright Innoopract made available under the EPL 1.0 page: 6

What we like about Eclipse (cont'd) Eclipse RAP 1.1 Copyright Innoopract made available under the EPL 1.0 page: 7

What we like about Eclipse (cont'd) Eclipse RAP 1.1 Copyright Innoopract made available under the EPL 1.0 page: 8

How does that translate to the web? Eclipse RAP 1.1 Copyright Innoopract made available under the EPL 1.0 page: 9

How does that translate to the web? (cont d) RAP - enabling plug-in reuse 70% - 90% reuse is possible RAP provides only a subset of RCP! needs separation of code that is not compatible can be addressed with fragments application needs to become multi-user enabled getting all the things we like about Eclipse Eclipse RAP 1.1 Copyright Innoopract made available under the EPL 1.0 page: 10

Nice idea but I don t like RCP in a browser Eclipse RAP 1.1 Copyright Innoopract made available under the EPL 1.0 page: 11

O.K. - but it does not have to be this way Eclipse RAP 1.1 Copyright Innoopract made available under the EPL 1.0 page: 12

Agenda What is RAP How does it work Delveloper s view Single Sourcing RAP/RCP Demo Outlook Eclipse RAP 1.1 Copyright Innoopract made available under the EPL 1.0 page: 13

How does it work? replacing SWT with an implementation that can render to browsers everything else is pretty much the same RWT uses qooxdoo Javascript library to render widgets in the browser differences: multi-user environment: OSGi bundles shared between sessions Additional API for web specifics Eclipse RAP 1.1 Copyright Innoopract made available under the EPL 1.0 page: 14

How does it work? (cont d) The Request Lifecycle At the end of the ReadData phase all widget attributes are in sync with the client These attributes are preserved for later comparison During the ProcessAction phase attribute changes may occur The Render Phase compares the widget attributes with their preserved values and submits only the delta to the client Eclipse RAP 1.1 Copyright Innoopract made available under the EPL 1.0 page: 15

RWT Widgets Eclipse RAP 1.1 Copyright Innoopract made available under the EPL 1.0 page: 16

RWT Events and Listeners available Listener types: SelectionListener ControlListener ShellListener (supports doit flag now) MenuListener ModifyListener VerifyListener MouseListener more in future: KeyListener Drag/DropListener Eclipse RAP 1.1 Copyright Innoopract made available under the EPL 1.0 page: 17

RWT Layouts all usual layouts: GridLayout, RowLayout FillLayout FormLayout StackLayout and a lot more... mostly verbatim copies of SWT (OS independent) layout algorithms work exactly as in SWT layouts are computed on the server, e.g. after a Shell has been resized Eclipse RAP 1.1 Copyright Innoopract made available under the EPL 1.0 page: 18

Agenda What is RAP How does it work Delveloper s view Single Sourcing RAP/RCP Demo Outlook Eclipse RAP 1.1 Copyright Innoopract made available under the EPL 1.0 page: 19

Developer's view on a RAP application Startup involves extensions or implementations of the following types: WorkbenchAdvisor WorkbenchWindowAdvisor ActionBarAdvisor IPerspectiveFactory These types are quite familiar for RCP developers and serve the same purpose as their RCP equivalents Eclipse RAP 1.1 Copyright Innoopract made available under the EPL 1.0 page: 20

Developer's view on a RAP application (cont d) JDT: content assist, refactoring, etc., PDE, Javadoc available developer does not get in touch with Javascript, CSS, HTTP... Eclipse RAP 1.1 Copyright Innoopract made available under the EPL 1.0 page: 21

Developer's view on a RAP application (cont'd) Eclipse RAP 1.1 Copyright Innoopract made available under the EPL 1.0 page: 22

Developer's view on a RAP application (cont'd) Eclipse RAP 1.1 Copyright Innoopract made available under the EPL 1.0 page: 23

Composed Widgets just like SWT composition of existing widgets custom layouts, event handling application developers uses composition as a control Eclipse RAP 1.1 Copyright Innoopract made available under the EPL 1.0 page: 24

Custom Widgets the shortcut Use the browser widget! public YoutubeShell( final Display display ) { this.display = display; bgcolor = display.getsystemcolor( SWT.COLOR_BLACK );... createshield(); createshell(); } public void setid( final String id ) { browser.settext( gethtml( id ) ); } private static String gethtml( final String id ) { String html = "<html><body>" + "<object width=\"425\" height=\"373\">" + "<param name=\"movie\" value=\"http://www.youtube.com/v/" + id + "&rel=1&border=1\"></param>" + "<param name=\"wmode\" value=\"transparent\"></param>" + "<embed src=\"http://www.youtube.com/v/" + id + "&rel=1&border=1\" } Eclipse RAP 1.1 Copyright Innoopract made available under the EPL 1.0 page: 25

Custom Widgets the shortcut Eclipse RAP 1.1 Copyright Innoopract made available under the EPL 1.0 page: 26

Custom Widgets - the real thing like in SWT, requires good knowledge of the platform component developer needs javascript, qooxdoo and RAP knowledge allows do embed all sort of client side technologies: JS frameworks, Flash, Applets,... 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.1 Copyright Innoopract made available under the EPL 1.0 page: 27

Web Look & Feel: Theming objective: allow for a custom look of web applications predefined properties of widgets can be customized Dimensions, Colors, Borders, Fonts, Images css syntax themeable custom widgets Eclipse RAP 1.1 Copyright Innoopract made available under the EPL 1.0 page: 28

Web Look & Feel: Workbench Technology PresentationFactory WorkbenchWindowAdvisor ContributionItems Eclipse RAP 1.1 Copyright Innoopract made available under the EPL 1.0 page: 29

Agenda What is RAP How does it work Delveloper s view Single Sourcing RAP/RCP Demo Outlook Eclipse RAP 1.1 Copyright Innoopract made available under the EPL 1.0 page: 30

Single Sourcing RCP/RAP Differences between RAP and RCP RAP applications are client-server applications with a browser as the client (Thin Client) and the OSGi infrastructure on the server OSGi-Bundles are shared between sessions (in general there are 3 scopes on the server: application-, session- and request-scope) Restrictions of the distributed environment do not allow to provide the complete API of SWT no GC no constructors, dispose for Font, Image and Color Eclipse RAP 1.1 Copyright Innoopract made available under the EPL 1.0 page: 31

Single Sourcing RCP/RAP (cont d) More differences multi users SINGLETONS are shared between ALL users in RAP RAP provides a class called SessionSingletonBase, that can be subclassed to provide Singletons by Session: public class MySessionSingleton extends SessionSingletonBase { public static MySessionSingleton getinstance() { return(mysessionsingleton)getinstance(mysessionsingleton.class); } } access to SessionSingletons is simple within the UI thread, but need special care in background processes (jobs) Eclipse RAP 1.1 Copyright Innoopract made available under the EPL 1.0 page: 32

Single Sourcing RCP/RAP (cont d) consistent bundle hierarchy in application uncluttered code target environment is only a export question Eclipse RAP 1.1 Copyright Innoopract made available under the EPL 1.0 page: 33

Agenda - Demo Eclipse RAP 1.1 Copyright Innoopract made available under the EPL 1.0 page: 34

Agenda What is RAP How does it work Delveloper s view Single Sourcing RAP/RCP Demo Outlook Eclipse RAP 1.1 Copyright Innoopract made available under the EPL 1.0 page: 35

Usage Analysis Usage Data Collector (UDC) Usage Data Visualization Eclipse RAP 1.1 Copyright Innoopract made available under the EPL 1.0 page: 36

Moving to the new Eclipse RT project the new Eclipse RT (Runtime, not Realtime) top level project helps to coordinate the runtime efforts the Equinox Community will foster and promote runtime technologies at Eclipse independently of their location in a top level project RAP is one of the initial six projects of RT integration with other runtime technologies is key http://eclipse.org/equinox-portal/ Eclipse RAP 1.1 Copyright Innoopract made available under the EPL 1.0 page: 37

RAP & e4 Platform and RAP team will work together on next generation of Eclipse platform, community is invited to join Eclipse RAP 1.1 Copyright Innoopract made available under the EPL 1.0 page: 38

draw2d prototype using Flash in the browser Eclipse RAP 1.1 Copyright Innoopract made available under the EPL 1.0 page: 39

qooxdoo 0.8 Decoration customization mechanism of the widget s look & feel support of rounded corners, shadow, etc. widgets can have different decoration renderers Eclipse RAP 1.1 Copyright Innoopract made available under the EPL 1.0 page: 40

Get the RAP - http://eclipse.org/rap Eclipse RAP 1.1 Copyright Innoopract made available under the EPL 1.0 page: 41

References http://www.eclipse.org/rap - RAP project page http://wiki.eclipse.org/rap - RAP project wiki http://www.qooxdoo.org - qooxdoo js library Eclipse RAP 1.1 Copyright Innoopract made available under the EPL 1.0 page: 42