add entity cloning, fix #123, split link if point dropped on different node

This commit is contained in:
dandelp
2017-12-26 16:28:35 -06:00
parent bb7bff529f
commit b71f82bc73
9 changed files with 339 additions and 35 deletions

View File

@ -22,7 +22,6 @@ export class NodeModel extends BaseModel<BaseModelListener> {
//store position
let oldX = this.x;
let oldY = this.y;
for (let port in this.ports) {
_.forEach(this.ports[port].getLinks(), link => {
let point = link.getPointForPort(this.ports[port]);
@ -71,6 +70,16 @@ export class NodeModel extends BaseModel<BaseModelListener> {
});
}
clone(lookupTable) {
if(((lookupTable||{})[this.class]||{}).hasOwnProperty(this.id)) return lookupTable[this.class][this.id];
let clone = super.clone(lookupTable);
clone.ports = {}
_.values(this.ports).map(port => {
clone.addPort(port.clone(lookupTable));
})
return clone
}
remove() {
super.remove();
for (var i in this.ports) {