Home Reference Source Repository

src/app/core/drawers/layer.js

import Konva from "konva";
import { ActionManager } from "../models/application/actions/action-manager";

export class Layer {
  constructor(id, konvaLayer) {
    this.id = id;
    this.name = "New Construction " + this.id;
    this.konvaLayer = konvaLayer;
    this.aggregators = [];
    this.selectedAggregators = [];
    this.konvaGroup = new Konva.Group({
      draggable: false,
      resizeEnabled: false
    });
    this.konvaLayer.add(this.konvaGroup);
    this.actionManager = new ActionManager();
  }
  getKonvaGroup() {
    return this.konvaGroup;
  }
  getKonvaLayer() {
    return this.konvaLayer;
  }
  addAggregator(aggregator) {
    this.aggregators.push(aggregator);
  }
  getAggregators() {
    return this.aggregators;
  }
  getSelectedAggregators() {
    return this.selectedAggregators;
  }
  setSelectedAggregator(aggregator) {
    if (!this.selectedAggregators.includes(aggregator)) {
      this.selectedAggregators.push(aggregator);
    }
  }
  removeSelectedAggregator(aggregator) {
    if (this.selectedAggregators.includes(aggregator)) {
      let index = this.selectedAggregators.indexOf(aggregator);
      this.selectedAggregators.splice(index, 1);
    }
  }
  removeAggregator(aggregator) {
    console.info("aggregator", aggregator);
    let index = this.aggregators.indexOf(aggregator);
    this.aggregators.splice(index, 1);
    if (this.selectedAggregators.includes(aggregator)) {
      let index = this.selectedAggregators.indexOf(aggregator);
      this.selectedAggregators.splice(index, 1);
    }
    this.actionManager.remove(aggregator.genericObject);
    aggregator.konvaObject.destroy();

  }
}