spraying - a quick way to create graphitis eclipsecon 2012 · • prof. dr. marko boger (founder,...
TRANSCRIPT
© itemis AG
© itemis AG
Karsten Thoms, itemis
Spraying - a quick way to create GraphitisEclipseCon 2012
Dienstag, 27. März 2012
http://code.google.com/a/eclipselabs.org/p/spray/downloads/detail?name=SprayCodeGeneration2012.pdf
Dienstag, 27. März 2012
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
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
Spray a Graphiti!
Dienstag, 27. März 2012
© itemis AG
Vision
Develop Visual DSL Editors
as easy as Textual DSLsDienstag, 27. März 2012
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
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
Tycho
EEFSWTBot
Zest
GEF
Dienstag, 27. März 2012
Spray Code Generator
Dienstag, 27. März 2012
Spray DSL
Dienstag, 27. März 2012
Spray DSL
12
Dienstag, 27. März 2012
Spray DSL
13
Dienstag, 27. März 2012
Spray DSL
14
Dienstag, 27. März 2012
Spray DSL
15
Dienstag, 27. März 2012
Shapes
Dienstag, 27. März 2012
Defining Shapes
17
The Shape
Dienstag, 27. März 2012
Defining Shapes - with Graphiti
18
Dienstag, 27. März 2012
Defining Shapes - with Spray
19
Dienstag, 27. März 2012
Connections defined in Shape DSL
20
(c) University of Konstanz
Dienstag, 27. März 2012
Anchors
21
(c) University of Konstanz
Dienstag, 27. März 2012
Shapes created with Shape DSL
22
(c) University of Konstanz
Dienstag, 27. März 2012
Styles
Dienstag, 27. März 2012
© 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
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
© itemis AG
itemis AG | Am Brambusch 15-24 | D-44536 Lünen | www.itemis.de
Karsten Thoms
Software Architekt
http://kthoms.wordpress.com
Twitter/Skype: kthoms
Dienstag, 27. März 2012