Submit Search
Upload
Combining Text and Graphics in Eclipse-based Modeling Tools
•
Download as KEY, PDF
•
9 likes
•
2,797 views
Dr. Jan Köhnlein
Follow
Lightning talk at EclipseCon 2010, Santa Clara, CA
Read less
Read more
Technology
Report
Share
Report
Share
1 of 79
Download now
Recommended
Map reduce模型
Map reduce模型
dhlzj
Coding in Style
Coding in Style
scalaconfjp
Pydiomatic
Pydiomatic
rik0
Python Objects
Python Objects
Quintagroup
mysqlnd query cache plugin: user-defined storage handler
mysqlnd query cache plugin: user-defined storage handler
Ulf Wendel
Introducing Reactive Machine Learning
Introducing Reactive Machine Learning
Jeff Smith
Unpack mechanism of the msgpack-c
Unpack mechanism of the msgpack-c
Takatoshi Kondo
Word processor in the classroom
Word processor in the classroom
Luphiie Lyaa
Recommended
Map reduce模型
Map reduce模型
dhlzj
Coding in Style
Coding in Style
scalaconfjp
Pydiomatic
Pydiomatic
rik0
Python Objects
Python Objects
Quintagroup
mysqlnd query cache plugin: user-defined storage handler
mysqlnd query cache plugin: user-defined storage handler
Ulf Wendel
Introducing Reactive Machine Learning
Introducing Reactive Machine Learning
Jeff Smith
Unpack mechanism of the msgpack-c
Unpack mechanism of the msgpack-c
Takatoshi Kondo
Word processor in the classroom
Word processor in the classroom
Luphiie Lyaa
Upgrade your presentations
Upgrade your presentations
keekee92
GNU Image Manipulation Program
GNU Image Manipulation Program
Chrisha Nicole Acal
Introducing R
Introducing R
nzfauna
In cloud galleries comparison
In cloud galleries comparison
AdryMorci
Justmeans power point
Justmeans power point
justmeanscsr
Unit1 module4 em
Unit1 module4 em
Mish Cempron
Introduction to technical writing
Introduction to technical writing
Adam Tablante
Animate pp1
Animate pp1
Victoria University
Mail merge
Mail merge
Rhon Rhonz
Creating mail merge
Creating mail merge
Nico Bereber
Contextualized online search and research skills
Contextualized online search and research skills
Jonathan Jr Marcelino
How to hack computers how to h joel tope
How to hack computers how to h joel tope
Sonny Dolinen
Unit1 module1 em
Unit1 module1 em
Mish Cempron
Lesson 2 Online Safety, Security, Ethics and Etiquette
Lesson 2 Online Safety, Security, Ethics and Etiquette
Lea Rodriguez
Online Platform :Empowerment of technologies ICT
Online Platform :Empowerment of technologies ICT
Sonny Dolinen
Its all about Infographics
Its all about Infographics
Aditya Krishna
Xtext's new Formatter API
Xtext's new Formatter API
meysholdt
Dynamic Python
Dynamic Python
Chui-Wen Chiu
Ti1220 Lecture 7: Polymorphism
Ti1220 Lecture 7: Polymorphism
Eelco Visser
Ajax tutorial
Ajax tutorial
Kat Roque
Avoiding JavaScript Pitfalls Through Tree Hugging
Avoiding JavaScript Pitfalls Through Tree Hugging
zefhemel
Doc Parsers Api Cheatsheet 1 0
Doc Parsers Api Cheatsheet 1 0
Oleh Burkhay
More Related Content
Viewers also liked
Upgrade your presentations
Upgrade your presentations
keekee92
GNU Image Manipulation Program
GNU Image Manipulation Program
Chrisha Nicole Acal
Introducing R
Introducing R
nzfauna
In cloud galleries comparison
In cloud galleries comparison
AdryMorci
Justmeans power point
Justmeans power point
justmeanscsr
Unit1 module4 em
Unit1 module4 em
Mish Cempron
Introduction to technical writing
Introduction to technical writing
Adam Tablante
Animate pp1
Animate pp1
Victoria University
Mail merge
Mail merge
Rhon Rhonz
Creating mail merge
Creating mail merge
Nico Bereber
Contextualized online search and research skills
Contextualized online search and research skills
Jonathan Jr Marcelino
How to hack computers how to h joel tope
How to hack computers how to h joel tope
Sonny Dolinen
Unit1 module1 em
Unit1 module1 em
Mish Cempron
Lesson 2 Online Safety, Security, Ethics and Etiquette
Lesson 2 Online Safety, Security, Ethics and Etiquette
Lea Rodriguez
Online Platform :Empowerment of technologies ICT
Online Platform :Empowerment of technologies ICT
Sonny Dolinen
Its all about Infographics
Its all about Infographics
Aditya Krishna
Viewers also liked
(16)
Upgrade your presentations
Upgrade your presentations
GNU Image Manipulation Program
GNU Image Manipulation Program
Introducing R
Introducing R
In cloud galleries comparison
In cloud galleries comparison
Justmeans power point
Justmeans power point
Unit1 module4 em
Unit1 module4 em
Introduction to technical writing
Introduction to technical writing
Animate pp1
Animate pp1
Mail merge
Mail merge
Creating mail merge
Creating mail merge
Contextualized online search and research skills
Contextualized online search and research skills
How to hack computers how to h joel tope
How to hack computers how to h joel tope
Unit1 module1 em
Unit1 module1 em
Lesson 2 Online Safety, Security, Ethics and Etiquette
Lesson 2 Online Safety, Security, Ethics and Etiquette
Online Platform :Empowerment of technologies ICT
Online Platform :Empowerment of technologies ICT
Its all about Infographics
Its all about Infographics
Similar to Combining Text and Graphics in Eclipse-based Modeling Tools
Xtext's new Formatter API
Xtext's new Formatter API
meysholdt
Dynamic Python
Dynamic Python
Chui-Wen Chiu
Ti1220 Lecture 7: Polymorphism
Ti1220 Lecture 7: Polymorphism
Eelco Visser
Ajax tutorial
Ajax tutorial
Kat Roque
Avoiding JavaScript Pitfalls Through Tree Hugging
Avoiding JavaScript Pitfalls Through Tree Hugging
zefhemel
Doc Parsers Api Cheatsheet 1 0
Doc Parsers Api Cheatsheet 1 0
Oleh Burkhay
F Files - Learnings from 3 years of Neos Support
F Files - Learnings from 3 years of Neos Support
Christian Müller
Modern C++
Modern C++
Richard Thomson
Code Generation for Azure with .net
Code Generation for Azure with .net
Marco Parenzan
VelocityGraph Introduction
VelocityGraph Introduction
Mats Persson
php&mysql with Ethical Hacking
php&mysql with Ethical Hacking
BCET
Introduction to Client-Side Javascript
Introduction to Client-Side Javascript
Julie Iskander
Ekeko Technology Showdown at SoTeSoLa 2012
Ekeko Technology Showdown at SoTeSoLa 2012
Coen De Roover
HexRaysCodeXplorer: object oriented RE for fun and profit
HexRaysCodeXplorer: object oriented RE for fun and profit
Alex Matrosov
Executing bpmn 2.0 with j bpm 3 or (at your option) any later version
Executing bpmn 2.0 with j bpm 3 or (at your option) any later version
camunda services GmbH
OpenCog Developer Workshop
OpenCog Developer Workshop
Ibby Benali
Serializing EMF models with Xtext
Serializing EMF models with Xtext
meysholdt
Xbase - Implementing Domain-Specific Languages for Java
Xbase - Implementing Domain-Specific Languages for Java
meysholdt
Extending the Xbase Typesystem
Extending the Xbase Typesystem
Sebastian Zarnekow
javascript-cheat-sheet-v1_1
javascript-cheat-sheet-v1_1
brecke
Similar to Combining Text and Graphics in Eclipse-based Modeling Tools
(20)
Xtext's new Formatter API
Xtext's new Formatter API
Dynamic Python
Dynamic Python
Ti1220 Lecture 7: Polymorphism
Ti1220 Lecture 7: Polymorphism
Ajax tutorial
Ajax tutorial
Avoiding JavaScript Pitfalls Through Tree Hugging
Avoiding JavaScript Pitfalls Through Tree Hugging
Doc Parsers Api Cheatsheet 1 0
Doc Parsers Api Cheatsheet 1 0
F Files - Learnings from 3 years of Neos Support
F Files - Learnings from 3 years of Neos Support
Modern C++
Modern C++
Code Generation for Azure with .net
Code Generation for Azure with .net
VelocityGraph Introduction
VelocityGraph Introduction
php&mysql with Ethical Hacking
php&mysql with Ethical Hacking
Introduction to Client-Side Javascript
Introduction to Client-Side Javascript
Ekeko Technology Showdown at SoTeSoLa 2012
Ekeko Technology Showdown at SoTeSoLa 2012
HexRaysCodeXplorer: object oriented RE for fun and profit
HexRaysCodeXplorer: object oriented RE for fun and profit
Executing bpmn 2.0 with j bpm 3 or (at your option) any later version
Executing bpmn 2.0 with j bpm 3 or (at your option) any later version
OpenCog Developer Workshop
OpenCog Developer Workshop
Serializing EMF models with Xtext
Serializing EMF models with Xtext
Xbase - Implementing Domain-Specific Languages for Java
Xbase - Implementing Domain-Specific Languages for Java
Extending the Xbase Typesystem
Extending the Xbase Typesystem
javascript-cheat-sheet-v1_1
javascript-cheat-sheet-v1_1
More from Dr. Jan Köhnlein
The Eclipse Layout Kernel sirius con 2017
The Eclipse Layout Kernel sirius con 2017
Dr. Jan Köhnlein
A New Approach Towards Web-based IDEs
A New Approach Towards Web-based IDEs
Dr. Jan Köhnlein
Responsiveness
Responsiveness
Dr. Jan Köhnlein
Getting rid of backtracking
Getting rid of backtracking
Dr. Jan Köhnlein
Graphical Views For Xtext With FXDiagram
Graphical Views For Xtext With FXDiagram
Dr. Jan Köhnlein
XRobots
XRobots
Dr. Jan Köhnlein
Diagrams, Xtext and UX
Diagrams, Xtext and UX
Dr. Jan Köhnlein
Scoping
Scoping
Dr. Jan Köhnlein
Xtext, diagrams and ux
Xtext, diagrams and ux
Dr. Jan Köhnlein
Diagram Editors - The FXed Generation
Diagram Editors - The FXed Generation
Dr. Jan Köhnlein
Code Generation With Xtend
Code Generation With Xtend
Dr. Jan Köhnlein
Graphical Views For Xtext
Graphical Views For Xtext
Dr. Jan Köhnlein
The Xtext Grammar Language
The Xtext Grammar Language
Dr. Jan Köhnlein
Eclipse Diagram Editors - An Endangered Species
Eclipse Diagram Editors - An Endangered Species
Dr. Jan Köhnlein
Java DSLs with Xtext
Java DSLs with Xtext
Dr. Jan Köhnlein
DSLs for Java Developers
DSLs for Java Developers
Dr. Jan Köhnlein
A fresh look at graphical editing
A fresh look at graphical editing
Dr. Jan Köhnlein
A fresh look at graphical editing
A fresh look at graphical editing
Dr. Jan Köhnlein
A fresh look at graphical editing
A fresh look at graphical editing
Dr. Jan Köhnlein
Pragmatic DSL Design with Xtext, Xbase and Xtend 2
Pragmatic DSL Design with Xtext, Xbase and Xtend 2
Dr. Jan Köhnlein
More from Dr. Jan Köhnlein
(20)
The Eclipse Layout Kernel sirius con 2017
The Eclipse Layout Kernel sirius con 2017
A New Approach Towards Web-based IDEs
A New Approach Towards Web-based IDEs
Responsiveness
Responsiveness
Getting rid of backtracking
Getting rid of backtracking
Graphical Views For Xtext With FXDiagram
Graphical Views For Xtext With FXDiagram
XRobots
XRobots
Diagrams, Xtext and UX
Diagrams, Xtext and UX
Scoping
Scoping
Xtext, diagrams and ux
Xtext, diagrams and ux
Diagram Editors - The FXed Generation
Diagram Editors - The FXed Generation
Code Generation With Xtend
Code Generation With Xtend
Graphical Views For Xtext
Graphical Views For Xtext
The Xtext Grammar Language
The Xtext Grammar Language
Eclipse Diagram Editors - An Endangered Species
Eclipse Diagram Editors - An Endangered Species
Java DSLs with Xtext
Java DSLs with Xtext
DSLs for Java Developers
DSLs for Java Developers
A fresh look at graphical editing
A fresh look at graphical editing
A fresh look at graphical editing
A fresh look at graphical editing
A fresh look at graphical editing
A fresh look at graphical editing
Pragmatic DSL Design with Xtext, Xbase and Xtend 2
Pragmatic DSL Design with Xtext, Xbase and Xtend 2
Recently uploaded
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
Fwdays
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
2toLead Limited
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
Commit University
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
Kalema Edgar
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
carlostorres15106
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
BookNet Canada
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
Sergiu Bodiu
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
hariprasad279825
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
Fwdays
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
charlottematthew16
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
Mark Billinghurst
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
Alfredo García Lavilla
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
BookNet Canada
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
ScyllaDB
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
Slibray Presentation
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
shyamraj55
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
Dubai Multi Commodity Centre
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
Lorenzo Miniero
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
charlottematthew16
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
Fwdays
Recently uploaded
(20)
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
Combining Text and Graphics in Eclipse-based Modeling Tools
1.
Combining Graphics and Text
in Modeling Tools Jan Köhnlein
2.
3.
GMF Graphical
4.
GMF
Graphical Xtext Textual
5.
GMF
Graphical Just two different views on the same thing Xtext Textual
6.
Synchronization
7.
Xtext
8.
Xtext
Textual Model Serializer Parser Node Model Ecore Model Instance
9.
Xtext
XtextResource Textual Model Serializer Parser Node Model Ecore Model Instance
10.
Xtext
XtextResource Textual Model Serializer Parser Node Model Ecore Model Instance getContents()
11.
Xtext
load(), save() XtextResource Textual Model Serializer Parser Node Model Ecore Model Instance getContents()
12.
Xtext
load(), save() XtextResource Textual Model Serializer Parser Node Model Ecore Model Instance FragmentProvider getContents() getURIFragment() getEObject()
13.
ResourceSet XtextResource
DiagramResource
14.
diagram
change ResourceSet XtextResource DiagramResource
15.
ResourceSet XtextResource
DiagramResource
16.
reparse() w/ errors
ResourceSet XtextResource DiagramResource
17.
ResourceSet XtextResource
DiagramResource
18.
ResourceSet XtextResource
DiagramResource Canonical EditPolicy
19.
ResourceSet XtextResource
DiagramResource Canonical EditPolicy
20.
ResourceSet XtextResource
DiagramResource Canonical EditPolicy
21.
Fi e l
od a M xtu le l Te ResourceSet ResourceSet XtextResource XtextResource DiagramResource
22.
Fi e l
od a M xtu le l Te ResourceSet ResourceSet XtextResource XtextResource DiagramResource
23.
Fi e l
od a M xtu le l Te ResourceSet ResourceSet XtextResource XtextResource DiagramResource
24.
Fi e l
od a M xtu le l Te ResourceSet ResourceSet XtextResource save() XtextResource DiagramResource
25.
Fi e l
od a M xtu le l Te ResourceSet ResourceSet XtextResource reload() XtextResource DiagramResource
26.
Fi e l
od a M xtu le l Te ResourceSet ResourceSet XtextResource reload() XtextResource DiagramResource
27.
Fi e l
od a M xtu le l Te ResourceSet ResourceSet XtextResource XtextResource DiagramResource
28.
Demo Time
29.
30.
Create a Diagram
31.
32.
33.
Save Diagram
34.
35.
36.
Open Textual Model
37.
38.
39.
Edit Textual Model
40.
41.
42.
Save Textual Model
43.
44.
45.
Edit Diagram
46.
47.
48.
Reorder Objects
49.
50.
51.
Diagram With Unsaved
Changes
52.
53.
54.
Try to Edit
Text
55.
56.
57.
Other Way Around...
58.
59.
60.
Navigation
61.
62.
63.
Popup Editor
64.
65.
Alignment
66.
grammar org.xtext.cg2009.Entities
with org.eclipse.xtext.common.Terminals generate entities "http://www.xtext.org/cg2009/Entities" Model : {Model} (entities += Entity)*; Entity returns Entity: 'entity' (name=ID)? ('extends' superType=[Entity])? '{' (properties+=Property)* '}'; Property: SimpleProperty | ReferenceProperty; SimpleProperty: 'property' (name=ID)? ':' type=('String'|'Number'|'Bool'); ReferenceProperty : (name=ID)? 'refs' ('one' | many?='many')? type=[Entity];
67.
grammar org.xtext.cg2009.Entities
with org.eclipse.xtext.common.Terminals Avoid empty generate entities "http://www.xtext.org/cg2009/Entities" models Model : {Model} (entities += Entity)*; Entity returns Entity: 'entity' (name=ID)? ('extends' superType=[Entity])? '{' (properties+=Property)* '}'; Property: SimpleProperty | ReferenceProperty; SimpleProperty: 'property' (name=ID)? ':' type=('String'|'Number'|'Bool'); ReferenceProperty : (name=ID)? 'refs' ('one' | many?='many')? type=[Entity];
68.
grammar org.xtext.cg2009.Entities
with org.eclipse.xtext.common.Terminals Avoid empty generate entities "http://www.xtext.org/cg2009/Entities" models Model : {Model} (entities += Entity)*; Entity returns Entity: 'entity' (name=ID)? ('extends' superType=[Entity])? '{' (properties+=Property)* '}'; Property: Cover mandatory SimpleProperty | ReferenceProperty; properties in SimpleProperty: validation 'property' (name=ID)? ':' type=('String'|'Number'|'Bool'); ReferenceProperty : (name=ID)? 'refs' ('one' | many?='many')? type=[Entity];
69.
grammar org.xtext.cg2009.Entities
with org.eclipse.xtext.common.Terminals Avoid empty generate entities "http://www.xtext.org/cg2009/Entities" Carefully select models Model : containment or cross {Model} (entities += Entity)*; references Entity returns Entity: 'entity' (name=ID)? ('extends' superType=[Entity])? '{' (properties+=Property)* '}'; Property: Cover mandatory SimpleProperty | ReferenceProperty; properties in SimpleProperty: validation 'property' (name=ID)? ':' type=('String'|'Number'|'Bool'); ReferenceProperty : (name=ID)? 'refs' ('one' | many?='many')? type=[Entity];
70.
Xtext
71.
Xtext
Implement a Formatter
72.
Xtext
Implement a Formatter Implement a FragmentProvider
73.
Xtext
Implement a Formatter Implement a FragmentProvider Implement a JavaValidator
74.
GMF
75.
GMF Initialize mandatory properties
76.
GMF
Initialize mandatory properties Avoid Phantom Nodes
77.
Add a transaction on
GMF load Initialize mandatory properties Avoid Phantom Nodes
78.
Glue Code • Prevent
conflicting modifications • Navigate • diagram ➜ text • text ➜ diagram (needs index) • Popup editor • Shipped as an Xtext example
79.
Thanks for your
attention! More information at www.itemis.de www.xtext.org koehnlein.blogspot.com
Editor's Notes
Download now