elk
elk copied to clipboard
Eclipse Layout Kernel - Automatic layout for Java applications.
There's a conceptual problem with the layout option defaults. Each layouter gets its own ``*Options`` class to access individual layout options. Using that class, a proper default value is returned...
There seems to be a problem with the way multiple layout runs are triggered. The easiest way to do so is to invoke one of the `DiagramLayoutEngine`s `invokeLayout(...)` methods and...
In ELK Layered we have three priority options: ``` org.eclipse.elk.layered.priority.shortness org.eclipse.elk.layered.priority.straightness org.eclipse.elk.layered.priority.direction ``` All three can be used to make it _more likely_ that an edge is short, straight, or...
Due to the changes introduced in pull request #192, a mechanism to register layout option types (that implement `IDataObject`) should be added to the melk language, e.g.: ``` type KVector...
There's a method in the `RecursiveGraphLayoutEngine` that explicitly computes and sets the `hierarchyHandling` layout option for all hierarchical nodes. This may be problematic when using a layout provider directly. The...
To support `IProperty#getDefault()` for types such as `KVector` or `LinkedList`, the types are registered with the `ElkReflect` class. The registration of many types happens in the constructor of the `LayoutMetaDataService`....
As suggested in #325 an `ILayoutSetup` could specify if it requires the UI thread to access the domain model elements (both during creation of the layout graph and during application...
Given the following graph: ~~~ algorithm: layered node n { layout [ size: 20, 20 ] portConstraints: FIXED_SIDE portLabels.placement: INSIDE port p { ^port.side: SOUTH label "long label" } }...
When placing port labels outside, the `SPACE_EFFICIENT_PORT_LABELS` option causes the labels of outermost north and south ports to be placed "outside of the port area", if that makes sense. This...
Hyperedges with multiple sources and targets distributed over several layers are not always routed as well as possible. Consider the following example:  The `wakeUsec`...