From 404e12c4e848bf6006da326c4ca8189da43af077 Mon Sep 17 00:00:00 2001 From: Dylan Vorster Date: Fri, 27 Apr 2018 20:42:38 +0200 Subject: [PATCH] more stuff we no longer need --- src/BaseEntity.ts | 115 --------------------------------- src/DiagramEngine.ts | 42 +++--------- src/models/NodeModel.ts | 2 +- src/sass/_LinkLayerWidget.scss | 11 ---- src/sass/_NodeLayerWidget.scss | 11 ---- src/sass/main.scss | 4 +- 6 files changed, 10 insertions(+), 175 deletions(-) delete mode 100644 src/BaseEntity.ts delete mode 100644 src/sass/_LinkLayerWidget.scss delete mode 100644 src/sass/_NodeLayerWidget.scss diff --git a/src/BaseEntity.ts b/src/BaseEntity.ts deleted file mode 100644 index 6ec9a38..0000000 --- a/src/BaseEntity.ts +++ /dev/null @@ -1,115 +0,0 @@ -import { Toolkit } from "./Toolkit"; -import * as _ from "lodash"; -import { DiagramEngine } from "./DiagramEngine"; - -/** - * @author Dylan Vorster - */ -export interface BaseEvent { - entity: BaseEntity; - stopPropagation: () => any; - firing: boolean; - id: string; -} - -export interface BaseListener { - lockChanged?(event: BaseEvent & { locked: boolean }): void; -} - -export type BaseEntityType = "node" | "link" | "port" | "point"; - -export class BaseEntity { - 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 }); - } - }); - } -} diff --git a/src/DiagramEngine.ts b/src/DiagramEngine.ts index 338e901..c53ab30 100644 --- a/src/DiagramEngine.ts +++ b/src/DiagramEngine.ts @@ -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 { 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) { diff --git a/src/models/NodeModel.ts b/src/models/NodeModel.ts index 306e1e8..c9977a8 100644 --- a/src/models/NodeModel.ts +++ b/src/models/NodeModel.ts @@ -3,7 +3,7 @@ import * as _ from "lodash"; import { DiagramEngine } from "../DiagramEngine"; import { Rectangle, CanvasElementModel, GraphModel } from "@projectstorm/react-canvas"; -export class NodeModel extends CanvasElementModel { +export class NodeModel extends CanvasElementModel { protected dimensions: Rectangle; protected ports: GraphModel; diff --git a/src/sass/_LinkLayerWidget.scss b/src/sass/_LinkLayerWidget.scss deleted file mode 100644 index 5c5875c..0000000 --- a/src/sass/_LinkLayerWidget.scss +++ /dev/null @@ -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; -} \ No newline at end of file diff --git a/src/sass/_NodeLayerWidget.scss b/src/sass/_NodeLayerWidget.scss deleted file mode 100644 index 65dd5b0..0000000 --- a/src/sass/_NodeLayerWidget.scss +++ /dev/null @@ -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%; -} \ No newline at end of file diff --git a/src/sass/main.scss b/src/sass/main.scss index 9deab43..6c9f355 100644 --- a/src/sass/main.scss +++ b/src/sass/main.scss @@ -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"; \ No newline at end of file +@import "defaults/DefaultLinkWidget";