소스 검색

代码优化,移除对WinFisBrowser的单独引用

loki.wu 2 년 전
부모
커밋
b1ec8dc584
7개의 변경된 파일35개의 추가작업 그리고 91개의 파일을 삭제
  1. 8 7
      fis/BaseWindow.cs
  2. 4 1
      fis/MainWindow.axaml.cs
  3. 4 13
      fis/Managers/BrowserManager.cs
  4. 0 58
      fis/PlatformService.cs
  5. 4 1
      fis/SlaveWindow.axaml.cs
  6. 10 11
      fis/Utilities/FisBrowserScriptObject.cs
  7. 5 0
      fis/Win/WinService.cs

+ 8 - 7
fis/BaseWindow.cs

@@ -10,19 +10,21 @@ using System.Threading;
 
 namespace fis.Win.Utilities
 {
-    public class BaseWindow : Window
+    public abstract class BaseWindow : Window
     {
         private TextBlock? _title;
-        private string _plateformName = "";
 
         /// <summary>
         /// Flutter 中用FisShellApi来判断当前是否为纯Web环境
         /// </summary>
         protected const string JSObjectName = "FisShellApi";
 
-        protected FisBrowserScriptObject ScriptObj { get; private set; }
+        public abstract string WindowName { get; protected set; }
 
-        public virtual string WindowName { get; protected set; }
+        /// <summary>
+        /// 平台名
+        /// </summary>
+        public string PlateformName { get; private set; }
 
         public static SynchronizationContext? MainThreadSyncContext;
 
@@ -43,19 +45,18 @@ namespace fis.Win.Utilities
             {
                 this.FindControl<MacosTitleBar>("MacTitleBar").IsVisible = false;
                 _title = new TextBlock();
-                _plateformName = "Win-X86";
+                PlateformName = "Win-X86";
             }
             else if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX))
             {
                 this.FindControl<WindowsTitleBar>("WinTitleBar").IsVisible = false;
                 _title = this.FindControl<MacosTitleBar>("MacTitleBar").FindControl<TextBlock>("MacosTitle");
-                _plateformName = "MacOS-X64";
+                PlateformName = "MacOS-X64";
             }
             else
             {
                 throw new NotSupportedException($"Platform {Environment.OSVersion.Platform} is not suppoorted.");
             }
-            ScriptObj = new FisBrowserScriptObject(_plateformName);
             if (_title != null)
             {
                 var language = CultureInfo.CurrentCulture.Name;

+ 4 - 1
fis/MainWindow.axaml.cs

@@ -15,6 +15,8 @@ namespace fis
     {
         private WindowState _windowState = WindowState.Normal;
 
+        public override string WindowName { get ; protected set;} 
+
 
         public MainWindow()
         {
@@ -33,7 +35,8 @@ namespace fis
 
         private void InitializeMainComponent()
         {
-            BrowserManager.MainBrowser.RegisterJavascriptObject(ScriptObj, JSObjectName);
+            var scriptObj = new FisBrowserScriptObject(PlateformName, BrowserManager.MainBrowser);
+            BrowserManager.MainBrowser.RegisterJavascriptObject(scriptObj, JSObjectName);
             BrowserManager.MainBrowser.BrowserInitialized += () =>
             {
 #if DEBUG

+ 4 - 13
fis/Managers/BrowserManager.cs

@@ -14,9 +14,10 @@ namespace fis.Managers
 {
     internal class FisBrowser : AvaloniaCefBrowser
     {
-        public virtual void ExcuteJS(TargetMethodName targetMethodName, List<string> arguments) 
+        public void ExcuteJS(TargetMethodName targetMethodName, List<string> arguments)
         {
-          //
+            var jsContent = JsContentConvert.GetExcuteJsContent(targetMethodName, arguments);
+            ExecuteJavaScript(jsContent, null, 0);
         }
 
         /// <summary>
@@ -62,11 +63,7 @@ namespace fis.Managers
 
     internal class MacFisBrowser : FisBrowser
     {
-        public override void ExcuteJS(TargetMethodName targetMethodName, List<string> arguments) 
-        {
-            var jsContent = JsContentConvert.GetExcuteJsContent(targetMethodName, arguments);
-            ExecuteJavaScript(jsContent, null, 0);
-        }
+
     }
 
     internal class WinFisBrowser : FisBrowser
@@ -147,12 +144,6 @@ namespace fis.Managers
         {
             WindowClosed?.Invoke(this,windowName);
         }
-
-        public override void ExcuteJS(TargetMethodName targetMethodName, List<string> arguments)
-        {
-            var jsContent = JsContentConvert.GetExcuteJsContent(targetMethodName, arguments);
-            ExecuteJavaScript(jsContent, null, 0);
-        }
     }
 
     internal class BrowserManager

+ 0 - 58
fis/PlatformService.cs

@@ -237,62 +237,4 @@ namespace fis
             return 0;
         }
     }
-
-    public class PlatFormHelper
-    {
-
-        /// <summary>
-        /// 构建JS代理函数字符串
-        /// </summary>
-        /// <param name="methodName"></param>
-        /// <param name="targetMethodName"></param>
-        /// <param name="arguments"></param>
-        /// <returns></returns>
-        public static string GetMethodStr(string methodName, TargetMethodName targetMethodName, List<string> arguments)
-        {
-            string callString = methodName + "(";
-            if (arguments != null)
-            {
-                string comma = ", ";
-                var argumentsStr = "";
-                int index = 0;
-                foreach (var e in arguments)
-                {
-                    if (index == arguments.Count - 1)
-                    {
-                        argumentsStr += e;
-                    }
-                    else
-                    {
-                        argumentsStr += e + "&";
-                    }
-                    index++;
-                }
-                var escaped = System.Web.HttpUtility.JavaScriptStringEncode(argumentsStr, true);
-                callString += (int)targetMethodName + comma + escaped + comma + "";
-            }
-            return callString += ");";
-        }
-
-        public static string GetMethodStr(string methodName, List<string> arguments)
-        {
-
-            string callString = methodName + "(";
-            if (arguments != null)
-            {
-                for (int i = 0; i < arguments.Count; i++)
-                {
-                    string comma = ", ";
-                    if (i == arguments.Count - 1)
-                    {
-                        comma = "";
-                    }
-                    var escaped = System.Web.HttpUtility.JavaScriptStringEncode(arguments[i].ToString(), true);
-                    callString += escaped + comma;
-
-                }
-            }
-            return callString += ");";
-        }
-    }
 }

+ 4 - 1
fis/SlaveWindow.axaml.cs

@@ -29,6 +29,8 @@ namespace fis
         /// </summary>
         public bool ForceClose { get; set; } = false;
 
+        public override string WindowName { get; protected set; }
+
         public SlaveWindow()
         {
             WindowName = "Slave";
@@ -40,7 +42,8 @@ namespace fis
 
         private void InitializeSlaveComponent()
         {
-            BrowserManager.SlaveBrowser.RegisterJavascriptObject(ScriptObj, JSObjectName);
+            var scriptObj = new FisBrowserScriptObject(PlateformName, BrowserManager.SlaveBrowser);
+            BrowserManager.SlaveBrowser.RegisterJavascriptObject(scriptObj, JSObjectName);
             BrowserManager.SlaveBrowser.BrowserInitialized += () =>
             {
 #if DEBUG

+ 10 - 11
fis/Utilities/FisBrowserScriptObject.cs

@@ -1,5 +1,4 @@
-using Avalonia.Controls;
-using Avalonia.Threading;
+using Avalonia.Threading;
 using fis.Log;
 using fis.Managers;
 using fis.Managers.Interfaces;
@@ -14,7 +13,6 @@ using Newtonsoft.Json;
 using System;
 using System.Collections.Generic;
 using System.IO;
-using System.Threading;
 
 namespace fis.Utilities
 {
@@ -26,14 +24,15 @@ namespace fis.Utilities
         public event EventHandler<bool> MeasureStateChanged;
         private readonly IUltra3DManager _ultr3DManager;
         private object _adjustlock = new object();
-
+        private FisBrowser _fisBrowser;
         /// <summary>
         /// 标题改变事件
         /// </summary>
         public event EventHandler<string>? OnTitleChange;
 
-        internal FisBrowserScriptObject( string platformName)
+        internal FisBrowserScriptObject( string platformName, FisBrowser fisBrowser)
         {
+            _fisBrowser = fisBrowser;
             _platformName = platformName;
              _ultr3DManager = AppManager.Get<IUltra3DManager>();
             _sliceHelper = _ultr3DManager.Parse3DModelManager.SliceHelper;
@@ -67,7 +66,7 @@ namespace fis.Utilities
             args.Add(name);
             args.Add(useObject);
             args.Add(templateJson);
-            BrowserManager.MainBrowser.ExcuteJS( TargetMethodName.SaveReportTemplate, args);
+            _fisBrowser.ExcuteJS(TargetMethodName.SaveReportTemplate, args);
         }
 
         /// <summary>
@@ -76,7 +75,7 @@ namespace fis.Utilities
         /// <param name="windowName"></param>
         public void BeginWindowDrag(string windowName) 
         {
-            BrowserManager.MainBrowser.BeginWindowDrag(windowName);
+            _fisBrowser.BeginWindowDrag(windowName);
         }
 
         /// <summary>
@@ -85,7 +84,7 @@ namespace fis.Utilities
         /// <param name="windowName"></param>
         public void EndWindowDrag(string windowName)
         {
-            BrowserManager.MainBrowser.EndWindowDrag(windowName);
+            _fisBrowser.EndWindowDrag(windowName);
         }
 
         /// <summary>
@@ -94,7 +93,7 @@ namespace fis.Utilities
         /// <param name="windowName"></param>
         public void MinimizeWindow(string windowName)
         {
-            BrowserManager.MainBrowser.MinimizeWindow(windowName);
+            _fisBrowser.MinimizeWindow(windowName);
         }
 
         /// <summary>
@@ -103,7 +102,7 @@ namespace fis.Utilities
         /// <param name="windowName"></param>
         public void MaximizeWindow(string windowName)
         {
-            BrowserManager.MainBrowser.MaximizeWindow(windowName);
+            _fisBrowser.MaximizeWindow(windowName);
         }
 
 
@@ -113,7 +112,7 @@ namespace fis.Utilities
         /// <param name="windowName"></param>
         public void CloseWindow(string windowName)
         {
-            BrowserManager.MainBrowser.CloseWindow(windowName);
+            _fisBrowser.CloseWindow(windowName);
         }
 
         /// <summary>

+ 5 - 0
fis/Win/WinService.cs

@@ -1,6 +1,7 @@
 using Avalonia.Controls;
 using Avalonia.Threading;
 using fis.Managers;
+using fis.Managers.Interfaces;
 using System;
 using System.Threading.Tasks;
 
@@ -68,10 +69,14 @@ namespace fis.Win
             var state = (int)WindowState.Normal;
             await Dispatcher.UIThread.InvokeAsync(() =>
             {
+                var slaveWindowManager = AppManager.Get<ISecondaryScreenManager>();
                 if (windowName == AppManager.MainWindow.WindowName)
                 {
                     state = (int)AppManager.MainWindow.WindowState;
                 }
+                else if (slaveWindowManager.SlaveWindow != null && windowName == slaveWindowManager.SlaveWindow.WindowName) {
+                    state = (int)slaveWindowManager.SlaveWindow.WindowState;
+                }
             });
             return state;
         }