import { drawerManager as DrawerManager } from "./drawer-manager"; import { app as App } from "../../app"; import { stageManager as StageManger } from "../application/stage-manager"; 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.clearState(); App.clearSelectedTool(); this.setStatus(""); } addAggregator(aggregator) { DrawerManager.addAggregator(aggregator); } draw(object) { Drawer.drawObject(object); } batchDraw() { Drawer.stageBatchDraw(); } update(aggregator) { throw "Not implemented exception"; } updatePositions(aggregator, event) { throw "Not implemented exception"; } setKonvaObject(konvaObject) { this.konvaObject = konvaObject; } static drawObject(object) { DrawerManager.draw(object); } static getKonvaGroup() { const group = new Konva.Group({ draggable: true, resizeEnabled: false }); return group; } static stageBatchDraw() { DrawerManager.batchDraw(); } static configureObjectEvents(object) { object.on("mouseover", function() { this.strokeWidth(HOVER_STYLE.strokeWidth); this.stroke(HOVER_STYLE.stroke); StageManger.getCurrentKonvaStage().draw(); }); object.on("mouseout", function() { this.strokeWidth(STYLE.strokeWidth); this.stroke(STYLE.stroke); StageManger.getCurrentKonvaStage().draw(); }); } }