src/app/core/drawers/drawer.js
import { drawerManager as DrawerManager } from "./drawer-manager";
import { app as App } from "../../app";
import { selector as Selector } from "../application/selector";
import { Action } from "../models/application/actions/action";
export class Drawer {
constructor() {
this.component;
this.drawerManager = DrawerManager;
this.drawing = false;
this.states = [];
this.state = undefined;
this.konvaObject;
this.elementClass = undefined;
}
onDragMove() { }
setElementClass(elementClass) {
this.elementClass = elementClass;
}
setState(state) {
this.state = state;
}
clearState() {
this.state = undefined;
}
setStatus(status) {
App.setStatus(status);
}
clear() {
this.reset();
App.clearSelectedTool();
}
reset() {
this.clearState();
this.setStatus("");
Selector.clear();
}
addAggregator(aggregator) {
this.addAction(new Action(aggregator.genericObject));
DrawerManager.addAggregator(aggregator);
}
draw(object) {
Drawer.drawObject(object);
}
batchDraw() {
Drawer.stageBatchDraw();
}
update(aggregator, event) {
throw "Not implemented exception";
}
setKonvaObject(konvaObject) {
this.konvaObject = konvaObject;
}
addAction(action) {
this.drawerManager.addAction(action);
}
static setMaxIndex(object) {
object.zIndex(Number.MAX_SAFE_INTEGER);
Drawer.stageBatchDraw();
}
static drawObject(object) {
DrawerManager.draw(object);
}
static getKonvaGroup(draggable) {
if (draggable == undefined) draggable = true;
const group = new Konva.Group({
draggable: draggable,
resizeEnabled: draggable
});
return group;
}
static stageBatchDraw() {
DrawerManager.batchDraw();
}
}