UIControl.js 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145
  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.ArrowLine);
  70. } else if (selectUI == UIEvents.MeasureLine) {
  71. stateService.setEventName(LayerEvents.AddLine);
  72. addLine.setCategory(VectorCategory.Line.MeasureLine);
  73. } else if (selectUI == UIEvents.Line) {
  74. stateService.setEventName(LayerEvents.AddLine);
  75. } else if (selectUI == UIEvents.Circle) {
  76. stateService.setEventName(LayerEvents.AddCircle);
  77. } else if (selectUI == UIEvents.Text) {
  78. stateService.setEventName(LayerEvents.AddText);
  79. } else if (selectUI == UIEvents.Magnifier) {
  80. stateService.setEventName(LayerEvents.AddMagnifier);
  81. } else if (selectUI == UIEvents.SVG) {
  82. stateService.setEventName(LayerEvents.AddSVG);
  83. } else if (selectUI == UIEvents.Img) {
  84. stateService.setEventName(LayerEvents.Img);
  85. }
  86. }
  87. }
  88. }
  89. handleGeo(action) {}
  90. /****************************************************************************针对菜单*******************************************************************************/
  91. //撤销
  92. menu_revoke() {
  93. this.layer.history.goPreState();
  94. const historyState = historyService.getHistoryState();
  95. this.graphicStateUI.canRevoke = historyState.pre;
  96. this.graphicStateUI.canRecovery = true;
  97. this.layer.stopAddVector();
  98. this.layer.renderer.autoRedraw();
  99. }
  100. //恢复
  101. menu_recovery() {
  102. this.layer.history.goNextState();
  103. const historyState = historyService.getHistoryState();
  104. this.graphicStateUI.canRecovery = historyState.next;
  105. this.graphicStateUI.canRevoke = true;
  106. this.layer.stopAddVector();
  107. this.layer.renderer.autoRedraw();
  108. }
  109. menu_view_reset() {
  110. }
  111. // value 为true则开 false则关
  112. menu_backgroundImg(value) {
  113. //
  114. this.graphicStateUI.showBackImage = value;
  115. }
  116. menu_clear() {
  117. dataService.clear();
  118. elementService.hideAll();
  119. this.layer.history.save();
  120. this.layer.renderer.autoRedraw();
  121. }
  122. /******************************************************************************************************************************************************************/
  123. }