示例#1
0
        /// <summary>The run template.</summary>
        public void RunTemplate()
        {
            TemplateModel  templateModel  = _services.Resolve <TemplateModel>();
            TemplateResult templateResult = null;

            txtErrors.Clear();

            try
            {
                string[] lines = AllText.Replace("\r", string.Empty).Split('\n');
                string   text;
                Dictionary <string, object> items = new Dictionary <string, object>();
                items[TemplateModel.Extension] = templateModel.InferExtensionFromFilename(FileName, items);
                text           = templateModel.PreProcessTemplate(lines, GetValue, items);
                templateResult = templateModel.ProcessTemplate(text, items);
            }
            catch (TemplateException exp)
            {
                _hostWindow.DisplaySimpleMessageBox(this, exp.Message, "Template Error");

// todo - try to get the line number and move cursor?...
                txtErrors.Text = exp.Message;
            }

            if (templateResult != null)
            {
                // display in new window
                IFileEditorResolver resolver = _services.Resolve <IFileEditorResolver>();
                IEditor             editor   = _services.Resolve <IEditor>(resolver.ResolveEditorNameByExtension(templateResult.Extension));
                editor.AllText = templateResult.Text;
                editor.SetSyntax(templateResult.SyntaxName);
                _hostWindow.DisplayDockedForm(editor as DockContent);
            }
        }
示例#2
0
		/// <summary>
		/// 	Registers the editor of type <typeparamref name = "TEditor" /> using the <see cref = "FileEditorDescriptor.EditorKeyName" />.
		/// </summary>
		/// <typeparam name = "TEditor">The editor type (e.g. "BasicXmlEditor").</typeparam>
		/// <param name = "fileEditorDescriptor">The file extension descriiptor for this type.</param>
		public void RegisterEditor<TEditor>(FileEditorDescriptor fileEditorDescriptor) where TEditor : IEditor
		{
			RegisterComponent<IEditor, TEditor>(fileEditorDescriptor.EditorKeyName);

			// push the ext reg into the resolver....
			IFileEditorResolver resolver = Resolve<IFileEditorResolver>();
			resolver.Register(fileEditorDescriptor);
		}
示例#3
0
 /// <summary>The tool strip menu item edit_ click.</summary>
 /// <param name="sender">The sender.</param>
 /// <param name="e">The e.</param>
 private void toolStripMenuItemEdit_Click(object sender, EventArgs e)
 {
     if (_selectedFile != null)
     {
         IFileEditorResolver resolver = _services.Resolve <IFileEditorResolver>();
         var editor = resolver.ResolveEditorInstance(_selectedFile.FullName);
         editor.FileName = _selectedFile.FullName;
         editor.LoadFile();
         _services.HostWindow.DisplayDockedForm(editor as DockContent);
     }
 }
示例#4
0
        /// <summary>The run template.</summary>
        /// <param name="fi">The fi.</param>
        private void RunTemplate(FileInfo fi)
        {
            TemplateResult templateResult = _model.ProcessTemplateFile(fi.FullName, GetValue);

            // display in new window
            IFileEditorResolver resolver = _services.Resolve <IFileEditorResolver>();
            IEditor             editor   = _services.Resolve <IEditor>(resolver.ResolveEditorNameByExtension(templateResult.Extension));

            editor.AllText = templateResult.Text;
            editor.SetSyntax(templateResult.SyntaxName);
            _services.HostWindow.DisplayDockedForm(editor as DockContent);
        }
示例#5
0
 /// <summary>The window drag drop.</summary>
 /// <param name="sender">The sender.</param>
 /// <param name="e">The e.</param>
 private void WindowDragDrop(object sender, DragEventArgs e)
 {
     if (e.Data.GetDataPresent(DataFormats.FileDrop))
     {
         string[]            filePaths = (string[])e.Data.GetData(DataFormats.FileDrop);
         IFileEditorResolver resolver  = _services.Resolve <IFileEditorResolver>();
         foreach (string filename in filePaths)
         {
             // todo: check for file exist file in open windows;
             IEditor editor = resolver.ResolveEditorInstance(filename);
             editor.FileName = filename;
             editor.LoadFile();
             DisplayDockedForm(editor as DockContent);
         }
     }
 }
示例#6
0
        /// <summary>Execute the command.</summary>
        public override void Execute()
        {
            OpenFileDialog openFileDialog = new OpenFileDialog();

            openFileDialog.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyComputer);
            openFileDialog.Filter           = Settings.DefaultFileFilter;
            openFileDialog.CheckFileExists  = true;
            if (openFileDialog.ShowDialog(HostWindow.Instance) == DialogResult.OK)
            {
                // todo: check for file exist file in open windows;
                IFileEditorResolver resolver = Services.Resolve <IFileEditorResolver>();
                var     fileName             = openFileDialog.FileName;
                IEditor editor = resolver.ResolveEditorInstance(fileName);
                editor.FileName = fileName;
                editor.LoadFile();
                HostWindow.DisplayDockedForm(editor as DockContent);

                Services.Resolve <IMostRecentFilesService>().Register(fileName);
            }
        }
示例#7
0
 /// <summary>Initializes a new instance of the <see cref="NewFileForm"/> class.</summary>
 /// <param name="fileEditorResolver">The file editor resolver.</param>
 public NewFileForm(IFileEditorResolver fileEditorResolver)
 {
     InitializeComponent();
     _fileEditorResolver = fileEditorResolver;
 }
示例#8
0
 /// <summary>Initializes a new instance of the <see cref="NewFileForm"/> class.</summary>
 /// <param name="fileEditorResolver">The file editor resolver.</param>
 public NewFileForm(IFileEditorResolver fileEditorResolver)
 {
     InitializeComponent();
     _fileEditorResolver = fileEditorResolver;
 }