From 82dfff29bca77a1e11459fb7a69f729a09f4345c Mon Sep 17 00:00:00 2001 From: lixiaojun <1287241240@qq.com> Date: 星期五, 18 十月 2024 15:05:05 +0800 Subject: [PATCH] 计算优化,标注优化 --- WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.cs | 350 +++++++++++++++++++++++---------------------------------- 1 files changed, 141 insertions(+), 209 deletions(-) diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.cs b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.cs index b1130a6..64fb679 100644 --- a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.cs +++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.cs @@ -1,4 +1,6 @@ 锘縢lobal using Yw.EPAnet; +using DevExpress.Mvvm.Native; +using DevExpress.Utils.DirectXPaint; using Yw.WinFrmUI.Bimface; using Yw.WinFrmUI.Hydro; @@ -12,6 +14,7 @@ this.PageTitle.Caption = "姘村姏妯℃嫙"; this.PageTitle.HeaderSvgImage = this.svgImg32[0]; this.docPnlBottom.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden; + this.docPnlRight.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden; } private HStation.Vmo.XhsProjectVmo _project = null;//椤圭洰 @@ -70,10 +73,6 @@ this.tabPageQ3d.Controls.Clear(); this.tabPageQ3d.Controls.Add(q3dCtrl); q3dCtrl.InitialData(() => _hydroInfo); - var propertyCtrl = GetPropertyCtrl(); - this.controlContainerRight.Controls.Clear(); - this.controlContainerRight.Controls.Add(propertyCtrl); - propertyCtrl.InitialData(() => _hydroInfo); } #region Bimface @@ -208,6 +207,9 @@ #region 灞炴�ч潰鏉� + //灞炴�ф帶浠� + private XhsProjectSimulationPropertyCtrl _propertyCtrl = null; + //鑾峰彇灞炴�ф帶浠� private XhsProjectSimulationPropertyCtrl GetPropertyCtrl() { @@ -215,13 +217,80 @@ { _propertyCtrl = new XhsProjectSimulationPropertyCtrl(); _propertyCtrl.Dock = DockStyle.Fill; + _propertyCtrl.InitialData(() => _hydroInfo); } return _propertyCtrl; } - private XhsProjectSimulationPropertyCtrl _propertyCtrl = null;//灞炴�ф帶浠� + //鏄剧ず灞炴�ч潰鏉� + private void ShowPropertyCtrl() + { + var propertyCtrl = GetPropertyCtrl(); + this.controlContainerRight.Controls.Clear(); + this.controlContainerRight.Controls.Add(propertyCtrl); + this.docPnlRight.Text = "灞炴��"; + this.docPnlRight.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Visible; + this.docPnlRight.Width = 270; + } - #endregion 灞炴�ч潰鏉� + //灞炴�ч潰鏉挎寜閽� + private void barBtnProperty_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) + { + ShowPropertyCtrl(); + } + + //鏄剧ず灞炴�� + private void ShowProperty() + { + if (_hydroInfo == null) + { + return; + } + if (_parter == null) + { + _propertyCtrl?.SelectParter(null); + return; + } + + _propertyCtrl?.SelectParter(_parter.Code); + if (_calcuResult != null) + { + if (_calcuResult.Succeed) + { + var allCalcuParterList = _calcuResult.GetParterList(); + var calcuParter = allCalcuParterList.Find(x => x.Id == _parter.Code); + if (calcuParter != null) + { + IHydroCalcuResult calcuProperty = null; + if (calcuParter is Yw.EPAnet.CalcuNode calcuNode) + { + var calcuNodeProperty = new Yw.WinFrmUI.HydroCalcuNodeResult(); + calcuNodeProperty.Code = _parter.Code; + calcuNodeProperty.CalcuPress = calcuNode.Press; + calcuNodeProperty.CalcuDemand = calcuNode.Demand; + calcuNodeProperty.CalcuHead = calcuNode.Head; + calcuProperty = calcuNodeProperty; + } + else if (calcuParter is Yw.EPAnet.CalcuLink calcuLink) + { + var calcuLinkProperty = new Yw.WinFrmUI.HydroCalcuLinkResult(); + calcuLinkProperty.Code = _parter.Code; + calcuLinkProperty.CalcuHeadLoss = calcuLink.Headloss; + calcuLinkProperty.CalcuFlow = calcuLink.Flow; + calcuLinkProperty.CalcuVelocity = calcuLink.Velocity; + calcuProperty = calcuLinkProperty; + } + + if (calcuProperty != null) + { + _propertyCtrl?.UpdateCalcuProperty(calcuProperty); + } + } + } + } + } + + #endregion #region 鑷姩鍖归厤 @@ -372,14 +441,17 @@ #region 姘村姏鏍¢獙 - //鑾峰彇鏍¢獙缁撴灉鎺т欢 - private XhsProjectSimulationHydroCheckResultCtrl GetCheckResultCtrl() + //鏍¢獙鎺т欢 + private XhsProjectSimulationHydroCheckResultCtrl _checkCtrl = null; + + //鑾峰彇鏍¢獙鎺т欢 + private XhsProjectSimulationHydroCheckResultCtrl GetCheckCtrl() { - if (_checkResultCtrl == null) + if (_checkCtrl == null) { - _checkResultCtrl = new XhsProjectSimulationHydroCheckResultCtrl(); - _checkResultCtrl.Dock = DockStyle.Fill; - _checkResultCtrl.HydroClickEvent += async (code) => + _checkCtrl = new XhsProjectSimulationHydroCheckResultCtrl(); + _checkCtrl.Dock = DockStyle.Fill; + _checkCtrl.HydroClickEvent += async (code) => { if (_hydroInfo == null) { @@ -404,11 +476,24 @@ SetBimfaceLinkColor(); }; } - return _checkResultCtrl; + return _checkCtrl; } - //鏍¢獙缁撴灉鎺т欢 - private XhsProjectSimulationHydroCheckResultCtrl _checkResultCtrl = null; + //鏄剧ず鏍¢獙鎺т欢 + private void ShowCheckCtrl() + { + if (_checkResult == null) + { + return; + } + var checkCtrl = GetCheckCtrl(); + checkCtrl.SetBindingData(_checkResult); + this.controlContainerBottom.Controls.Clear(); + this.controlContainerBottom.Controls.Add(checkCtrl); + this.docPnlBottom.Text = "鏍¢獙缁撴灉"; + this.docPnlBottom.Height = 350; + this.docPnlBottom.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Visible; + } //姘村姏楠岃瘉 private void barBtnHydroCheck_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) @@ -418,13 +503,7 @@ return; } _checkResult = _hydroInfo.Check(); - this.controlContainerBottom.Controls.Clear(); - var checkResultCtrl = GetCheckResultCtrl(); - checkResultCtrl.SetBindingData(_checkResult); - this.controlContainerBottom.Controls.Add(checkResultCtrl); - this.docPnlBottom.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Visible; - this.docPnlBottom.Text = "鏍¢獙缁撴灉"; - this.docPnlBottom.Height = 350; + ShowCheckCtrl(); } #endregion 姘村姏鏍¢獙 @@ -518,62 +597,6 @@ #endregion INP瀵煎嚭 - #region 涓氬姟鏂规硶 - - //鏄剧ず灞炴�� - private void ShowProperty() - { - if (_hydroInfo == null) - { - return; - } - - if (_parter == null) - { - _propertyCtrl?.SelectParter(null); - return; - } - - _propertyCtrl?.SelectParter(_parter.Code); - if (_calcuResult != null) - { - if (_calcuResult.Succeed) - { - var allCalcuParterList = _calcuResult.GetParterList(); - var calcuParter = allCalcuParterList.Find(x => x.Id == _parter.Code); - if (calcuParter != null) - { - IHydroCalcuResult calcuProperty = null; - if (calcuParter is Yw.EPAnet.CalcuNode calcuNode) - { - var calcuNodeProperty = new Yw.WinFrmUI.HydroCalcuNodeResult(); - calcuNodeProperty.Code = _parter.Code; - calcuNodeProperty.CalcuPress = calcuNode.Press; - calcuNodeProperty.CalcuDemand = calcuNode.Demand; - calcuNodeProperty.CalcuHead = calcuNode.Head; - calcuProperty = calcuNodeProperty; - } - else if (calcuParter is Yw.EPAnet.CalcuLink calcuLink) - { - var calcuLinkProperty = new Yw.WinFrmUI.HydroCalcuLinkResult(); - calcuLinkProperty.Code = _parter.Code; - calcuLinkProperty.CalcuHeadLoss = calcuLink.Headloss; - calcuLinkProperty.CalcuFlow = calcuLink.Flow; - calcuLinkProperty.CalcuVelocity = calcuLink.Velocity; - calcuProperty = calcuLinkProperty; - } - - if (calcuProperty != null) - { - _propertyCtrl?.UpdateCalcuProperty(calcuProperty); - } - } - } - } - } - - #endregion 涓氬姟鏂规硶 - #region 閰嶇疆 //鏄剧ずRadialMenu @@ -653,163 +676,59 @@ #region 姘村姏璁$畻 + //璁$畻鎺т欢 + private SetHydroCalcuPrefixCtrl _calcuCtrl = null; + //鑾峰彇璁$畻鎺т欢 - private XhsProjectSimulationCalcuCtrl GetCalcuCtrl() + private SetHydroCalcuPrefixCtrl GetCalcuCtrl() { if (_calcuCtrl == null) { - _calcuCtrl = new XhsProjectSimulationCalcuCtrl(); + _calcuCtrl = new SetHydroCalcuPrefixCtrl(); _calcuCtrl.Dock = DockStyle.Fill; - _calcuCtrl.CancelEvent += () => - { - this.docPnlBottom.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden; - }; - _calcuCtrl.OkEvent += async () => - { - if (_hydroInfo == null) - { - return; - } - _checkResult = _hydroInfo.Check(); - if (!_checkResult.Succeed) - { - this.controlContainerBottom.Controls.Clear(); - var checkResultCtrl = GetCheckResultCtrl(); - checkResultCtrl.SetBindingData(_checkResult); - this.controlContainerBottom.Controls.Add(checkResultCtrl); - TipFormHelper.ShowWarn("鏍¢獙澶辫触锛岃妫�鏌ュ悗閲嶈瘯"); - return; - } - - var netWork = Yw.Hydro.ParseHelper.ToNetwork(_hydroInfo); - _calcuResult = netWork.Calcu(); - if (_calcuResult.Succeed) - { - this.controlContainerBottom.Controls.Clear(); - var parterListCtrl = GetParterListCtrl(); - var calcuResultList = new List<IHydroCalcuResult>(); - _calcuResult.NodeList?.ForEach(x => - { - calcuResultList.Add(new HydroCalcuNodeResult() - { - Code = x.Id, - CalcuPress = x.Press, - CalcuHead = x.Head, - CalcuDemand = x.Demand, - }); - }); - _calcuResult.LinkList?.ForEach(x => - { - calcuResultList.Add(new HydroCalcuLinkResult() - { - Code = x.Id, - CalcuFlow = x.Flow, - CalcuVelocity = x.Velocity, - CalcuHeadLoss = x.Headloss - }); - }); - parterListCtrl.SetBindingData(_hydroInfo, calcuResultList); - parterListCtrl.SetCalcuView(); - this.controlContainerBottom.Controls.Add(parterListCtrl); - this.docPnlBottom.Text = "璁$畻缁撴灉"; - ShowProperty(); - await _bimfaceCtrl?.ShowCalcuCustomLabels(_calcuResult); - TipFormHelper.ShowSucceed("璁$畻鎴愬姛锛�"); - } - else - { - _calcuCtrl.SetBindingData(_calcuResult.FailedList); - this.docPnlBottom.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Visible; - this.docPnlBottom.Text = "璁$畻澶辫触鍘熷洜"; - this.docPnlBottom.Height = 350; - TipFormHelper.ShowError("璁$畻澶辫触"); - } - }; - } - return _calcuCtrl; - } - - private XhsProjectSimulationCalcuCtrl _calcuCtrl = null;//璁$畻鎺т欢 - private SetHydroCalcuPrefixCtrl _calcuPrefixCtrl = null; - - private SetHydroCalcuPrefixCtrl GetCalcuPrefixCtrl() - { - if (_calcuPrefixCtrl == null) - { - _calcuPrefixCtrl = new SetHydroCalcuPrefixCtrl(); - _calcuPrefixCtrl.Dock = DockStyle.Fill; - _calcuPrefixCtrl.InitialData(() => _hydroInfo); - _calcuPrefixCtrl.HydroViewEvent += async (parter) => - { + _calcuCtrl.InitialData(() => _hydroInfo); + _calcuCtrl.HydroViewEvent += async (parter) => + {//姘村姏鏌ョ湅浜嬩欢 if (parter == null) { return; } - await _bimfaceCtrl.ZoomAndSelectComponents(new List<string>() { parter.Code }); + await _bimfaceCtrl?.ZoomAndSelectComponents(new List<string>() { parter.Code }); }; - _calcuPrefixCtrl.HydroCalcuEvent += async (hydroInfo) => - { - if (hydroInfo == null) + _calcuCtrl.HydroCalcuEvent += async () => + {//姘村姏璁$畻浜嬩欢 + if (_hydroInfo == null) { return; } - _checkResult = hydroInfo.Check(); + + //鏍¢獙 + _checkResult = _hydroInfo.Check(); if (!_checkResult.Succeed) { - this.controlContainerBottom.Controls.Clear(); - var checkResultCtrl = GetCheckResultCtrl(); - checkResultCtrl.SetBindingData(_checkResult); - this.controlContainerBottom.Controls.Add(checkResultCtrl); + ShowCheckCtrl(); TipFormHelper.ShowWarn("鏍¢獙澶辫触锛岃妫�鏌ュ悗閲嶈瘯"); return; } - var netWork = Yw.Hydro.ParseHelper.ToNetwork(hydroInfo); + var netWork = Yw.Hydro.ParseHelper.ToNetwork(_hydroInfo); _calcuResult = netWork.Calcu(); if (_calcuResult.Succeed) { - this.controlContainerBottom.Controls.Clear(); - var parterListCtrl = GetParterListCtrl(); - var calcuResultList = new List<IHydroCalcuResult>(); - _calcuResult.NodeList?.ForEach(x => - { - calcuResultList.Add(new HydroCalcuNodeResult() - { - Code = x.Id, - CalcuPress = x.Press, - CalcuHead = x.Head, - CalcuDemand = x.Demand, - }); - }); - _calcuResult.LinkList?.ForEach(x => - { - calcuResultList.Add(new HydroCalcuLinkResult() - { - Code = x.Id, - CalcuFlow = x.Flow, - CalcuVelocity = x.Velocity, - CalcuHeadLoss = x.Headloss - }); - }); - parterListCtrl.SetBindingData(_hydroInfo, calcuResultList); - parterListCtrl.SetCalcuView(); - this.controlContainerBottom.Controls.Add(parterListCtrl); - this.docPnlBottom.Text = "璁$畻缁撴灉"; - ShowProperty(); - await _bimfaceCtrl?.ShowCalcuCustomLabels(_calcuResult); + this.docPnlRight.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden; + await _bimfaceCtrl?.SetLogicCalcuCustomLabels(_calcuResult); TipFormHelper.ShowSucceed("璁$畻鎴愬姛锛�"); } else { - _calcuCtrl.SetBindingData(_calcuResult.FailedList); - this.docPnlBottom.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Visible; - this.docPnlBottom.Text = "璁$畻澶辫触鍘熷洜"; - this.docPnlBottom.Height = 350; + _calcuCtrl.SetFailedList(_calcuResult.FailedList); + this.docPnlRight.Text = "澶辫触鍘熷洜"; + this.docPnlRight.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Visible; TipFormHelper.ShowError("璁$畻澶辫触"); } }; } - return _calcuPrefixCtrl; + return _calcuCtrl; } //姘村姏璁$畻 @@ -819,7 +738,7 @@ { return; } - var calcuPrefixCtrl = GetCalcuPrefixCtrl(); + var calcuPrefixCtrl = GetCalcuCtrl(); calcuPrefixCtrl.SetBindingData(); this.controlContainerRight.Controls.Clear(); this.controlContainerRight.Controls.Add(calcuPrefixCtrl); @@ -890,8 +809,8 @@ private List<HydroMarkSetViewModel> _allMarkList = null; - //鏍囨敞 - private void barBtnMark_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) + //璁剧疆鏍囨敞 + private void barBtnMarkSet_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { if (_hydroInfo == null) { @@ -956,6 +875,19 @@ dlg.ShowDialog(); } - #endregion 鏍囨敞 + //鍙栨秷鏍囨敞 + private async void barBtnMarkCancel_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) + { + if (_hydroInfo == null) + { + return; + } + await _bimfaceCtrl?.ClearLogicMarkLeadLabels(); + } + + #endregion + + + } } \ No newline at end of file -- Gitblit v1.9.3