drawer.js 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. // iGeom JS
  2. // LInE: "free software and private data"
  3. // http://www.matematica.br
  4. // http://www.usp.br/line
  5. import { drawerManager as DrawerManager } from "./drawer-manager";
  6. import { app as App } from "../../app";
  7. import { selector as Selector } from "../application/selector";
  8. import { Action } from "../models/application/actions/action";
  9. export class Drawer {
  10. constructor () {
  11. this.component;
  12. this.drawerManager = DrawerManager;
  13. this.drawing = false;
  14. this.states = [];
  15. this.state = undefined;
  16. this.konvaObject;
  17. this.elementClass = undefined;
  18. }
  19. onDragMove () { }
  20. setElementClass(elementClass) {
  21. this.elementClass = elementClass;
  22. }
  23. setState (state) {
  24. this.state = state;
  25. }
  26. clearState () {
  27. this.state = undefined;
  28. }
  29. setStatus (status) {
  30. App.setStatus(status);
  31. }
  32. clear () {
  33. this.reset();
  34. App.clearSelectedTool();
  35. }
  36. reset () {
  37. this.clearState();
  38. this.setStatus("");
  39. Selector.clear();
  40. }
  41. addAggregator (aggregator) {
  42. var auxE = "";
  43. try { // To avoid 'TypeError: cyclic object value'
  44. auxE += "1, "; //D
  45. this.addAction(new Action(aggregator.genericObject)); // app/core/models/application/actions/action.js
  46. auxE += "2, "; //D
  47. DrawerManager.addAggregator(aggregator);
  48. } catch (error) {
  49. console.log("drawer.js!addAggregator(aggregator): Error '" + error + "', with " + auxE);
  50. }
  51. }
  52. draw (object) {
  53. console.log("drawer.js!draw(object): object=" + JSON.stringify(object));
  54. Drawer.drawObject(object);
  55. }
  56. batchDraw () {
  57. Drawer.stageBatchDraw();
  58. }
  59. update (aggregator, event) {
  60. throw "Not implemented exception";
  61. }
  62. setKonvaObject (konvaObject) {
  63. this.konvaObject = konvaObject;
  64. }
  65. addAction (action) {
  66. this.drawerManager.addAction(action);
  67. }
  68. static setMaxIndex (object) {
  69. object.zIndex(Number.MAX_SAFE_INTEGER);
  70. Drawer.stageBatchDraw();
  71. }
  72. static drawObject (object) {
  73. DrawerManager.draw(object);
  74. }
  75. static getKonvaGroup (draggable) {
  76. if (draggable == undefined) draggable = true;
  77. const group = new Konva.Group({
  78. draggable: draggable,
  79. resizeEnabled: draggable
  80. });
  81. return group;
  82. }
  83. static stageBatchDraw () {
  84. DrawerManager.batchDraw();
  85. }
  86. }