drawer.js 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  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() {
  54. const group = new Konva.Group({
  55. draggable: true,
  56. resizeEnabled: false
  57. });
  58. return group;
  59. }
  60. static stageBatchDraw() {
  61. DrawerManager.batchDraw();
  62. }
  63. static configureObjectEvents(object) {
  64. object.on("mouseover", function() {
  65. this.strokeWidth(HOVER_STYLE.strokeWidth);
  66. this.stroke(HOVER_STYLE.stroke);
  67. StageManger.getCurrentKonvaStage().draw();
  68. });
  69. object.on("mouseout", function() {
  70. this.strokeWidth(STYLE.strokeWidth);
  71. this.stroke(STYLE.stroke);
  72. StageManger.getCurrentKonvaStage().draw();
  73. });
  74. }
  75. }