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 { floorplanService } from '../Service/FloorplanService.js' import { historyService } from '../Service/HistoryService.js' import { elementService } from '../Service/ElementService' import { mathUtil } from '../MathUtil.js' import { wallService } from '../Service/WallService.js' import { tagService } from '../Service/TagService.js' import Constant from '../Constant' import { addWall } from '../Controls/AddWall' import { floorplanData } from '../FloorplanData.js' import { signService } from '../Service/SignService.js' import mitt from 'mitt' import {history} from '../History/History.js' export default class UIControl{ constructor(layer) { this.layer = layer this.bus = mitt() this.selectUI = null; // this.bus.emit('') } //点击左侧栏后,更新事件 updateEventNameForSelectUI() { elementService.hideAll() //正在添加tag的时候,需要先删除 const eventName = stateService.getEventName() // if (eventName == LayerEvents.AddTag) { // let item = stateService.getDraggingItem() // if (item && item.type == VectorType.Tag) { // floorplanService.deleteTag(item.vectorId) // } // } // stateService.clearItems() if (this.selectUI == UIEvents.Wall) { stateService.setEventName(LayerEvents.AddWall) } else if (this.selectUI == UIEvents.Table ) { stateService.setEventName(LayerEvents.AddTable) } else if (this.selectUI == UIEvents.Rectangle ) { stateService.setEventName(LayerEvents.AddRectangle) } else if (this.selectUI == UIEvents.Circle ) { stateService.setEventName(LayerEvents.AddCircle) } else if (this.selectUI == UIEvents.Arrow ) { stateService.setEventName(LayerEvents.AddArrow) } else if (this.selectUI == UIEvents.Icon ) { stateService.setEventName(LayerEvents.AddIcon) } else if (this.selectUI == UIEvents.Tag) { stateService.setEventName(LayerEvents.AddTag) } else if ( this.selectUI == UIEvents.Cigaret || this.selectUI == UIEvents.FirePoint || this.selectUI == UIEvents.LeftFootPrint || this.selectUI == UIEvents.RightFootPrint || this.selectUI == UIEvents.LeftShoePrint || this.selectUI == UIEvents.RightShoePrint || this.selectUI == UIEvents.FingerPrint || this.selectUI == UIEvents.DeadBody || this.selectUI == UIEvents.BloodStain ) { stateService.setEventName(LayerEvents.AddSign) } } /** * @param {*} type 部件类型 * @param {*} name 属性名称 * @param {*} value 属性值 */ setAttributes(type, name, value) { let item = stateService.getFocusItem() switch (name) { case 'delete': this.deleteItem() break; case 'update': if(type == VectorType.Tag){ const tag = floorplanService.getTag(item.vectorId) tag.setValue(value) } else if(value == VectorType.Table){ const table = floorplanService.getTable(item.vectorId) table.setValue(value) } else if(type == VectorType.Title){ floorplanService.updateTitle(value); } else if(type == VectorType.Image){ floorplanService.updateBgImage(value); } else if(type == VectorType.Compass){ floorplanService.updateCompass(value); } break; } history.save() stateService.clearFocusItem(); this.layer.renderer.autoRedraw() } showAttributes(item) { let type = item.type; let value = null; switch (item.type) { case VectorType.Tag: const tag = floorplanService.getTag(item.vectorId) value = tag.value; break; case VectorType.Table: const table = floorplanService.getTable(item.vectorId) const cellIds = table.cells; value = []; for(let i=0;i