Home Reference Source Repository

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();
  }
}