| | |
| | | |
| | | namespace HMI.Base |
| | | { |
| | | public enum LoadMsgType |
| | | { |
| | | INIT, LOADING, FINISHED |
| | | } |
| | | |
| | | public class LoadMsg |
| | | { |
| | | public string Message { get; set; } |
| | | public bool? Result { get; set; } |
| | | public LoadMsgType Type { get; set; } |
| | | public int NumData { get; set; } |
| | | } |
| | | |
| | | public class PluginLoader |
| | | { |
| | | private static ILog log = LogManager.GetLogger("PluginLoader"); |
| | |
| | | Plugins = new List<PluginInfo>(); |
| | | Menus = LoadTreeMenu(dispatcher); |
| | | sqliteHelper.Close(); |
| | | dispatcher.Invoke(() => |
| | | { |
| | | LoadMessageAppend?.Invoke(this, new LoadMsg { Type = LoadMsgType.FINISHED }); |
| | | }); |
| | | LoadMessageAppend?.Invoke(this, new LoadMsg { Type = LoadMsgType.FINISHED }); |
| | | } |
| | | pluginContainer.DoCloseEvent += PluginContainer_DoCloseEvent; |
| | | } |
| | |
| | | { |
| | | try |
| | | { |
| | | var start = DateTime.Now; |
| | | log.Info(this.lang("App.IsLoadingMenu", menu.Name)); |
| | | LoadMessageAppend?.Invoke(this, |
| | | new LoadMsg |
| | | { |
| | |
| | | Message = this.lang("App.IsLoadingMenu", menu.Name) |
| | | } |
| | | ); |
| | | |
| | | if (!string.IsNullOrEmpty(menu.DllPath)) |
| | | { |
| | | string dllPath = Path.Combine(PluginFolder, menu.DllPath); |
| | |
| | | menu.SettingControl = SettingInstance; |
| | | } |
| | | } |
| | | log.Info($"{this.lang("App.MenuLoadSuccess", menu.Name)} Cost: {(DateTime.Now - start).TotalMilliseconds}ms"); |
| | | LoadMessageAppend?.Invoke(this, |
| | | new LoadMsg |
| | | { |
| | |
| | | List<PermissionData> allPermissions = UserInfo.User?.AllPermissions; |
| | | if (allPermissions != null) |
| | | { |
| | | Application.Current.Dispatcher.Invoke(() => |
| | | Application.Current.Dispatcher.Invoke(new Action(() => |
| | | { |
| | | log.Info(this.lang("App.MenuCount", allPermissions.Count)); |
| | | LoadMessageAppend?.Invoke(this, |
| | | new LoadMsg |
| | | { |
| | |
| | | } |
| | | Plugins.Add(menu); |
| | | } |
| | | }); |
| | | })); |
| | | LoadChildrenMenu(); |
| | | } |
| | | } |