| | |
| | | using DevExpress.Data.ExpressionEditor; |
| | | using DevExpress.Utils; |
| | | using DevExpress.XtraBars; |
| | | using DevExpress.XtraBars; |
| | | using DevExpress.XtraEditors; |
| | | using DevExpress.XtraEditors.Controls; |
| | | using DevExpress.XtraEditors.Repository; |
| | | using DevExpress.XtraLayout.Utils; |
| | | using DevExpress.XtraRichEdit.SpellChecker; |
| | | using DevExpress.XtraVerticalGrid.Events; |
| | | using NetTaste; |
| | | using SQLitePCL; |
| | | using System.Text; |
| | | using System.Windows.Forms.VisualStyles; |
| | | using Yw.EPAnet; |
| | | |
| | | namespace Yw.WinFrmUI |
| | | { |
| | |
| | | |
| | | /// <summary> |
| | | /// 匹配db事件 |
| | | /// 第一个参数为匹配Db的ViewModel |
| | | /// 第二个参数为是否匹配成功 |
| | | /// </summary> |
| | | public event Action<Yw.Model.HydroParterInfo> MatchingDbEvent; |
| | | /// <summary> |
| | | /// 查看曲线事件 |
| | | /// </summary> |
| | | public event Action<Yw.Model.HydroParterInfo, string> ViewCurveEvent; |
| | | public event Func<HydroParterPropertyViewModel, bool> MatchingDbEvent; |
| | | /// <summary> |
| | | /// 设置曲线事件 |
| | | /// 第一个参数为设置曲线的ViewModel |
| | | /// 第二个参数为曲线类型 |
| | | /// 第三个参数为是否设置成功 |
| | | /// </summary> |
| | | public event Func<HydroParterPropertyViewModel, string, bool> SetCurveEvent; |
| | | /// <summary> |
| | | /// 设置模式事件 |
| | | /// 第一个参数为设置模式事的ViewModel |
| | | /// 第二个参数为模式事类型 |
| | | /// 第三个参数为是否设置成功 |
| | | /// </summary> |
| | | public event Func<HydroParterPropertyViewModel, string, bool> SetPatternEvent; |
| | | /// <summary> |
| | |
| | | /// 属性值发生改变事件 |
| | | /// </summary> |
| | | public event Func<HydroParterPropertyViewModel, bool> PropertyValueChangedEvent; |
| | | |
| | | /// <summary> |
| | | /// 强调连接组件事件 |
| | | /// 第一个参数为本身Code |
| | | /// 第二个参数为连接Code |
| | | /// </summary> |
| | | public event Action<string, string> BlinkLinkParterEvent; |
| | | |
| | | |
| | | |
| | | //获取水力信息方法 |
| | |
| | | |
| | | #endregion |
| | | |
| | | #region 型号 |
| | | |
| | | var modelTypeAttri = (IsHydroModelTypeAttribute)descriptor.Attributes[typeof(IsHydroModelTypeAttribute)]; |
| | | if (modelTypeAttri != null) |
| | | { |
| | | var buttonEdit = new RepositoryItemButtonEdit(); |
| | | buttonEdit.TextEditStyle = TextEditStyles.DisableTextEditor; |
| | | buttonEdit.ButtonClick += delegate |
| | | { |
| | | if (this.MatchingDbEvent == null) |
| | | { |
| | | return; |
| | | } |
| | | var hydroInfo = _hydroInfoFunc?.Invoke(); |
| | | if (hydroInfo == null) |
| | | { |
| | | return; |
| | | } |
| | | var vm = GetPropertyViewModel(e.Row); |
| | | if (vm == null) |
| | | { |
| | | return; |
| | | } |
| | | var bol = this.MatchingDbEvent.Invoke(vm); |
| | | if (bol) |
| | | { |
| | | UpdateRows(); |
| | | } |
| | | }; |
| | | e.RepositoryItem = buttonEdit; |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region 曲线 |
| | | |
| | | var curvePro = (IsHydroCurveProAttribute)descriptor.Attributes[typeof(IsHydroCurveProAttribute)]; |
| | | if (curvePro != null) |
| | | var curvePropAttri = (IsHydroCurveProAttribute)descriptor.Attributes[typeof(IsHydroCurveProAttribute)]; |
| | | if (curvePropAttri != null) |
| | | { |
| | | var buttonEdit = new RepositoryItemButtonEdit(); |
| | | buttonEdit.TextEditStyle = TextEditStyles.DisableTextEditor; |
| | |
| | | return; |
| | | } |
| | | var vm = GetPropertyViewModel(e.Row); |
| | | switch (curvePro.CurveType) |
| | | switch (curvePropAttri.CurveType) |
| | | { |
| | | case HydroCurve.Pump: |
| | | { |
| | | var pumpInfo = hydroInfo.Pumps?.Find(x => x.Code == vm.Code); |
| | | if (pumpInfo == null) |
| | | if (this.SetCurveEvent == null || !this.SetCurveEvent.Invoke(vm, HydroCurve.Pump)) |
| | | { |
| | | return; |
| | | //缺省的设置方法 |
| | | } |
| | | this.ViewCurveEvent?.Invoke(pumpInfo, HydroCurve.Pump); |
| | | } |
| | | break; |
| | | case HydroCurve.PumpQH: |
| | | { |
| | | if (this.SetCurveEvent == null || !this.SetCurveEvent.Invoke(vm, curvePro.CurveType)) |
| | | if (this.SetCurveEvent == null || !this.SetCurveEvent.Invoke(vm, HydroCurve.PumpQH)) |
| | | { |
| | | var vmPump = vm as HydroPumpPropertyViewModel; |
| | | var curveQh = hydroInfo.Curves?.Find(x => x.Code == vmPump.CurveQH); |
| | | var pumpViewModel = vm as HydroPumpPropertyViewModel; |
| | | var curveQh = hydroInfo.Curves?.Find(x => x.Code == pumpViewModel.CurveQH); |
| | | var dlg = new SetHydroCurveDlg(); |
| | | dlg.ReloadDataEvent += (curveInfo) => |
| | | { |
| | |
| | | hydroInfo.Curves.Remove(curveQh); |
| | | } |
| | | hydroInfo.Curves.Add(curveInfo); |
| | | vmPump.CurveQH = curveInfo.Code; |
| | | pumpViewModel.CurveQH = curveInfo.Code; |
| | | UpdateRows(); |
| | | }; |
| | | dlg.SetBindingData(hydroInfo, curveQh, curvePro.CurveType); |
| | | dlg.SetBindingData(hydroInfo, curveQh, curvePropAttri.CurveType); |
| | | dlg.ShowDialog(); |
| | | } |
| | | } |
| | | break; |
| | | case HydroCurve.PumpQP: |
| | | { |
| | | if (this.SetCurveEvent == null || !this.SetCurveEvent.Invoke(vm, curvePro.CurveType)) |
| | | if (this.SetCurveEvent == null || !this.SetCurveEvent.Invoke(vm, curvePropAttri.CurveType)) |
| | | { |
| | | var vmPump = vm as HydroPumpPropertyViewModel; |
| | | var curveQp = hydroInfo.Curves?.Find(x => x.Code == vmPump.CurveQP); |
| | | var pumpViewModel = vm as HydroPumpPropertyViewModel; |
| | | var curveQp = hydroInfo.Curves?.Find(x => x.Code == pumpViewModel.CurveQP); |
| | | var dlg = new SetHydroCurveDlg(); |
| | | dlg.ReloadDataEvent += (curveInfo) => |
| | | { |
| | |
| | | hydroInfo.Curves.Remove(curveQp); |
| | | } |
| | | hydroInfo.Curves.Add(curveInfo); |
| | | vmPump.CurveQP = curveInfo.Code; |
| | | pumpViewModel.CurveQP = curveInfo.Code; |
| | | UpdateRows(); |
| | | }; |
| | | dlg.SetBindingData(hydroInfo, curveQp, curvePro.CurveType); |
| | | dlg.SetBindingData(hydroInfo, curveQp, curvePropAttri.CurveType); |
| | | dlg.ShowDialog(); |
| | | } |
| | | } |
| | | break; |
| | | case HydroCurve.PumpQE: |
| | | { |
| | | if (this.SetCurveEvent == null || !this.SetCurveEvent.Invoke(vm, curvePro.CurveType)) |
| | | { |
| | | var vmPump = vm as HydroPumpPropertyViewModel; |
| | | var curveQe = hydroInfo.Curves?.Find(x => x.Code == vmPump.CurveQE); |
| | | var pumpViewModel = vm as HydroPumpPropertyViewModel; |
| | | var curveQe = hydroInfo.Curves?.Find(x => x.Code == pumpViewModel.CurveQE); |
| | | var dlg = new SetHydroCurveDlg(); |
| | | dlg.ReloadDataEvent += (curveInfo) => |
| | | { |
| | |
| | | hydroInfo.Curves.Remove(curveQe); |
| | | } |
| | | hydroInfo.Curves.Add(curveInfo); |
| | | vmPump.CurveQE = curveInfo.Code; |
| | | pumpViewModel.CurveQE = curveInfo.Code; |
| | | UpdateRows(); |
| | | }; |
| | | dlg.SetBindingData(hydroInfo, curveQe, curvePro.CurveType); |
| | | dlg.SetBindingData(hydroInfo, curveQe, curvePropAttri.CurveType); |
| | | dlg.ShowDialog(); |
| | | } |
| | | } |
| | | break; |
| | | case HydroCurve.Valve: |
| | | { |
| | | |
| | | if (this.SetCurveEvent == null || !this.SetCurveEvent.Invoke(vm, HydroCurve.Valve)) |
| | | { |
| | | //缺省的设置方法 |
| | | } |
| | | } |
| | | break; |
| | | case HydroCurve.ValveQL: |
| | | { |
| | | if (this.SetCurveEvent == null || !this.SetCurveEvent.Invoke(vm, curvePro.CurveType)) |
| | | if (this.SetCurveEvent == null || !this.SetCurveEvent.Invoke(vm, curvePropAttri.CurveType)) |
| | | { |
| | | |
| | | //缺省的设置方法 |
| | | } |
| | | } |
| | | break; |
| | |
| | | |
| | | #endregion |
| | | |
| | | #region 型号 |
| | | #region 模式 |
| | | |
| | | var modelTypePro = (IsHydroModelTypeAttribute)descriptor.Attributes[typeof(IsHydroModelTypeAttribute)]; |
| | | if (modelTypePro != null) |
| | | var patternProAttri = (IsHydroPatternProAttribute)descriptor.Attributes[typeof(IsHydroPatternProAttribute)]; |
| | | if (patternProAttri != null) |
| | | { |
| | | var buttonEdit = new RepositoryItemButtonEdit(); |
| | | buttonEdit.TextEditStyle = TextEditStyles.DisableTextEditor; |
| | |
| | | return; |
| | | } |
| | | var vm = GetPropertyViewModel(e.Row); |
| | | var allParterList = hydroInfo.GetAllParters(); |
| | | var parter = allParterList?.Find(x => x.Code == vm.Code); |
| | | this.MatchingDbEvent?.Invoke(parter); |
| | | }; |
| | | e.RepositoryItem = buttonEdit; |
| | | switch (patternProAttri.PatternType) |
| | | { |
| | | case HydroPattern.Head: |
| | | { |
| | | if (this.SetPatternEvent == null || !this.SetPatternEvent.Invoke(vm, HydroPattern.Head)) |
| | | { |
| | | //缺省的设置方法 |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region 模式 |
| | | |
| | | var patternPro = (IsHydroPatternProAttribute)descriptor.Attributes[typeof(IsHydroPatternProAttribute)]; |
| | | if (patternPro != null) |
| | | } |
| | | break; |
| | | case HydroPattern.Demand: |
| | | { |
| | | var buttonEdit = new RepositoryItemButtonEdit(); |
| | | buttonEdit.TextEditStyle = TextEditStyles.DisableTextEditor; |
| | | buttonEdit.ButtonClick += delegate |
| | | if (this.SetPatternEvent == null || !this.SetPatternEvent.Invoke(vm, HydroPattern.Demand)) |
| | | { |
| | | var vm = GetPropertyViewModel(e.Row); |
| | | this.SetPatternEvent?.Invoke(vm, patternPro.PatternType); |
| | | //缺省的设置方法 |
| | | } |
| | | } |
| | | break; |
| | | } |
| | | }; |
| | | e.RepositoryItem = buttonEdit; |
| | | } |