From 7b8ae93d47186c442ff890a1a83d108f115924c7 Mon Sep 17 00:00:00 2001 From: ningshuxia <ningshuxia0927@outlook.com> Date: 星期一, 24 三月 2025 17:25:14 +0800 Subject: [PATCH] 快速建模,模型编辑 差不多 --- WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/XhsProjectSimulationMgrPage.cs | 315 ++++++++++++++++++++++++++++++++++++---------------- 1 files changed, 219 insertions(+), 96 deletions(-) diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/XhsProjectSimulationMgrPage.cs b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/XhsProjectSimulationMgrPage.cs index 314c1ab..d63e686 100644 --- a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/XhsProjectSimulationMgrPage.cs +++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/XhsProjectSimulationMgrPage.cs @@ -1,5 +1,4 @@ -锘縰sing DevExpress.Drawing; -using DevExpress.Utils.Svg; +锘縰sing DevExpress.Utils.Svg; using DevExpress.XtraBars.Docking; using DevExpress.XtraBars.Docking2010.Views; using Yw.Vmo; @@ -15,18 +14,21 @@ this.PageTitle.Caption = "姘村姏妯℃嫙"; this.PageTitle.HeaderSvgImage = this.svgImg32[0]; this.PageTitle.SvgImageSize = new Size(24, 24); - this.xhsProjectSimulationFunctionMgrCtrl1.ShowProjectSiteInfoEvent += XhsProjectSimulationFunctionMgrCtrl1_ShowProjectSiteInfoEvent; - this.xhsProjectSimulationFunctionMgrCtrl1.ShowProjectSiteSimulationEvent += XhsProjectSimulationFunctionMgrCtrl1_ShowProjectSiteSimulationEvent; - this.xhsProjectSimulationFunctionMgrCtrl1.ShowProjectSiteWorkingEvent += XhsProjectSimulationFunctionMgrCtrl1_ShowProjectSiteWorkingEvent; - this.xhsProjectSimulationFunctionMgrCtrl1.ProjectSiteWorkingCheckedEvent += XhsProjectSimulationFunctionMgrCtrl1_ProjectSiteWorkingCheckedEvent; - this.xhsProjectSimulationFunctionMgrCtrl1.CreateProjectSiteSchemeEvent += XhsProjectSimulationFunctionMgrCtrl1_CreateProjectSiteSchemeEvent; - this.xhsProjectSimulationFunctionMgrCtrl1.ShowProjectSiteSchemeEvent += XhsProjectSimulationFunctionMgrCtrl1_ShowProjectSiteSchemeEvent; - this.xhsProjectSimulationFunctionMgrCtrl1.ShowProjectSiteSchemeWorkingEvent += XhsProjectSimulationFunctionMgrCtrl1_ShowProjectSiteSchemeWorkingEvent; + this.simulationFunctionMgrCtrl1.ShowProjectSiteInfoEvent += SimulationFunctionMgrCtrl1_ShowProjectSiteInfoEvent; + this.simulationFunctionMgrCtrl1.ShowProjectSiteSimulationEvent += SimulationFunctionMgrCtrl1_ShowProjectSiteSimulationEvent; + this.simulationFunctionMgrCtrl1.ProjectSiteWorkingAppendEvent += SimulationFunctionMgrCtrl1_ProjectSiteWorkingAppendEvent; + this.simulationFunctionMgrCtrl1.ProjectSiteWorkingUpdateEvent += SimulationFunctionMgrCtrl1_ProjectSiteWorkingUpdateEvent; + this.simulationFunctionMgrCtrl1.ProjectSiteWorkingRemoveEvent += SimulationFunctionMgrCtrl1_ProjectSiteWorkingRemoveEvent; + this.simulationFunctionMgrCtrl1.ProjectSiteWorkingCheckedEvent += SimulationFunctionMgrCtrl1_ProjectSiteWorkingCheckedEvent; + this.simulationFunctionMgrCtrl1.ProjectSiteWorkingReloadEvent += SimulationFunctionMgrCtrl1_ProjectSiteWorkingReloadEvent; + this.simulationFunctionMgrCtrl1.CreateProjectSiteSchemeEvent += SimulationFunctionMgrCtrl1_CreateProjectSiteSchemeEvent; + this.simulationFunctionMgrCtrl1.ProjectSiteSchemeAppendEvent += SimulationFunctionMgrCtrl1_ProjectSiteSchemeAppendEvent; + this.simulationFunctionMgrCtrl1.ProjectSiteSchemeUpdateEvent += SimulationFunctionMgrCtrl1_ProjectSiteSchemeUpdateEvent; + this.simulationFunctionMgrCtrl1.ProjectSiteSchemeRemoveEvent += SimulationFunctionMgrCtrl1_ProjectSiteSchemeRemoveEvent; } private XhsProjectVmo _project = null;//椤圭洰 - private object _locker = new object();//閿佸畾瀵硅薄 - + private object _locker = new();//閿佸畾瀵硅薄 /// <summary> /// 鍒濆鍖栨暟鎹簮 @@ -38,7 +40,7 @@ { return; } - await this.xhsProjectSimulationFunctionMgrCtrl1.SetBindingData(_project); + await this.simulationFunctionMgrCtrl1.SetBindingData(_project); } /// <summary> @@ -66,8 +68,13 @@ #region 鍔熻兘闈㈡澘 //鏄剧ず椤圭洰绔欐鍐典簨浠� - private void XhsProjectSimulationFunctionMgrCtrl1_ShowProjectSiteInfoEvent - (XhsProjectVmo project, XhsProjectSiteVmo projectSite, Yw.Model.HydroModelInfo hydroInfo, SvgImage svgImage) + private void SimulationFunctionMgrCtrl1_ShowProjectSiteInfoEvent + ( + XhsProjectVmo project, + XhsProjectSiteVmo projectSite, + Yw.Model.HydroModelInfo hydroInfo, + SvgImage svgImage + ) { lock (_locker) { @@ -76,6 +83,7 @@ Modular = this.PageGuid.Modular, MoudingType = eMoudingType.Tab, Function = SimulationFunctionHelper.Info, + TagName = $"{project.ID}-{projectSite.ID}" }; if (!IsExistPage(guid, true)) { @@ -88,8 +96,15 @@ } //鏄剧ず椤圭洰绔欐按鍔涙ā鎷熶簨浠� - private void XhsProjectSimulationFunctionMgrCtrl1_ShowProjectSiteSimulationEvent - (XhsProjectVmo project, XhsProjectSiteVmo projectSite, Yw.Model.HydroModelInfo hydroInfo, Dictionary<HydroWorkingVmo, bool> allWorkingCheckedListDict, SvgImage svgImage) + private void SimulationFunctionMgrCtrl1_ShowProjectSiteSimulationEvent + ( + XhsProjectVmo project, + XhsProjectSiteVmo projectSite, + XhsSchemeVmo scheme, + Yw.Model.HydroModelInfo hydroInfo, + Dictionary<HydroWorkingVmo, bool> allWorkingCheckedListDict, + SvgImage svgImage + ) { lock (_locker) { @@ -98,55 +113,147 @@ Modular = this.PageGuid.Modular, MoudingType = eMoudingType.Tab, Function = SimulationFunctionHelper.Simulation, - TagName = projectSite.ID.ToString() + TagName = $"{project.ID}-{projectSite.ID}-{scheme?.ID}" }; if (!IsExistPage(guid, true)) { var page = new XhsProjectSimulationCorePage(); page.PageTitle.HeaderSvgImage = svgImage; + page.GetModelEvent += (s) => + { + //鑾峰彇妯″瀷浜嬩欢 + return this.simulationFunctionMgrCtrl1.GetModel(scheme); + }; + page.RefreshModelEvent += () => + { + //鍒锋柊妯″瀷浜嬩欢 + return this.simulationFunctionMgrCtrl1.RefreshModel(scheme); + }; page.AppendWorkingEvent += (working) => { - this.xhsProjectSimulationFunctionMgrCtrl1.AppendWorking(working); + //澧炲姞宸ュ喌浜嬩欢 + this.simulationFunctionMgrCtrl1.AppendWorking(scheme, working); }; - page.SetBindingData(project, projectSite, hydroInfo, allWorkingCheckedListDict); + page.UpdateWorkingEvent += (working) => + { + //鏇存柊宸ュ喌浜嬩欢 + this.simulationFunctionMgrCtrl1.UpdateWorking(scheme, working); + }; + page.RemoveWorkingEvent += (working) => + { + //绉婚櫎宸ュ喌浜嬩欢 + this.simulationFunctionMgrCtrl1.RemoveWorking(scheme, working); + }; + page.ReloadWorkingEvent += (dict) => + { + //閲嶈浇宸ュ喌浜嬩欢 + this.simulationFunctionMgrCtrl1.ReloadWorking(scheme, dict); + }; + + page.UpdateSchemeEvent += (rhs) => + { + //鏇存柊鏂规浜嬩欢 + this.simulationFunctionMgrCtrl1.UpdateScheme(rhs); + }; + page.RemoveSchemeEvent += (rhs) => + { + //绉婚櫎鏂规浜嬩欢 + this.simulationFunctionMgrCtrl1.RemoveScheme(rhs); + }; + page.SetBindingData(project, projectSite, scheme, hydroInfo, allWorkingCheckedListDict); CreatePage(page, guid); } } } - //鏄剧ず椤圭洰绔欏伐鍐典簨浠� - private void XhsProjectSimulationFunctionMgrCtrl1_ShowProjectSiteWorkingEvent - (XhsProjectVmo project, XhsProjectSiteVmo projectSite, Yw.Model.HydroModelInfo hydroInfo, HydroWorkingVmo working, SvgImage svgImage) + /// <summary> + /// 椤圭洰绔欏伐鍐靛鍔犱簨浠� + /// </summary> + private void SimulationFunctionMgrCtrl1_ProjectSiteWorkingAppendEvent + ( + XhsProjectVmo project, + XhsProjectSiteVmo projectSite, + XhsSchemeVmo scheme, + HydroWorkingVmo working + ) { - lock (_locker) - { - var guid = new PageGuid() - { - Modular = this.PageGuid.Modular, - MoudingType = eMoudingType.Tab, - Function = SimulationFunctionHelper.Working, - TagName = working.ID.ToString() - }; - if (!IsExistPage(guid, true)) - { - var page = new XhsProjectSimulationWorkingPage(); - page.PageTitle.HeaderSvgImage = svgImage; - page.SetBindingData(project, projectSite, hydroInfo, working); - CreatePage(page, guid); - } - } + //鐩墠澧炲姞宸ュ喌閮芥槸閫氳繃妯℃嫙鐣岄潰澧炲姞鐨勶紝鍔熻兘绠$悊鎺т欢灞炰簬琚�氱煡鐨勶紝鍏朵粬鍦版柟鏆傛椂涓嶅叧蹇冨伐鍐靛鍔� } - //椤圭洰绔欏伐鍐甸�夋嫨鏀瑰彉浜嬩欢 - private void XhsProjectSimulationFunctionMgrCtrl1_ProjectSiteWorkingCheckedEvent - (XhsProjectVmo project, XhsProjectSiteVmo projectSite, Yw.Model.HydroModelInfo hydroInfo, HydroWorkingVmo working, bool hasChecked) + //椤圭洰绔欏伐鍐垫洿鏂颁簨浠� + private void SimulationFunctionMgrCtrl1_ProjectSiteWorkingUpdateEvent + ( + XhsProjectVmo project, + XhsProjectSiteVmo projectSite, + XhsSchemeVmo scheme, + HydroWorkingVmo working + ) { var guid = new PageGuid() { Modular = this.PageGuid.Modular, MoudingType = eMoudingType.Tab, Function = SimulationFunctionHelper.Simulation, - TagName = projectSite.ID.ToString() + TagName = $"{project.ID}-{projectSite.ID}-{scheme?.ID}" + }; + var page = FindPage(guid); + if (page == null) + { + return; + } + var ctrl = page as XhsProjectSimulationCorePage; + if (ctrl == null) + { + return; + } + ctrl.UpdateWorkingCheckedList(working); + } + + //椤圭洰绔欏伐鍐电Щ闄や簨浠� + private void SimulationFunctionMgrCtrl1_ProjectSiteWorkingRemoveEvent + ( + XhsProjectVmo project, + XhsProjectSiteVmo projectSite, + XhsSchemeVmo scheme, + HydroWorkingVmo working + ) + { + var guid = new PageGuid() + { + Modular = this.PageGuid.Modular, + MoudingType = eMoudingType.Tab, + Function = SimulationFunctionHelper.Simulation, + TagName = $"{project.ID}-{projectSite.ID}-{scheme?.ID}" + }; + var page = FindPage(guid); + if (page == null) + { + return; + } + var ctrl = page as XhsProjectSimulationCorePage; + if (ctrl == null) + { + return; + } + ctrl.RemoveWorkingCheckedList(working); + } + + //椤圭洰绔欏伐鍐甸�夋嫨鏀瑰彉浜嬩欢 + private void SimulationFunctionMgrCtrl1_ProjectSiteWorkingCheckedEvent + ( + XhsProjectVmo project, + XhsProjectSiteVmo projectSite, + XhsSchemeVmo scheme, + HydroWorkingVmo working, + bool hasChecked + ) + { + var guid = new PageGuid() + { + Modular = this.PageGuid.Modular, + MoudingType = eMoudingType.Tab, + Function = SimulationFunctionHelper.Simulation, + TagName = $"{project.ID}-{projectSite.ID}-{scheme?.ID}" }; var page = FindPage(guid); if (page == null) @@ -161,69 +268,87 @@ ctrl.UpdateWorkingCheckedList(working, hasChecked); } - //椤圭洰绔欐柟妗堝垱寤轰簨浠� - private void XhsProjectSimulationFunctionMgrCtrl1_CreateProjectSiteSchemeEvent - (XhsProjectVmo project, XhsProjectSiteVmo projectSite, Yw.Model.HydroModelInfo hydroInfo, SvgImage svgImage) + //椤圭洰绔欏伐鍐甸�夋嫨閲嶈浇浜嬩欢 + private void SimulationFunctionMgrCtrl1_ProjectSiteWorkingReloadEvent + ( + XhsProjectVmo project, + XhsProjectSiteVmo projectSite, + XhsSchemeVmo scheme, + Dictionary<HydroWorkingVmo, bool> dict + ) { - WaitFormHelper.ShowWaitForm(this.FindForm(), "姝e湪鍔犺浇妯″瀷锛岃绋嶄警..."); - var dlg = new AddXhsSchemeDlg(); + var guid = new PageGuid() + { + Modular = this.PageGuid.Modular, + MoudingType = eMoudingType.Tab, + Function = SimulationFunctionHelper.Simulation, + TagName = $"{project.ID}-{projectSite.ID}-{scheme?.ID}" + }; + var page = FindPage(guid); + if (page == null) + { + return; + } + var ctrl = page as XhsProjectSimulationCorePage; + if (ctrl == null) + { + return; + } + ctrl.ReloadWorkingCheckedList(dict); + } + + //椤圭洰绔欐柟妗堝垱寤轰簨浠� + private void SimulationFunctionMgrCtrl1_CreateProjectSiteSchemeEvent + ( + XhsProjectVmo project, + XhsProjectSiteVmo projectSite, + Yw.Model.HydroModelInfo hydroInfo, + List<XhsSchemeVmo> allSchemeList, + SvgImage svgImage + ) + { + WaitFormHelper.ShowWaitForm(this.FindForm(), "姝e湪鍔犺浇锛岃绋嶄警..."); + var dlg = new CreateXhsSchemeDlg(); dlg.Shown += delegate { WaitFormHelper.HideWaitForm(this.FindForm()); }; + dlg.SetBindingData(project, projectSite, hydroInfo, allSchemeList); dlg.ReloadDataEvent += (rhs) => { - this.xhsProjectSimulationFunctionMgrCtrl1.AppendScheme(rhs); + this.simulationFunctionMgrCtrl1.AppendScheme(rhs); }; - dlg.SetBindingData(project, projectSite, hydroInfo); dlg.ShowDialog(); } - //鏄剧ず椤圭洰绔欐柟妗堜簨浠� - private void XhsProjectSimulationFunctionMgrCtrl1_ShowProjectSiteSchemeEvent - (XhsProjectVmo project, XhsProjectSiteVmo projectSite, XhsSchemeVmo scheme, Yw.Model.HydroModelInfo hydroInfo, Dictionary<HydroWorkingVmo, bool> dict, SvgImage svgImage) + //椤圭洰绔欐柟妗堝鍔犱簨浠� + private void SimulationFunctionMgrCtrl1_ProjectSiteSchemeAppendEvent + ( + XhsProjectVmo project, + XhsProjectSiteVmo projectSite, + XhsSchemeVmo scheme + ) { - lock (_locker) - { - var guid = new PageGuid() - { - Modular = this.PageGuid.Modular, - MoudingType = eMoudingType.Tab, - Function = SimulationFunctionHelper.Scheme, - TagName = scheme.ID.ToString() - }; - if (!IsExistPage(guid, true)) - { - var page = new XhsProjectSimulationSchemePage(); - page.PageTitle.HeaderSvgImage = svgImage; - page.AppendWorkingEvent += (working) => - { - this.xhsProjectSimulationFunctionMgrCtrl1.AppendSchemeWorking(scheme, working); - }; - page.SetBindingData(project, projectSite, scheme, hydroInfo, dict); - CreatePage(page, guid); - } - } + //琚姩 } - //鏄剧ず椤圭洰绔欐柟妗堝伐鍐典簨浠� - private void XhsProjectSimulationFunctionMgrCtrl1_ShowProjectSiteSchemeWorkingEvent - (XhsProjectVmo project, XhsProjectSiteVmo projectSite, XhsSchemeVmo scheme, Yw.Model.HydroModelInfo hydroInfo, HydroWorkingVmo working, SvgImage svgImage) + //椤圭洰绔欐柟妗堟洿鏂颁簨浠� + private void SimulationFunctionMgrCtrl1_ProjectSiteSchemeUpdateEvent + ( + XhsProjectVmo project, + XhsProjectSiteVmo projectSite, + XhsSchemeVmo scheme + ) { - lock (_locker) - { - var guid = new PageGuid() - { - Modular = this.PageGuid.Modular, - MoudingType = eMoudingType.Tab, - Function = SimulationFunctionHelper.Working, - TagName = working.ID.ToString() - }; - if (!IsExistPage(guid, true)) - { - var page = new XhsProjectSimulationWorkingPage(); - page.PageTitle.HeaderSvgImage = svgImage; - page.SetBindingData(project, projectSite, scheme, hydroInfo, working); - CreatePage(page, guid); - } - } + //琚姩 + } + + //椤圭洰绔欐柟妗堢Щ闄や簨浠� + private void SimulationFunctionMgrCtrl1_ProjectSiteSchemeRemoveEvent + ( + XhsProjectVmo project, + XhsProjectSiteVmo projectSite, + XhsSchemeVmo scheme + ) + { + //琚姩 } #endregion @@ -460,7 +585,6 @@ docPnl.Show(); } break; - case eMoudingType.Tab: { this.tabbedView1.BeginUpdate(); @@ -479,7 +603,6 @@ this.tabbedView1.Controller.Activate(doc); } break; - default: break; } page.InitialDataSource(); -- Gitblit v1.9.3