From 34d47fbe6f79897f79b381eb1f1b4cae89b6fe05 Mon Sep 17 00:00:00 2001 From: lixiaojun <1287241240@qq.com> Date: 星期一, 14 十月 2024 00:07:42 +0800 Subject: [PATCH] 优化bimface 鼠标左键点击,尝试解决不能选中的问题,不一定解决,待测试 --- WinFrmUI/Yw.WinFrmUI.Bimface.Core/01-interop/01-interop3d/BimfaceInterop3dCallBackObj.cs | 24 ++ WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/02-bimface/XhsProjectSimulationBimfaceCtrl.cs | 320 ++++++++++++++++++-------- WinFrmUI/Yw.WinFrmUI.Bimface.Core/01-interop/01-interop3d/IBimfaceInterop3dEvents.cs | 12 + WinFrmUI/Yw.WinFrmUI.Bimface.Core/00-core/MouseClick.cs | 18 + WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.cs | 78 +++-- WinFrmUI/Yw.WinFrmUI.Bimface.Core/01-interop/01-interop3d/IBimfaceInterop3dContainer.cs | 12 WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.Designer.cs | 33 -- WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/02-bimface/XhsProjectSimulationBimfaceCtrl.Designer.cs | 19 - WinFrmUI/Yw.WinFrmUI.Bimface.Core/01-interop/01-interop3d/BimfaceInterop3dContainer.cs | 167 +++++++------ 9 files changed, 419 insertions(+), 264 deletions(-) diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/02-bimface/XhsProjectSimulationBimfaceCtrl.Designer.cs b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/02-bimface/XhsProjectSimulationBimfaceCtrl.Designer.cs index c12d8b1..700eb5c 100644 --- a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/02-bimface/XhsProjectSimulationBimfaceCtrl.Designer.cs +++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/02-bimface/XhsProjectSimulationBimfaceCtrl.Designer.cs @@ -28,30 +28,17 @@ /// </summary> private void InitializeComponent() { - bimfaceInterop3dContainer1 = new BimfaceInterop3dContainer(); SuspendLayout(); // - // bimfaceInterop3dContainer1 - // - bimfaceInterop3dContainer1.Dock = DockStyle.Fill; - bimfaceInterop3dContainer1.Location = new Point(0, 0); - bimfaceInterop3dContainer1.Margin = new Padding(4, 3, 4, 3); - bimfaceInterop3dContainer1.Name = "bimfaceInterop3dContainer1"; - bimfaceInterop3dContainer1.Size = new Size(971, 610); - bimfaceInterop3dContainer1.TabIndex = 0; - // - // XhsProjectAssetsBimfaceCtrl + // XhsProjectSimulationBimfaceCtrl // AutoScaleDimensions = new SizeF(7F, 14F); AutoScaleMode = AutoScaleMode.Font; - Controls.Add(bimfaceInterop3dContainer1); - Name = "XhsProjectAssetsBimfaceCtrl"; - Size = new Size(971, 610); + Name = "XhsProjectSimulationBimfaceCtrl"; + Size = new Size(230, 126); ResumeLayout(false); } #endregion - - private BimfaceInterop3dContainer bimfaceInterop3dContainer1; } } diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/02-bimface/XhsProjectSimulationBimfaceCtrl.cs b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/02-bimface/XhsProjectSimulationBimfaceCtrl.cs index 5f28e74..7e28757 100644 --- a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/02-bimface/XhsProjectSimulationBimfaceCtrl.cs +++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/02-bimface/XhsProjectSimulationBimfaceCtrl.cs @@ -1,6 +1,4 @@ -锘縰sing DevExpress.Office.Utils; -using DevExpress.Xpo.Helpers; -using Yw.WinFrmUI.Bimface; +锘縰sing Yw.WinFrmUI.Bimface; namespace HStation.WinFrmUI { @@ -9,31 +7,130 @@ public XhsProjectSimulationBimfaceCtrl() { InitializeComponent(); - this.bimfaceInterop3dContainer1.LoadCompletedEvent += BimfaceInterop3dContainer1_LoadCompletedEvent; - this.bimfaceInterop3dContainer1.LoadViewCompletedEvent += BimfaceInterop3dContainer1_LoadViewCompletedEvent; - this.bimfaceInterop3dContainer1.ClickInEvent += BimfaceInterop3dContainer1_ClickInEvent; - this.bimfaceInterop3dContainer1.ClickOutEvent += BimfaceInterop3dContainer1_ClickOutEvent; } /// <summary> - /// 姘村姏鐐瑰嚮浜嬩欢 + /// 姘村姏鐐瑰嚮浜嬩欢锛堝寘鍚乏閿拰鍙抽敭锛� /// </summary> public event Action<Yw.Model.HydroParterInfo> HydroClickEvent; + /// <summary> + /// 姘村姏鐐瑰嚮浜嬩欢锛堜粎宸﹂敭锛� + /// </summary> + public event Action<Yw.Model.HydroParterInfo> HydroMouseLeftClickEvent; /// <summary> /// 鍔犺浇瀹屾垚浜嬩欢 /// </summary> public event Action LoadCompletedEvent; - + //椤圭洰 private HStation.Vmo.XhsProjectVmo _project = null; + //椤圭洰绔� private HStation.Vmo.XhsProjectSiteVmo _projectSite = null; + //鑾峰彇姘村姏淇℃伅鏂规硶 private Func<Yw.Model.HydroModelInfo> _hydroInfoFunc = null; + //鑾峰彇Bimface 浜や簰瀹瑰櫒 + private BimfaceInterop3dContainer GetBimfaceInteropContainer() + { + if (_bimfaceInteropContainer == null) + { + _bimfaceInteropContainer = new BimfaceInterop3dContainer(); + _bimfaceInteropContainer.Dock = DockStyle.Fill; + _bimfaceInteropContainer.LoadCompletedEvent += async () => + { + if (_projectSite == null) + { + return; + } + + var relation = await BLLFactory<Yw.BLL.BimfaceFileRelation>.Instance + .GetDefaultByObjectTypeAndObjectIDOfPurpose + (HStation.Xhs.DataType.XhsProjectSite, _projectSite.ID, HStation.Xhs.Purpose.Simulation); + if (relation == null) + { + return; + } + + var bimfaceFile = await BLLFactory<Yw.BLL.BimfaceFile>.Instance.GetByID(relation.BimfaceFileID); + if (bimfaceFile == null) + { + return; + } + + var viewToken = await BimfaceHelper.GetViewToken(bimfaceFile.BimfaceId); + if (string.IsNullOrEmpty(viewToken)) + { + return; + } + await _bimfaceInteropContainer.LoadView(viewToken); + }; + _bimfaceInteropContainer.LoadFailedEvent += () => + { + TipFormHelper.ShowError("涓夌淮妯″瀷瀹瑰櫒鍔犺浇澶辫触"); + }; + _bimfaceInteropContainer.LoadViewCompletedEvent += () => + { + this.LoadCompletedEvent?.Invoke(); + }; + _bimfaceInteropContainer.LoadViewFailedEvent += (obj) => + { + TipFormHelper.ShowError($"涓夌淮妯″瀷鍔犺浇澶辫触"); + }; + _bimfaceInteropContainer.ClickInEvent += (obj) => + { + if (obj == null) + { + return; + } + if (this.HydroClickEvent != null) + { + var hydroInfo = _hydroInfoFunc?.Invoke(); + if (hydroInfo == null) + { + return; + } + var allParterList = hydroInfo.GetAllParters(); + var parter = allParterList?.Find(x => x.Code == obj.ObjectId); + this.HydroClickEvent.Invoke(parter); + } + }; + _bimfaceInteropContainer.ClickOutEvent += (obj) => + { + this.HydroClickEvent?.Invoke(null); + }; + _bimfaceInteropContainer.MouseLeftClickInEvent += (obj) => + { + if (obj == null) + { + return; + } + if (this.HydroMouseLeftClickEvent != null) + { + var hydroInfo = _hydroInfoFunc?.Invoke(); + if (hydroInfo == null) + { + return; + } + var allParterList = hydroInfo.GetAllParters(); + var parter = allParterList?.Find(x => x.Code == obj.ObjectId); + this.HydroMouseLeftClickEvent.Invoke(parter); + } + }; + _bimfaceInteropContainer.MouseLeftClickOutEvent += (obj) => + { + this.HydroMouseLeftClickEvent?.Invoke(null); + }; + } + return _bimfaceInteropContainer; + } + //bimface 浜や簰瀹瑰櫒 + private BimfaceInterop3dContainer _bimfaceInteropContainer = null; /// <summary> - /// 缁戝畾鏁版嵁 + /// 鍒濆鍖栨暟鎹� + /// 浠呮敮鎸佽皟鐢ㄤ竴娆� /// </summary> - public async Task SetBindingData + public async Task InitialData ( HStation.Vmo.XhsProjectVmo project, HStation.Vmo.XhsProjectSiteVmo projectSite, @@ -51,69 +148,10 @@ { _projectSite = await BLLFactory<HStation.BLL.XhsProjectSite>.Instance.GetDefaultByProjectID(_project.ID); } - await this.bimfaceInterop3dContainer1.InitialContainer(); - } - - //椤甸潰鍔犺浇瀹屾垚鍚庤Е鍙� - private async void BimfaceInterop3dContainer1_LoadCompletedEvent() - { - if (_projectSite == null) - { - return; - } - - var relation = await BLLFactory<Yw.BLL.BimfaceFileRelation>.Instance - .GetDefaultByObjectTypeAndObjectIDOfPurpose - (HStation.Xhs.DataType.XhsProjectSite, _projectSite.ID, HStation.Xhs.Purpose.Simulation); - if (relation == null) - { - return; - } - - var bimfaceFile = await BLLFactory<Yw.BLL.BimfaceFile>.Instance.GetByID(relation.BimfaceFileID); - if (bimfaceFile == null) - { - return; - } - - var viewToken = await BimfaceHelper.GetViewToken(bimfaceFile.BimfaceId); - if (string.IsNullOrEmpty(viewToken)) - { - return; - } - await this.bimfaceInterop3dContainer1.LoadView(viewToken); - } - - //椤甸潰瑙嗗浘鍔犺浇瀹屾垚鍚庤Е鍙� - private void BimfaceInterop3dContainer1_LoadViewCompletedEvent() - { - this.LoadCompletedEvent?.Invoke(); - } - - //鍐呴儴鐐瑰嚮 - private void BimfaceInterop3dContainer1_ClickInEvent(Yw.WinFrmUI.Bimface.ClickIn3dInfo obj) - { - if (obj == null) - { - return; - } - if (HydroClickEvent != null) - { - var hydroInfo = _hydroInfoFunc?.Invoke(); - if (hydroInfo == null) - { - return; - } - var allParterList = hydroInfo.GetAllParters(); - var parter = allParterList?.Find(x => x.Code == obj.ObjectId); - this.HydroClickEvent.Invoke(parter); - } - } - - //澶栭儴鐐瑰嚮 - private void BimfaceInterop3dContainer1_ClickOutEvent(ClickOut3dInfo obj) - { - this.HydroClickEvent?.Invoke(null); + var bimfaceInteropContainer = GetBimfaceInteropContainer(); + this.Controls.Clear(); + this.Controls.Add(bimfaceInteropContainer); + await bimfaceInteropContainer.InitialContainer(); } @@ -126,7 +164,11 @@ /// <returns></returns> public async Task ShowComponents(List<string> elementIds) { - await this.bimfaceInterop3dContainer1.ShowComponents(elementIds); + if (_bimfaceInteropContainer == null) + { + return; + } + await _bimfaceInteropContainer.ShowComponents(elementIds); } /// <summary> @@ -136,7 +178,11 @@ /// <returns></returns> public async Task HideComponents(List<string> elementIds) { - await this.bimfaceInterop3dContainer1.HideComponents(elementIds); + if (_bimfaceInteropContainer == null) + { + return; + } + await _bimfaceInteropContainer.HideComponents(elementIds); } /// <summary> @@ -145,7 +191,11 @@ /// <returns></returns> public async Task ShowAllComponents() { - await this.bimfaceInterop3dContainer1.ShowAllComponents(); + if (_bimfaceInteropContainer == null) + { + return; + } + await _bimfaceInteropContainer.ShowAllComponents(); } #endregion @@ -159,7 +209,11 @@ /// <returns></returns> public async Task TranslucentComponents(List<string> elementIds) { - await this.bimfaceInterop3dContainer1.TranslucentComponents(elementIds); + if (_bimfaceInteropContainer == null) + { + return; + } + await _bimfaceInteropContainer.TranslucentComponents(elementIds); } /// <summary> @@ -169,7 +223,11 @@ /// <returns></returns> public async Task OpaqueComponents(List<string> elementIds) { - await this.bimfaceInterop3dContainer1.OpaqueComponents(elementIds); + if (_bimfaceInteropContainer == null) + { + return; + } + await _bimfaceInteropContainer.OpaqueComponents(elementIds); } #endregion @@ -182,7 +240,11 @@ /// <returns></returns> public async Task SetSelectedComponents(List<string> elements) { - await this.bimfaceInterop3dContainer1.SetSelectedComponents(elements); + if (_bimfaceInteropContainer == null) + { + return; + } + await _bimfaceInteropContainer.SetSelectedComponents(elements); } /// <summary> @@ -192,7 +254,11 @@ /// <returns></returns> public async Task AddSelectedComponents(List<string> elements) { - await this.bimfaceInterop3dContainer1.AddSelectedComponents(elements); + if (_bimfaceInteropContainer == null) + { + return; + } + await _bimfaceInteropContainer.AddSelectedComponents(elements); } /// <summary> @@ -202,7 +268,11 @@ /// <returns></returns> public async Task RemoveSelectedComponents(List<string> elements) { - await this.bimfaceInterop3dContainer1.RemoveSelectedComponents(elements); + if (_bimfaceInteropContainer == null) + { + return; + } + await _bimfaceInteropContainer.RemoveSelectedComponents(elements); } /// <summary> @@ -212,7 +282,11 @@ /// <returns></returns> public async Task ClearSelectedComponents() { - await this.bimfaceInterop3dContainer1.ClearSelectedComponents(); + if (_bimfaceInteropContainer == null) + { + return; + } + await _bimfaceInteropContainer.ClearSelectedComponents(); } #endregion @@ -224,7 +298,11 @@ /// </summary> public async Task ZoomToComponent(string elementId) { - await this.bimfaceInterop3dContainer1.ZoomToComponent(elementId); + if (_bimfaceInteropContainer == null) + { + return; + } + await _bimfaceInteropContainer.ZoomToComponent(elementId); } /// <summary> @@ -232,7 +310,11 @@ /// </summary> public async Task ZoomToSelectedComponents() { - await this.bimfaceInterop3dContainer1.ZoomToSelectedComponents(); + if (_bimfaceInteropContainer == null) + { + return; + } + await _bimfaceInteropContainer.ZoomToSelectedComponents(); } /// <summary> @@ -240,7 +322,11 @@ /// </summary> public async Task ZoomAndSelectComponents(List<string> elementIds) { - await this.bimfaceInterop3dContainer1.ZoomAndSelectComponents(elementIds); + if (_bimfaceInteropContainer == null) + { + return; + } + await _bimfaceInteropContainer.ZoomAndSelectComponents(elementIds); } #endregion @@ -252,7 +338,11 @@ /// </summary> public async Task SetBlinkComponents(List<string> elementIds, string color, double transparency) { - await this.bimfaceInterop3dContainer1.SetBlinkComponents(elementIds, color, transparency); + if (_bimfaceInteropContainer == null) + { + return; + } + await _bimfaceInteropContainer.SetBlinkComponents(elementIds, color, transparency); } /// <summary> @@ -260,7 +350,11 @@ /// </summary> public async Task SetBlinkComponents() { - await this.bimfaceInterop3dContainer1.ClearBlinkComponents(); + if (_bimfaceInteropContainer == null) + { + return; + } + await _bimfaceInteropContainer.ClearBlinkComponents(); } #endregion @@ -272,7 +366,11 @@ /// </summary> public async Task OverrideComponentsColor(List<string> elementIds, string color, double transparency) { - await this.bimfaceInterop3dContainer1.OverrideComponentsColor(elementIds, color, transparency); + if (_bimfaceInteropContainer == null) + { + return; + } + await _bimfaceInteropContainer.OverrideComponentsColor(elementIds, color, transparency); } /// <summary> @@ -280,7 +378,11 @@ /// </summary> public async Task SetBlinkComponents(List<string> elementIds) { - await this.bimfaceInterop3dContainer1.RestoreComponentsColor(elementIds); + if (_bimfaceInteropContainer == null) + { + return; + } + await _bimfaceInteropContainer.RestoreComponentsColor(elementIds); } #endregion @@ -292,7 +394,11 @@ /// </summary> public async Task SetCustomLabels(List<CustomLabel> obj) { - await this.bimfaceInterop3dContainer1.SetCustomLabels(obj); + if (_bimfaceInteropContainer == null) + { + return; + } + await _bimfaceInteropContainer.SetCustomLabels(obj); } /// <summary> @@ -300,9 +406,12 @@ /// </summary> public async Task ClearCustomLabels() { - await this.bimfaceInterop3dContainer1.ClearCustomLabels(); + if (_bimfaceInteropContainer == null) + { + return; + } + await _bimfaceInteropContainer.ClearCustomLabels(); } - #endregion @@ -321,14 +430,18 @@ { if (_linkComponentIds != null && _linkComponentIds.Count > 0) { - await this.bimfaceInterop3dContainer1.RestoreComponentsColor(_linkComponentIds); + await _bimfaceInteropContainer.RestoreComponentsColor(_linkComponentIds); } _linkComponentIds = elementIds; if (elementIds == null || elementIds.Count < 1) { return; } - await this.bimfaceInterop3dContainer1.OverrideComponentsColor(elementIds, _linkComponentColor, _linkComponentTransparency); + if (_bimfaceInteropContainer == null) + { + return; + } + await _bimfaceInteropContainer.OverrideComponentsColor(elementIds, _linkComponentColor, _linkComponentTransparency); } #endregion @@ -346,14 +459,18 @@ { if (_openComponentIds != null && _openComponentIds.Count > 0) { - await this.bimfaceInterop3dContainer1.RestoreComponentsColor(_openComponentIds); + await _bimfaceInteropContainer.RestoreComponentsColor(_openComponentIds); } _openComponentIds = elementIds; if (elementIds == null || elementIds.Count < 1) { return; } - await this.bimfaceInterop3dContainer1.OverrideComponentsColor(elementIds, _openComponentColor, _openComponentTransparency); + if (_bimfaceInteropContainer == null) + { + return; + } + await _bimfaceInteropContainer.OverrideComponentsColor(elementIds, _openComponentColor, _openComponentTransparency); } #endregion @@ -376,7 +493,7 @@ } if (!calcuResult.Succeed) { - await this.bimfaceInterop3dContainer1.ClearCustomLabels(); + await _bimfaceInteropContainer.ClearCustomLabels(); return; } var obj = new List<CustomLabel>(); @@ -421,8 +538,11 @@ obj.Add(emitterCustomLabel); } }); - - await this.bimfaceInterop3dContainer1.SetCustomLabels(obj); + if (_bimfaceInteropContainer == null) + { + return; + } + await _bimfaceInteropContainer.SetCustomLabels(obj); } #endregion diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.Designer.cs b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.Designer.cs index 2267ad8..8410f9f 100644 --- a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.Designer.cs +++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.Designer.cs @@ -60,8 +60,7 @@ ribbonPageGroup3 = new DevExpress.XtraBars.Ribbon.RibbonPageGroup(); ribbonPageGroup4 = new DevExpress.XtraBars.Ribbon.RibbonPageGroup(); tabPane1 = new DevExpress.XtraBars.Navigation.TabPane(); - pageBimface = new DevExpress.XtraBars.Navigation.TabNavigationPage(); - xhsProjectSimulationBimfaceCtrl1 = new XhsProjectSimulationBimfaceCtrl(); + tabPageBimface = new DevExpress.XtraBars.Navigation.TabNavigationPage(); pageQ3d = new DevExpress.XtraBars.Navigation.TabNavigationPage(); xhsProjectSimulationQ3dCtrl1 = new XhsProjectSimulationQ3dCtrl(); dockManager1 = new DevExpress.XtraBars.Docking.DockManager(components); @@ -75,7 +74,6 @@ ((ISupportInitialize)ribbonControl1).BeginInit(); ((ISupportInitialize)tabPane1).BeginInit(); tabPane1.SuspendLayout(); - pageBimface.SuspendLayout(); pageQ3d.SuspendLayout(); ((ISupportInitialize)dockManager1).BeginInit(); docPnlProperty.SuspendLayout(); @@ -297,34 +295,23 @@ // // tabPane1 // - tabPane1.Controls.Add(pageBimface); + tabPane1.Controls.Add(tabPageBimface); tabPane1.Controls.Add(pageQ3d); tabPane1.Dock = DockStyle.Fill; tabPane1.Location = new Point(0, 128); tabPane1.Name = "tabPane1"; - tabPane1.Pages.AddRange(new DevExpress.XtraBars.Navigation.NavigationPageBase[] { pageBimface, pageQ3d }); + tabPane1.Pages.AddRange(new DevExpress.XtraBars.Navigation.NavigationPageBase[] { tabPageBimface, pageQ3d }); tabPane1.RegularSize = new Size(692, 340); - tabPane1.SelectedPage = pageBimface; + tabPane1.SelectedPage = tabPageBimface; tabPane1.Size = new Size(692, 340); tabPane1.TabIndex = 1; tabPane1.Text = "tabPane1"; // - // pageBimface + // tabPageBimface // - pageBimface.Caption = "涓夌淮妯″瀷"; - pageBimface.Controls.Add(xhsProjectSimulationBimfaceCtrl1); - pageBimface.Name = "pageBimface"; - pageBimface.Size = new Size(692, 307); - // - // xhsProjectSimulationBimfaceCtrl1 - // - xhsProjectSimulationBimfaceCtrl1.Dock = DockStyle.Fill; - xhsProjectSimulationBimfaceCtrl1.Location = new Point(0, 0); - xhsProjectSimulationBimfaceCtrl1.Name = "xhsProjectSimulationBimfaceCtrl1"; - xhsProjectSimulationBimfaceCtrl1.Size = new Size(692, 307); - xhsProjectSimulationBimfaceCtrl1.TabIndex = 0; - xhsProjectSimulationBimfaceCtrl1.HydroClickEvent += xhsProjectSimulationBimfaceCtrl1_HydroClickEvent; - xhsProjectSimulationBimfaceCtrl1.LoadCompletedEvent += xhsProjectSimulationBimfaceCtrl1_LoadCompletedEvent; + tabPageBimface.Caption = "涓夌淮妯″瀷"; + tabPageBimface.Name = "tabPageBimface"; + tabPageBimface.Size = new Size(692, 307); // // pageQ3d // @@ -430,7 +417,6 @@ ((ISupportInitialize)ribbonControl1).EndInit(); ((ISupportInitialize)tabPane1).EndInit(); tabPane1.ResumeLayout(false); - pageBimface.ResumeLayout(false); pageQ3d.ResumeLayout(false); ((ISupportInitialize)dockManager1).EndInit(); docPnlProperty.ResumeLayout(false); @@ -458,12 +444,11 @@ private DevExpress.XtraBars.Ribbon.RibbonPageGroup ribbonPageGroup3; private DevExpress.XtraBars.BarButtonItem barBtnMatchingList; private DevExpress.XtraBars.Navigation.TabPane tabPane1; - private DevExpress.XtraBars.Navigation.TabNavigationPage pageBimface; + private DevExpress.XtraBars.Navigation.TabNavigationPage tabPageBimface; private DevExpress.XtraBars.Navigation.TabNavigationPage pageQ3d; private DevExpress.XtraBars.Docking.DockManager dockManager1; private DevExpress.XtraBars.Docking.DockPanel docPnlProperty; private DevExpress.XtraBars.Docking.ControlContainer dockPanel1_Container; - private XhsProjectSimulationBimfaceCtrl xhsProjectSimulationBimfaceCtrl1; private XhsProjectSimulationQ3dCtrl xhsProjectSimulationQ3dCtrl1; private XhsProjectSimulationPropertyCtrl xhsProjectSimulationPropertyCtrl1; private DevExpress.Utils.SvgImageCollection svgImg32; 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 92fe0c2..865c0e5 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 @@ -62,39 +62,53 @@ 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 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 XhsProjectSimulationBimfaceCtrl _bimfaceCtrl = null; - //bimface 姘村姏鐐瑰嚮浜嬩欢 - private void xhsProjectSimulationBimfaceCtrl1_HydroClickEvent(Yw.Model.HydroParterInfo obj) - { - if (_hydroInfo == null) - { - return; - } - _parter = obj; - ShowProperty(); - SetBimfaceLinkColor(); - } + //璁剧疆Bimface杩炴帴棰滆壊 private async void SetBimfaceLinkColor() @@ -144,7 +158,7 @@ } } } - await this.xhsProjectSimulationBimfaceCtrl1.SetLinkComponentsColor(elementIds); + await _bimfaceCtrl?.SetLinkComponentsColor(elementIds); } #endregion @@ -193,7 +207,7 @@ { elementIds.Add(_parter.Code); } - await this.xhsProjectSimulationBimfaceCtrl1.ZoomAndSelectComponents(elementIds); + await _bimfaceCtrl?.ZoomAndSelectComponents(elementIds); ShowProperty(); SetBimfaceLinkColor(); }; @@ -253,14 +267,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(); }; @@ -308,11 +322,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; } } @@ -348,7 +362,7 @@ elementIds.Add(_parter.Code); } } - await this.xhsProjectSimulationBimfaceCtrl1.ZoomAndSelectComponents(elementIds); + await _bimfaceCtrl?.ZoomAndSelectComponents(elementIds); ShowProperty(); SetBimfaceLinkColor(); }; @@ -415,7 +429,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(); }; @@ -637,7 +651,7 @@ this.controlContainerBottom.Controls.Add(parterListCtrl); this.docPnlBottom.Text = "璁$畻缁撴灉"; ShowProperty(); - await this.xhsProjectSimulationBimfaceCtrl1.ShowCalcuCustomLabels(_calcuResult); + await _bimfaceCtrl?.ShowCalcuCustomLabels(_calcuResult); TipFormHelper.ShowSucceed("璁$畻鎴愬姛锛�"); } else @@ -704,7 +718,7 @@ { _parter = null; } - await this.xhsProjectSimulationBimfaceCtrl1.ZoomAndSelectComponents(elementIds); + await _bimfaceCtrl?.ZoomAndSelectComponents(elementIds); ShowProperty(); SetBimfaceLinkColor(); }; diff --git a/WinFrmUI/Yw.WinFrmUI.Bimface.Core/00-core/MouseClick.cs b/WinFrmUI/Yw.WinFrmUI.Bimface.Core/00-core/MouseClick.cs new file mode 100644 index 0000000..44300ac --- /dev/null +++ b/WinFrmUI/Yw.WinFrmUI.Bimface.Core/00-core/MouseClick.cs @@ -0,0 +1,18 @@ +锘縩amespace Yw.WinFrmUI.Bimface +{ + /// <summary> + /// 榧犳爣鐐瑰嚮 + /// </summary> + public class MouseClick + { + /// <summary> + /// 榧犳爣宸﹂敭鐐瑰嚮 + /// </summary> + public const string Click = "Click"; + + /// <summary> + /// 榧犳爣鍙抽敭鐐瑰嚮 + /// </summary> + public const string RightClick = "RightClick"; + } +} diff --git a/WinFrmUI/Yw.WinFrmUI.Bimface.Core/01-interop/01-interop3d/BimfaceInterop3dCallBackObj.cs b/WinFrmUI/Yw.WinFrmUI.Bimface.Core/01-interop/01-interop3d/BimfaceInterop3dCallBackObj.cs index 0562b5f..75f1649 100644 --- a/WinFrmUI/Yw.WinFrmUI.Bimface.Core/01-interop/01-interop3d/BimfaceInterop3dCallBackObj.cs +++ b/WinFrmUI/Yw.WinFrmUI.Bimface.Core/01-interop/01-interop3d/BimfaceInterop3dCallBackObj.cs @@ -11,9 +11,19 @@ public event Action<ClickIn3dInfo> ClickInEvent; /// <summary> + /// 榧犳爣宸﹂敭鐐瑰嚮鏋勪欢浜嬩欢 + /// </summary> + public event Action<ClickIn3dInfo> MouseLeftClickInEvent; + + /// <summary> /// 鐐瑰嚮澶栭儴浜嬩欢 /// </summary> public event Action<ClickOut3dInfo> ClickOutEvent; + + /// <summary> + /// 榧犳爣宸﹂敭鐐瑰嚮澶栭儴浜嬩欢 + /// </summary> + public event Action<ClickOut3dInfo> MouseLeftClickOutEvent; /// <summary> /// 鐐瑰嚮鏋勪欢 @@ -22,6 +32,13 @@ { var json = JsonHelper.Json2Object<ClickIn3dInfo>(info); this.ClickInEvent?.Invoke(json); + if (json != null) + { + if (json.EventType == MouseClick.Click) + { + this.MouseLeftClickInEvent?.Invoke(json); + } + } } /// <summary> @@ -31,6 +48,13 @@ { var json = JsonHelper.Json2Object<ClickOut3dInfo>(info); this.ClickOutEvent?.Invoke(json); + if (json != null) + { + if (json.EventType == MouseClick.Click) + { + this.MouseLeftClickOutEvent?.Invoke(json); + } + } } } diff --git a/WinFrmUI/Yw.WinFrmUI.Bimface.Core/01-interop/01-interop3d/BimfaceInterop3dContainer.cs b/WinFrmUI/Yw.WinFrmUI.Bimface.Core/01-interop/01-interop3d/BimfaceInterop3dContainer.cs index fb31f19..686afa9 100644 --- a/WinFrmUI/Yw.WinFrmUI.Bimface.Core/01-interop/01-interop3d/BimfaceInterop3dContainer.cs +++ b/WinFrmUI/Yw.WinFrmUI.Bimface.Core/01-interop/01-interop3d/BimfaceInterop3dContainer.cs @@ -1,8 +1,4 @@ -锘縰sing DevExpress.Xpo.DB.Helpers; -using DevExpress.XtraDiagram.Base; -using NetTaste; - -namespace Yw.WinFrmUI +锘縩amespace Yw.WinFrmUI { public partial class BimfaceInterop3dContainer : UserControl, IBimfaceInterop3dContainer { @@ -11,29 +7,43 @@ InitializeComponent(); } - public event Action LoadCompletedEvent; - public event Action LoadFailedEvent; - public event Action<HandingError> HandingErrorEvent; - public event Action LoadViewCompletedEvent; - public event Action<string> LoadViewFailedEvent; - public event Action<ClickIn3dInfo> ClickInEvent; - public event Action<ClickOut3dInfo> ClickOutEvent; - /// <summary> - /// 浜や簰瀵硅薄 + /// Html鍔犺浇瀹屾垚浜嬩欢 /// </summary> - public BimfaceInterop3dCallBackObj CallBackObj - { - get - { - if (_callBackObj == null) - { - _callBackObj = new BimfaceInterop3dCallBackObj(); - } - return _callBackObj; - } - } - private BimfaceInterop3dCallBackObj _callBackObj; + public event Action LoadCompletedEvent; + /// <summary> + /// Html鍔犺浇澶辫触浜嬩欢 + /// </summary> + public event Action LoadFailedEvent; + /// <summary> + /// 澶勭悊閿欒浜嬩欢 + /// </summary> + public event Action<HandingError> HandingErrorEvent; + /// <summary> + /// View鍔犺浇瀹屾垚浜嬩欢 + /// </summary> + public event Action LoadViewCompletedEvent; + /// <summary> + /// View鍔犺浇澶辫触浜嬩欢 + /// </summary> + public event Action<string> LoadViewFailedEvent; + /// <summary> + /// 鐐瑰嚮鏋勪欢浜嬩欢 + /// </summary> + public event Action<ClickIn3dInfo> ClickInEvent; + /// <summary> + /// 榧犳爣宸﹂敭鐐瑰嚮鏋勪欢浜嬩欢 + /// </summary> + public event Action<ClickIn3dInfo> MouseLeftClickInEvent; + /// <summary> + /// 鐐瑰嚮澶栭儴浜嬩欢 + /// </summary> + public event Action<ClickOut3dInfo> ClickOutEvent; + /// <summary> + /// 榧犳爣宸﹂敭鐐瑰嚮澶栭儴浜嬩欢 + /// </summary> + public event Action<ClickOut3dInfo> MouseLeftClickOutEvent; + /// <summary> /// 鏄惁鍒濆鍖� @@ -59,67 +69,63 @@ } private bool _isViewInitialized; + //鑾峰彇浜や簰瀵硅薄 + private BimfaceInterop3dCallBackObj GetCallBackObj() + { + if (_callBackObj == null) + { + _callBackObj = new BimfaceInterop3dCallBackObj(); + _callBackObj.LoadCompletedEvent += () => + { + _isInitialized = true; + this.LoadCompletedEvent?.Invoke(); + }; + _callBackObj.LoadFailedEvent += () => + { + this.LoadFailedEvent?.Invoke(); + }; + _callBackObj.HandingErrorEvent += (obj) => + { + this.HandingErrorEvent?.Invoke(obj); + }; + _callBackObj.LoadViewCompletedEvent += () => + { + _isViewInitialized = true; + this.LoadViewCompletedEvent?.Invoke(); + }; + _callBackObj.LoadViewFailedEvent += (obj) => + { + this.LoadViewFailedEvent?.Invoke(obj); + }; + _callBackObj.ClickInEvent += (obj) => + { + this.ClickInEvent?.Invoke(obj); + }; + _callBackObj.MouseLeftClickInEvent += (obj) => + { + this.MouseLeftClickInEvent?.Invoke(obj); + }; + _callBackObj.ClickOutEvent += (obj) => + { + this.ClickOutEvent?.Invoke(obj); + }; + _callBackObj.MouseLeftClickOutEvent += (obj) => + { + this.MouseLeftClickOutEvent?.Invoke(obj); + }; + } + return _callBackObj; + } + private BimfaceInterop3dCallBackObj _callBackObj; + /// <summary> /// 鍒濆璇濆鍣� /// </summary> public async Task InitialContainer() { - var callBackObj = this.CallBackObj; - callBackObj.LoadCompletedEvent += CallBackObj_LoadCompletedEvent; - callBackObj.LoadFailedEvent += CallBackObj_LoadFailedEvent; - callBackObj.HandingErrorEvent += CallBackObj_HandingErrorEvent; - callBackObj.LoadViewCompletedEvent += CallBackObj_LoadViewCompletedEvent; - callBackObj.LoadViewFailedEvent += CallBackObj_LoadViewFailedEvent; - callBackObj.ClickInEvent += CallBackObj_ClickInEvent; - callBackObj.ClickOutEvent += CallBackObj_ClickOutEvent; + var callBackObj = GetCallBackObj(); await this.webViewControl1.InitialWebBrower(BimfaceUrlHelper.Interop3dUrl, callBackObj, true); } - - - //鍔犺浇瀹屾垚 - private void CallBackObj_LoadCompletedEvent() - { - _isInitialized = true; - this.LoadCompletedEvent?.Invoke(); - } - - //鍔犺浇澶辫触 - private void CallBackObj_LoadFailedEvent() - { - this.LoadFailedEvent?.Invoke(); - } - - //澶勭悊閿欒 - private void CallBackObj_HandingErrorEvent(HandingError obj) - { - this.HandingErrorEvent?.Invoke(obj); - } - - //鍔犺浇瑙嗗浘瀹屾垚 - private void CallBackObj_LoadViewCompletedEvent() - { - _isViewInitialized = true; - this.LoadViewCompletedEvent?.Invoke(); - } - - //鍔犺浇瑙嗗浘澶辫触 - private void CallBackObj_LoadViewFailedEvent(string obj) - { - this.LoadViewFailedEvent?.Invoke(obj); - } - - //鐐瑰嚮鏋勪欢 - private void CallBackObj_ClickInEvent(ClickIn3dInfo obj) - { - this.ClickInEvent?.Invoke(obj); - } - - //鐐瑰嚮澶栭儴 - private void CallBackObj_ClickOutEvent(ClickOut3dInfo obj) - { - this.ClickOutEvent?.Invoke(obj); - } - /// <summary> /// 鍔犺浇瑙嗗浘 @@ -132,7 +138,6 @@ } return await this.webViewControl1.EvaluateScriptAsync<bool>("loadView", viewToken); } - #region 鏋勪欢鏄鹃殣 diff --git a/WinFrmUI/Yw.WinFrmUI.Bimface.Core/01-interop/01-interop3d/IBimfaceInterop3dContainer.cs b/WinFrmUI/Yw.WinFrmUI.Bimface.Core/01-interop/01-interop3d/IBimfaceInterop3dContainer.cs index 6d49595..1d58c2b 100644 --- a/WinFrmUI/Yw.WinFrmUI.Bimface.Core/01-interop/01-interop3d/IBimfaceInterop3dContainer.cs +++ b/WinFrmUI/Yw.WinFrmUI.Bimface.Core/01-interop/01-interop3d/IBimfaceInterop3dContainer.cs @@ -1,20 +1,10 @@ -锘縰sing DevExpress.CodeParser; -using DevExpress.Xpo.Helpers; -using DevExpress.XtraDiagram.Base; -using Yw.WinFrmUI.Bimface; - -namespace Yw.WinFrmUI +锘縩amespace Yw.WinFrmUI { /// <summary> /// /// </summary> public interface IBimfaceInterop3dContainer : IBimfaceContainer, IBimfaceInterop3dEvents { - /// <summary> - /// 浜や簰瀵硅薄 - /// </summary> - BimfaceInterop3dCallBackObj CallBackObj { get; } - #region 鏋勪欢鐨勬樉绀轰笌闅愯棌 diff --git a/WinFrmUI/Yw.WinFrmUI.Bimface.Core/01-interop/01-interop3d/IBimfaceInterop3dEvents.cs b/WinFrmUI/Yw.WinFrmUI.Bimface.Core/01-interop/01-interop3d/IBimfaceInterop3dEvents.cs index 6c5fc5d..931da92 100644 --- a/WinFrmUI/Yw.WinFrmUI.Bimface.Core/01-interop/01-interop3d/IBimfaceInterop3dEvents.cs +++ b/WinFrmUI/Yw.WinFrmUI.Bimface.Core/01-interop/01-interop3d/IBimfaceInterop3dEvents.cs @@ -11,8 +11,20 @@ event Action<ClickIn3dInfo> ClickInEvent; /// <summary> + /// 榧犳爣宸﹂敭鐐瑰嚮鏋勪欢浜嬩欢 + /// </summary> + public event Action<ClickIn3dInfo> MouseLeftClickInEvent; + + /// <summary> /// 鐐瑰嚮 /// </summary> event Action<ClickOut3dInfo> ClickOutEvent; + + /// <summary> + /// 榧犳爣宸﹂敭鐐瑰嚮澶栭儴浜嬩欢 + /// </summary> + public event Action<ClickOut3dInfo> MouseLeftClickOutEvent; + + } } -- Gitblit v1.9.3