OpenIDE.CodeEngine.Core.ReactiveScripts.ReactiveScriptEngine.handleScriptTouched C# (CSharp) Method

handleScriptTouched() private method

private handleScriptTouched ( string message, ScriptTouchEvents type ) : void
message string
type ScriptTouchEvents
return void
        private void handleScriptTouched(string message, ScriptTouchEvents type)
        {
            var path = _touchHandler.GetPath(message);
            if (new ScriptFilter().IsValid(path) == false)
                return;
            if (type == ScriptTouchEvents.Removed) {
                Logger.Write("Removing touched rscript");
                removeScript(path);
                return;
            }
            // Read script and dispatch errors
            var script = _reader.ReadScript(path, true);
            if (script == null) {
                Logger.Write("No "+path+" rscript found or script crashed. exiting..");
                removeScript(path);
                return;
            }
            if (type == ScriptTouchEvents.Pause) {
                script.Shutdown();
                if (!_pausedScripts.Contains(script.Name))
                    _pausedScripts.Add(script.Name);
            }
            if (type == ScriptTouchEvents.Resume) {
                _pausedScripts.Remove(script.Name);
                if (script.IsService && !script.IsServiceRunning)
                    script.StartService();
            }
            if (type == ScriptTouchEvents.Changed || type == ScriptTouchEvents.Added || type == ScriptTouchEvents.Restart) {
                Logger.Write("Reloading / adding existing rscript");
                removeScript(path);
                _scripts.Add(script);
                if (script.IsService)
                    script.StartService();
            }
        }