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);
}
}
}