| | |
| | | /// </summary> |
| | | public event Action<Yw.Model.HydroVisualInfo> HydroViewEvent; |
| | | |
| | | //水力信息 |
| | | private Yw.Model.HydroModelInfo _hydroInfo = null; |
| | | //工况 |
| | | private SetHydroWorkingViewModel _hydroWorking = null; |
| | | //基础控件 |
| | | private SetHydroWorkingBasicCtrl _basicCtrl = null; |
| | | //可见控件列表 |
| | | private List<ISetHydroWorkingVisualCtrl> _visualCtrlList = null; |
| | | |
| | | private Yw.Model.HydroModelInfo _hydroInfo = null;//水力信息 |
| | | private SetHydroWorkingViewModel _working = null;//工况 |
| | | //private SetHydroWorkingBasicCtrl _basicCtrl = null;//基础控件 |
| | | private List<ISetHydroWorkingVisualCtrl> _visualCtrlList = null;//可见控件列表 |
| | | |
| | | /// <summary> |
| | | /// 绑定数据 |
| | |
| | | return; |
| | | } |
| | | _hydroInfo = hydroInfo; |
| | | _hydroWorking = new SetHydroWorkingViewModel(); |
| | | var workingNames = allWorkingList?.Select(x => x.Name).Distinct().ToList(); |
| | | _hydroWorking.Name = Yw.Untity.UniqueHelper.CreateFromFirst("工况", workingNames); |
| | | _working = new SetHydroWorkingViewModel(hydroInfo, allWorkingList, allMonitorValueList); |
| | | _visualCtrlList = new List<ISetHydroWorkingVisualCtrl>(); |
| | | |
| | | #region 工况信息 |
| | | #region 信息 |
| | | |
| | | var basicGroup = this.layoutControl1.AddGroup(); |
| | | basicGroup.Text = "工况信息"; |
| | | basicGroup.ExpandButtonVisible = true; |
| | | basicGroup.Expanded = false; |
| | | basicGroup.HeaderButtonsLocation = DevExpress.Utils.GroupElementLocation.AfterText; |
| | | basicGroup.ExpandOnDoubleClick = true; |
| | | var basicCtrl = new SetHydroWorkingBasicCtrl(); |
| | | basicCtrl.SetBindingData(_hydroWorking); |
| | | var basicItem = basicGroup.AddItem("工况信息", basicCtrl); |
| | | basicItem.TextVisible = false; |
| | | basicItem.Height = 120; |
| | | basicGroup.BestFit(); |
| | | basicGroup.LayoutMode = LayoutMode.Regular; |
| | | basicGroup.AllowBorderColorBlending = true; |
| | | basicGroup.AppearanceGroup.BorderColor = Color.FromArgb(0, 122, 204); |
| | | _basicCtrl = basicCtrl; |
| | | //var basicGroup = this.layoutControl1.AddGroup(); |
| | | //basicGroup.Text = "工况信息"; |
| | | //basicGroup.ExpandButtonVisible = true; |
| | | //basicGroup.Expanded = false; |
| | | //basicGroup.HeaderButtonsLocation = DevExpress.Utils.GroupElementLocation.AfterText; |
| | | //basicGroup.ExpandOnDoubleClick = true; |
| | | //var basicCtrl = new SetHydroWorkingBasicCtrl(); |
| | | //basicCtrl.SetBindingData(_hydroWorking); |
| | | //var basicItem = basicGroup.AddItem("工况信息", basicCtrl); |
| | | //basicItem.TextVisible = false; |
| | | //basicItem.Height = 120; |
| | | //basicGroup.BestFit(); |
| | | //basicGroup.LayoutMode = LayoutMode.Regular; |
| | | //basicGroup.AllowBorderColorBlending = true; |
| | | //basicGroup.AppearanceGroup.BorderColor = Color.FromArgb(0, 122, 204); |
| | | //_basicCtrl = basicCtrl; |
| | | |
| | | #endregion |
| | | |
| | | _visualCtrlList = new List<ISetHydroWorkingVisualCtrl>(); |
| | | |
| | | #region 水库 |
| | | |
| | |
| | | var visualCtrl = new SetHydroWorkingReservoirCtrl(); |
| | | visualCtrl.HydroViewEvent += x => this.HydroViewEvent?.Invoke(x); |
| | | var workingInfo = new HydroWorkingReservoirViewModel(visual); |
| | | _hydroWorking.WorkingInfo.AppendWorking(workingInfo); |
| | | _working.WorkingInfo.AppendWorking(workingInfo); |
| | | visualCtrl.SetBindingData(visual, workingInfo); |
| | | var item = group.AddItem(visual.Name, visualCtrl); |
| | | item.TextVisible = false; |
| | |
| | | |
| | | #region 水池 |
| | | |
| | | if (hydroInfo.Tanks != null && hydroInfo.Tanks.Count > 0) |
| | | var tanks = hydroInfo.GetAllTanks(); |
| | | if (tanks != null && tanks.Count > 0) |
| | | { |
| | | var group = this.layoutControl1.AddGroup(); |
| | | group.Text = HydroParterCatalogHelper.GetName(Yw.Hydro.ParterCatalog.Tank); |
| | |
| | | group.Expanded = true; |
| | | group.HeaderButtonsLocation = DevExpress.Utils.GroupElementLocation.AfterText; |
| | | group.ExpandOnDoubleClick = true; |
| | | foreach (var visual in hydroInfo.Tanks) |
| | | foreach (var visual in tanks) |
| | | { |
| | | var visualCtrl = new SetHydroWorkingTankCtrl(); |
| | | visualCtrl.HydroViewEvent += x => this.HydroViewEvent?.Invoke(x); |
| | | var workingInfo = new HydroWorkingTankViewModel(visual); |
| | | _hydroWorking.WorkingInfo.AppendWorking(workingInfo); |
| | | visualCtrl.SetBindingData(visual, workingInfo); |
| | | var item = group.AddItem(visual.Name, visualCtrl); |
| | | item.TextVisible = false; |
| | | _visualCtrlList.Add(visualCtrl); |
| | | } |
| | | group.BestFit(); |
| | | group.LayoutMode = LayoutMode.Flow; |
| | | group.AllowBorderColorBlending = true; |
| | | group.AppearanceGroup.BorderColor = Color.FromArgb(0, 122, 204); |
| | | foreach (LayoutControlItem item in group.Items) |
| | | { |
| | | item.Size = new Size(200, 80); |
| | | } |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region 水箱 |
| | | |
| | | if (hydroInfo.Waterboxs != null && hydroInfo.Waterboxs.Count > 0) |
| | | { |
| | | var group = this.layoutControl1.AddGroup(); |
| | | group.Text = HydroParterCatalogHelper.GetName(Yw.Hydro.ParterCatalog.Waterbox); |
| | | group.ExpandButtonVisible = true; |
| | | group.Expanded = true; |
| | | group.HeaderButtonsLocation = DevExpress.Utils.GroupElementLocation.AfterText; |
| | | group.ExpandOnDoubleClick = true; |
| | | foreach (var visual in hydroInfo.Waterboxs) |
| | | { |
| | | var visualCtrl = new SetHydroWorkingWaterboxCtrl(); |
| | | visualCtrl.HydroViewEvent += x => this.HydroViewEvent?.Invoke(x); |
| | | var workingInfo = new HydroWorkingWaterboxViewModel(visual); |
| | | _hydroWorking.WorkingInfo.AppendWorking(workingInfo); |
| | | _working.WorkingInfo.AppendWorking(workingInfo); |
| | | visualCtrl.SetBindingData(visual, workingInfo); |
| | | var item = group.AddItem(visual.Name, visualCtrl); |
| | | item.TextVisible = false; |
| | |
| | | var visualCtrl = new SetHydroWorkingPumpCtrl(); |
| | | visualCtrl.HydroViewEvent += x => this.HydroViewEvent?.Invoke(x); |
| | | var workingInfo = new HydroWorkingPumpViewModel(visual); |
| | | _hydroWorking.WorkingInfo.AppendWorking(workingInfo); |
| | | _working.WorkingInfo.AppendWorking(workingInfo); |
| | | visualCtrl.SetBindingData(visual, workingInfo); |
| | | var item = group.AddItem(visual.Name, visualCtrl); |
| | | item.TextVisible = false; |
| | |
| | | |
| | | if (hydroInfo.Valves != null && hydroInfo.Valves.Count > 0) |
| | | { |
| | | //var group = this.layoutControl1.AddGroup(); |
| | | //group.Text = HydroParterCatalogHelper.GetName(Yw.Hydro.ParterCatalog.Valve); |
| | | //group.ExpandButtonVisible = true; |
| | | //group.Expanded = true; |
| | | //group.HeaderButtonsLocation = DevExpress.Utils.GroupElementLocation.AfterText; |
| | | //group.ExpandOnDoubleClick = true; |
| | | //foreach (var visual in hydroInfo.Valves) |
| | | //{ |
| | | // var visualCtrl = new SetHydroWorkingValveCtrl(); |
| | | // visualCtrl.HydroViewEvent += x => this.HydroViewEvent?.Invoke(x); |
| | | // var workingInfo = new HydroWorkingValveViewModel(visual); |
| | | // _hydroWorking.WorkingInfo.AppendWorking(workingInfo); |
| | | // visualCtrl.SetBindingData(visual, workingInfo); |
| | | // var item = group.AddItem(visual.Name, visualCtrl); |
| | | // item.TextVisible = false; |
| | | // _visualCtrlList.Add(visualCtrl); |
| | | //} |
| | | //group.BestFit(); |
| | | //group.LayoutMode = LayoutMode.Flow; |
| | | //group.AllowBorderColorBlending = true; |
| | | //group.AppearanceGroup.BorderColor = Color.FromArgb(0, 122, 204); |
| | | //foreach (LayoutControlItem item in group.Items) |
| | | //{ |
| | | // item.Size = new Size(200, 100); |
| | | //} |
| | | foreach (var visual in hydroInfo.Valves) |
| | | { |
| | | var workingInfo = new HydroWorkingValveViewModel(visual); |
| | | _working.WorkingInfo.AppendWorking(workingInfo); |
| | | } |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region 监测值 |
| | | #region 阻件 |
| | | |
| | | if (allMonitorValueList != null && allMonitorValueList.Count > 0) |
| | | var resistances = hydroInfo.GetAllResistances(); |
| | | if (resistances != null && resistances.Count > 0) |
| | | { |
| | | foreach (var monitor in allMonitorValueList) |
| | | foreach (var visual in resistances) |
| | | { |
| | | var vm = new HydroWorkingMonitorViewModel(monitor); |
| | | _hydroWorking.MonitorInfo.Add(vm); |
| | | var workingInfo = new HydroWorkingResistanceViewModel(visual); |
| | | _working.WorkingInfo.AppendWorking(workingInfo); |
| | | } |
| | | } |
| | | |
| | | |
| | | #endregion |
| | | |
| | |
| | | { |
| | | return default; |
| | | } |
| | | if (_hydroWorking == null) |
| | | { |
| | | return default; |
| | | } |
| | | if (_basicCtrl == null) |
| | | { |
| | | return default; |
| | | } |
| | | var vm = _basicCtrl.GetBindingData(); |
| | | if (vm == null) |
| | | if (_working == null) |
| | | { |
| | | return default; |
| | | } |
| | | _visualCtrlList?.ForEach(x => x.GetWorking()); |
| | | return _hydroWorking; |
| | | return _working; |
| | | } |
| | | |
| | | |