drawer.js 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. import { drawerManager as DrawerManager } from "./drawer-manager";
  2. import { app as App } from "../../app";
  3. import { stageManager as StageManger } from "../application/stage-manager";
  4. export class Drawer {
  5. constructor() {
  6. this.component;
  7. this.drawerManager = DrawerManager;
  8. this.drawing = false;
  9. this.states = [];
  10. this.state = undefined;
  11. this.konvaObject;
  12. this.elementClass = undefined;
  13. }
  14. onDragMove() {}
  15. setElementClass(elementClass) {
  16. this.elementClass = elementClass;
  17. }
  18. setState(state) {
  19. this.state = state;
  20. }
  21. clearState() {
  22. this.state = undefined;
  23. }
  24. setStatus(status) {
  25. App.setStatus(status);
  26. }
  27. clear() {
  28. this.clearState();
  29. App.clearSelectedTool();
  30. this.setStatus("");
  31. }
  32. addAggregator(aggregator) {
  33. DrawerManager.addAggregator(aggregator);
  34. }
  35. draw(object) {
  36. Drawer.drawObject(object);
  37. }
  38. batchDraw() {
  39. Drawer.stageBatchDraw();
  40. }
  41. update(aggregator) {
  42. throw "Not implemented exception";
  43. }
  44. updatePositions(aggregator, event) {
  45. throw "Not implemented exception";
  46. }
  47. setKonvaObject(konvaObject) {
  48. this.konvaObject = konvaObject;
  49. }
  50. static drawObject(object) {
  51. DrawerManager.draw(object);
  52. }
  53. static getKonvaGroup(draggable) {
  54. if (draggable == undefined) draggable = true;
  55. const group = new Konva.Group({
  56. draggable: draggable,
  57. resizeEnabled: false
  58. });
  59. return group;
  60. }
  61. static stageBatchDraw() {
  62. DrawerManager.batchDraw();
  63. }
  64. static configureObjectEvents(object) {
  65. object.on("mouseover", function() {
  66. this.strokeWidth(HOVER_STYLE.strokeWidth);
  67. this.stroke(HOVER_STYLE.stroke);
  68. StageManger.getCurrentKonvaStage().draw();
  69. });
  70. object.on("mouseout", function() {
  71. this.strokeWidth(STYLE.strokeWidth);
  72. this.stroke(STYLE.stroke);
  73. StageManger.getCurrentKonvaStage().draw();
  74. });
  75. }
  76. }