UIControl.js 5.0 KB

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