spraying - a quick way to create graphitis eclipsecon 2012 · • prof. dr. marko boger (founder,...

26
© itemis AG © itemis AG Karsten Thoms, itemis Spraying - a quick way to create Graphitis EclipseCon 2012 Dienstag, 27. März 2012

Upload: others

Post on 24-Jul-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Spraying - a quick way to create Graphitis EclipseCon 2012 · • Prof. Dr. Marko Boger (Founder, University of Konstanz, Founder of Gentleware) • Fabio Filipelli & Markus Gerhart

© itemis AG

© itemis AG

Karsten Thoms, itemis

Spraying - a quick way to create GraphitisEclipseCon 2012

Dienstag, 27. März 2012

Page 2: Spraying - a quick way to create Graphitis EclipseCon 2012 · • Prof. Dr. Marko Boger (Founder, University of Konstanz, Founder of Gentleware) • Fabio Filipelli & Markus Gerhart

http://code.google.com/a/eclipselabs.org/p/spray/downloads/detail?name=SprayCodeGeneration2012.pdf

Dienstag, 27. März 2012

Page 3: Spraying - a quick way to create Graphitis EclipseCon 2012 · • Prof. Dr. Marko Boger (Founder, University of Konstanz, Founder of Gentleware) • Fabio Filipelli & Markus Gerhart

Graphiti

3

• Framework approach

• Easy to understand (relatively...)• Hides complexity of GEF, Draw2D, ...• Only few core concepts• Everything is a Feature• Providers

Dienstag, 27. März 2012

Page 4: Spraying - a quick way to create Graphitis EclipseCon 2012 · • Prof. Dr. Marko Boger (Founder, University of Konstanz, Founder of Gentleware) • Fabio Filipelli & Markus Gerhart

Graphiti

4

• Much code, often repetitive implementation

• Per mapped meta class• at least AddFeature, CreateFeature, UpdateFeature

• Remove, Delete, Move, Layout, DrillDown, ...

• Registration in FeatureProvider

• Configure palette in ToolBehaviourProvider

• Repeat this e.g. for 10 meta classes...

Dienstag, 27. März 2012

Page 5: Spraying - a quick way to create Graphitis EclipseCon 2012 · • Prof. Dr. Marko Boger (Founder, University of Konstanz, Founder of Gentleware) • Fabio Filipelli & Markus Gerhart

Spray a Graphiti!

Dienstag, 27. März 2012

Page 6: Spraying - a quick way to create Graphitis EclipseCon 2012 · • Prof. Dr. Marko Boger (Founder, University of Konstanz, Founder of Gentleware) • Fabio Filipelli & Markus Gerhart

© itemis AG

Vision

Develop Visual DSL Editors

as easy as Textual DSLsDienstag, 27. März 2012

Page 7: Spraying - a quick way to create Graphitis EclipseCon 2012 · • Prof. Dr. Marko Boger (Founder, University of Konstanz, Founder of Gentleware) • Fabio Filipelli & Markus Gerhart

A brief history of time

7

• Project specific solution for Visual Insurance Product Modeling• CodeGeneration Conference

Cambridge, July 2011• Similar approaches presented• Joined forces in BoF session

• Founded project at EclipseLabs• Sep’11: initial code basis committed (Spray 0.1.0)• Improved code basis, DSLs, tooling, added DSLs, ...• Version 0.4.0 released March 2012

Dienstag, 27. März 2012

Page 8: Spraying - a quick way to create Graphitis EclipseCon 2012 · • Prof. Dr. Marko Boger (Founder, University of Konstanz, Founder of Gentleware) • Fabio Filipelli & Markus Gerhart

The project team

8

• Jos Warmer (Founder, Warmer IT)

• Karsten Thoms (Founder, itemis) • Prof. Dr. Marko Boger (Founder, University of

Konstanz, Founder of Gentleware)• Fabio Filipelli & Markus Gerhart (Shapes & Style DSL,

University of Konstanz)

• Jörg Reichert (itemis)

Dienstag, 27. März 2012

Page 9: Spraying - a quick way to create Graphitis EclipseCon 2012 · • Prof. Dr. Marko Boger (Founder, University of Konstanz, Founder of Gentleware) • Fabio Filipelli & Markus Gerhart

Tycho

EEFSWTBot

Zest

GEF

Dienstag, 27. März 2012

Page 10: Spraying - a quick way to create Graphitis EclipseCon 2012 · • Prof. Dr. Marko Boger (Founder, University of Konstanz, Founder of Gentleware) • Fabio Filipelli & Markus Gerhart

Spray Code Generator

Dienstag, 27. März 2012

Page 11: Spraying - a quick way to create Graphitis EclipseCon 2012 · • Prof. Dr. Marko Boger (Founder, University of Konstanz, Founder of Gentleware) • Fabio Filipelli & Markus Gerhart

Spray DSL

Dienstag, 27. März 2012

Page 12: Spraying - a quick way to create Graphitis EclipseCon 2012 · • Prof. Dr. Marko Boger (Founder, University of Konstanz, Founder of Gentleware) • Fabio Filipelli & Markus Gerhart

Spray DSL

12

Dienstag, 27. März 2012

Page 13: Spraying - a quick way to create Graphitis EclipseCon 2012 · • Prof. Dr. Marko Boger (Founder, University of Konstanz, Founder of Gentleware) • Fabio Filipelli & Markus Gerhart

Spray DSL

13

Dienstag, 27. März 2012

Page 14: Spraying - a quick way to create Graphitis EclipseCon 2012 · • Prof. Dr. Marko Boger (Founder, University of Konstanz, Founder of Gentleware) • Fabio Filipelli & Markus Gerhart

Spray DSL

14

Dienstag, 27. März 2012

Page 15: Spraying - a quick way to create Graphitis EclipseCon 2012 · • Prof. Dr. Marko Boger (Founder, University of Konstanz, Founder of Gentleware) • Fabio Filipelli & Markus Gerhart

Spray DSL

15

Dienstag, 27. März 2012

Page 16: Spraying - a quick way to create Graphitis EclipseCon 2012 · • Prof. Dr. Marko Boger (Founder, University of Konstanz, Founder of Gentleware) • Fabio Filipelli & Markus Gerhart

Shapes

Dienstag, 27. März 2012

Page 17: Spraying - a quick way to create Graphitis EclipseCon 2012 · • Prof. Dr. Marko Boger (Founder, University of Konstanz, Founder of Gentleware) • Fabio Filipelli & Markus Gerhart

Defining Shapes

17

The Shape

Dienstag, 27. März 2012

Page 18: Spraying - a quick way to create Graphitis EclipseCon 2012 · • Prof. Dr. Marko Boger (Founder, University of Konstanz, Founder of Gentleware) • Fabio Filipelli & Markus Gerhart

Defining Shapes - with Graphiti

18

Dienstag, 27. März 2012

Page 19: Spraying - a quick way to create Graphitis EclipseCon 2012 · • Prof. Dr. Marko Boger (Founder, University of Konstanz, Founder of Gentleware) • Fabio Filipelli & Markus Gerhart

Defining Shapes - with Spray

19

Dienstag, 27. März 2012

Page 20: Spraying - a quick way to create Graphitis EclipseCon 2012 · • Prof. Dr. Marko Boger (Founder, University of Konstanz, Founder of Gentleware) • Fabio Filipelli & Markus Gerhart

Connections defined in Shape DSL

20

(c) University of Konstanz

Dienstag, 27. März 2012

Page 21: Spraying - a quick way to create Graphitis EclipseCon 2012 · • Prof. Dr. Marko Boger (Founder, University of Konstanz, Founder of Gentleware) • Fabio Filipelli & Markus Gerhart

Anchors

21

(c) University of Konstanz

Dienstag, 27. März 2012

Page 22: Spraying - a quick way to create Graphitis EclipseCon 2012 · • Prof. Dr. Marko Boger (Founder, University of Konstanz, Founder of Gentleware) • Fabio Filipelli & Markus Gerhart

Shapes created with Shape DSL

22

(c) University of Konstanz

Dienstag, 27. März 2012

Page 23: Spraying - a quick way to create Graphitis EclipseCon 2012 · • Prof. Dr. Marko Boger (Founder, University of Konstanz, Founder of Gentleware) • Fabio Filipelli & Markus Gerhart

Styles

Dienstag, 27. März 2012

Page 24: Spraying - a quick way to create Graphitis EclipseCon 2012 · • Prof. Dr. Marko Boger (Founder, University of Konstanz, Founder of Gentleware) • Fabio Filipelli & Markus Gerhart

© itemis AG

Styles

24

• Styles can be reused

• Styles can be inherited• Style attributes can be

overridden• Nested Shapes inherit

style from container Shape

(c) University of Konstanz

Dienstag, 27. März 2012

Page 25: Spraying - a quick way to create Graphitis EclipseCon 2012 · • Prof. Dr. Marko Boger (Founder, University of Konstanz, Founder of Gentleware) • Fabio Filipelli & Markus Gerhart

Future PlansComplex Diagrams: BPMN, UML, PetriNet

Evolve DSLs

Leverage power of the used tools

Use Spray as reference forXtext, Xtend, Graphiti, Tychousage

Dienstag, 27. März 2012

Page 26: Spraying - a quick way to create Graphitis EclipseCon 2012 · • Prof. Dr. Marko Boger (Founder, University of Konstanz, Founder of Gentleware) • Fabio Filipelli & Markus Gerhart

© itemis AG

itemis AG | Am Brambusch 15-24 | D-44536 Lünen | www.itemis.de

Karsten Thoms

Software Architekt

[email protected]

http://kthoms.wordpress.com

Twitter/Skype: kthoms

Dienstag, 27. März 2012