import * as React from "react"; import * as _ from "lodash"; import {TrayWidget} from "./TrayWidget"; import {DiagramWidget} from "../../../src/main"; import {Application} from "../Application"; import {TrayItemWidget} from "./TrayItemWidget"; import {DefaultNodeModel,DefaultPortModel} from "../../../src/main"; export interface BodyWidgetProps { app: Application; } export interface BodyWidgetState { } /** * @author Dylan Vorster */ export class BodyWidget extends React.Component { constructor(props: BodyWidgetProps) { super(props); this.state = { } } render() { return (
Storm React Diagrams - Demo 5
{ var data = JSON.parse(event.dataTransfer.getData('storm-diagram-node')); var nodesCount = _.keys(this.props.app.getDiagramEngine().getDiagramModel().getNodes()).length; var node = null; if(data.type === 'in'){ node = new DefaultNodeModel("Node "+(nodesCount+1),"rgb(192,255,0)"); node.addPort(new DefaultPortModel(true,"in-1","In")); }else{ node = new DefaultNodeModel("Node "+(nodesCount+1),"rgb(0,192,255)"); node.addPort(new DefaultPortModel(false,"out-1","Out")); } var points = this.props.app.getDiagramEngine().getRelativeMousePoint(event); node.x = points.x; node.y = points.y; this.props.app.getDiagramEngine().getDiagramModel().addNode(node); this.forceUpdate(); }} onDragOver={(event) => { event.preventDefault(); }} >
) } }