From 145dcc3a9ed1c3bcbc01c8da2b341aaa6ee5dbd2 Mon Sep 17 00:00:00 2001 From: lixiaojun <1287241240@qq.com> Date: 星期一, 14 十月 2024 10:37:44 +0800 Subject: [PATCH] 优化link连接颜色 --- WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.cs | 228 ++++++++++++++++++++++++++++++++++++++------------------ 1 files changed, 153 insertions(+), 75 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 5c0b8ea..1e4b136 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,7 @@ 锘縢lobal using Yw.EPAnet; +using DevExpress.XtraMap.Drawing; +using NetTaste; +using Org.BouncyCastle.Crypto.Engines; namespace HStation.WinFrmUI { @@ -12,8 +15,6 @@ this.docPnlBottom.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden; } - - private HStation.Vmo.XhsProjectVmo _project = null;//椤圭洰 private HStation.Vmo.XhsProjectSiteVmo _projectSite = null;//椤圭洰绔� @@ -63,61 +64,51 @@ return; } this.PageTitle.Caption = $"{_project.Name}\r\n姘村姏妯℃嫙"; - await this.xhsProjectSimulationBimfaceCtrl1.SetBindingData(_project, _projectSite, () => _hydroInfo); + var bimfaceCtrl = GetBimfaceCtrl(); + this.tabPageBimface.Controls.Clear(); + this.tabPageBimface.Controls.Add(bimfaceCtrl); + await bimfaceCtrl.InitialData(_project, _projectSite, () => _hydroInfo); this.xhsProjectSimulationQ3dCtrl1.SetBindingData(_hydroInfo); this.xhsProjectSimulationPropertyCtrl1.InitialData(() => _hydroInfo); } - #region INP瀵煎嚭 - - //瀵煎嚭姘村姏INP鏂囦欢 - private void barBtnHydroExportInp_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) - { - if (_hydroInfo == null) - { - return; - } - var fileName = Yw.WinFrmUI.FileDialogHelper.SaveInp("瀵煎嚭Inp鏂囦欢"); - if (string.IsNullOrEmpty(fileName)) - { - return; - } - var netWork = Yw.Hydro.ParseHelper.ToNetwork(_hydroInfo); - var result = netWork.ToInpString(); - File.WriteAllText(fileName, result); - TipFormHelper.ShowSucceed("瀵煎嚭鎴愬姛"); - } - - #endregion - #region Bimface - //bimface 鍔犺浇瀹屾垚浜嬩欢 - private async void xhsProjectSimulationBimfaceCtrl1_LoadCompletedEvent() + //鑾峰彇 bimface 鎺т欢 + private XhsProjectSimulationBimfaceCtrl GetBimfaceCtrl() { - if (_hydroInfo == null) + if (_bimfaceCtrl == null) { - return; + _bimfaceCtrl = new XhsProjectSimulationBimfaceCtrl(); + _bimfaceCtrl.Dock = DockStyle.Fill; + _bimfaceCtrl.LoadCompletedEvent += async () => + {//view鍔犺浇瀹屾垚浜嬩欢 + if (_hydroInfo == null) + { + return; + } + var elementIds = new List<string>(); + var pumps = _hydroInfo.Pumps?.Where(x => x.LinkStatus == Yw.Hydro.PumpStatus.Open).ToList(); + pumps?.ForEach(x => elementIds.Add(x.Code)); + var valves = _hydroInfo.Valves?.Where(x => x.LinkStatus == Yw.Hydro.ValveStatus.Open).ToList(); + valves?.ForEach(x => elementIds.Add(x.Code)); + await _bimfaceCtrl?.SetOpenComponentsColor(elementIds); + }; + _bimfaceCtrl.HydroMouseLeftClickEvent += (obj) => + {//榧犳爣宸﹂敭鐐瑰嚮浜嬩欢 + if (_hydroInfo == null) + { + return; + } + _parter = obj; + ShowProperty(); + SetBimfaceLinkColor(); + }; } - var elementIds = new List<string>(); - var pumps = _hydroInfo.Pumps?.Where(x => x.LinkStatus == Yw.Hydro.PumpStatus.Open).ToList(); - pumps?.ForEach(x => elementIds.Add(x.Code)); - var valves = _hydroInfo.Valves?.Where(x => x.LinkStatus == Yw.Hydro.ValveStatus.Open).ToList(); - valves?.ForEach(x => elementIds.Add(x.Code)); - await this.xhsProjectSimulationBimfaceCtrl1.SetOpenComponentsColor(elementIds); + return _bimfaceCtrl; } - - //bimface 姘村姏鐐瑰嚮浜嬩欢 - private void xhsProjectSimulationBimfaceCtrl1_HydroClickEvent(Yw.Model.HydroParterInfo obj) - { - if (_hydroInfo == null) - { - return; - } - _parter = obj; - ShowProperty(); - SetBimfaceLinkColor(); - } + //bimface鎺т欢 + private XhsProjectSimulationBimfaceCtrl _bimfaceCtrl = null; //璁剧疆Bimface杩炴帴棰滆壊 private async void SetBimfaceLinkColor() @@ -126,51 +117,77 @@ { return; } - var elementIds = new List<string>(); if (_parter != null) { - if (_parter is Yw.Model.HydroLinkInfo linker) + if (_parter is Yw.Model.HydroLinkInfo link) { - var allParterList = _hydroInfo.GetAllParters(); - var allLinkerList = _hydroInfo.GetAllLinks(); - var startParter = allParterList?.Find(x => x.Code == linker.StartCode); + await _bimfaceCtrl?.RestoreLinkComponentsColor(); + + var allVisualList = _hydroInfo.GetAllVisuals(); + var allLinkList = _hydroInfo.GetAllLinks(); + var startParter = allVisualList?.Find(x => x.Code == link.StartCode); if (startParter != null) { + var startElementIds = new List<string>(); if (startParter.GetType() == typeof(Yw.Model.HydroJunctionInfo)) { - var startLinkList = allLinkerList?.Where(x => x.StartCode == startParter.Code || x.EndCode == startParter.Code).ToList(); - if (startLinkList != null) + var startLinkList = allLinkList?.Where(x => x.StartCode == startParter.Code || x.EndCode == startParter.Code && x.Code != _parter.Code).ToList(); + if (startLinkList != null && startLinkList.Count > 0) { - elementIds.AddRange(startLinkList.Select(x => x.Code).Where(x => x != _parter.Code)); + startElementIds.AddRange(startLinkList.Select(x => x.Code)); } } else { - elementIds.Add(linker.StartCode); + startElementIds.Add(startParter.Code); + } + if (startElementIds.Count > 0) + { + await _bimfaceCtrl?.SetLinkStartComponentsColor(startElementIds); } } - var endParter = allParterList?.Find(x => x.Code == linker.EndCode); + var endParter = allVisualList?.Find(x => x.Code == link.EndCode); if (endParter != null) { + var endElementIds = new List<string>(); if (endParter.GetType() == typeof(Yw.Model.HydroJunctionInfo)) { - var endLinkList = allLinkerList?.Where(x => x.StartCode == endParter.Code || x.EndCode == endParter.Code).ToList(); - if (endLinkList != null) + var endLinkList = allLinkList?.Where(x => x.StartCode == endParter.Code || x.EndCode == endParter.Code && x.Code != _parter.Code).ToList(); + if (endLinkList != null && endLinkList.Count > 0) { - elementIds.AddRange(endLinkList.Select(x => x.Code).Where(x => x != _parter.Code)); + endElementIds.AddRange(endLinkList.Select(x => x.Code)); } } else { - elementIds.Add(linker.EndCode); + endElementIds.Add(endParter.Code); + } + if (endElementIds.Count > 0) + { + await _bimfaceCtrl?.SetLinkEndComponentsColor(endElementIds); } } } } - await this.xhsProjectSimulationBimfaceCtrl1.SetLinkComponentsColor(elementIds); } - #endregion Bimface + #endregion + + #region Q3d + + //鐐瑰嚮浜嬩欢 + private void xhsProjectSimulationQ3dCtrl1_ClickParterEvent(string code) + { + if (_hydroInfo == null) + { + return; + } + var allParterList = _hydroInfo.GetAllParters(); + _parter = allParterList?.Find(x => x.Code == code); + ShowProperty(); + } + + #endregion #region 灞炴�ч潰鏉� @@ -200,7 +217,7 @@ { elementIds.Add(_parter.Code); } - await this.xhsProjectSimulationBimfaceCtrl1.ZoomAndSelectComponents(elementIds); + await _bimfaceCtrl?.ZoomAndSelectComponents(elementIds); ShowProperty(); SetBimfaceLinkColor(); }; @@ -260,14 +277,14 @@ var allParterList = _hydroInfo.GetAllParters(); _parter = allParterList?.Find(x => x.Code == parter.Code); var elementIds = new List<string>() { parter.Code }; - await this.xhsProjectSimulationBimfaceCtrl1.ZoomAndSelectComponents(elementIds); + await _bimfaceCtrl?.ZoomAndSelectComponents(elementIds); ShowProperty(); SetBimfaceLinkColor(); }; _unMatchingListCtrl.ViewModelEvent += async (parters) =>//鏌ョ湅妯″瀷 { var codes = parters?.Select(x => x.Code).Distinct().ToList(); - await this.xhsProjectSimulationBimfaceCtrl1.ZoomAndSelectComponents(codes); + await _bimfaceCtrl?.ZoomAndSelectComponents(codes); _parter = null; ShowProperty(); }; @@ -315,11 +332,11 @@ if (_fastShowHideCodeList == null) { _fastShowHideCodeList = _hydroInfo.Decorators.Select(x => x.Code).ToList(); - await this.xhsProjectSimulationBimfaceCtrl1.HideComponents(_fastShowHideCodeList); + await _bimfaceCtrl?.HideComponents(_fastShowHideCodeList); } else { - await this.xhsProjectSimulationBimfaceCtrl1.ShowComponents(_fastShowHideCodeList); + await _bimfaceCtrl?.ShowComponents(_fastShowHideCodeList); _fastShowHideCodeList = null; } } @@ -355,7 +372,7 @@ elementIds.Add(_parter.Code); } } - await this.xhsProjectSimulationBimfaceCtrl1.ZoomAndSelectComponents(elementIds); + await _bimfaceCtrl?.ZoomAndSelectComponents(elementIds); ShowProperty(); SetBimfaceLinkColor(); }; @@ -422,7 +439,7 @@ } var allParterList = _hydroInfo.GetAllParters(); _parter = allParterList?.Find(x => x.Code == parter.Code); - await this.xhsProjectSimulationBimfaceCtrl1.ZoomAndSelectComponents(new List<string>() { _parter.Code }); + await _bimfaceCtrl?.ZoomAndSelectComponents(new List<string>() { _parter.Code }); ShowProperty(); SetBimfaceLinkColor(); }; @@ -448,6 +465,28 @@ this.docPnlBottom.Height = 350; } + + #endregion + + #region INP瀵煎嚭 + + //瀵煎嚭姘村姏INP鏂囦欢 + private void barBtnHydroExportInp_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) + { + if (_hydroInfo == null) + { + return; + } + var fileName = Yw.WinFrmUI.FileDialogHelper.SaveInp("瀵煎嚭Inp鏂囦欢"); + if (string.IsNullOrEmpty(fileName)) + { + return; + } + var netWork = Yw.Hydro.ParseHelper.ToNetwork(_hydroInfo); + var result = netWork.ToInpString(); + File.WriteAllText(fileName, result); + TipFormHelper.ShowSucceed("瀵煎嚭鎴愬姛"); + } #endregion @@ -579,21 +618,59 @@ { 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.docPnlBottom.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden; + 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("璁$畻鎴愬姛锛�"); - await this.xhsProjectSimulationBimfaceCtrl1.ShowCalcuCustomLabels(_calcuResult); } else { _calcuCtrl.SetBindingData(_calcuResult.FailedList); this.docPnlBottom.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Visible; - this.docPnlBottom.Text = "姘村姏璁$畻澶辫触鍘熷洜"; + this.docPnlBottom.Text = "璁$畻澶辫触鍘熷洜"; this.docPnlBottom.Height = 350; + TipFormHelper.ShowError("璁$畻澶辫触"); } }; @@ -615,7 +692,7 @@ calcuCtrl.SetBindingData(_hydroInfo); this.controlContainerBottom.Controls.Add(calcuCtrl); this.docPnlBottom.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Visible; - this.docPnlBottom.Text = "姘村姏璁$畻鍓嶆彁鏉′欢"; + this.docPnlBottom.Text = "璁$畻鍓嶆彁鏉′欢"; this.docPnlBottom.Height = 350; } @@ -651,7 +728,7 @@ { _parter = null; } - await this.xhsProjectSimulationBimfaceCtrl1.ZoomAndSelectComponents(elementIds); + await _bimfaceCtrl?.ZoomAndSelectComponents(elementIds); ShowProperty(); SetBimfaceLinkColor(); }; @@ -679,5 +756,6 @@ #endregion + } } \ No newline at end of file -- Gitblit v1.9.3