UIControl.js 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. import { coordinate } from "../Coordinate.js";
  2. import LayerEvents from "../enum/LayerEvents.js";
  3. import UIEvents from "../enum/UIEvents.js";
  4. import VectorType from "../enum/VectorType.js";
  5. import { stateService } from "../Service/StateService.js";
  6. import { uiService } from "../Service/UIService.js";
  7. import { dataService } from "../Service/DataService.js";
  8. import { historyService } from "../Service/HistoryService.js";
  9. import { elementService } from "../Service/ElementService";
  10. import { mathUtil } from "../Util/MathUtil";
  11. import { textService } from "../Service/TextService.js/";
  12. import Constant from "../Constant";
  13. // import { roomsUtil } from "../Room/RoomsUtil.js";
  14. import { addRoad } from "../Controls/AddRoad";
  15. import { addLine } from "./AddLine.js";
  16. import VectorCategory from "../enum/VectorCategory.js";
  17. // import { floorplanData } from "../VectorData.js";
  18. export default class UIControl {
  19. constructor(layer, newsletter, graphicStateUI) {
  20. this.layer = layer;
  21. this.newsletter = newsletter;
  22. this.graphicStateUI = graphicStateUI;
  23. }
  24. get selectUI() {
  25. return this.newsletter.selectUI;
  26. }
  27. set selectUI(selectUI) {
  28. this.updateEventNameForSelectUI(selectUI);
  29. this.newsletter.selectUI = selectUI;
  30. }
  31. get focusVector() {
  32. return this.newsletter.focusVector;
  33. }
  34. set focusVector(focusVector) {
  35. this.newsletter.focusVector = focusVector;
  36. }
  37. /**
  38. * 获取选中要操作的UI
  39. */
  40. get currentUI() {}
  41. /**
  42. * 设置选中要操作的UI
  43. */
  44. set currentUI(value) {
  45. this.selectUI = value;
  46. }
  47. clearUI() {
  48. this.selectUI = null;
  49. }
  50. //点击左侧栏后,更新事件
  51. updateEventNameForSelectUI(selectUI) {
  52. console.log(this.selectUI, selectUI);
  53. if (selectUI != null) {
  54. if (this.selectUI == selectUI) {
  55. return;
  56. } else if (this.selectUI != selectUI) {
  57. if (this.selectUI != null) {
  58. //先取消当前事件和进程
  59. stateService.clear();
  60. //。。。。
  61. }
  62. //执行新的事件
  63. if (uiService.isBelongRoad(selectUI) || selectUI == "road") {
  64. stateService.setEventName(LayerEvents.AddRoad);
  65. } else if (selectUI == UIEvents.CurveRoad) {
  66. stateService.setEventName(LayerEvents.AddCurveRoad);
  67. } else if (selectUI == UIEvents.Arrow) {
  68. stateService.setEventName(LayerEvents.AddLine);
  69. addLine.setCategory(VectorCategory.Line.MeasureLine);
  70. } else if (selectUI == UIEvents.Line) {
  71. stateService.setEventName(LayerEvents.AddLine);
  72. } else if (selectUI == UIEvents.Circle) {
  73. stateService.setEventName(LayerEvents.AddCircle);
  74. } else if (selectUI == UIEvents.Text) {
  75. stateService.setEventName(LayerEvents.AddText);
  76. } else if (selectUI == UIEvents.Magnifier) {
  77. stateService.setEventName(LayerEvents.AddMagnifier);
  78. } else if (selectUI == UIEvents.SVG) {
  79. stateService.setEventName(LayerEvents.AddSVG);
  80. } else if (selectUI == UIEvents.Img) {
  81. stateService.setEventName(LayerEvents.Img);
  82. }
  83. }
  84. }
  85. }
  86. /****************************************************************************针对菜单*******************************************************************************/
  87. //撤销
  88. menu_revoke() {
  89. this.layer.history.goPreState();
  90. const historyState = historyService.getHistoryState();
  91. this.graphicStateUI.canRevoke = historyState.pre;
  92. this.graphicStateUI.canRecovery = true;
  93. this.layer.stopAddVector();
  94. this.layer.renderer.autoRedraw();
  95. this.layer.revokeHistory();
  96. }
  97. //恢复
  98. menu_recovery() {
  99. this.layer.history.goNextState();
  100. const historyState = historyService.getHistoryState();
  101. this.graphicStateUI.canRecovery = historyState.next;
  102. this.graphicStateUI.canRevoke = true;
  103. this.layer.stopAddVector();
  104. this.layer.renderer.autoRedraw();
  105. this.layer.recoveryHistory();
  106. }
  107. menu_backgroundImg(value) {
  108. //
  109. this.graphicStateUI.canSetBackImg = !value;
  110. }
  111. menu_clear() {
  112. dataService.clear();
  113. elementService.hideAll();
  114. this.layer.history.save();
  115. this.layer.renderer.autoRedraw();
  116. }
  117. /******************************************************************************************************************************************************************/
  118. }