Introduction 1 Lars Vogel 4/22/2009.  Who am I?  Eclipse as a platform  What is Eclipse RCP?  Extension Points / Extensions  Equinox  SWT & JFace.

Slides:



Advertisements
Similar presentations
June, 2007 Petr Hamernik Extending Instant JChem 2.0 Architecture & API.
Advertisements

Eclipse Architecture Council Proposal about the updated Eclipse architecture introduction pictures / Kai Nyman This slide set contains a proposal.
Extending Eclipse Kai-Uwe Mätzel IBM OTI Labs Zurich
NetBeans Platform Compared with Eclipse Rich Client PLatform Kai Tödter, Siemens AG Geertjan Wielenga, Sun Microsystem ID# ????
Introduction to Eclipse plugin development for CSU 670 course project, Selector language (Xaspect) editor plugin implementation.
Developing an Eclipse Plug-in David Gallardo. Platform Runtime Workspace Help Team Workbench JFace SWT Eclipse Project Java Development Tools (JDT) Their.
 Copyright 2005 Digital Enterprise Research Institute. All rights reserved. The Web Services Modeling Toolkit Mick Kerrigan.
Goals Give you a feeling of what Eclipse is.
Eclipse Architecture Dwight Deugo Nesa Matic
Presented by IBM developer Works ibm.com/developerworks/ 2006 January – April © 2006 IBM Corporation. Making the most of Creating Eclipse plug-ins.
Views Dwight Deugo Nesa Matic
1 Plug-in Development Environment (PDE) Guide. 2 Introduction to PDE l What is PDE: »a tool designed to help you develop platform plug-ins while working.
Copyright © Soyatec. Licensed under the Eclipse Public License 1.0 Yves YANG & Philippe Ombredanne.
JFace 吳昆澤. UI framework for plug-ins JFace provides classes for handling common UI programming tasks: Viewers handle the drudgery of populating, sorting,
Introduction to the Atlas Platform Mobile & Pervasive Computing Laboratory Department of Computer and Information Sciences and Engineering University of.
@2011 Mihail L. Sichitiu1 Android Introduction Platform Overview.
Duke University Program Design & Construction Course Application Development Tools Sherry Shavor
GumTree The Scientific Workbench ~Technology Showcase~ Tony Lam Australian Nuclear Science and Technology Organisation.
Definition of the SDK for FIspace Augusto Morales & Hector Bedón UPM.
Introduction to Eclipse and Eclipse RCP Kenneth Evans, Jr. Presented at the EPICS Collaboration Meeting June 13, 2006 Argonne National Laboratory, Argonne,
Deutsches Elektronen-Synchrotron DESY Helmholtz Association of German Research Centres Hamburg, Germany The European X-Ray Laser Project.
© 2012 Google, Inc. 1 Building GUIs with WindowBuilder EclipseCon 2012 March 28, 2012 Eric Clayberg Software Engineering Manager Google, Inc.
S T A T I S T I C S A U S T R I A June Frederick Rennert June 2009 © STATISTICS AUSTRIA i n f o r m a t i o n Moving „e-Quest-New“
Introduction to Eclipse Plug-in Development. Who am I? Scott Kellicker Java, C++, JNI, Eclipse.
Android for Java Developers Denver Java Users Group Jan 11, Mike
Extending the Eclipse Framework and Rich Client Platform Jeff Myers Languages for Lunch 10/13/2004.
Ontology Engineering and Plugin Development with the NeOn Toolkit Plug-in Development for the NeOn Toolkit June 1st, 2008 Michael Erdmann, Peter Haase,
TOOLS FOR DESIGN AND DEVELOPMENT ENVIRONMENTS. Case study - ECLIPSE Lecture notes 2.
Jan Hatje, DESY CSS ITER March 2009: Technology and Interfaces XFEL The European X-Ray Laser Project X-Ray Free-Electron Laser 1 CSS – Control.
Control System Studio (CSS) Overview Kay Kasemir, July 2009.
[________________________] Eclipse project briefing materials. Copyright (c) 2002, 2003 IBM Corporation and others. All rights reserved. This.
Selected Topics in Software Engineering - Distributed Software Development.
Open Service Gateway Initiative (OSGi) Reporter : 林學灝 侯承育 1.
Copyright © IBM Corp., All rights reserved. From SWT to RCP: Experiences implementing RSSOwl 2.0 with RCP Benjamin Pasero.
CMSC 466 / 666 Yong Rao Feb. 11, 2004 Revised Mar. 15, 2004.
A (very brief) intro to Eclipse Boyana Norris June 4, 2009.
Australian Nuclear Science & Technology Organisation GumTree A Java Based GUI Framework for Beamline Experiments Tony Lam (ANSTO) Andy Götz (ESRF) Ferdi.
CSS – Control System Studio
Evolution of VisualDCT Jaka Bobnar Matej Sekoranja Igor Verstovsek
CSS Build and Update System Kunal Shroff EPICS Spring Collaboration Meeting, June 2010 Aix-en-Provence.
Eclipse Rich Client Platform Discover the Anatomy of an Application Based On Eclipse Wayne Beaton Evangelist, Eclipse Foundation.
Architecture for an Ontology and Web Service Modelling Studio Michael Felderer & Holger Lausen DERI Innsbruck Frankfurt,
© 2008 by Shawn Spiars; made available under the EPL v1.0 | March 17, 2008 Case Study – Phurnace Software and RCP Shawn Spiars Lead UI Developer Phurnace.
Slide 1 ApacheCon 2011 > Doreen Seider> Using OSGi to Build Better Software > Using OSGi to Build Better Software Lessons from a Telemedicine.
Jan Hatje, DESY CSS GSI Feb. 2009: Technology and Interfaces XFEL The European X-Ray Laser Project X-Ray Free-Electron Laser 1 CSS – Control.
Jan Hatje, DESY CSS – Control System Studio EPICS collaboration meeting CSS – Control System Studio Update EPICS collaboration meeting 2008 Shanghai.
Managed by UT-Battelle for the Department of Energy Kay Kasemir ORNL/SNS Jan Control System Studio Training - Extension Points:
Developing GUIs With the Eclipse Visual Editor, SWT Edition David Gallardo.
Top 5 IDE that Simplifies PHP Development Biztech IT Consultancy Pvt. Ltd. | |
© 2002 IBM Corporation Confidential | Date | Other Information, if necessary June 14, Eclipse Rich Client Platform Wayne Beaton, Eclipse Foundation,
CSS Build and Update System Kunal Shroff EPICS Fall Collaboration Meeting, June 2010 Aix-en-Provence.
ECLIPSE RICH CLIENT PLATFORM Part 1 Introduction.
Common Client Rich Client Platforms
Eclipse.
Goals Give you a feeling of what Eclipse is.
Introduction to Tracker
Architecture, Components, Configuration
Kunal Shroff EPICS Spring Collaboration Meeting, October 2010 BNL
Web Starter Kit: runtime
Eclipse Tools Platform
An Introduction to Eclipse
Kay Kasemir, ORNL/SNS Kunal Shroff
Dev10. Eclipse Plug-ins in Notes 101, and then some Teresa Deane, BCC
Presentation transcript:

Introduction 1 Lars Vogel 4/22/2009

 Who am I?  Eclipse as a platform  What is Eclipse RCP?  Extension Points / Extensions  Equinox  SWT & JFace  View coupeling  Summary 2 Lars Vogel 4/22/2009

 Lars Vogel ◦ Working for SAP AG as a product manager responsible for SAP Transportation Management ◦ Open source enthusiastic ◦ Active in the Java and Eclipse ecosystem 3

 Eclipse RCP distribution, via  Or installation of feature „Eclipse RCP“ via the Eclipse update manager 4 Lars Vogel 4/22/2009

 Platform ◦ Small runtime ◦ Complex applications can be extensible without the need to adjust existing code 5 Runtime Platform Application Extensible Application Lars Vogel 4/22/2009

 Nov – Code released as open Source  Juni 2004 – Eclipse 3.0 based on OSGi and enables Eclipse RCP  Current Eclipse (aka Ganymede) 6 Lars Vogel 4/22/2009

 Local running application using the native widget toolkit  Based on the Eclipse runtime and technology  Eclipse RCP applications can be standalone or may require server communication 7 Lars Vogel 4/22/2009

 Component model  Rich user experience  Platform (OS) independent  Extensible  Re-use of existing Eclipse functionality  Helps avoiding writing boilerplate code, e.g. automatic update  Excellent community 8 Lars Vogel 4/22/2009

9 Application ApplicationWorkbenchAdvisor ApplicationWorkbenchWindowAdvisor ApplicationActionBarAdvisor Calls PlattfromUI.createAndRunWorkbench Defines the initial perspective Settings for the window, e.g. toolbar visible, etc Defines initial Actions (outdated) Lars Vogel 4/22/2009

 MANIFEST.MF – Defines OSGi bundle  plugin.xml – Defines Eclipse extensions and extension points  build.properties – property file for export  PDE (Plug-in Development Environement) provides editors for these files. 10 Lars Vogel 4/22/2009

 Extension Points allow to add functionality to pre- defined points  Each plug-in can define it‘s own extension points allowing other to contribute  Each plug-in can define extensions, providing functionality to pre-defined extension points  RCP developer use primary the existing platfrom extension points to define their application 11 Lars Vogel 4/22/2009

 plugin.xml contains description of all extensions and extension points  Contributions are only loaded when they are needed -> lazy loading to save memory and keep startup time small 12 *Graphic Source: Internet Lars Vogel 4/22/2009

 A command in Eclipse is a declarative description of a component and is independent from the implementation details.  A command can be categorized  Key binding can be assigned to the command. 13 Lars Vogel 4/22/2009

14 Runtime / Equinox SWT JFace Workbench … … … … Other Plug-ins… Lars Vogel 4/22/2009

 Reference implementation of OSGi  Dynamic module system  Wildly used, e.g. in application servers  Allows to ◦ Define dependencies between Plug-ins ◦ Hide plug-in internal implementation details  Eclipse plug-in is always an OSGi bundle and vice versa 15 Equinox Lars Vogel 4/22/2009

 View available for plug-in dependency analysis  Graphical tool can be found on visualization/ visualization/ 16 Lars Vogel 4/22/2009

 Plug-in(s) for the domain model  Plug-in(s) for the core functionality  Plug-in(s) for the UI functionality  Modularity allows you to grow as you go 17 Lars Vogel 4/22/2009

 SWT Standard Widget Toolkit ◦ Thin layer upon the native GUI libraries ◦ JNI calls ◦ Not a lot of conviniant functionality 18 *Screenshot from the Internet

 JFace ◦ UI toolkit that provides helper classes for developing UI features ◦ Tables / TreeViewer / Dialogs / ◦ Can be based on models ◦ Databinding  Workbench ◦ multi-window environment ◦ manages views, editors, perspectives 19 Lars Vogel 4/22/2009

 Viewer: Table / Treeviewer: Responsible for the UI  LabelProvider: How is the domain model represented  ModelProvider: Delivery the domain model  ViewerSorter: Sorts values in the viewer  ViewerFilter: Filters values ◦ 20 Viewer – UI, shows data Viewer – UI, shows data ContentProvider – „Dao“ for viewer ContentProvider – „Dao“ for viewer LabelProvider – Which data is represented how LabelProvider – Which data is represented how Lars Vogel 4/22/2009

 View / Viewer can be selection provider, e.g. getSite().setSelectionProvider(viewer);  Another view can register without knowing which view are responible for the changes ◦ Needs to implement ISelectionListener ◦ Must itself register as SelectionListener, via getSite().getWorkbenchWindow().getSelectionService().addSel ectionListener(this)  Allows Loose Coupeling 21 Lars Vogel 4/22/2009

 Contains the branding, e.g. splashscreen, icons, „About“ dialog  Configuration for different operating systems  Used for exporting the final application 22 Lars Vogel 4/22/2009

 Find in Eclipse which parts you are looking at  Make coding analysis and re-use extremly easy  Shortcut Alt+Shift+F1  Add org.eclipse.pde.runtime and org.eclipse.ui.forms as dependency to have Plug-in Spy in your own RCP application 23 Lars Vogel 4/22/2009

 Eclipse RCP is a powerful framework to develop native looking, modular, extensible applications.  „Billions“;-) of new API‘s to learn…. Very powerful but complex framework 24 Lars Vogel 4/22/2009

 The whole world of Eclipse projects is available for RCP ◦ Modelling (EMF) ◦ Reporting (BIRT) ◦ Graphical Editors (GEF, GMF, Zest) ◦ Automatic Updates (p2 Update) ◦ Presentation Framework ◦ PDE Build / PDE JUnit ◦ Internationalization  Eclipse RCP in the Web -> Eclipse RAP  Eclipse RCP on the mobile device -> eRCP  Eclipse E4 ◦ Styling of UI components via CSS ◦ XWT -> allows declarative UI definition 25 Lars Vogel 4/22/2009

 Introduction to Eclipse RCP ◦  Eclipse RCP podcast ◦ Jeff.McAffer.mp3?source=podcasts  Book: Eclipse Rich Client Platform ◦ By Jeff McAffer and Jean-Michel Lemieux ◦ Addison-Wesley Professional ◦ Attention: Second Edition planned for June Lars Vogel 4/22/2009