lixiaojun
2024-11-09 c9585ab171fb973d16792d7a290994bf8279da63
WinFrmUI/Yw.WinFrmUI.Hydro.Core/06-visual/11-meter/HydroMeterListCtrl.cs
copy from WinFrmUI/Yw.WinFrmUI.Hydro.Core/06-parter/06-elbow/HydroElbowListCtrl.cs copy to WinFrmUI/Yw.WinFrmUI.Hydro.Core/06-visual/11-meter/HydroMeterListCtrl.cs
Îļþ´Ó WinFrmUI/Yw.WinFrmUI.Hydro.Core/06-parter/06-elbow/HydroElbowListCtrl.cs ¸´ÖÆ
@@ -1,11 +1,10 @@
using DevExpress.XtraEditors;
using Yw.Model;
using Yw.Model;
namespace Yw.WinFrmUI
{
    public partial class HydroElbowListCtrl : DevExpress.XtraEditors.XtraUserControl, IHydroParterList
    public partial class HydroMeterListCtrl : DevExpress.XtraEditors.XtraUserControl, IHydroVisualList
    {
        public HydroElbowListCtrl()
        public HydroMeterListCtrl()
        {
            InitializeComponent();
            this.gridView1.SetNormalView(30);
@@ -16,11 +15,19 @@
        /// <summary>
        /// æ°´åŠ›ç‚¹å‡»äº‹ä»¶
        /// </summary>
        public event Action<Yw.Model.HydroParterInfo> HydroClickEvent;
        public event Action<Yw.Model.HydroVisualInfo> HydroClickInfoEvent;
        /// <summary>
        /// æ°´åŠ›ç‚¹å‡»è§†å›¾äº‹ä»¶
        /// </summary>
        public event Action<HydroVisualViewModel> HydroClickViewEvent;
        /// <summary>
        /// æ°´åŠ›æ”¹å˜äº‹ä»¶
        /// </summary>
        public event Action<List<HydroParterInfo>> HydroChangedEvent;
        public event Action<List<Yw.Model.HydroVisualInfo>> HydroChangedInfoEvent;
        /// <summary>
        /// æ°´åŠ›æ”¹å˜è§†å›¾äº‹ä»¶
        /// </summary>
        public event Action<List<HydroVisualViewModel>> HydroChangedViewEvent;
        /// <summary>
        /// æ˜¾ç¤ºæŸ¥è¯¢é¢æ¿
@@ -35,7 +42,7 @@
        }
        /// <summary>
        /// æ˜¯å¦æ‹¥æœ‰æ°´åˆ©åˆ—表
        /// æ˜¯å¦æ‹¥æœ‰æ°´åŠ›åˆ—è¡¨
        /// </summary>
        public bool HasHydroList
        {
@@ -43,21 +50,21 @@
        }
        //所有列表
        private List<HydroElbowViewModel> _allList = null;
        private List<HydroMeterViewModel> _allList = null;
        //所有绑定列表
        private List<HydroElbowViewModel> _allBindingList = null;
        private List<HydroMeterViewModel> _allBindingList = null;
        /// <summary>
        /// ç»‘定数据
        /// </summary>
        public void SetBindingData(Yw.Model.HydroModelInfo hydroInfo)
        {
            _allList = new List<HydroElbowViewModel>();
            if (hydroInfo != null && hydroInfo.Elbows != null && hydroInfo.Elbows.Count > 0)
            _allList = new List<HydroMeterViewModel>();
            if (hydroInfo != null && hydroInfo.Meters != null && hydroInfo.Meters.Count > 0)
            {
                foreach (var elbow in hydroInfo.Elbows)
                foreach (var visual in hydroInfo.Meters)
                {
                    var vm = new HydroElbowViewModel(elbow, hydroInfo);
                    var vm = new HydroMeterViewModel(visual, hydroInfo);
                    _allList.Add(vm);
                }
            }
@@ -69,13 +76,13 @@
        /// </summary>
        public void SetBindingData(Yw.Model.HydroModelInfo hydroInfo, List<HydroCalcuResult> allCalcuResultList)
        {
            _allList = new List<HydroElbowViewModel>();
            if (hydroInfo != null && hydroInfo.Elbows != null && hydroInfo.Elbows.Count > 0)
            _allList = new List<HydroMeterViewModel>();
            if (hydroInfo != null && hydroInfo.Meters != null && hydroInfo.Meters.Count > 0)
            {
                foreach (var elbow in hydroInfo.Elbows)
                foreach (var visual in hydroInfo.Meters)
                {
                    var vm = new HydroElbowViewModel(elbow, hydroInfo);
                    var calcuResult = allCalcuResultList?.Find(x => x.Code == elbow.Code);
                    var vm = new HydroMeterViewModel(visual, hydroInfo);
                    var calcuResult = allCalcuResultList?.Find(x => x.Code == visual.Code);
                    if (calcuResult != null)
                    {
                        vm.UpdateCalcuProperty(calcuResult);
@@ -84,6 +91,30 @@
                }
            }
            Search();
        }
        /// <summary>
        /// ç»‘定数据
        /// </summary>
        public void SetBindingData(List<HydroVisualViewModel> allVisualViewModelList)
        {
            _allList = new List<HydroMeterViewModel>();
            allVisualViewModelList?.ForEach(x =>
            {
                if (x.Catalog == HydroParterCatalogHelper.GetName(Yw.Hydro.ParterCatalog.Meter))
                {
                    _allList.Add(x as HydroMeterViewModel);
                }
            });
            Search();
        }
        /// <summary>
        /// æ›´æ–°ç»‘定
        /// </summary>
        public void UpdateBindingData()
        {
            this.hydroMeterViewModelBindingSource.ResetBindings(false);
        }
        /// <summary>
@@ -96,45 +127,45 @@
                return;
            }
            _allList.ForEach(x => x.UpdateProperty());
            this.hydroElbowViewModelBindingSource.ResetBindings(false);
            this.hydroMeterViewModelBindingSource.ResetBindings(false);
        }
        /// <summary>
        /// æ›´æ–°å±žæ€§
        /// </summary>
        public void UpdateProperty(Yw.Model.HydroParterInfo parter)
        public void UpdateProperty(Yw.Model.HydroVisualInfo visual)
        {
            if (_allList == null || _allList.Count < 1)
            {
                return;
            }
            if (parter == null)
            if (visual == null)
            {
                return;
            }
            var vm = _allList.Find(x => x.Code == parter.Code);
            var vm = _allList.Find(x => x.Code == visual.Code);
            if (vm == null)
            {
                return;
            }
            vm.UpdateProperty();
            this.hydroElbowViewModelBindingSource.ResetBindings(false);
            this.hydroMeterViewModelBindingSource.ResetBindings(false);
        }
        /// <summary>
        /// æ›´æ–°å±žæ€§
        /// </summary>
        public void UpdateProperty(List<Yw.Model.HydroParterInfo> parterList)
        public void UpdateProperty(List<Yw.Model.HydroVisualInfo> visualList)
        {
            if (_allList == null || _allList.Count < 1)
            {
                return;
            }
            if (parterList == null || parterList.Count < 1)
            if (visualList == null || visualList.Count < 1)
            {
                return;
            }
            parterList.ForEach(x =>
            visualList.ForEach(x =>
            {
                var vm = _allList.Find(t => x.Code == x.Code);
                if (vm != null)
@@ -142,7 +173,7 @@
                    vm.UpdateProperty();
                }
            });
            this.hydroElbowViewModelBindingSource.ResetBindings(false);
            this.hydroMeterViewModelBindingSource.ResetBindings(false);
        }
        /// <summary>
@@ -154,15 +185,15 @@
            {
                if (_allList != null && _allList.Count > 0)
                {
                    foreach (var parter in _allList)
                    foreach (var visual in _allList)
                    {
                        var calcuResult = allCalcuResultList.Find(x => x.Code == parter.Code);
                        var calcuResult = allCalcuResultList.Find(x => x.Code == visual.Code);
                        if (calcuResult != null)
                        {
                            parter.UpdateCalcuProperty(calcuResult);
                            visual.UpdateCalcuProperty(calcuResult);
                        }
                    }
                    this.hydroElbowViewModelBindingSource.ResetBindings(false);
                    this.hydroMeterViewModelBindingSource.ResetBindings(false);
                }
            }
        }
@@ -190,8 +221,8 @@
            {
                _allBindingList = _allBindingList.Where(x => !string.IsNullOrEmpty(x.ModelType) && x.ModelType.Contains(modelType)).ToList();
            }
            this.hydroElbowViewModelBindingSource.DataSource = _allBindingList;
            this.hydroElbowViewModelBindingSource.ResetBindings(false);
            this.hydroMeterViewModelBindingSource.DataSource = _allBindingList;
            this.hydroMeterViewModelBindingSource.ResetBindings(false);
        }
        //重置
@@ -209,118 +240,21 @@
            Search();
            if (_allBindingList == null || _allBindingList.Count < 1)
            {
                XtraMessageBox.Show("无可设置弯头数据");
                TipFormHelper.ShowWarn("无数据!");
                return;
            }
            var dlg = new SetHydroElbowDlg();
            var dlg = new SetHydroMeterDlg();
            dlg.SetBindingData(_allBindingList.Select(x => x.Vmo).ToList());
            dlg.ReloadDataEvent += (list) =>
            {
                _allBindingList.ForEach(x =>
                {
                    x.UpdateProperty();
                });
                this.hydroElbowViewModelBindingSource.ResetBindings(false);
                var allParterList = _allBindingList.Select(x => x.Vmo as Yw.Model.HydroParterInfo).ToList();
                this.HydroChangedEvent?.Invoke(allParterList);
                _allBindingList.ForEach(x => x.UpdateProperty());
                this.hydroMeterViewModelBindingSource.ResetBindings(false);
                var allVisualViewModelList = _allBindingList.Select(x => x as HydroVisualViewModel).ToList();
                this.HydroChangedViewEvent?.Invoke(allVisualViewModelList);
                var allVisualInfoList = allVisualViewModelList.Select(x => x.Vmo).ToList();
                this.HydroChangedInfoEvent?.Invoke(allVisualInfoList);
            };
            dlg.ShowDialog();
        }
        /// <summary>
        /// è®¾ç½®ç®€å•显示模式
        /// </summary>
        public void SetSimpleView()
        {
            this.groupForHead.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never;
            this.colDbLocked.Visible = true;
            this.colCode.Visible = true;
            this.colName.Visible = true;
            this.colModelType.Visible = true;
            this.colMaterial.Visible = true;
            this.colCaliber.Visible = true;
            this.colBendingAngle.Visible = false;
            this.colElbowType.Visible = false;
            this.colElev.Visible = false;
            this.colMinorLoss.Visible = false;
            this.colCalcuPress.Visible = false;
            this.colCalcuHead.Visible = false;
            this.colHasDb.Visible = true;
            this.colFlags.Visible = true;
            this.colDescription.Visible = true;
            this.colSet.Visible = false;
        }
        /// <summary>
        /// è®¾ç½®æ­£å¸¸æ˜¾ç¤ºæ¨¡å¼
        /// </summary>
        public void SetNormalView()
        {
            this.groupForHead.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never;
            this.colDbLocked.Visible = true;
            this.colCode.Visible = true;
            this.colName.Visible = true;
            this.colModelType.Visible = true;
            this.colMaterial.Visible = true;
            this.colCaliber.Visible = true;
            this.colBendingAngle.Visible = true;
            this.colElbowType.Visible = true;
            this.colElev.Visible = true;
            this.colMinorLoss.Visible = true;
            this.colCalcuPress.Visible = false;
            this.colCalcuHead.Visible = false;
            this.colHasDb.Visible = true;
            this.colFlags.Visible = true;
            this.colDescription.Visible = true;
            this.colSet.Visible = true;
        }
        /// <summary>
        /// è®¾ç½®è®¡ç®—显示模式
        /// </summary>
        public void SetCalcuView()
        {
            this.groupForHead.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never;
            this.colDbLocked.Visible = true;
            this.colCode.Visible = true;
            this.colName.Visible = true;
            this.colModelType.Visible = true;
            this.colMaterial.Visible = true;
            this.colCaliber.Visible = true;
            this.colBendingAngle.Visible = true;
            this.colElbowType.Visible = true;
            this.colElev.Visible = true;
            this.colMinorLoss.Visible = true;
            this.colCalcuPress.Visible = true;
            this.colCalcuHead.Visible = true;
            this.colHasDb.Visible = true;
            this.colFlags.Visible = true;
            this.colDescription.Visible = true;
            this.colSet.Visible = true;
        }
        /// <summary>
        /// è®¾ç½®æ‰¹é‡è®¾ç½®æ¨¡å¼
        /// </summary>
        public void SetBulkSetView()
        {
            this.groupForHead.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Always;
            this.colDbLocked.Visible = true;
            this.colCode.Visible = true;
            this.colName.Visible = true;
            this.colModelType.Visible = true;
            this.colMaterial.Visible = true;
            this.colCaliber.Visible = true;
            this.colBendingAngle.Visible = true;
            this.colElbowType.Visible = true;
            this.colElev.Visible = true;
            this.colMinorLoss.Visible = true;
            this.colCalcuPress.Visible = false;
            this.colCalcuHead.Visible = false;
            this.colHasDb.Visible = true;
            this.colFlags.Visible = true;
            this.colDescription.Visible = true;
            this.colSet.Visible = true;
        }
        //查询
@@ -341,10 +275,9 @@
            Set();
        }
        //行单元格点击
        private void gridView1_RowCellClick(object sender, DevExpress.XtraGrid.Views.Grid.RowCellClickEventArgs e)
        {
            var row = this.gridView1.GetRow(e.RowHandle) as HydroElbowViewModel;
            var row = this.gridView1.GetRow(e.RowHandle) as HydroMeterViewModel;
            if (row == null)
            {
                return;
@@ -352,22 +285,104 @@
            if (e.Column == this.colSet)
            {
                var dlg = new SetHydroElbowDlg();
                var dlg = new SetHydroMeterDlg();
                dlg.SetBindingData(row.Vmo);
                dlg.ReloadDataEvent += (list) =>
                {
                    row.UpdateProperty();
                    this.gridView1.RefreshRow(e.RowHandle);
                    this.HydroChangedEvent?.Invoke(new List<Model.HydroParterInfo>() { row.Vmo });
                    this.HydroChangedViewEvent?.Invoke(new List<HydroVisualViewModel>() { row });
                    this.HydroChangedInfoEvent?.Invoke(new List<HydroVisualInfo>() { row.Vmo });
                };
                dlg.ShowDialog();
            }
            else
            {
                this.HydroClickEvent?.Invoke(row.Vmo);
                this.HydroClickViewEvent?.Invoke(row);
                this.HydroClickInfoEvent?.Invoke(row.Vmo);
            }
        }
        /// <summary>
        /// è®¾ç½®ç®€å•显示模式
        /// </summary>
        public void SetSimpleView()
        {
            this.groupForHead.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never;
            this.colDbLocked.Visible = false;
            this.colName.Visible = true;
            this.colCode.Visible = true;
            this.colModelType.Visible = true;
            this.colElev.Visible = false;
            this.colMinorLoss.Visible = false;
            this.colCalcuPress.Visible = false;
            this.colCalcuHead.Visible = false;
            this.colHasDb.Visible = false;
            this.colFlags.Visible = true;
            this.colDescription.Visible = true;
            this.colSet.Visible = false;
        }
        /// <summary>
        /// è®¾ç½®æ­£å¸¸æ˜¾ç¤ºæ¨¡å¼
        /// </summary>
        public void SetNormalView()
        {
            this.groupForHead.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never;
            this.colDbLocked.Visible = true;
            this.colName.Visible = true;
            this.colCode.Visible = true;
            this.colModelType.Visible = true;
            this.colElev.Visible = true;
            this.colMinorLoss.Visible = true;
            this.colCalcuPress.Visible = false;
            this.colCalcuHead.Visible = false;
            this.colHasDb.Visible = true;
            this.colFlags.Visible = true;
            this.colDescription.Visible = true;
            this.colSet.Visible = true;
        }
        /// <summary>
        /// è®¾ç½®è®¡ç®—显示模式
        /// </summary>
        public void SetCalcuView()
        {
            this.groupForHead.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never;
            this.colDbLocked.Visible = true;
            this.colName.Visible = true;
            this.colCode.Visible = true;
            this.colModelType.Visible = true;
            this.colElev.Visible = true;
            this.colMinorLoss.Visible = true;
            this.colCalcuPress.Visible = true;
            this.colCalcuHead.Visible = true;
            this.colHasDb.Visible = true;
            this.colFlags.Visible = true;
            this.colDescription.Visible = true;
            this.colSet.Visible = true;
        }
        /// <summary>
        /// è®¾ç½®æ‰¹é‡è®¾ç½®æ¨¡å¼
        /// </summary>
        public void SetBulkSetView()
        {
            this.groupForHead.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Always;
            this.colDbLocked.Visible = true;
            this.colName.Visible = true;
            this.colCode.Visible = true;
            this.colModelType.Visible = true;
            this.colElev.Visible = true;
            this.colMinorLoss.Visible = true;
            this.colCalcuPress.Visible = false;
            this.colCalcuHead.Visible = false;
            this.colHasDb.Visible = true;
            this.colFlags.Visible = true;
            this.colDescription.Visible = true;
            this.colSet.Visible = true;
        }
    }
}