From 1f645778ae80a3a8801b8bb4d0fcf8feb244ad43 Mon Sep 17 00:00:00 2001 From: chr <chr@mailcom> Date: 星期三, 09 十月 2024 11:51:23 +0800 Subject: [PATCH] 完善项目,新增插件启用检测; --- PdmSwPlugin.Main/SwAddIn/MainControl.cs | 49 ++++++++++++++++++++++++++++++++++--------------- 1 files changed, 34 insertions(+), 15 deletions(-) diff --git a/PdmSwPlugin.Main/SwAddIn/MainControl.cs b/PdmSwPlugin.Main/SwAddIn/MainControl.cs index 6f60026..36758e6 100644 --- a/PdmSwPlugin.Main/SwAddIn/MainControl.cs +++ b/PdmSwPlugin.Main/SwAddIn/MainControl.cs @@ -51,7 +51,7 @@ private HttpClientCreator clientCreator { get; set; } - private TabControl tabControl; + private MainTab mainTab; public MainControl(SldWorks swAddin) { @@ -59,6 +59,7 @@ GlobalConfig = PluginSetting.Instance; InitializeComponent(); self.DataContext = this; + InitTcpServer(); } // 鏈湴璋冭瘯鐢紝杩炴帴SolidWorks @@ -72,7 +73,7 @@ private void AddPlugin() { - tabControl.Items.Clear(); + mainTab.tabControl.Items.Clear(); SetPluginWithPermission(); //LoadPlugins(); //TestWeb testWeb = new TestWeb(); @@ -90,7 +91,7 @@ { // 鐗╂枡浼橀�� MaterialSelectControl ms = new MaterialSelectControl(SwApp); - HandlePlugin(ms, tabControl); + HandlePlugin(ms, mainTab.tabControl); } if (permissions.Contains("PDM:PLUGIN:CONTROL:PropertySetting")) { @@ -98,31 +99,32 @@ if (CustomerSetting.Instance["customer"] == "YWT") { CommonSettingControl cs = new CommonSettingControl(SwApp); - HandlePlugin(cs, tabControl); + HandlePlugin(cs, mainTab.tabControl); + cs.InitPropertyData(); } else { PropertySettingControl ps = new PropertySettingControl(SwApp); - HandlePlugin(ps, tabControl); + HandlePlugin(ps, mainTab.tabControl); } } if (permissions.Contains("PDM:PLUGIN:CONTROL:PDM")) { // PDM PdmControl pdm = new PdmControl(SwApp); - HandlePlugin(pdm, tabControl); + HandlePlugin(pdm, mainTab.tabControl); } if (permissions.Contains("PDM:PLUGIN:CONTROL:PriceCheck")) { // 鍔犲伐浠舵牳浠� PriceCheckControl priceCheck = new PriceCheckControl(SwApp); - HandlePlugin(priceCheck, tabControl); + HandlePlugin(priceCheck, mainTab.tabControl); } if (permissions.Contains("PDM:PLUGIN:CONTROL:DrawApprove")) { // 鍥剧焊瀹℃牳 DrawApproveControl drawApprove = new DrawApproveControl(SwApp); - HandlePlugin(drawApprove, tabControl); + HandlePlugin(drawApprove, mainTab.tabControl); /*UserSettingControl userSettingControl = new UserSettingControl(); HandlePlugin(userSettingControl, tabControl);*/ } @@ -130,7 +132,7 @@ { // 鍥剧焊瀹℃牳 DrawAuditHisControl drawAuditHisControl = new DrawAuditHisControl(SwApp); - HandlePlugin(drawAuditHisControl, tabControl); + HandlePlugin(drawAuditHisControl, mainTab.tabControl); /*UserSettingControl userSettingControl = new UserSettingControl(); HandlePlugin(userSettingControl, tabControl);*/ } @@ -140,19 +142,19 @@ { // 鐗╂枡浼橀�� MaterialSelectControl ms = new MaterialSelectControl(SwApp); - HandlePlugin(ms, tabControl); + HandlePlugin(ms, mainTab.tabControl); // 灞炴�ц缃� PropertySettingControl ps = new PropertySettingControl(SwApp); - HandlePlugin(ps, tabControl); + HandlePlugin(ps, mainTab.tabControl); // PDM PdmControl pdm = new PdmControl(SwApp); - HandlePlugin(pdm, tabControl); + HandlePlugin(pdm, mainTab.tabControl); // 鍔犲伐浠舵牳浠� PriceCheckControl priceCheck = new PriceCheckControl(SwApp); - HandlePlugin(priceCheck, tabControl); + HandlePlugin(priceCheck, mainTab.tabControl); // 鍥剧焊瀹℃牳 DrawApproveControl drawApprove = new DrawApproveControl(SwApp); - HandlePlugin(drawApprove, tabControl); + HandlePlugin(drawApprove, mainTab.tabControl); } private void LoadPlugins() @@ -176,7 +178,7 @@ // p.GetInstance(type.FullName); // 澶勭悊鎻掍欢 HandlePlugin(attr, obj); - tabControl.Items.Add(new TabItem + mainTab.tabControl.Items.Add(new TabItem { Header = attr.Title, Content = obj @@ -281,6 +283,23 @@ AfterDocDestroy?.Invoke(); } + public void DeActiveHandler() + { + foreach (TabItem item in mainTab.tabControl.Items) + { + // 鍚戜富Control娉ㄥ唽浜嬩欢 + if (item.Content is IActiveDocChangeHandler handler) + { + ActiveDocChangeEvent -= handler.OnSwActiveDocChange; + ActiveDocSavedEvent -= handler.OnSwActiveDocSaved; + ActiveDocCustomPropertyChange -= handler.OnCustomPropertyChange; + DocDestroy -= handler.OnDocDestroy; + AfterDocDestroy -= handler.AfterDocDestroy; + } + } + PluginInfos.Clear(); + } + /// <summary> /// 杩炴帴鍒癝olidWorks涔嬪悗锛屾縺娲讳腑鐨勬枃妗h嚜瀹氫箟灞炴�у彉鏇寸殑鎿嶄綔 /// </summary> -- Gitblit v1.9.1