UIControl.js 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168
  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 { floorplanData } from "../VectorData.js";
  16. export default class UIControl {
  17. constructor(layer, newsletter) {
  18. this.layer = layer;
  19. this.newsletter = newsletter;
  20. }
  21. get selectUI() {
  22. return this.newsletter.selectUI;
  23. }
  24. set selectUI(selectUI) {
  25. this.updateEventNameForSelectUI(selectUI);
  26. this.newsletter.selectUI = selectUI;
  27. }
  28. get focusVector() {
  29. return this.newsletter.focusVector;
  30. }
  31. set focusVector(focusVector) {
  32. this.newsletter.focusVector = focusVector;
  33. }
  34. /**
  35. * 获取选中要操作的UI
  36. */
  37. get currentUI() {}
  38. /**
  39. * 设置选中要操作的UI
  40. */
  41. set currentUI(value) {
  42. this.selectUI = value;
  43. }
  44. clearUI() {
  45. this.selectUI = null;
  46. }
  47. //点击左侧栏后,更新事件
  48. updateEventNameForSelectUI(selectUI) {
  49. console.log(this.selectUI, selectUI);
  50. if (selectUI != null) {
  51. if (this.selectUI == selectUI) {
  52. return;
  53. } else if (this.selectUI != selectUI) {
  54. if (this.selectUI != null) {
  55. //先取消当前事件和进程
  56. stateService.clear();
  57. //。。。。
  58. }
  59. //执行新的事件
  60. if (uiService.isBelongRoad(selectUI) || selectUI == "road") {
  61. stateService.setEventName(LayerEvents.AddRoad);
  62. } else if (selectUI == UIEvents.CurveRoad) {
  63. stateService.setEventName(LayerEvents.AddCurveRoad);
  64. } else if (selectUI == UIEvents.Line) {
  65. stateService.setEventName(LayerEvents.AddLine);
  66. } else if (selectUI == UIEvents.Circle) {
  67. stateService.setEventName(LayerEvents.AddCircle);
  68. } else if (selectUI == UIEvents.Text) {
  69. stateService.setEventName(LayerEvents.AddText);
  70. } else if (selectUI == UIEvents.Magnifier) {
  71. stateService.setEventName(LayerEvents.AddMagnifier);
  72. } else if (selectUI == UIEvents.SVG) {
  73. stateService.setEventName(LayerEvents.AddSVG);
  74. } else if (selectUI == UIEvents.Img) {
  75. stateService.setEventName(LayerEvents.Img);
  76. }
  77. }
  78. }
  79. }
  80. /****************************************************************************针对菜单*******************************************************************************/
  81. // execute(name, value) {
  82. // stateService.clearFocusItem();
  83. // stateService.clearSelectItem();
  84. // //this.layer.$xui.hideProps()
  85. // this.layer.uiControl.currentUI = null;
  86. // switch (name) {
  87. // case "recall": //撤销
  88. // this.menu_revoke();
  89. // break;
  90. // case "recover": //恢复
  91. // this.menu_recovery();
  92. // break;
  93. // case "default": //恢复默认
  94. // this.menu_default();
  95. // break;
  96. // case "download": //下载
  97. // this.layer.div.style.visibility = "hidden";
  98. // this.menu_screenShot(value).then(() => {
  99. // this.layer.div.style.visibility = "visible";
  100. // });
  101. // break;
  102. // case "texture": //底图
  103. // this.showTexture = value;
  104. // this.layer.app.dom.querySelector(
  105. // '.player[name="main"]'
  106. // ).style.visibility = this.showTexture ? "visible" : "hidden";
  107. // break;
  108. // case "clear": //清空
  109. // this.menu_clear();
  110. // break;
  111. // case "panos": //漫游点
  112. // this.menu_panos(value);
  113. // break;
  114. // case "rotate": //旋转
  115. // this.menu_rotate();
  116. // break;
  117. // case "flex": //适应视图
  118. // this.menu_flex();
  119. // break;
  120. // }
  121. // }
  122. // //撤销
  123. // menu_revoke() {
  124. // // this.layer.history.goPreState()
  125. // // this.layer.renderer.autoRedraw()
  126. // // const historyState = historyService.getHistoryState()
  127. // // if (historyState.pre) {
  128. // // this.layer.$xui.toolbar.recall = true
  129. // // } else {
  130. // // this.layer.$xui.toolbar.recall = false
  131. // // }
  132. // // this.layer.$xui.toolbar.recover = true
  133. // this.layer.stopAddVector();
  134. // this.layer.revokeHistory();
  135. // }
  136. // //恢复
  137. // menu_recovery() {
  138. // // this.layer.history.goNextState()
  139. // // this.layer.renderer.autoRedraw()
  140. // // const historyState = historyService.getHistoryState()
  141. // // if (historyState.next) {
  142. // // this.layer.$xui.toolbar.recover = true
  143. // // } else {
  144. // // this.layer.$xui.toolbar.recover = false
  145. // // }
  146. // // this.layer.$xui.toolbar.recall = true
  147. // this.layer.recoveryHistory();
  148. // }
  149. // menu_default() {}
  150. /******************************************************************************************************************************************************************/
  151. }