private void ConsoleDocumentView_Disposed(object sender, EventArgs e) { var scriptEditor = _ScriptEditor; if (scriptEditor != null) { scriptEditor.ListIntellisenseItems -= ScriptEditor_ListIntellisenseItems; scriptEditor.ScriptChanged -= ScriptEditor_ScriptChanged; scriptEditor.Dispose(); _ScriptEditor = null; } var consoleInputControl = _ConsoleInputControl; if (consoleInputControl != null) { consoleInputControl.ExecuteCommand -= ExecuteCommandHandler; consoleInputControl.ListIntellisenseItems -= ScriptEditor_ListIntellisenseItems; consoleInputControl.ShowParseError -= ScriptEditor_ShowParseError; consoleInputControl.Dispose(); _ConsoleInputControl = null; } var consoleOutputControl = _ConsoleOutputControl; if (consoleOutputControl != null) { consoleOutputControl.RibbonUpdateRequest -= ConsoleOutputControl_RibbonUpdateRequest; consoleOutputControl.ConsoleLoaded -= ConsoleOutputControl_ConsoleLoaded; consoleOutputControl.Dispose(); _ConsoleOutputControl = null; } }
private void ViewEditors_QueryControl(object sender, DevExpress.XtraBars.Docking2010.Views.QueryControlEventArgs e) { switch (e.Document.ControlName) { case "docScript": if (_ScriptEditor == null) { _ScriptEditor = new ScriptEditorControl(); var model = mvvmContext.GetViewModel <ConsoleDocumentViewModel>(); _ScriptEditor.LoadSyntax(model.Engine.SyntaxFile); _ScriptEditor.DefaultExt = model.Engine.DefaultExt; _ScriptEditor.FileFilter = model.Engine.FileFilter; _ScriptEditor.ModifiedChanged += ScriptEditor_ModifiedChanged; _ScriptEditor.ListIntellisenseItems += ScriptEditor_ListIntellisenseItems; _ScriptEditor.ScriptChanged += ScriptEditor_ScriptChanged; if (!string.IsNullOrWhiteSpace(model.FileName)) { var scriptFileName = model.GetScriptFileName(model.FileName); if (scriptFileName != null && File.Exists(scriptFileName)) { _ScriptEditor.LoadFromFile(scriptFileName); } } } e.Control = _ScriptEditor; break; case "docConsole": if (_ConsoleOutputControl == null) { var model = mvvmContext.GetViewModel <ConsoleDocumentViewModel>(); _ConsoleOutputControl = new ConsoleOutputControl(model); model.SynchronizeInvoke = _ConsoleOutputControl; _ConsoleOutputControl.RibbonUpdateRequest += ConsoleOutputControl_RibbonUpdateRequest; _ConsoleOutputControl.ConsoleLoaded += ConsoleOutputControl_ConsoleLoaded; } e.Control = _ConsoleOutputControl; break; case "docCommandLine": if (_ConsoleInputControl == null) { _ConsoleInputControl = new ConsoleInputControl() { MessagesVisible = false }; var model = mvvmContext.GetViewModel <ConsoleDocumentViewModel>(); _ConsoleInputControl.LoadSyntax(model.Engine?.SyntaxFile); _ConsoleInputControl.ExecuteCommand += ExecuteCommandHandler; _ConsoleInputControl.ListIntellisenseItems += ScriptEditor_ListIntellisenseItems; _ConsoleInputControl.ShowParseError += ScriptEditor_ShowParseError; } e.Control = _ConsoleInputControl; break; } }