Ejemplo n.º 1
0
        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();
        }