more refactoring

This commit is contained in:
Dylan Vorster
2018-04-27 16:17:20 +02:00
parent 91c1ee0169
commit d12220baa0
6 changed files with 33 additions and 50 deletions

View File

@@ -14,8 +14,8 @@ export class DefaultLabelModel extends LabelModel {
this.label = label;
}
deSerialize(ob, engine: DiagramEngine) {
super.deSerialize(ob, engine);
deSerialize(ob, engine: DiagramEngine, cache) {
super.deSerialize(ob, engine, cache);
this.label = ob.label;
}

View File

@@ -1,13 +1,9 @@
/**
* @author Dylan Vorster
*/
import { LinkModel, LinkModelListener } from "../../models/LinkModel";
import { BaseEvent } from "../../BaseEntity";
import * as _ from "lodash";
import { PointModel } from "../../models/PointModel";
import { DiagramEngine } from "../../DiagramEngine";
import { DefaultLabelModel } from "./DefaultLabelModel";
import { LabelModel } from "../../models/LabelModel";
import {BaseEvent} from "@projectstorm/react-canvas";
export interface DefaultLinkModelListener extends LinkModelListener {
colorChanged?(event: BaseEvent<DefaultLinkModel> & { color: null | string }): void;
@@ -35,8 +31,8 @@ export class DefaultLinkModel extends LinkModel<DefaultLinkModelListener> {
});
}
deSerialize(ob, engine: DiagramEngine) {
super.deSerialize(ob, engine);
deSerialize(ob, engine: DiagramEngine, cache) {
super.deSerialize(ob, engine, cache);
this.color = ob.color;
this.width = ob.width;
this.curvyness = ob.curvyness;

View File

@@ -1,6 +1,5 @@
import { DefaultPortModel } from "./DefaultPortModel";
import * as _ from "lodash";
import { DefaultPortModel } from "./DefaultPortModel";
import { NodeModel } from "../../models/NodeModel";
import { Toolkit } from "../../Toolkit";
import { DiagramEngine } from "../../DiagramEngine";
@@ -27,8 +26,8 @@ export class DefaultNodeModel extends NodeModel {
return this.addPort(new DefaultPortModel(false, Toolkit.UID(), label));
}
deSerialize(object, engine: DiagramEngine) {
super.deSerialize(object, engine);
deSerialize(object, engine: DiagramEngine, cache) {
super.deSerialize(object, engine, cache);
this.name = object.name;
this.color = object.color;
}

View File

@@ -9,14 +9,14 @@ export class DefaultPortModel extends PortModel {
label: string;
links: { [id: string]: DefaultLinkModel };
constructor(isInput: boolean, name: string, label: string = null, id?: string) {
super(name, "default", id);
constructor(isInput: boolean, name: string, label: string = null) {
super(name, "default");
this.in = isInput;
this.label = label || name;
}
deSerialize(object, engine: DiagramEngine) {
super.deSerialize(object, engine);
deSerialize(object, engine: DiagramEngine, cache) {
super.deSerialize(object, engine, cache);
this.in = object.in;
this.label = object.label;
}

View File

@@ -1,44 +1,34 @@
import { PortModel } from "./PortModel";
import * as _ from "lodash";
import { DiagramEngine } from "../DiagramEngine";
import { DiagramModel } from "./DiagramModel";
import {BaseModel, BaseListener} from "@projectstorm/react-canvas";
import {Rectangle, CanvasElementModel} from "@projectstorm/react-canvas";
export class NodeModel extends BaseModel<DiagramModel, BaseListener> {
x: number;
y: number;
export class NodeModel extends CanvasElementModel {
dimensions: Rectangle;
extras: any;
ports: { [s: string]: PortModel };
// calculated post rendering so routing can be done correctly
width: number;
height: number;
constructor(nodeType: string = "default") {
super(nodeType);
this.x = 0;
this.y = 0;
this.dimensions = new Rectangle(0,0,0,0);
this.extras = {};
this.ports = {};
}
setPosition(x, y) {
//store position
let oldX = this.x;
let oldY = this.y;
_.forEach(this.ports, port => {
_.forEach(port.getLinks(), link => {
let point = link.getPointForPort(port);
point.x = point.x + x - oldX;
point.y = point.y + y - oldY;
});
});
this.x = x;
this.y = y;
setDimensions(dimensions: Rectangle) {
this.dimensions = dimensions;
}
getDimensions(): Rectangle {
return this.dimensions;
}
getSelectedEntities() {
let entities = super.getSelectedEntities();
let entities = [];
if(this.isSelected()){
entities.push(this);
}
// add the points of each link that are selected here
if (this.isSelected()) {
@@ -61,8 +51,8 @@ export class NodeModel extends BaseModel<DiagramModel, BaseListener> {
//deserialize ports
_.forEach(ob.ports, (port: any) => {
let portOb = engine.getFactory(port.type).getNewInstance();
portOb.deSerialize(port, engine);
let portOb = engine.getFactory(port.type).generateModel() as PortModel;
portOb.deSerialize(port, engine, cache);
this.addPort(portOb);
});
}
@@ -95,8 +85,8 @@ export class NodeModel extends BaseModel<DiagramModel, BaseListener> {
}
getPortFromID(id): PortModel | null {
for (var i in this.ports) {
if (this.ports[i].id === id) {
for (let i in this.ports) {
if (this.ports[i].getID() === id) {
return this.ports[i];
}
}

View File

@@ -1,11 +1,9 @@
import { BaseModel, BaseModelListener } from "./BaseModel";
import { LinkModel } from "./LinkModel";
import * as _ from "lodash";
import { DiagramEngine } from "../DiagramEngine";
import {Rectangle, CanvasElementModel, CanvasElementModelListener} from "@projectstorm/react-canvas";
export class PointModel extends BaseModel<LinkModel, BaseModelListener> {
x: number;
y: number;
export class PointModel extends CanvasElementModel<CanvasElementModelListener> {
constructor(link: LinkModel, points: { x: number; y: number }) {
super();