internal MacroExecutor RunMacroModule(MacroModule module, ISession sessionToBind, IMacroEventListener listener) { try { Assembly asm = MacroUtil.LoadMacroAssembly(module); MacroExecutor macroExec = new MacroExecutor(module, asm); if (sessionToBind != null) { bool bound = _sessionBinder.Bind(macroExec, sessionToBind); if (!bound) { GUtil.Warning(null, Strings.GetString("Message.MacroPlugin.AnotherMacroIsRunningInThisSession")); return(null); } } if (listener != null) { listener.IndicateMacroStarted(); } macroExec.AsyncExec(listener); return(macroExec); } catch (Exception ex) { RuntimeUtil.ReportException(ex); return(null); } }
public void IndicateMacroFinished() { _runningMacro = null; if (_macroListener != null) { _macroListener.IndicateMacroFinished(); } }
/// <summary> /// Binds MacroExecutor to a session. /// </summary> /// <param name="executor">macro executor</param> /// <param name="session">session bind to</param> /// <returns></returns> public bool Bind(MacroExecutor executor, ISession session) { lock (executorMap) { if (executorMap.ContainsKey(session)) return false; executorMap.Add(session, executor); return true; } }
public void Execute(Form parent, MacroModule mod) { StringResource sr = MacroPlugin.Instance.Strings; if (_runningMacro != null) { GUtil.Warning(parent, sr.GetString("Message.MacroModule.AlreadyRunning")); return; } if (mod.Type == MacroType.Unknown) { GUtil.Warning(parent, sr.GetString("Message.MacroModule.UnknownModuleType")); return; } else { _runningMacro = MacroPlugin.Instance.RunMacroModule(mod, null, this); } }
internal MacroExecutor RunMacroModule(MacroModule module, ISession sessionToBind, IMacroEventListener listener) { try { Assembly asm = MacroUtil.LoadMacroAssembly(module); MacroExecutor macroExec = new MacroExecutor(module, asm); if (sessionToBind != null) { bool bound = _sessionBinder.Bind(macroExec, sessionToBind); if (!bound) { GUtil.Warning(null, Strings.GetString("Message.MacroPlugin.AnotherMacroIsRunningInThisSession")); return null; } } if (listener != null) listener.IndicateMacroStarted(); macroExec.AsyncExec(listener); return macroExec; } catch (Exception ex) { RuntimeUtil.ReportException(ex); return null; } }
public void IndicateMacroFinished() { _runningMacro = null; if (_macroListener != null) _macroListener.IndicateMacroFinished(); }