// iGeom JS // LInE: "free software and private data" // http://www.matematica.br // http://www.usp.br/line 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) { var auxE = ""; try { // To avoid 'TypeError: cyclic object value' auxE += "1, "; //D this.addAction(new Action(aggregator.genericObject)); // app/core/models/application/actions/action.js auxE += "2, "; //D DrawerManager.addAggregator(aggregator); } catch (error) { console.log("drawer.js!addAggregator(aggregator): Error '" + error + "', with " + auxE); } } draw (object) { console.log("drawer.js!draw(object): object=" + JSON.stringify(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(); } }