using DevExpress.Utils.Svg; using Mapster; using Yw; namespace HStation.WinFrmUI { /// /// /// public partial class CreateXhsSchemeHydrantChangePage : DevExpress.XtraEditors.XtraUserControl, Yw.WinFrmUI.IWizardPageAsync { /// /// /// public CreateXhsSchemeHydrantChangePage() { InitializeComponent(); this.xhsSchemeHydrantChangeListCtrl1.HydroViewEvent += XhsSchemeHydrantChangeListCtrl1_HydroViewEvent; this.xhsSchemeHydrantChangeListCtrl1.HydroChangeEvent += XhsSchemeHydrantChangeListCtrl1_HydroChangeEvent; } /// /// 页面状态改变事件 /// public event Action PageStateChangedEvent; private CreateXhsSchemeViewModel _vm = null;//操作对象 private List _allViewModelList = null;//所有视图列表 /// /// 初始化 /// public void InitialPage(CreateXhsSchemeViewModel vm) { if (vm == null) { return; } _vm = vm; _allViewModelList = new List(); if (vm.HydroInfo.Hydrants != null && vm.HydroInfo.Hydrants.Count > 0) { foreach (var visualViewModel in vm.AllVisualViewModelList) { if (visualViewModel.Vmo.Catalog == Yw.Hydro.ParterCatalog.Hydrant) { var vmHydrant = visualViewModel as HydroHydrantViewModel; if (vmHydrant != null) { _allViewModelList.Add(vmHydrant); } } } } ShowBimfaceCtrl(); this.xhsSchemeHydrantChangeListCtrl1.SetBindingData(_allViewModelList); this.PageStateChangedEvent?.Invoke(); } #region Bimface //bimface控件 private CreateXhsSchemeBimfaceCtrl _bimfaceCtrl = null; //获取 bimface 控件 private async Task GetBimfaceCtrl() { if (_vm == null) { return default; } if (_bimfaceCtrl == null) { _bimfaceCtrl = new CreateXhsSchemeBimfaceCtrl(); _bimfaceCtrl.Dock = DockStyle.Fill; await _bimfaceCtrl.InitialData(_vm.Project, _vm.ProjectSite, _vm.HydroInfo, _vm.AllVisualViewModelList); _bimfaceCtrl.HydroMouseLeftClickEvent += (code) => { if (_allViewModelList == null || _allViewModelList.Count < 1) { return; } var index = _allViewModelList.FindIndex(x => x.Vmo.Code == code); this.xhsSchemeHydrantChangeListCtrl1.SetFocusedRow(index); }; _bimfaceCtrl.SelectVisualEvent += (code) => { if (_allViewModelList == null || _allViewModelList.Count < 1) { return; } var index = _allViewModelList.FindIndex(x => x.Vmo.Code == code); this.xhsSchemeHydrantChangeListCtrl1.SetFocusedRow(index); }; } return _bimfaceCtrl; } //显示 bimface 控件 private async void ShowBimfaceCtrl() { var bimfaceCtrl = await GetBimfaceCtrl(); this.panelControl1.Controls.Clear(); this.panelControl1.Controls.Add(bimfaceCtrl); } #endregion /// /// 允许上一步 /// public bool AllowPrev { get { return true; } } /// /// 允许下一步 /// public bool AllowNext { get { return true; } } /// /// 允许取消 /// public bool AllowCancel { get { return true; } } /// /// 允许完成 /// public bool AllowComplete { get { return false; } } /// /// 能否上一步 /// public Task CanPrev() { return Task.Run(() => true); } /// /// 能否下一步 /// public Task CanNext() { return Task.Run(() => true); } /// /// 能否关闭 /// public Task CanCancel() { return Task.Run(() => true); } /// /// 能否完成 /// public Task CanComplete() { return Task.Run(() => false); } //改变 private void XhsSchemeHydrantChangeListCtrl1_HydroChangeEvent(HydroHydrantViewModel obj) { if (_vm == null) { return; } if (_vm.allChangeRecordList == null) { _vm.allChangeRecordList = new List(); } _vm.allChangeRecordList.Update(obj); } //定位 private void XhsSchemeHydrantChangeListCtrl1_HydroViewEvent(string obj) { if (string.IsNullOrEmpty(obj)) { return; } if (_vm == null) { return; } _bimfaceCtrl?.ZoomAndSelectComponent(obj); } } }