SlideShare a Scribd company logo
Eclipse
Layout
Kernel


Jan Köhnlein
ENHANCE GRAPHICAL EDITORS
WHY LAYOUT?
TIME SPENT GRAPHICAL EDITING
3 Source: Klauske, Dziobek (2010)
70%
…developing
…moving things around
70% 30%
BIG DIAGRAMS
feedPaperVelocity
Scale
Scale4
ZeroOrderHold
MultiplyDivide2
MultiplyDivide5
MultiplyDivide
ll
AddSubtract3
WHAT IS LAYOUT?
• Graph layout consists of
• Node positioning
• Edge routing with crossing minimization
• Label placement
• Involves aesthetics, suggestion, and domain knowledge
• Auto-layout: Almost all algorithmic steps are NP-hard
ECLIPSE LAYOUT KERNEL
• Originates in the KIELER project (Uni Kiel)
• High-quality layout algorithms
• Numerous options for fine-tuning
• Flexible infrastructure for integration
• Open-source at Eclipse
• Current release 0.3.0
ELK’S ARCHITECTURE
ElkGraph
Diagram
Viewer/Editor
Layout
Algorithm
Layout
Connector
ELK GRAPH
THE CORE OF THE KERNEL
ELK GRAPH
THE CORE OF THE KERNEL
Node
Edge
ELK GRAPH
THE CORE OF THE KERNEL
INITIAL
INTERM.
ALTERN.
FINAL
Label
FINISH
SPEED UP
SLOW DOWN
ELK GRAPH
THE CORE OF THE KERNEL
Port
ELK GRAPH
THE CORE OF THE KERNEL
Hierarchical
Node
ELK GRAPH
THE CORE OF THE KERNEL
Properties
algorithm = layered
spacing = 15
direction = right
routing = splines
min. width = 35
ELK GRAPH
THE CORE OF THE KERNEL
Position
Coordinates
y = 133
x = 172
Bend
Point
DEMO
https://rtsys.informatik.uni-kiel.de/elklive
ELK LAYERED
THE ALGORITHM SIDE
10
12
3
4
5
6
7
8
9
Numerous variants:
orthogonal, splines, hierarchical, ports, etc.
ELK TREE
THE ALGORITHM SIDE
10 1
2
3
4
5
6
7
8
9
ELK FORCE
THE ALGORITHM SIDE
10
1
2
3
4
5
6
7
8
9
GRAPHVIZ
THE ALGORITHM SIDE
����
����
�����
����
�����
��������
����
����
����
����
����
���� �����
�����
�������
����
����
����
����
����
����
����
http://graphviz.org
OGDF
THE ALGORITHM SIDE
http://ogdf.net
10
12
3
4
5
67
89
1
23
4
5
6
r
10
1
2
3
4
5
6
7
8
9
LAYOUT OPTIONS
THE ALGORITHM SIDE
DEMO
ELK in Sirius
HOW TO INVOKE A LAYOUT
THE APPLICATION SIDE
• The low-level way:
‣ Build an ElkGraph yourself and pass it to a layout algorithm
‣ Copy the resulting coordinates to your diagram
layoutAlgorithm.layout(graph, progressMonitor);
HOW TO INVOKE A LAYOUT
THE APPLICATION SIDE
DiagramLayoutEngine.invokeLayout(
// The editor or view that contains the diagram
workbenchPart,
// An optional selection inside the diagram
diagramPart,
// Parameters of the layout invocation,
// including algorithm options
parameters
);
• The high-level way:
HOW TO CONNECT YOUR DIAGRAM
THE APPLICATION SIDE
public interface IDiagramLayoutConnector {
/**
* Build a graph from the given diagram.
*/
LayoutMapping buildLayoutGraph(
IWorkbenchPart workbenchPart,
Object diagramPart);
/**
* Apply the computed layout back to the diagram.
*/
void applyLayout(
LayoutMapping mapping,
IPropertyHolder settings);
}
HOW TO CONNECT YOUR DIAGRAM
THE APPLICATION SIDE
• Create a Google Guice Module that binds your layout connector
• For Sirius, inherit from the GmfDiagramLayoutConnector
• Create a Setup class that creates an Injector from your module
• Register the Setup class with the extension point
org.eclipse.elk.core.service.layoutConnectors
http://www.eclipse.org/elk
Credits to
Miro Spönemann (TypeFox)
Christoph Daniel Schulze (CAU)
No animals were harmed
during the making of this talk.

More Related Content

PPTX
SiriusCon17 - Eclipse Sirius at a glance
PDF
SiriusCon 2017 - 5 years of modelisation, from a prototype to an industrial g...
PDF
[SiriusCon 2018] Eclipse Sirius applied to a RAD Tool in Japan
PPTX
TampereJS June 2018 - Easy 3d drawing with three.js
PDF
[SiriusCon 2018] A Bird's Eye View on Eclipse Sirius
PDF
A Smart Development Environment for Infrastructure as Code
PDF
What every Eclipse developer should know about EMF
PDF
[SiriusCon 2018] Closing session - Live Community Survey
SiriusCon17 - Eclipse Sirius at a glance
SiriusCon 2017 - 5 years of modelisation, from a prototype to an industrial g...
[SiriusCon 2018] Eclipse Sirius applied to a RAD Tool in Japan
TampereJS June 2018 - Easy 3d drawing with three.js
[SiriusCon 2018] A Bird's Eye View on Eclipse Sirius
A Smart Development Environment for Infrastructure as Code
What every Eclipse developer should know about EMF
[SiriusCon 2018] Closing session - Live Community Survey

What's hot (20)

PDF
Building machine learning applications locally with Spark — Joel Pinho Lucas ...
PDF
LocationTech Tour Event Hamburg, 23rd Oct. 2014
PDF
Building machine learning service in your business — Eric Chen (Uber) @PAPIs ...
PPTX
Python and GIS: Improving Your Workflow
PDF
Resume_JiaLIU
PPTX
Getting started with Innoslate - Systems Engineering
PPTX
Introduction to Aneka, Aneka Model is explained
PDF
Resume 18 Jan
PDF
[SiriusCon 2018] Fluent and Live Collaboration on a Shared Repository with Ob...
PDF
Moving a Fraud-Fighting Random Forest from scikit-learn to Spark with MLlib, ...
PPTX
Image retrieval
PDF
Scalable Automatic Machine Learning in H2O
PDF
SiriusCon2016 - Integrating Textual and Graphical Editing in the POOSL IDE
PDF
Scala eXchange 2013 Report
PDF
Scalable Automatic Machine Learning in H2O
PPTX
Scalding intro 20141125
PDF
Dive into POOSL : Simulate your systems!
PPTX
Content based image retrieval with LIRe
PDF
Seamless End-to-End Production Machine Learning with Seldon and MLflow
PDF
“Houston, we have a model...” Introduction to MLOps
Building machine learning applications locally with Spark — Joel Pinho Lucas ...
LocationTech Tour Event Hamburg, 23rd Oct. 2014
Building machine learning service in your business — Eric Chen (Uber) @PAPIs ...
Python and GIS: Improving Your Workflow
Resume_JiaLIU
Getting started with Innoslate - Systems Engineering
Introduction to Aneka, Aneka Model is explained
Resume 18 Jan
[SiriusCon 2018] Fluent and Live Collaboration on a Shared Repository with Ob...
Moving a Fraud-Fighting Random Forest from scikit-learn to Spark with MLlib, ...
Image retrieval
Scalable Automatic Machine Learning in H2O
SiriusCon2016 - Integrating Textual and Graphical Editing in the POOSL IDE
Scala eXchange 2013 Report
Scalable Automatic Machine Learning in H2O
Scalding intro 20141125
Dive into POOSL : Simulate your systems!
Content based image retrieval with LIRe
Seamless End-to-End Production Machine Learning with Seldon and MLflow
“Houston, we have a model...” Introduction to MLOps
Ad

Similar to The Eclipse Layout Kernel sirius con 2017 (20)

PPT
Osgis sept2012 cartogrammar
PPTX
2D graphics
PDF
GEF(4) Dot Oh Dot Oh
PDF
Introduction of openGL
KEY
CATiled Layer - Melbourne Cocoheads February 2012
KEY
Implementing CATiledLayer
PDF
Creating Dynamic Charts With JFreeChart
PDF
The Next Generation Eclipse Graphical Editing Framework
PPTX
BLM UT Mobile Data Collection
PDF
GEF4 - Sightseeing Mars
KEY
Project Progress
PPTX
LocationTech Projects
PPTX
Cloud computing_processing frameworks
PDF
Bouncing ball content management system project report.pdf
PPTX
UML for Aspect Oriented Design
PDF
Infinum Android Talks #04 - Google Maps Android API utility library
PDF
Infinum Android Talks #04 - Google Maps Android API utility library
PDF
DepthInsight Sdk introduction
PDF
Track A-2 基於 Spark 的數據分析
PDF
HP - Jerome Rolia - Hadoop World 2010
Osgis sept2012 cartogrammar
2D graphics
GEF(4) Dot Oh Dot Oh
Introduction of openGL
CATiled Layer - Melbourne Cocoheads February 2012
Implementing CATiledLayer
Creating Dynamic Charts With JFreeChart
The Next Generation Eclipse Graphical Editing Framework
BLM UT Mobile Data Collection
GEF4 - Sightseeing Mars
Project Progress
LocationTech Projects
Cloud computing_processing frameworks
Bouncing ball content management system project report.pdf
UML for Aspect Oriented Design
Infinum Android Talks #04 - Google Maps Android API utility library
Infinum Android Talks #04 - Google Maps Android API utility library
DepthInsight Sdk introduction
Track A-2 基於 Spark 的數據分析
HP - Jerome Rolia - Hadoop World 2010
Ad

More from Dr. Jan Köhnlein (20)

PDF
A New Approach Towards Web-based IDEs
PDF
Responsiveness
PDF
Getting rid of backtracking
PDF
Graphical Views For Xtext With FXDiagram
PDF
PDF
Diagrams, Xtext and UX
PDF
PDF
Xtext, diagrams and ux
PDF
Diagram Editors - The FXed Generation
PDF
Code Generation With Xtend
PDF
Graphical Views For Xtext
PDF
The Xtext Grammar Language
PDF
Eclipse Diagram Editors - An Endangered Species
PDF
Java DSLs with Xtext
PDF
DSLs for Java Developers
PDF
A fresh look at graphical editing
PDF
A fresh look at graphical editing
KEY
A fresh look at graphical editing
KEY
Pragmatic DSL Design with Xtext, Xbase and Xtend 2
PDF
What's Cooking in Xtext 2.0
A New Approach Towards Web-based IDEs
Responsiveness
Getting rid of backtracking
Graphical Views For Xtext With FXDiagram
Diagrams, Xtext and UX
Xtext, diagrams and ux
Diagram Editors - The FXed Generation
Code Generation With Xtend
Graphical Views For Xtext
The Xtext Grammar Language
Eclipse Diagram Editors - An Endangered Species
Java DSLs with Xtext
DSLs for Java Developers
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
What's Cooking in Xtext 2.0

Recently uploaded (20)

PDF
medical staffing services at VALiNTRY
PPTX
L1 - Introduction to python Backend.pptx
PDF
Nekopoi APK 2025 free lastest update
PDF
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
PPTX
history of c programming in notes for students .pptx
PPTX
CHAPTER 2 - PM Management and IT Context
PDF
PTS Company Brochure 2025 (1).pdf.......
PPTX
Introduction to Artificial Intelligence
PDF
top salesforce developer skills in 2025.pdf
PPTX
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
PPTX
ai tools demonstartion for schools and inter college
PDF
Understanding Forklifts - TECH EHS Solution
PDF
System and Network Administration Chapter 2
PDF
Navsoft: AI-Powered Business Solutions & Custom Software Development
PDF
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
PDF
Design an Analysis of Algorithms II-SECS-1021-03
PDF
How Creative Agencies Leverage Project Management Software.pdf
PDF
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
PDF
How to Migrate SBCGlobal Email to Yahoo Easily
PDF
Upgrade and Innovation Strategies for SAP ERP Customers
medical staffing services at VALiNTRY
L1 - Introduction to python Backend.pptx
Nekopoi APK 2025 free lastest update
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
history of c programming in notes for students .pptx
CHAPTER 2 - PM Management and IT Context
PTS Company Brochure 2025 (1).pdf.......
Introduction to Artificial Intelligence
top salesforce developer skills in 2025.pdf
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
ai tools demonstartion for schools and inter college
Understanding Forklifts - TECH EHS Solution
System and Network Administration Chapter 2
Navsoft: AI-Powered Business Solutions & Custom Software Development
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
Design an Analysis of Algorithms II-SECS-1021-03
How Creative Agencies Leverage Project Management Software.pdf
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
How to Migrate SBCGlobal Email to Yahoo Easily
Upgrade and Innovation Strategies for SAP ERP Customers

The Eclipse Layout Kernel sirius con 2017