Interface: DvtDiagramLayoutContext

Oracle® JavaScript Extension Toolkit (JET)
7.1.0

F18183-01

Signature:

interface DvtDiagramLayoutContext<K1, K2, D1 extends ojDiagram.Node<K1>|any, D2 extends ojDiagram.Link<K2, K1>|any>

QuickNav


PREVIEW: This is a preview API. Preview APIs are production quality, but can be changed on a major version without a deprecation path.

DvtDiagramLayoutContext

Version:
  • 7.1.0
Since:
  • 3.0
Module:
  • ojdiagram

Module usage

See JET Module Loading for an overview of module usage within JET.

Typescript Import Format
//To use this interface, import as below.
import {DvtDiagramLayoutContext} from "ojs/ojdiagram";
Generic Parameters
ParameterDescription
K1Type of key of the nodeData dataprovider
K2Type of key of the linkData dataprovider
D1Type of data from the nodeData dataprovider
D2Type of data from the linkData dataprovider

JET In Typescript

A detailed description of working with JET elements and classes in your typescript project can be found at: JET Typescript Usage.

Pluggable layout code must conform to the pluggable layout contract. The following steps outline a simple pluggable layout.

  1. Diagram calls layout engine with layout context.
  2. 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()
  3. 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
  4. 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
x number x-coordinate
y number y-coordinate
w number width
h number height
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
Properties:
Name Type Description
x number x-coordinate
y number y-coordinate
w number width
h number height
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.
Properties:
Name Type Description
type string Event type - "add", "remove" or "change".
data Object Event payload object for the event - see EventType for event details.
Since:
  • 4.0.0
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.
Properties:
Name Type Description
x number x-coordinate
y number y-coordinate
w number width
h number height
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

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
Properties:
Name Type Description
x number x-coordinate
y number y-coordinate
w number width
h number height
Returns:
Type
void