Our approach to diagramming is to create graphical views automatically from a data source, e.g. a DSL or a JSON / XML representation.
With powerful tools such as Sprotty and ELK, implementing a one-directional transformation from the chosen data source to a diagram model can be done in a breeze. Editing operations can be realized as well, though we recommend to avoid bidirectional mappings and apply modifications directly to the data source.
To learn more about our approach watch this conference presentation (you can find a summary and slides here).
Eclipse Sprotty is designed to embed visualizations in VS Code, Eclipse Theia, or other web-based IDEs or web applications. As opposed to traditional, model-view-controller-based diagram frameworks, Sprotty has a reactive architecture with a virtual DOM and a uni-directional flow of information, which helps immensely to keep a clean and maintainable code base. It's highly customizable, has built-in animations and supports a client/server scenario, e.g. to extend language servers with supportive diagrams. The power of Sprotty becomes most evident when it comes to filtering and highlighting views: such use cases can be implemented with low effort and astounding performance. Sprotty includes adapters for Theia, VS Code, the Eclipse Layout Kernel (ELK), Xtext, and soon Langium. Sprotty is particularly successful in the Eclipse ecosystem, e.g. as the basis of GLSP and Obeo Cloud Platform.
We can support you to build graphical views backed by Sprotty and add features such as filtering, highlighting and editing.
Eclipse Layout Kernel (ELK)
This graph layout library enables the creation of fully automatic views of your models. Given an input model, ELK produces two-dimensional coordinates for all graph elements: node, port and label positions as well as edge routes. In conjunction with a diagramming tool such as Sprotty, you can get a highly efficient solution for generating graphical representations. The underlying layout algorithms are backed by numerous scientific results, most notably from the Kiel University.
However, the successful employment of an ELK-based layout requires fine-grained configuration of the algorithm parameters. Therefore, we are ready to support you in finding an optimal configuration for your use case, circumvent potential limitations of the layout algorithms and boost the expressiveness of your visualizations.