280 likes | 409 Views
Leveraging Eclipse For Desktop Applications. Why Pilz Use Eclipse As An Application Platform James Sugrue Pilz Ireland. Pilz Ireland What We Do. Specialists in machine safety Develop desktop software for Pilz industrial automation products Experts in Usability Automation tool suite.
E N D
Leveraging Eclipse For Desktop Applications Why Pilz Use Eclipse As An Application Platform James Sugrue Pilz Ireland
Pilz IrelandWhat We Do • Specialists in machine safety • Develop desktop software for Pilz industrial automation products • Experts in Usability • Automation tool suite
SWT – Standard Widget ToolkitPilz 2002 • Prototype was written with Swing • Moved to SWT for production • Platform level widgets • Better performance • JFace provides enhanced components and utilities
Drivers for ChangeWhy Move to RCP • Fast Rich Client Application Development • Stable, Tested Platform • Easily Extendable via Plug-ins • Rich Set of Features
What Is OSGi? A Brief Introduction • Component system for Java • More than just implementation code • Metadata to describe • Module and who provides it • Dependencies • What the module provides • Avoid “classpath hell” and hidden dependencies
An Illustration • Eclipse Drawing Tool Plug-in • Invoke through menu item • Data model to represent drawing • Graphical model (RCP/Plug - in Development) (EMF) (GEF / GMF)
Eclipse Modelling FrameworkCreate New Model XML Schema UML Annotated Java Ecore Model
Eclipse Modelling FrameworkSummary • Simple models mixed with hand-written code • Powerful Code Generation Tools • Built-in change notification mechanism • Validation of model constraints • User interface for domain objects
Graphical Editing FrameworkProviding A View • Based on Draw2D • Takes any model as input • Provides graphical viewers • Need to wire into EMF notifications manually
Graphical Modelling FrameworkCreate A Graphical Editor For Your Model • Import EMF Model • Graphical Definition • Tooling Definition • Mapping Definition • Generate Code
Architectural Benefits Why Eclipse is Right for Pilz • Equinox with support for bundles and extensibility • UI Extensibility (Menus, Toolbar, Views,…) • Support for updating bundles • Jobs API to perform background tasks and showing progress • Extensive Amount Of Frameworks • Similar Goals For The Future • It’s Free