Hi,

We are happy to announce GT Mondrian, a graph visualization engine built on top 
of Bloc.

It is similar to the original Mondrian and the Mondrian from Roassal, but it is 
different in that it is built directly out of Bloc elements. This is 
interesting because it allows us to combine typical widgets with 
visualizations. The other interesting thing about it is that it validates the 
design of Bloc: right now, the implementation has 509 lines of code (excluding 
graph-specific layouts). The goal is to make visualization a first class 
citizen and an integral part of the IDE.

The key ingredient that made this happen is that Bloc can now treat graph 
layouts, such as tree or force based, behave under the same rules as typical 
widget layouts, such as grid or flow. The challenge comes from the fact that a 
graph layout depends on the notion of edges between elements, and we did not 
want to have elements know about edges in the core of Bloc.

The solution was to split the typical edge implementation in graph 
visualization libraries into two distinct concepts:
        • Line is an element that draws the connections.
        • Edge defines constraints imposed by connections between elements.
 
Thus, edges form constraints, and constraints are what layouts deal with. That 
is one reason why elements in bloc have the ability of defining layout-specific 
constraints. Using this, we can nicely define edges between elements as a 
plugin to Bloc, but still be able to connect arbitrary elements. What's more, 
it turns out that we need constraints for other layouts as well. For example, 
an element in a grid layout might specify the span.
 
The API of GT Mondrian is similar to the one from Roassal, but there are a few 
differences as well. These are described in the Pillar documentation available 
in the GitHub repo.

The best way to experience GT Mondrian and its documentation is to load the 
GToolkit as described here:
https://github.com/feenkcom/gtoolkit

If you download the GT code through Iceberg, the documentation can be 
experienced live by inspecting:
'./pharo-local/iceberg/feenkcom/gtoolkit-visualizer/doc/mondrian/index.pillar' 
asFileReference
 

 




 
Cheers,
The feenk team


--
www.tudorgirba.com
www.feenk.com

"Quality cannot be an afterthought."

Reply via email to