| | |
| | | using Yw.Hydro; |
| | | using Yw.EPAnet; |
| | | using DevExpress.Mvvm.POCO; |
| | | using DevExpress.Utils; |
| | | |
| | | namespace Yw.WinFrmUI |
| | | { |
| | |
| | | { |
| | | return; |
| | | } |
| | | var allVisualDict = hydroInfo.GetVisualDict(); |
| | | var network = hydroInfo.ToNetwork(); |
| | | if (network == null) |
| | | { |
| | |
| | | { |
| | | return; |
| | | } |
| | | var epaCalcuResult = network.Calcu(Yw.EPAnet.CalcuMode.MinorLoss); |
| | | var allPathList = network.AnalyzeDownstreamPath(node, epaCalcuResult); |
| | | var allEpaLossList = network.GetChartNodeByPathLinks(allPathList, epaCalcuResult); |
| | | var lossNode = allEpaLossList.Where(x => x.Head > 45.417 && x.Head < 45.418).First(); |
| | | var nextLossNode = allEpaLossList.Where(x => x.Head > 41.065 && x.Head < 41.066).First(); |
| | | var allNodeLossList = allEpaLossList?.Select(x => new HydroNodeLossViewModel(x)).ToList(); |
| | | var allPathList = network.AnalyzeDownstreamPath(node, calcuResult.EPAnetCalcuResult); |
| | | var allEpaLossList = network.GetChartNodeByPathLinks(allPathList, calcuResult.EPAnetCalcuResult); |
| | | var allNodeLossList = new List<HydroNodeLossViewModel>(); |
| | | allEpaLossList?.ForEach(x => |
| | | { |
| | | var visualNode = allVisualDict?.GetValue(x.Id); |
| | | if (visualNode != null) |
| | | { |
| | | allNodeLossList.Add(new HydroNodeLossViewModel(x, visualNode)); |
| | | } |
| | | }); |
| | | SetBindingData(allNodeLossList); |
| | | } |
| | | |
| | |
| | | public void SetBindingData(List<HydroNodeLossViewModel> allNodeLossList) |
| | | { |
| | | AutoFitAxises(allNodeLossList); |
| | | var allElevList = allNodeLossList?.Select(x => new HydroLossCurvePointVieModel(x.Distance, x.Elev)).ToList(); |
| | | var allElevList = allNodeLossList?.Select(x => new HydroLossCurvePointVieModel(x.Code, x.Name, x.Distance, x.Elev)).ToList(); |
| | | this.elevBindingSource.DataSource = allElevList; |
| | | var allLossList = new List<HydroLossCurvePointVieModel>(); |
| | | allNodeLossList?.ForEach(x => |
| | | { |
| | | allLossList.Add(new HydroLossCurvePointVieModel(x.Distance, x.StartHead)); |
| | | allLossList.Add(new HydroLossCurvePointVieModel(x.Distance, x.EndHead)); |
| | | allLossList.Add(new HydroLossCurvePointVieModel(x.Code, x.Name, x.Distance, x.StartHead)); |
| | | allLossList.Add(new HydroLossCurvePointVieModel(x.Code, x.Name, x.Distance, x.EndHead)); |
| | | }); |
| | | this.lossBindingSource.DataSource = allLossList; |
| | | } |
| | |
| | | |
| | | } |
| | | |
| | | |
| | | |
| | | //提示 |
| | | private void toolTipController1_GetActiveObjectInfo(object sender, DevExpress.Utils.ToolTipControllerGetActiveObjectInfoEventArgs e) |
| | | { |
| | | if (e.SelectedControl == this.chartControl1) |
| | | { |
| | | ChartHitInfo hitInfo = this.chartControl1.CalcHitInfo(e.ControlMousePosition); |
| | | if (hitInfo.SeriesPoint != null) |
| | | { |
| | | var vm = hitInfo.SeriesPoint.Tag as HydroLossCurvePointVieModel; |
| | | if (vm != null) |
| | | { |
| | | e.Info = new ToolTipControlInfo(hitInfo.SeriesPoint, $"{vm.Name}:{vm.Y}"); |
| | | return; |
| | | } |
| | | } |
| | | e.Info = null; |
| | | } |
| | | } |
| | | } |
| | | } |