public interface IIncrementalHintsFactory
Incremental hints can be used for specifying that a subset of nodes (called incremental nodes) should be added to an existing graph layout. A layer hint specifies that both, a node's layer and its position within the layer should be determined by the algorithm. A sequence hint specifies that the algorithm should consider the current layer of a node while its position within the layer should be freely determined by the algorithm.
Information about incremental hints is provided by a IDataProvider
registered with
the graph with key HierarchicLayout.INCREMENTAL_HINTS_DPKEY
.
An instance of a class implementing this interface can be obtained through method
HierarchicLayout.createIncrementalHintsFactory()
.
Modifier and Type | Method and Description |
---|---|
Object |
createIncrementalGroupHint(Object forItemId)
|
Object |
createLayerIncrementallyHint(Object forNodeId)
|
Object |
createSequenceIncrementallyHint(Object forItemId)
|
Object |
createUseExactCoordinatesHint(Object forNodeId)
|
Object |
createUseExactLayerCoordinatesHint(Object forNodeId)
|
Object |
createUseExactSequenceCoordinatesHint(Object forNodeId)
|
Object createIncrementalGroupHint(Object forItemId)
Object
for a group Node
that should be inserted
incrementally during the layering phase.
The group will be placed on a suitable position. The descendants of the group may be associated with hints created by
methods createLayerIncrementallyHint(Object)
, createSequenceIncrementallyHint(Object)
or this method
(if the descendant is an inner group).
All hints of the descendants of a group are interpreted relative to the group node. Descendants without hints maintain their relative order within the group node (but not with elements outside the group).
The positions of groups without incremental hints depend on the position of their descendants (i.e., the group is not interpreted as fixed - it is simply ignored).
createUseExactCoordinatesHint(Object)
, createUseExactSequenceCoordinatesHint(Object)
and
createUseExactLayerCoordinatesHint(Object)
).forItemId
- the group node to be inserted incrementallyObject
that can be interpreted as a hint by HierarchicLayoutCore
Object createLayerIncrementallyHint(Object forNodeId)
Object
for a Node
that should be inserted incrementally
during the layering phase.
This will place the node in a suitable layer, possibly creating new layers.
Neighbors of this node may be also marked such that they are laid out incrementally. This makes it possible to incrementally add whole subgraphs to the current layout.
forNodeId
- the node to be layered and sequenced incrementallyObject
that can be interpreted as a hint by HierarchicLayoutCore
Object createSequenceIncrementallyHint(Object forItemId)
Object
for a Node
or Edge
that should be inserted incrementally during the sequencing phase.
This will prevent the layering from being changed.
The Node
will be placed on an already existing layer
that is determined by the Layerer
implementation, i.e. "from sketch". Adjacent edges will automatically be rerouted optimally.
forItemId
- the node or edge to be sequenced/inserted incrementallyObject
that can be interpreted as a hint by HierarchicLayoutCore
Object createUseExactCoordinatesHint(Object forNodeId)
Object
for a Node
that should be inserted incrementally into
the graph on its exact current position.
The node will be placed in an already existing layer
that is
determined by the layerer
implementation.
The position within its layer will be determined by its current position.
forNodeId
- the node to be placed on its exact current positionObject
that can be interpreted as a hint by HierarchicLayoutCore
createUseExactSequenceCoordinatesHint(Object)
,
createUseExactLayerCoordinatesHint(Object)
,
SimplexNodePlacer.setExactPlacement(boolean)
Object createUseExactLayerCoordinatesHint(Object forNodeId)
Object
for a Node
that should be inserted incrementally into
the graph on its exact current layer position.
The node will be placed in an already existing layer
that is
determined by the layerer
on the position
that it occupies initially. The position within its layer will be determined by a INodePlacer
instance.
forNodeId
- the node to be placed on its exact current layer positionObject
that can be interpreted as a hint by HierarchicLayoutCore
createUseExactCoordinatesHint(Object)
,
createUseExactSequenceCoordinatesHint(Object)
,
SimplexNodePlacer.setExactPlacement(boolean)
Object createUseExactSequenceCoordinatesHint(Object forNodeId)
Object
for a Node
that should be inserted incrementally into
the graph on its exact current sequence position.
The node will be placed in an already existing layer
that is
determined by the layerer
on the position
that is considered best for its layer. The position within the sequence of its layer will be determined by its current
coordinates.
forNodeId
- the node to be placed on its exact current sequence positionObject
that can be interpreted as a hint by HierarchicLayoutCore
createUseExactCoordinatesHint(Object)
,
createUseExactLayerCoordinatesHint(Object)
,
SimplexNodePlacer.setExactPlacement(boolean)