Siemens Corporate Research Prec+Goals Requirements Concept Implementation Results+Metrics Demo How to develop an editor for the Eclipse RCP? Ulrich Dinger.

Slides:



Advertisements
Similar presentations
Component Development for the Component Description Framework (CDF) Training Dr.-Ing. Ulrich Dinger.
Advertisements

IAAnalyzer: Towards a Model-Driven Modeling and Analysis Framework for C ONNECT(ors) Massimo Tivoli, University of L’Aquila (UNIVAQ)
© 2008 by Borland Software Corp; made available under the EPL v1.0 | 17 March 2008 Introduction to the Graphical Modeling Framework Artem Tikhomirov, Borland.
Elevator Simulator DSL Project Presented by Miguel Garzón and Stéphane Leblanc 1.
Introduction to Eclipse plugin development for CSU 670 course project, Selector language (Xaspect) editor plugin implementation.
Visual Designer for JasperReports
Goals Give you a feeling of what Eclipse is.
Copyright  2005 Symbian Software Ltd. 1 Lars Kurth Technology Architect, Core Toolchain The Template Engine CDT Developer Conference, Oct 2005.
MDA and QVT in Together Architect 2006  Pavel Kobiakov, Borland Software Corporation  06 December 2005.
1 Eclipse Example Guide Example : Java Editor. 2 Introduction l The Java Editor example : »demonstrates the standard features available for custom text.
User Interface Android Applications. Activities An activity presents a visual user interface. Each activity is given a default window to draw in. The.
CS 330 Programming Languages 09 / 13 / 2007 Instructor: Michael Eckmann.
UML CASE Tool. ABSTRACT Domain analysis enables identifying families of applications and capturing their terminology in order to assist and guide system.
Presented by IBM developer Works ibm.com/developerworks/ 2006 January – April © 2006 IBM Corporation. Making the most of Creating Eclipse plug-ins.
Whole Platform Tesi di Dottorato di: RICCARDO SOLMI Università degli Studi di Bologna Facoltà di scienze matematiche, fisiche e naturali Corso di Dottorato.
4.01B Authoring Languages and Web Authoring Software 4.01 Examine webpage development and design.
CRSX plug-in development. Prerequisites Software and Libraries Eclipse RCP (3.5 or higher) –Go –Select.
TextBe Project and Issues JGS. Current Pipeline Implementation T2M Parser Generator Kit (EMFText) EMF model of BT (‘.bt’) M2M Atlas Transformation Language.
ANTLR.
Chapter 3 Navigating a Project Goals & Objectives 1.Get familiar with the navigation of the project. How is everything structured? What settings can you.
SOIS Dictionary of Terms Issues. Preface This discussion is about how to support a dictionary of terms, not so much about what is in the dictionary. This.
Overview of Previous Lesson(s) Over View  ASP.NET Pages  Modular in nature and divided into the core sections  Page directives  Code Section  Page.
© 2005 by IBM; made available under the EPL v1.0 | March 1, 2005 Tim deBoer Gorkem Ercan Extend WTP Server Tools for your.
JBoss Developer Studio. JBoss Developer Studio provides a certified open source development environment that includes and integrates: Eclipse Eclipse.
Copyright © IBM Corp., All rights reserved; made available under the EPL v1.0 | March 20, 2008 | Short Talk Standards based systems management: An.
NiagaraAX Framework Version 3.8 Feature Overview
Parser-Driven Games Tool programming © Allan C. Milne Abertay University v
MDE Model Driven Engineering Xavier Blanc Université Pierre et Marie Curie
Tools for Diagrammatic Specifications Stian Skjerveggen Supervisors: Yngve Lamo, Adrian Rutle, Uwe Egbert Wolter.
LLRP GUI Client User Guide
Introduction to Eclipse Plug-in Development. Who am I? Scott Kellicker Java, C++, JNI, Eclipse.
Workbench Overview Dwight Deugo Nesa Matic
2nd TTCN-3 User Conference, June The TTCN-3 Metamodel – A Basis for Tool Integration Ina Schieferdecker TU Berlin/Fraunhofer Fokus Hajo Eichler,
Designing Interface Components. Components Navigation components - the user uses these components to give instructions. Input – Components that are used.
Copyright © 2009 AtlanMod. All Rights Reserved Frédéric Jouault & Hugo Bruneliere AtlanMod team (INRIA & Mines de Nantes) Possible Benefits of Bridging.
Hyper/J and Concern Manipulation Environment. The need for AOSD tools and development environment AOSD requires a variety of tools Life cycle – support.
Introducing the Eclipse Visual Editor David Gallardo.
WEB BASED DATA TRANSFORMATION USING XML, JAVA Group members: Darius Balarashti & Matt Smith.
Selected Topics in Software Engineering - Distributed Software Development.
MDHT Architecture Diagram Rama Ramakrishnan 1. Introduction The intent is to capture the high level architecture of the MDHT. The following diagrams are.
CHAPTER TWO INTRODUCTION TO VISUAL BASIC © Prepared By: Razif Razali 1.
Verified Network Configuration. Verinec Goals Device independent network configuration Automated testing of configuration Automated distribution of configuration.
Evaluation of Development Tools for Domain-Specific Modeling Languages D. Amyot, H. Farah, J.-F. Roy with contributions from Y. Chu and N. Janmohamed SAM.
© Siemens AG, CT SE 2, Iris Groher, Markus Voelter C O R P O R A T E T E C H N O L O G Y XWeave – Models and Aspects in Concert 1 XWeave Models.
Introduction to XML This presentation covers introductory features of XML. What XML is and what it is not? What does it do? Put different related technologies.
ModelPedia Model Driven Engineering Graphical User Interfaces for Web 2.0 Sites Centro de Informática – CIn/UFPe ORCAS Group Eclipse GMF Fábio M. Pereira.
First Venture into the Android World Chapter 1 Part 2.
CS 157B: Database Management Systems II February 11 Class Meeting Department of Computer Science San Jose State University Spring 2013 Instructor: Ron.
User Profiling using Semantic Web Group members: Ashwin Somaiah Asha Stephen Charlie Sudharshan Reddy.
EMEA Beat Schwegler Architect Microsoft EMEA HQ Ingo Rammer Principal Consultant thinktecture
August 2003 At A Glance The IRC is a platform independent, extensible, and adaptive framework that provides robust, interactive, and distributed control.
Plug-in Architectures Presented by Truc Nguyen. What’s a plug-in? “a type of program that tightly integrates with a larger application to add a special.
Chapter 5 Introduction To Form Builder. Lesson A Objectives  Display Forms Builder forms in a Web browser  Use a data block form to view, insert, update,
4.01B Authoring Languages and Web Authoring Software 4.01 Examine webpage development and design.
Object Oriented Analysis and Design 1 Chapter 9 From Design to Implementation  Implementation Model  Forward, Reverse, and Round-Trip Engineering  Mapping.
Concepts and Realization of a Diagram Editor Generator Based on Hypergraph Transformation Author: Mark Minas Presenter: Song Gu.
LBSC 690 Session 4 Programming. Languages How do we learn a language? Learn by listening Then reading Then writing How do we teach programming? Learn.
Eclipse Outlines: What is Eclipse? How to Install Eclipse? Eclipse Platform Eclipse Plug in Eclipse UML JUnit in Eclipse. References Latifa AlAbdulkarim.
1 Eclipse Example Guide Example : Java Editor. 2 Introduction l The Java Editor example : »demonstrates the standard features available for custom text.
Plug-In Architecture Pattern. Problem The functionality of a system needs to be extended after the software is shipped The set of possible post-shipment.
Editing and Debugging Mumps with VistA and the Eclipse IDE Joel L. Ivey, Ph.D. Dept. of Veteran Affairs OI&T, Veterans Health IT Infrastructure & Security.
HTML5 and CSS3 Illustrated Unit B: Getting Started with HTML.
*DT Project Model Leo Treggiari Intel Corp. Dec, 2005.
Goals Give you a feeling of what Eclipse is.
COSC-4840 Software Engineering
LifeGuide From the perspective of the other side of the team
Execute your Processes
MDT OCL 1.3 Mini-deck June 10, 2009.
Software Architecture & Design
HTML5 and CSS3 Illustrated Unit B: Getting Started with HTML
Presentation transcript:

Siemens Corporate Research Prec+Goals Requirements Concept Implementation Results+Metrics Demo How to develop an editor for the Eclipse RCP? Ulrich Dinger

Siemens Corporate Research Prec+Goals Requirements Concept Implementation Results+Metrics Demo Ulrich Dinger 2/19 10/7/2015 Outline Preconditions + Goal Requirements Concept Implementation/Used Tools + Frameworks Result + Metrics ( Demo )?

Siemens Corporate Research Prec+Goals Requirements Concept Implementation Results+Metrics Demo Ulrich Dinger 3/19 10/7/2015 Preconditions + Goals OIS = Configuration Language for some SBT devices Existing YACC BNF grammar (~6500 LOC) Existing ‘specification’ document (basically the BNF of the grammar) (~10 pages, incl. some mistakes) Goal Port to Java/Eclipse RCP Time frame 3 weeks version 2:2 installation "i1" { point_types { ois_point_type 1 "b" { orders { sis_order 2 "cd" true == true user_group 1 basic { reset_timer "abc" } space "1" "2" "3" { points { sis_point_type 1 "ab" { component "component" space "space 1" sis_point_type 1 "2" = point_name }

Siemens Corporate Research Prec+Goals Requirements Concept Implementation Results+Metrics Demo Ulrich Dinger 4/19 10/7/2015 Requirements (1/2) For the first time in history of IT the requirements were precisely specified by the customer: Basically 2 (!!!) requirements: 1.“Well, some parts of the language may be represented in a tree/hierarchical view…” 2.“… others not.” 3.Should be a nice looking Eclipse RCP editor.

Siemens Corporate Research Prec+Goals Requirements Concept Implementation Results+Metrics Demo Ulrich Dinger 5/19 10/7/2015 Requirements (2/2) 1.“Should be a nice looking Eclipse RCP Editor” –gear to Eclipse Forms style 2.“Some parts represented in a tree” 3.“Others not.” –Property fields 4.Support of original syntax (incl. highlighting, …) 5.Synchronization between two views NFR -Interationalizeability -Extensibility of the editor

Siemens Corporate Research Prec+Goals Requirements Concept Implementation Results+Metrics Demo Ulrich Dinger 6/19 10/7/2015 Concept OIS CL grammar OIS CL files describes OIS CL meta model OIS xCL files describes OIS CL parser code generate read code for meta model generate read/write instantiatetransform Plain text editor for the original syntax Auto completion Syntax highlighting Tree based editor for models manipulate synchronize JET, QVT, …

Siemens Corporate Research Prec+Goals Requirements Concept Implementation Results+Metrics Demo Ulrich Dinger 7/19 10/7/2015 Implementation (1/4) Model Driven Software Development Eclipe Modeling Framework [3] –EMF: Ecore Modeling language + Code generation Ecore2Java (load/save models from/to XML/I) –EMF.Edit: Framework for creating editors for EMF models –EMF.Codegen: Model 2 code generator (JET) Disadvantages –Editors use Eclipse properties view (against one of the requirements) –Problem with large models + packages –adaptability if special problems arise  So I only used the ecore modeling language + another generator + editor framework

Siemens Corporate Research Prec+Goals Requirements Concept Implementation Results+Metrics Demo Ulrich Dinger 8/19 10/7/2015 Implementation (2/4) Flexible XML based languages (FXL) project [5] –Developed at Siemens CT SE 2 since 2003; open source (source forge) –Basically an XML generator framework Transformation language (TL) on top of XSLT Pipelining/workflows of transformations –Additional package: transformation of Ecore models to Java Code + generation of customizable editors corresponds to EMF code generation + EMF.edit

Siemens Corporate Research Prec+Goals Requirements Concept Implementation Results+Metrics Demo Ulrich Dinger 9/19 10/7/2015 Implementation (3/4): Tools ANTLR Editor Ecore Editor FXL Generator Configuration TL Editor + TL2XSLT Transformation Eclipse RCP itself for the ‘glue’

Siemens Corporate Research Prec+Goals Requirements Concept Implementation Results+Metrics Demo Ulrich Dinger 10/19 10/7/2015 Implementation (4/4): Editor customization Only generic editor generated  customization needed Internationalization –Via corresponding.i18n file (framework contains editor for that) Customization –Images -> copy to ‘icons’ directory + provision of LabelProvider class –Tree node texts ->.i18n file + provision of LabelProvider class –special customization interface of the framework allowing Validation of property values Specification of custom editors (for properties or complete tree nodes) Adding of context menu items Changing layout and used widgets (text fields, …) …

Siemens Corporate Research Prec+Goals Requirements Concept Implementation Results+Metrics Demo Ulrich Dinger 11/19 10/7/2015 Result

Siemens Corporate Research Prec+Goals Requirements Concept Implementation Results+Metrics Demo Ulrich Dinger 12/19 10/7/2015 Metrics Time line (15 days): Creating meta model via Ecore3 days (Re) writing the grammar in ANTLR7 days Transformation xCL2CL1 day Integration with the Editor framework + adaptation3 days Code ois.ecore 42 kB / 138 classes ois.g (ANTLR) 60 kB / 2300 LOC + ~100 (JUnit) Test cases 1000 LOC Java classes (partly hand written)20 / 1785 LOC Transformation xCL2CL (cov. by JUnit tc) 24 kB / 1200 LOC ( XSLT 57 kB / 1500 LOC ) Generated code (meta model, …) 4.62 MB / 115k LOC

Siemens Corporate Research Prec+Goals Requirements Concept Implementation Results+Metrics Demo Ulrich Dinger 13/19 10/7/2015 Open Issues 3 weeks is too short to provide a satisfying product. Still open issues: Auto completion/syntax highlighting… in text boxes some custom editors for certain parts of the model –e.g. graphical editors for expressions Resorting of the tree (now it’s mainly the AST of the language) … Horizontal layout of the editor (tree on top, properties on bottom), like in plugin.xml editor (upgrade the framework) … Comments are lost during the parsing of the CL files.

Siemens Corporate Research Prec+Goals Requirements Concept Implementation Results+Metrics Demo Ulrich Dinger 14/19 10/7/2015 Demo how to develop an editor from scratch using Ecore & the FXL framework stuff Requirements: Eclipse 3.2.x (3.1.x should also work) Java 1.4.x or 1.5.x Installed EMF (for standard Ecore editor) FXL Framework FXL Generator plug in Editor Development Ulrich Dinger

Siemens Corporate Research Prec+Goals Requirements Concept Implementation Results+Metrics Demo Ulrich Dinger 15/19 10/7/2015 References [1]A.Hunt, D.Thomas: The Pragmatic Programmer, Addison-Wesley, 2000 [2]Eclipse – An open development environment [3]Eclipse Modeling Framework (EMF) [4]ANTLR Parser Generator [5]Flexible XML based languages (FXL)