The Eclipse Rich Client Platform

Similar documents
Getting the Most from Eclipse

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

Developing Eclipse Rich-Client Applications Tutorial

Smart Client development with the Eclipse Rich Client Platform

Regular Forum of Lreis. Speechmaker: Gao Ang

20. Eclipse and Framework Extension Languages

IBM Workplace Managed Client API Toolkit

ECLIPSE RICH CLIENT PLATFORM

Eclipse and Framework Extension Languages

Eclipse Introduction. Zeng Yu

Introduction to Eclipse

Supervisor : Germán Cancio Meliá. Towards a GUI for CDB-CLI

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

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

AD105 Introduction to Application Development for the IBM Workplace Managed Client

Advanced User Interface Programming Using the Eclipse Rich Client Platform

Plug-ins, RCP and SWT. Sample Content

Customized Enterprise Installation of IBM Rational ClearCase Using the IBM Rational ClearCase Remote Client plug-in and the Eclipse SDK

Eclipse as a Web 2.0 Application Position Paper

IBM Workplace Client Technology API Toolkit

Introduction to Eclipse

Simplifying Enterprise Installation of IBM Rational ClearCase

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

Expeditor Client for Desktop. Client Platform Overview

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

Rich Client GUI's with RCP & RAP

The Eclipse Rich Ajax Platform

Eclipse on Cell phones?

About the Tutorial. Audience. Prerequisites. Copyright & Disclaimer

Workplace Client Technology, Micro Edition. WCTME Enterprise Offering Application Developer s Guide

Index. Symbols. /**, symbol, 73 >> symbol, 21

Eclipse Platform Technical Overview

Tools to Develop New Linux Applications

Outline. Tutorial III. Eclipse. Basics. Eclipse Plug-in Feature

Comparing graphical DSL editors

eclipse rich ajax platform (rap)

Implementation of a 2D Graph Viewer

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

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

A Tour of the Eclipse Environment

Common Navigator Framework

Eclipse 4. Brian de Alwis. Abstract

Eclipse Data Binding - Updating RCP Mail 2.0 Handout

Foundations of User Interface Programming Using the Eclipse Rich Client Platform

Part 2: Notes Plug-in Development

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

RAP (The Rich Ajax Platform)

e4 Project 0.9 Release Review

Eclipse 4 Eclipse Day Toulouse 24 mai 2012

When Modeling meets Productivity. Sven Efftinge - itemis

USER GUIDE. MADCAP FLARE 2018 r2. Eclipse Help

Strategic Developer Report

Slide 1 CS 170 Java Programming 1 Duration: 00:00:49 Advance mode: Auto

vsphere Web Client SDK Documentation VMware vsphere Web Client SDK VMware ESXi vcenter Server 6.5.1

Equinox Framework: How to get Hooked

Eclipse in Embedded. Neha Garg : Prerna Rustagi :

Introduction to Eclipse and Eclipse RCP

Using the Plug in Development Environment

Semantic Web T LS Update

WPS Workbench. user guide. "To help guide you through using the WPS user interface (Workbench) to create, edit and run programs"

Custom Code Rules Deep Dive

Chapter 1 GETTING STARTED. SYS-ED/ Computer Education Techniques, Inc.

open source RCP Eclipse based Visualization analysis Python Workflow

Software Development Kit

Eclipse Project 3.2 Release Review. Eclipse Project PMC

IBM Lotus Design Tools

Introduction to Eclipse Rich Client Platform Support in IBM Rational HATS. For IBM System i (5250)

i2b2 Workbench Developer s Guide: Eclipse Neon & i2b2 Source Code

Introduction to Eclipse Rich Client Platform Support in IBM Rational HATS For IBM System i (5250)

Packaging for Websphere Development Studio was changed with V6R1.

Wowza IDE 2. User's Guide

Module 3: Working with C/C++

Embedded Rich Client Platform (ercp) 1.2 Release Review

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

Introducing Lotus Domino 8, Designer 8 and Composite Applications

PART 1. Eclipse IDE Tutorial. 1. What is Eclipse? Eclipse Java IDE

IBM Rational Developer for System z Version 7.5

Moving From Studio to Atelier. Wouter Dupré Sales Engineer

vsphere Web Client Extensions Programming Guide vsphere 5.1

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

Lotus Sametime Software Development Kit

The Road to CCSv4. Status Update

VizzAnalyzer goes Eclipse!

InfoSphere Data Architect Pluglets

An Eclipse-based Environment for Programming and Using Service-Oriented Grid

IBM Workplace Software Development Kit

Eclipse Kick Start. Copyright 2005 by Sams Publishing. International Standard Book Number:

Getting started with WebSphere Portlet Factory V7.0.0

Introduction to IBM Data Studio, Part 1: Get started with IBM Data Studio, Version and Eclipse

Introduction to IBM Data Studio, Part 1: Get started with IBM Data Studio, Version and Eclipse

To install OpenOffice.org 3.0 on a Windows-based computer that meets the minimum system requirements, follow these steps:

Flint - Eclipse Based IDE User Manual

Lessons learned from building Eclipse-based add-ons for commercial modeling tools

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

Model handling with EMF

Lab #1: A Quick Introduction to the Eclipse IDE

The Graphical Editing Framework

Eclipse Building Commercial-Quality Plug-ins Second Edition

At the shell prompt, enter idlde

Eclipse, Java, Scientific Software, Etc.

Transcription:

The Eclipse Rich Client Platform Slides by various members of the Eclipse JDT and Platform teams Slides 2004 IBM Corporation

Outline Rich Client Application? The Eclipse Plug-in Architecture Eclipse Plug-ins in action The Eclipse Rich Client standard components How to deploy Plug-ins How to develop Eclipse Plug-ins 2 Eclipse RCP Platform Slides 2004 IBM Corporation

How Eclipse started Eclipse is a universal platform for integrating development tools Open, extensible architecture based on plug-ins Plug-in development environment Java development tools PDE JDT Eclipse Platform Standard Java2 Virtual Machine Platform Java VM 3 Eclipse RCP Platform Slides 2004 IBM Corporation

Eclipse for Non IDE Applications could I dump all the plug-ins that come with eclipse and use the platform to host only business specific plug-ins that have been built? news.eclipse.org But when using Eclipse 2.1 as an ordinary application platform you get either: too much all the IDE specific components user interface is polluted with IDE specific actions too little only SWT and JFace low level programming model No extensibility 4 Eclipse RCP Platform Slides 2004 IBM Corporation

Towards a Rich Client Platform Many workbench components are not IDE specific. Advanced desktop applications have similar needs open architecture efficient, configurable, portable user interface supports product branding, install/update support integrated help, user configuration/preferences Enable workbench to be used for non IDE applications remove IDE personality from workbench no built-in editors, views, perspectives remove assumption that workspace is the data model make most other components optional rich function, low footprint 5 Eclipse RCP Platform Slides 2004 IBM Corporation

What is a Rich Client Application? An application that use the windowing and GUI features of the operation system they run on. This means: Native widgets, menu and tool bars Drag & Drop Integrates with platform component model 6 Eclipse RCP Platform Slides 2004 IBM Corporation

Consequences More responsive user experience Better integration with existing Desktop tools Lower server loads Offline execution Local data access Client/Server architecture Memory footprint Management & Deployment 7 Eclipse RCP Platform Slides 2004 IBM Corporation

Eclipse Rich Client Platform A Rich Client Platform needs a strong component model with the following major characteristics: Specified interfaces: a component must declare its public API and how it can be extended Lazy loading: components are loaded on demand not on startup Versioning: prerequisite components are reference by name and version Dynamic detection: components are detected dynamically (no need to restart) Additionally the following issues must be addressed: Managing: install, update, remove & discover components Development: IDE to develop components Security: based on Java 2 security 8 Eclipse RCP Platform Slides 2004 IBM Corporation

Platform vs. Extensible Application Eclipse Rich Client Platform It has an open, extensible architecture Built out of layers of plug-ins Platform Extensible App Plug-ins Plug-ins Application Run-time 9 Eclipse RCP Platform Slides 2004 IBM Corporation

Eclipse Plug-in Architecture Plug-in == Component Set of contributions Plug-in Smallest unit of Eclipse function Details spelled out in plug-in manifest Big example: mail client Small example: action to calculate the number of lines of a mail Extension point named entity for collecting contributions Example: extension point to add additional spam filtering tools Extension a contribution Example: a specific spam filter tool RCP - Platform set of standard plug-ins Runtime controls and manages contributions Plug-in RCP - Platform Runtime Extension Extension point 10 Eclipse RCP Platform Slides 2004 IBM Corporation

The Plug-in Manifest <plugin id= com.example.tool.mail" name= Example Mail Plug-in version= 1.0.0 class = "com.example.tool.mailplugin"> <requires> <import plugin= "org.eclipse.ui" version= 3.0.0 /> </requires> <runtime> <library name = mail.jar > <export name= org.example.tool.mail /> </library> </runtime> <extension point = "org.eclipse.ui.preferencepages"> <page id = "com.example.tool.mail.preferences" title = Mailing" class = "com.example.tool.mail.preferencepage /> </extension> <extension-point name= spamfilters id = "com.example.tool.mail.spamfilters"/> </plugin> Plug-in identification Required Plug-ins Plug-in code Declare contribution this plug-in makes Define new extension point open for contributions 11 Eclipse RCP Platform Slides 2004 IBM Corporation

The Eclipse Runtime Java component (plug-in) model dependency management requires Java Core requires activation management Java UI Extension registry - manages extension points and corresponding extensions requires requires UI Resources OSGI based (Open Service Gateway Initiative): Nokia, NTT, Motorola, Philips, Siemens, Oracle dynamic install/uninstall/update of components service architecture security (based on Java 2) remote configuration API 12 Eclipse RCP Platform Slides 2004 IBM Corporation

Lazy Loading <action toolbarpath= search" tooltip= Open Type icon="icons/opentype.gif" class="org.eclipse.jdt.opentypeaction"/> lazily instantiated using reflection org/eclipse/jdt/opentypeaction.class contribution implementation 13 Eclipse RCP Platform Slides 2004 IBM Corporation

Hello World Example A component based Hello World application that allows contributing additional greeters: Uses OSGI as a runtime Provides extension points and extensions Demonstrates how Eclipse technology can be used to componentize existing applications demo.helloworld.swiss Swiss greeter demo.helloworld Extension point for greeter Default greeter for Hello World Runtime (OSGi) 14 Eclipse RCP Platform Slides 2004 IBM Corporation

Eclipse Platform Version 3.0 Help Update Text IDE Text Compare Debug Search Team/ CVS IDE personality Eclipse RCP Generic Workbench SWT JFace Resources Runtime (OSGi) 15 Eclipse RCP Platform Slides 2004 IBM Corporation

Standalone Applications Help Update Text IDE Text Compare Debug Search Team/ CVS IDE personality Eclipse RCP Generic Workbench SWT JFace Resources Runtime (OSGi) 16 Eclipse RCP Platform Slides 2004 IBM Corporation

Standalone Applications Application model Single not extensible application Standard Widget Toolkit Platform independent widget toolkit Native widgets (button, tree, table, menu, ) Win32, GTK, Motif and Mac Integrates with other native application Support for OS component model OLE under Win32 Programming model OO widget library no framework API equivalent to native Win32 or GTK applications 17 Eclipse RCP Platform Slides 2004 IBM Corporation

Extensible Applications Help Update Text IDE Text Compare Debug Search Team/ CVS IDE personality Eclipse RCP Generic Workbench SWT JFace Resources Runtime (OSGi) 18 Eclipse RCP Platform Slides 2004 IBM Corporation

Extensible Applications Application model Single application JFace brings: MVC concept: viewer & content provider Application window: menu bar, tool bar, content area & status line Action support: menu bar, toolbar, context menu Preference and wizard framework No extension points, API only Runtime brings: Change for extensiblilty Programming model Formed by Model View Controller paradigm Frameworkish 19 Eclipse RCP Platform Slides 2004 IBM Corporation

Application Platform Help Update Text IDE Text Compare Debug Search Team/ CVS IDE personality Eclipse RCP Generic Workbench SWT JFace Resources Runtime (OSGi) 20 Eclipse RCP Platform Slides 2004 IBM Corporation

Application Platform Application model Family of components (Mailing, Organizer, Address-Book, ) Different sets of components form different applications Workbench brings: Perspectives: define arrangement of editors and views Editors: edit or browse a document or input object Views: navigate a hierarchy of information Action contributions: add additional action to already existing elements Manages shared resources like global menu, preference pages, Programming model Components contribute to workbench extension points Components provide own extension points Split between XML (plugin.xml) and Java code 21 Eclipse RCP Platform Slides 2004 IBM Corporation

The Demo File System Explorer providing a model of the file system, and views to browse the model No file viewers/editors are provided by the Explorer Several additional plug-ins to view/edit different kinds of files Text Editor HTML Word File System Explorer Rich Client Platform 22 Eclipse RCP Platform Slides 2004 IBM Corporation

Contributing an Extension Workbench extension point P contributes HTML Editor extension interface I implements class C calls creates (using reflection) Workbench Declares extension point P (org.eclipse.ui.editors) Declares interface I (IEditorPart) for P HTML-Editor Implements interface I with its own class C (HTMLEditor) Contributes class C to extension point P Workbench instantiates HTMLEditor and calls its methods via interface IEditorPart 23 Eclipse RCP Platform Slides 2004 IBM Corporation

Scalability The Workbench is highly scalable Leverages the extension point mechanism for progressive loading of code Supports dynamic plug-in addition Activities mechanism can be used for role-based rightfitting of UI Proven by successful products built on Eclipse: WebSphere/Rational development tools Lotus Workplace 24 Eclipse RCP Platform Slides 2004 IBM Corporation

Optional RCP components Component Help UI Update Manager Text Forms Welcome Page / Intro Cheat Sheets Description Web-app-based Help UI Discover and install new and updated versions of plugins Framework for high-function text editors Forms-based control library Initial welcome experience and guided assistance Guides the user through a longrunning, multi-step task such as a tutorial 25 Eclipse RCP Platform Slides 2004 IBM Corporation

Optional RCP components (cont d) Component Resources Console, Outline, Properties views Graphical Editing Framework (GEF) Eclipse Modeling Framework (EMF) and Service Data Objects (SDO) Description Managed workspace with projects, folders, files, builders Various extensible views Includes Draw2D, a vector graphics framework EMF: Modeling framework and code generation facility based on a structured data model. SDO: Simplifies/unifies data application development in a service oriented architecture (SOA). 26 Eclipse RCP Platform Slides 2004 IBM Corporation

Managing Plug-ins: Install/Update Help Update Text IDE Text Compare Debug Search Team/ CVS IDE personality Generic Workbench Resources JFace SWT Runtime (OSGi) 27 Eclipse RCP Platform Slides 2004 IBM Corporation

Managing Plug-ins: Install/Update Features group plug-ins into installable chunks Feature manifest file Plug-ins and features bear version identifiers major. minor. service Multiple versions may co-exist on disk Features downloadable from URL addressable location Using Eclipse Platform update manager Obtain and install new plug-ins Obtain and install patches & updates to existing plug-ins Support for update site mirroring & shared installations 28 Eclipse RCP Platform Slides 2004 IBM Corporation

Patches Updates require that features are replaced with those of the same ID but a higher version For large products, it is hard to ship true updates every time an emergency fix is needed Patches live side-by-side features they patch they just bring new versions of select plug-ins (3.0 behavior) Patches contain either whole plug-ins or only those files that have changed Eclipse run-time sorts things out picks the newer (patched) plug-ins 29 Eclipse RCP Platform Slides 2004 IBM Corporation

Help System Help Update Text IDE Text Compare Debug Search Team/ CVS IDE personality Generic Workbench Resources JFace SWT Runtime (OSGi) 30 Eclipse RCP Platform Slides 2004 IBM Corporation

Help System Provides user help via F1 and Search Help files are written in HTML Content structure is defined in XML Help is presented in Web-Browser Highly scalable 31 Eclipse RCP Platform Slides 2004 IBM Corporation

Developing Plug-ins: PDE PDE = Plug-in development environment Extenders use PDE to implement plug-ins Specialized tools for developing Eclipse plug-ins Built atop Eclipse Platform and JDT Implemented as Eclipse plug-ins Using Eclipse Platform and JDT APIs and extension points Features Specialized PDE editor for plug-in manifest files Templates for new plug-ins PDE runs and debugs another Eclipse application 32 Eclipse RCP Platform Slides 2004 IBM Corporation

Rich Client Platform Summary Runtime: Plug-in model and extension point architecture OSGi: Support for dynamic plug-ins SWT: Cross-platform native widget library, with tight OS integration JFace: UI framework to simplify common tasks Workbench: Highly scalable, managed UI Base RCP is relatively small: disk footprint is 5.5M Many optional components: Help UI, Update, Intro, Cheat Sheets, Forms, GEF, EMF, GEF, Tool support provided by PDE Solid architecture, proven by successful products Lots of documentation, and very good community support Opportunities for use of, and/or participation in, other Eclipse technology 33 Eclipse RCP Platform Slides 2004 IBM Corporation

Where can I find out more? RCP UI page: http:/www.eclipse.org/platform > UI > RCP Home Page Ed Burnette s RCP tutorials Platform and RCP newsgroups: news://news.eclipse.org/eclipse.platform.rcp news://news.eclipse.org/eclipse.platform Gamma, Beck: Contributing to Eclipse Principles, Patterns, and Plug-ins, Addison-Wesley, 2004 www.awprofessional.com/series/eclipse 34 Eclipse RCP Platform Slides 2004 IBM Corporation

End of presentation. Code snippets follow. 35 Eclipse RCP Platform Slides 2004 IBM Corporation

Configuring the Workbench Window WorkbenchAdvisor a strategy object to configure a workbench window provides hook methods called at strategic points during the workbench life cycle defines the initial perspective PlatformUI createandrunworkbench() <<parameter>> Strategy WorkbenchAdvisor prestartup() poststartup() prewindowopen() postwindowopen() postshutdown() postshutedown() fillactionbars() getinitialperspective() 36 Eclipse RCP Platform Slides 2004 IBM Corporation

A minimal WorkbenchWindow class MinimalAdvisor extends WorkbenchAdvisor { } public void prewindowopen(iworkbenchwindowconfigurer configurer) { super.prewindowopen(configurer); configurer.setshowcoolbar(true); public void postwindowopen(iworkbenchwindowconfigurer configurer) { super.postwindowopen(configurer); configurer.settitle( File Explorer"); } } public String getinitialwindowperspectiveid() { return "org.demo.fileexplorer.workbench.explorerperspective"; } 37 Eclipse RCP Platform Slides 2004 IBM Corporation

Defining the Perspective Layout contribute a perspective factory hide the editor area <extension point="org.eclipse.ui.perspectives"> <perspective name= File Explorer id="org.demo.fileexplorer.workbench.explorerperspective" class="org.demo.fileexplorer.workbench.explorerperspective /> </perspective> </extension> class ExplorerPerspective implements IPerspectiveFactory { public void createinitiallayout(ipagelayout layout) { String editorarea = layout.geteditorarea(); layout.addview(explorerplugin.directory_view, IPageLayout.TOP, 0.33f, editorarea); layout.addview(explorerplugin.file_view, IPageLayout.RIGHT, 0.5f, ExplorerPlugin.DIRECTORY_VIEW); } } 38 Eclipse RCP Platform Slides 2004 IBM Corporation

Define an Eclipse Application We can run our contributions using the standard eclipse application our contributions shows-up as part of the standard eclipse workbench define a custom entry point everything is a contribution even the entry point into the eclipse platform <extension id="application" point="org.eclipse.core.runtime.applications"> <application> <run class=...workbench.application /> </application> </extension> IPlatformRunnable run(object args) Application 39 Eclipse RCP Platform Slides 2004 IBM Corporation

Launching the Application Run the workbench with the advisor public class Application implements IPlatformRunnable { public Object run(object args) throws Exception { WorkbenchAdvisor wa = new MinimalAdvisor(); Display d= PlatformUI.createDisplay(); int code= PlatformUI.createAndRunWorkbench(d, wa); return new Integer(code); } } Launch the application with your contributed application java -cp startup.jar org.eclipse.core.launcher.main -application org.demo.fileexplorer.workbench.application 40 Eclipse RCP Platform Slides 2004 IBM Corporation