more stuff we no longer need

This commit is contained in:
Dylan Vorster
2018-04-27 20:42:38 +02:00
parent aa6d1c336c
commit 404e12c4e8
6 changed files with 10 additions and 175 deletions

View File

@@ -1,115 +0,0 @@
import { Toolkit } from "./Toolkit";
import * as _ from "lodash";
import { DiagramEngine } from "./DiagramEngine";
/**
* @author Dylan Vorster
*/
export interface BaseEvent<T extends BaseEntity = any> {
entity: BaseEntity<BaseListener>;
stopPropagation: () => any;
firing: boolean;
id: string;
}
export interface BaseListener<T extends BaseEntity = any> {
lockChanged?(event: BaseEvent<T> & { locked: boolean }): void;
}
export type BaseEntityType = "node" | "link" | "port" | "point";
export class BaseEntity<T extends BaseListener = BaseListener> {
public listeners: { [s: string]: T };
public id: string;
public locked: boolean;
constructor(id?: string) {
this.listeners = {};
this.id = id || Toolkit.UID();
this.locked = false;
}
getID() {
return this.id;
}
doClone(lookupTable: { [s: string]: any } = {}, clone: any) {
/*noop*/
}
clone(lookupTable: { [s: string]: any } = {}) {
// try and use an existing clone first
if (lookupTable[this.id]) {
return lookupTable[this.id];
}
let clone = _.clone(this);
clone.id = Toolkit.UID();
clone.clearListeners();
lookupTable[this.id] = clone;
this.doClone(lookupTable, clone);
return clone;
}
clearListeners() {
this.listeners = {};
}
public deSerialize(data: { [s: string]: any }, engine: DiagramEngine) {
this.id = data.id;
}
public serialize() {
return {
id: this.id
};
}
public iterateListeners(cb: (t: T, event: BaseEvent) => any) {
let event: BaseEvent = {
id: Toolkit.UID(),
firing: true,
entity: this,
stopPropagation: () => {
event.firing = false;
}
};
for (var i in this.listeners) {
if (this.listeners.hasOwnProperty(i)) {
// propagation stopped
if (!event.firing) {
return;
}
cb(this.listeners[i], event);
}
}
}
public removeListener(listener: string) {
if (this.listeners[listener]) {
delete this.listeners[listener];
return true;
}
return false;
}
public addListener(listener: T): string {
var uid = Toolkit.UID();
this.listeners[uid] = listener;
return uid;
}
public isLocked(): boolean {
return this.locked;
}
public setLocked(locked: boolean = true) {
this.locked = locked;
this.iterateListeners((listener, event) => {
if (listener.lockChanged) {
listener.lockChanged({ ...event, locked: locked });
}
});
}
}

View File

@@ -1,53 +1,27 @@
import { BaseEntity, BaseListener } from "./BaseEntity";
import { DiagramModel } from "./models/DiagramModel";
import * as _ from "lodash";
import { NodeModel } from "./models/NodeModel";
import { PointModel } from "./models/PointModel";
import { PortModel } from "./models/PortModel";
import { ROUTING_SCALING_FACTOR } from "./routing/PathFinding";
import { Toolkit } from "./Toolkit";
import { CanvasEngine } from "@projectstorm/react-canvas";
/**
* @author Dylan Vorster
*/
export interface DiagramEngineListener extends BaseListener {
portFactoriesUpdated?(): void;
import {DefaultLabelFactory, DefaultLinkFactory, DefaultNodeFactory, DefaultPortFactory} from "storm-react-diagrams";
nodeFactoriesUpdated?(): void;
linkFactoriesUpdated?(): void;
labelFactoriesUpdated?(): void;
repaintCanvas?(): void;
}
/**
* Passed as a parameter to the DiagramWidget
*/
export class DiagramEngine extends CanvasEngine {
export class DiagramEngine extends CanvasEngine<DiagramModel> {
paintableWidgets: {};
linksThatHaveInitiallyRendered: {};
nodesRendered: boolean;
maxNumberPointsPerLink: number;
smartRouting: boolean;
model: DiagramModel;
// calculated only when smart routing is active
canvasMatrix: number[][] = [];
routingMatrix: number[][] = [];
// used when at least one element has negative coordinates
hAdjustmentFactor: number = 0;
vAdjustmentFactor: number = 0;
constructor() {
super();
this.paintableWidgets = null;
this.linksThatHaveInitiallyRendered = {};
this.smartRouting = false;
}
installDefaults() {
super.installDefaults();
this.registerElementFactory(new DefaultLabelFactory());
this.registerElementFactory(new DefaultLinkFactory());
this.registerElementFactory(new DefaultNodeFactory());
this.registerElementFactory(new DefaultPortFactory());
}
clearRepaintEntities() {
@@ -68,7 +42,7 @@ export class DiagramEngine extends CanvasEngine {
}
isSmartRoutingEnabled() {
return !!this.smartRouting;
return this.smartRouting;
}
setSmartRoutingStatus(status: boolean) {

View File

@@ -3,7 +3,7 @@ import * as _ from "lodash";
import { DiagramEngine } from "../DiagramEngine";
import { Rectangle, CanvasElementModel, GraphModel } from "@projectstorm/react-canvas";
export class NodeModel<T extends PortModel> extends CanvasElementModel {
export class NodeModel<T extends PortModel = PortModel> extends CanvasElementModel {
protected dimensions: Rectangle;
protected ports: GraphModel<null, T>;

View File

@@ -1,11 +0,0 @@
.srd-link-layer{
position: absolute;
height: 100%;
width: 100%;
transform-origin: 0 0;
overflow: visible !important;
top:0;
bottom: 0;
left: 0;
right: 0;
}

View File

@@ -1,11 +0,0 @@
.srd-node-layer{
top:0;
left:0;
right:0;
bottom:0;
position: absolute;
pointer-events: none;
transform-origin: 0 0;
width: 100%;
height: 100%;
}

View File

@@ -1,6 +1,4 @@
@import "DiagramWidget";
@import "LinkLayerWidget";
@import "NodeLayerWidget";
@import "NodeWidget";
@import "PortWidget";
@@ -8,4 +6,4 @@
@import "defaults/DefaultNodeWidget";
@import "defaults/DefaultPortWidget";
@import "defaults/DefaultLabelWidget";
@import "defaults/DefaultLinkWidget";
@import "defaults/DefaultLinkWidget";