public void Open(params Object[] parameters) { var editor = DialogExtensions.Get <EditorWindow>() as Window; if (editor == null) { var kernel = _app.Get <Kernel>(); var console = _app.Get <IConsole>(); var service = _app.Get <IMathInputService>(); var context = new EditorViewModel(kernel, console, service); editor = WindowFactory.Instance.Create(context); } if (parameters.Length == 1 && parameters[0] is String) { var context = editor.DataContext as EditorViewModel; var file = (String)parameters[0]; if (!File.Exists(file)) { var directory = Path.GetDirectoryName(file); try { if (!Directory.Exists(directory)) { Directory.CreateDirectory(directory); } File.Create(file).Close(); } catch { var message = String.Format(Messages.ErrorCannotCreateFile, file); var output = new OutputViewModel { Message = message, Title = Messages.UnexpectedError }; output.ShowWindow(); return; } } if (context != null) { context.OpenFile(file); } } editor.Show(); }