Usage
Signature:
interface DvtDiagramLayoutContext<K1, K2, D1 extends ojDiagram.Node<K1>|any, D2 extends ojDiagram.Link<K2, K1>|any>
Generic Parameters
Parameter Description K1 Type of key of the nodeData dataprovider K2 Type of key of the linkData dataprovider D1 Type of data from the nodeData dataprovider D2 Type of data from the linkData dataprovider
Typescript Import Format
//To use this interface, import as below.
import {DvtDiagramLayoutContext} from "ojs/ojdiagram";
For additional information visit:
Pluggable layout code must conform to the pluggable layout contract. The following steps outline a simple pluggable layout.
- Diagram calls layout engine with layout context.
- Layout engine loops over nodes using getNodeCount and getNodeByIndex()
- layout engine gets dimensions of node by calling getBounds()
- layout engine sets position on node by calling setPosition()
- Layout engine loops over links using getLinkCount and getLinkByIndex()
- layout engine gets start and end nodes by calling getStartId()/getEndId() on a link object
- layout engine analyzes nodes position and dimensions by calling getPosition() and getBounds() on each node and finds connection points for the link start/end
- layout engine creates a link path by calling setPoints() on a link object
- Diagram applies node positions from layout context
The DvtDiagramLayoutContext interface defines the context for a layout call.
Methods
-
getCommonContainer(nodeId1, nodeId2) : {(K1|null)}
-
The function retrieves nearest common ancestor container for two nodes.
Parameters:
Name Type Description nodeId1
K1 first node id nodeId2
K1 second node id Returns:
Id for the first common ancestor container or null for top level diagram
- Type
- (K1|null)
-
getComponentSize : {{x: number, y: number, w: number, h: number}}
-
Get the size of the Diagram.
Properties:
Name Type Description h
number height w
number width x
number x-coordinate y
number y-coordinate Returns:
An object containing properties of the diagram size
- Type
- {x: number, y: number, w: number, h: number}
-
getCurrentViewport : {{x: number, y: number, w: number, h: number}}
-
Get the current viewport used by the component in the layout's coordinate system for the diagram
- Deprecated:
-
Since Description 13.0.0
The getCurrentViewportport method has been deprecated, please use the panZoomState object on the component.
Properties:
Name Type Description h
number height w
number width x
number x-coordinate y
number y-coordinate Returns:
An object containing properties of the current viewport
- Type
- {x: number, y: number, w: number, h: number}
-
getEventData : {Object}
-
Gets event data object. Values can be retrieved from the object using 'type' and 'data' keys.
Deprecated:
Since Description 7.1.0
The function is supported with DiagramDataSource. Use data providers instead. - Since:
- 4.0.0
Properties:
Name Type Description data
Object Event payload object for the event - see EventType for event details. type
string Event type - "add", "remove" or "change". Returns:
event data object
- Type
- Object
-
getLinkById(id) : {DvtDiagramLayoutContextLink<K1, K2, D2>}
-
Get a link context by id.
Parameters:
Name Type Description id
K1 id of link context to get Returns:
- Type
- DvtDiagramLayoutContextLink<K1, K2, D2>
-
getLinkByIndex(index) : {DvtDiagramLayoutContextLink<K1, K2, D2>}
-
Get a link context by index.
Parameters:
Name Type Description index
number index of link context to get Returns:
- Type
- DvtDiagramLayoutContextLink<K1, K2, D2>
-
getLinkCount : {number}
-
Get the number of links to layout.
Returns:
- Type
- number
-
getNodeById(id) : {DvtDiagramLayoutContextNode<K1,D1>}
-
Get a node context by id.
Parameters:
Name Type Description id
K1 id of node context to get Returns:
- Type
- DvtDiagramLayoutContextNode<K1,D1>
-
getNodeByIndex(index) : {DvtDiagramLayoutContextNode<K1,D1>}
-
Get a node context by index.
Parameters:
Name Type Description index
number index of node context to get Returns:
- Type
- DvtDiagramLayoutContextNode<K1,D1>
-
getNodeCount : {number}
-
Get the number of nodes to layout.
Returns:
- Type
- number
-
getViewport : {{x: number, y: number, w: number, h: number}}
-
Get the viewport the component should use after the layout, in the layout's coordinate system.
- Deprecated:
-
Since Description 13.0.0
The getViewport method has been deprecated, please use the panZoomState object on the component.
Properties:
Name Type Description h
number height w
number width x
number x-coordinate y
number y-coordinate Returns:
An object containing properties of the viewport
- Type
- {x: number, y: number, w: number, h: number}
-
isLocaleR2L : {boolean}
-
Get whether the reading direction for the locale is right-to-left.
Returns:
- Type
- boolean
-
setPanZoomState(panZoomState) : {void}
-
Set the pan/zoom state the component should use after the layout.
Parameters:
Name Type Description panZoomState
{ zoom: number | null, centerX: number | null, centerY: number | null} An object containing properties of the panZoomState that the component should use after the layout Properties:
Name Type Description centerX
number | null The x coordinate of the center of the viewport in the layout coordinate space. If undefined, the content will be centered horizontally. centerY
number | null The y coordinate of the center of the viewport in the layout coordinate space. If undefined, the content will be centered vertically. zoom
number | null Specifies the zoom value of the diagram. The specified value should be between the diagram minZoom and maxZoom values. A value of 0 indicates that the diagram should be zoomed in as much as possible while keeping all content visible. Returns:
- Type
- void
-
setViewport(viewport) : {void}
-
Set the viewport the component should use after the layout, in the layout's coordinate system.
Parameters:
Name Type Description viewport
{x: number, y: number, w: number, h: number} An object containing properties of the viewport that the component should use after the layout - Deprecated:
-
Since Description 13.0.0
The setViewport method has been deprecated, please use the setPanZoomState method instead.
Properties:
Name Type Description h
number height w
number width x
number x-coordinate y
number y-coordinate Returns:
- Type
- void