import { coordinate } from "../Coordinate.js"; import LayerEvents from "../enum/LayerEvents.js"; import UIEvents from "../enum/UIEvents.js"; import VectorType from "../enum/VectorType.js"; import { stateService } from "../Service/StateService.js"; import { uiService } from "../Service/UIService.js"; import { dataService } from "../Service/DataService.js"; import { historyService } from "../Service/HistoryService.js"; import { elementService } from "../Service/ElementService"; import { mathUtil } from "../Util/MathUtil"; import { textService } from "../Service/TextService.js/"; import Constant from "../Constant"; // import { roomsUtil } from "../Room/RoomsUtil.js"; import { addRoad } from "../Controls/AddRoad"; import { addLine } from "./AddLine.js"; import VectorCategory from "../enum/VectorCategory.js"; // import { floorplanData } from "../VectorData.js"; export default class UIControl { constructor(layer, newsletter, graphicStateUI) { this.layer = layer; this.newsletter = newsletter; this.graphicStateUI = graphicStateUI; } get selectUI() { return this.newsletter.selectUI; } set selectUI(selectUI) { this.updateEventNameForSelectUI(selectUI); this.newsletter.selectUI = selectUI; } get focusVector() { return this.newsletter.focusVector; } set focusVector(focusVector) { this.newsletter.focusVector = focusVector; } /** * 获取选中要操作的UI */ get currentUI() {} /** * 设置选中要操作的UI */ set currentUI(value) { this.selectUI = value; } clearUI() { this.selectUI = null; } //点击左侧栏后,更新事件 updateEventNameForSelectUI(selectUI) { console.log(this.selectUI, selectUI); if (selectUI != null) { if (this.selectUI == selectUI) { return; } else if (this.selectUI != selectUI) { if (this.selectUI != null) { //先取消当前事件和进程 stateService.clear(); //。。。。 } //执行新的事件 if (uiService.isBelongRoad(selectUI) || selectUI == "road") { stateService.setEventName(LayerEvents.AddRoad); } else if (selectUI == UIEvents.CurveRoad) { stateService.setEventName(LayerEvents.AddCurveRoad); } else if (selectUI == UIEvents.Arrow) { stateService.setEventName(LayerEvents.AddLine); addLine.setCategory(VectorCategory.Line.ArrowLine); } else if (selectUI == UIEvents.MeasureLine) { stateService.setEventName(LayerEvents.AddLine); addLine.setCategory(VectorCategory.Line.MeasureLine); } else if (selectUI == UIEvents.Line) { stateService.setEventName(LayerEvents.AddLine); } else if (selectUI == UIEvents.Circle) { stateService.setEventName(LayerEvents.AddCircle); } else if (selectUI == UIEvents.Text) { stateService.setEventName(LayerEvents.AddText); } else if (selectUI == UIEvents.Magnifier) { stateService.setEventName(LayerEvents.AddMagnifier); } else if (selectUI == UIEvents.SVG) { stateService.setEventName(LayerEvents.AddSVG); } else if (selectUI == UIEvents.Img) { stateService.setEventName(LayerEvents.Img); } } } } handleGeo(action) {} /****************************************************************************针对菜单*******************************************************************************/ //撤销 menu_revoke() { this.layer.history.goPreState(); const historyState = historyService.getHistoryState(); this.graphicStateUI.canRevoke = historyState.pre; this.graphicStateUI.canRecovery = true; this.layer.stopAddVector(); this.layer.renderer.autoRedraw(); } //恢复 menu_recovery() { this.layer.history.goNextState(); const historyState = historyService.getHistoryState(); this.graphicStateUI.canRecovery = historyState.next; this.graphicStateUI.canRevoke = true; this.layer.stopAddVector(); this.layer.renderer.autoRedraw(); } menu_view_reset() { } // value 为true则开 false则关 menu_backgroundImg(value) { // this.graphicStateUI.showBackImage = value; } menu_clear() { dataService.clear(); elementService.hideAll(); this.layer.history.save(); this.layer.renderer.autoRedraw(); } /******************************************************************************************************************************************************************/ }