using DevExpress.Utils; using DevExpress.XtraCharts; using System.Windows.Media.Imaging; namespace PBS.WinFrmUI.Hydro { public partial class FacilityTreeListCtrl : DevExpress.XtraEditors.XtraUserControl { public FacilityTreeListCtrl() { InitializeComponent(); this.treeList1.InitialDefaultSettings(); this.layoutControl1.SetupLayoutControl(); } /// /// 选择项目事件 /// public event Action SelectFacilityEvent; /// /// 刷新数据事件 /// public event Action RefreshDataEvent; private List _allBindingList = new(); /// /// 绑定数据 /// public async void SetBindingData(List allFacilityList) { _allBindingList = new List(); if (allFacilityList != null) { foreach (var item in allFacilityList) { if (await IsHaveInp(item.ID)) { var vm = new FacilityTreeViewModel(item, true); _allBindingList.Add(vm); } else { var vm = new FacilityTreeViewModel(item, false); _allBindingList.Add(vm); } } } this.treeList1.DataSource = _allBindingList; this.treeList1.ForceInitialize(); this.treeList1.ExpandAll(); } //查找模板是否存在模型 private async Task IsHaveInp(long FacilityID) { return true; } /// /// 设置默认 /// public void SetFocused() { if (_allBindingList == null) { return; } var vm = _allBindingList.FirstOrDefault(); if (vm != null) { this.treeList1.FocusedNode = this.treeList1.FindNodeByKeyID(vm.ID); } } /// /// 设置聚焦 /// public void SetFocused(long ID) { if (_allBindingList == null) { return; } this.treeList1.FocusedNode = this.treeList1.FindNodeByKeyID(ID); } ///// ///// 添加模型模板 ///// //public void AddFacility() //{ // if (_allBindingList == null) // { // return; // } // var dlg = new AddFacilityDlg(); // dlg.SetBindingData(); // dlg.ReloadDataEvent += (rhs) => // { // var vm = new FacilityTreeViewModel(rhs, true); // _allBindingList.Add(vm); // this.treeList1.RefreshDataSource(); // SetFocused(vm.ID); // TipFormHelper.ShowSucceed("模型模板添加成功!"); // }; // dlg.ShowDialog(); //} ///// ///// 更新模型模板 ///// //public void UpdateFacility() //{ // if (_allBindingList == null) // { // return; // } // var vm = this.treeList1.GetFocusedRow() as FacilityTreeViewModel; // if (vm == null) // { // return; // } // var dlg = new EditFacilityDlg(); // dlg.SetBindingData(vm.Facility); // dlg.ReloadDataEvent += (rhs) => // { // vm.Name = rhs.Name; // vm.Description=rhs.Description; // vm.Facility = rhs; // this.treeList1.RefreshNode(this.treeList1.FocusedNode); // TipFormHelper.ShowSucceed("模型模板更新成功!"); // }; // dlg.ShowDialog(); //} ///// ///// 保存模型模板 ///// //public async void SaveFacility(PBS.Vmo.FacilityVmo vmo) //{ // if (_allBindingList == null) // { // return ; // } // var vm = _allBindingList.Find(x => x.ID == vmo.ID); // if (vm == null) // { // return ; // } // var bol = await BLLFactory.Instance.Update(vmo); // if (!bol) // { // TipFormHelper.ShowError("保存失败!"); // return ; // } // vm.Name = vmo.Name; // vm.Description = vmo.Description; // vm.Facility = await BLLFactory.Instance.GetByID(vmo.ID); // this.treeList1.RefreshNode(this.treeList1.FocusedNode); // TipFormHelper.ShowSucceed("模型模板保存成功!"); //} ///// ///// 删除模型模板 ///// //public async void DeleteFacility() //{ // var bol = XtraMessageBox.Show("请问是否删除当前模型模板?", "询问", MessageBoxButtons.YesNo) == DialogResult.Yes; // if (!bol) // { // return; // } // var vm = this.treeList1.GetCurrentViewModel(_allBindingList); // if (vm == null) // { // TipFormHelper.ShowWarn("请选择数据行!"); // return; // } // // 需增加删除模型模板映射设施的逻辑 // //.... // if (!await BLLFactory.Instance.DeleteByID(vm.ID)) // { // TipFormHelper.ShowError("模型模板删除失败,请重试!"); // return; // } // TipFormHelper.ShowSucceed("模型模板删除成功!"); // _allBindingList.Remove(vm); // this.treeList1.RefreshDataSource(); //} //全部展开 private void barBtnExpandAll_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { this.treeList1.ExpandAll(); } //全部折叠 private void barBtnCollpseAll_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { this.treeList1.CollapseAll(); } //检索(menu) private void barBtnSearch_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { if (this.treeList1.IsFindPanelVisible==false) this.treeList1.ShowFindPanel(); else this.treeList1.HideFindPanel(); } //树线 private void barCkTreeLine_CheckedChanged(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { this.treeList1.OptionsView.ShowTreeLines = this.barCkTreeLine.Checked ? DefaultBoolean.True : DefaultBoolean.False; } //聚焦节点改变 private void treeList1_FocusedNodeChanged(object sender, DevExpress.XtraTreeList.FocusedNodeChangedEventArgs e) { var vm = this.treeList1.GetDataRecordByNode(e.Node) as FacilityTreeViewModel; this.SelectFacilityEvent?.Invoke(vm?.Facility); } //刷新 private void barBtnRefresh_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { this.RefreshDataEvent?.Invoke(); } } }