diff --git a/demos/demo-simple-flow/index.tsx b/demos/demo-simple-flow/index.tsx
index f4a8a7c..bb6d0d8 100644
--- a/demos/demo-simple-flow/index.tsx
+++ b/demos/demo-simple-flow/index.tsx
@@ -3,7 +3,6 @@ import {
DiagramModel,
DefaultNodeModel,
LinkModel,
- DefaultPortModel,
DiagramWidget
} from "../../src/main";
import * as React from "react";
@@ -18,32 +17,24 @@ export default () => {
//3-A) create a default node
var node1 = new DefaultNodeModel("Node 1", "rgb(0,192,255)");
- var port1 = node1.addPort(new DefaultPortModel(false, "out-1", "OUT"));
- node1.x = 100;
- node1.y = 100;
+ var port1 = node1.addOutPort('Out')
+ node1.setPosition(100,100);
//3-B) create another default node
var node2 = new DefaultNodeModel("Node 2", "rgb(192,255,0)");
- var port2 = node2.addPort(new DefaultPortModel(true, "in-1", "IN"));
- node2.x = 400;
- node2.y = 100;
+ var port2 = node2.addInPort('In')
+ node2.setPosition(400, 100);
//3-C) link the 2 nodes together
- var link1 = new LinkModel();
- link1.setSourcePort(port1);
- link1.setTargetPort(port2);
+ var link1 = port1.link(port2);
//3-D) create an orphaned node
var node3 = new DefaultNodeModel("Node 3", "rgb(0,192,255)");
- var port3 = node3.addPort(new DefaultPortModel(false, "out-1", "OUT"));
- node3.x = 100;
- node3.y = 200;
+ node3.addOutPort('Out');
+ node3.setPosition(100,200);
//4) add the models to the root graph
- model.addNode(node1);
- model.addNode(node2);
- model.addNode(node3);
- model.addLink(link1);
+ model.addAll(node1, node2, node3, link1);
//5) load model into engine
engine.setDiagramModel(model);
diff --git a/demos/demo-smart-routing/index.tsx b/demos/demo-smart-routing/index.tsx
index 664ef4c..67c9ae5 100644
--- a/demos/demo-smart-routing/index.tsx
+++ b/demos/demo-smart-routing/index.tsx
@@ -7,8 +7,8 @@ import {
DiagramWidget
} from "../../src/main";
import * as React from "react";
-import { DemoWorkspaceWidget } from "../.helpers/DemoWorkspaceWidget";
-import { action } from "@storybook/addon-actions";
+import {DemoWorkspaceWidget} from "../.helpers/DemoWorkspaceWidget";
+import {action} from "@storybook/addon-actions";
export default () => {
// setup the diagram engine
@@ -21,41 +21,27 @@ export default () => {
// create four nodes in a way that straight links wouldn't work
const node1 = new DefaultNodeModel("Node A", "rgb(0,192,255)");
const port1 = node1.addPort(new DefaultPortModel(false, "out-1", "Out"));
- node1.x = 340;
- node1.y = 350;
+ node1.setPosition(340, 350);
+
const node2 = new DefaultNodeModel("Node B", "rgb(255,255,0)");
const port2 = node2.addPort(new DefaultPortModel(false, "out-1", "Out"));
- node2.x = 240;
- node2.y = 80;
+ node2.setPosition(240, 80);
const node3 = new DefaultNodeModel("Node C", "rgb(192,255,255)");
const port3 = node3.addPort(new DefaultPortModel(true, "in-1", "In"));
- node3.x = 540;
- node3.y = 180;
+ node3.setPosition(540, 180);
const node4 = new DefaultNodeModel("Node D", "rgb(192,0,255)");
const port4 = node4.addPort(new DefaultPortModel(true, "in-1", "In"));
- node4.x = 95;
- node4.y = 185;
+ node4.setPosition(95, 185);
const node5 = new DefaultNodeModel("Node E", "rgb(192,255,0)");
- const port5 = node5.addPort(new DefaultPortModel(true, "in-1", "In"));
- node5.x = 250;
- node5.y = 180;
+ node5.setPosition(250, 180);
+
// linking things together
- const link1 = new LinkModel();
- link1.setSourcePort(port1);
- link1.setTargetPort(port4);
- const link2 = new LinkModel();
- link2.setSourcePort(port2);
- link2.setTargetPort(port3);
+ const link1 = port1.link(port4);
+ const link2 = port2.link(port3);
// add all to the main model
- model.addNode(node1);
- model.addNode(node2);
- model.addNode(node3);
- model.addNode(node4);
- model.addNode(node5);
- model.addLink(link1);
- model.addLink(link2);
+ model.addAll(node1, node2, node3, node4, node5, link1, link2);
// load model into engine and render
engine.setDiagramModel(model);
@@ -72,7 +58,11 @@ export default () => {
}
>
-
+
);
};
diff --git a/src/defaults/widgets/DefaultLinkWidget.tsx b/src/defaults/widgets/DefaultLinkWidget.tsx
index 0f77c0f..434258d 100644
--- a/src/defaults/widgets/DefaultLinkWidget.tsx
+++ b/src/defaults/widgets/DefaultLinkWidget.tsx
@@ -47,6 +47,14 @@ export class DefaultLinkWidget extends React.Component {
if (
!event.shiftKey &&
@@ -110,6 +118,7 @@ export class DefaultLinkWidget extends React.Component {
if (!this.props.diagramEngine.isModelLocked(this.props.link)) {
event.preventDefault();
@@ -172,16 +181,6 @@ export class DefaultLinkWidget extends React.Component