public bool NewDocument() { try { _mainForm.Refresh(); _mainForm.Cursor = Cursors.WaitCursor; DocumentType documentType = _applicationManager.NewDocumentType; SqlEditForm ef = new SqlEditForm(); ef.Text = _documentManager.GetNextUntitledFileName(documentType); ef.FileName = ef.Text; ef.FilePath = null; ef.FileEncoding = _documentManager.GetDocumentEncoding(documentType); ef.LineEnding = ScintillaNet.EndOfLineMode.Crlf; ef.Editor.EndOfLine.Mode = ef.LineEnding; ef.LoadSettings(documentType); ef.FileTimeStamp = DateTime.Now; ef.Show(_mainForm.ClientWindow, DockState.Document); } finally { _mainForm.Cursor = Cursors.Default; } return(true); }
public IDockContent OpenDocument(string path, bool readOnly) { /* * Activate the file if already in an editor. */ foreach (Document d in _mainForm.ClientWindow.Documents) { if (d.FilePath != null && FileTools.MatchPaths(d.FilePath, path) && !d.AllowDuplicates()) { d.Activate(); return(null); } } /* * Create a new editor and load the file. */ try { _mainForm.Refresh(); _mainForm.Cursor = Cursors.WaitCursor; string fileText = null; Encoding encoding; try { fileText = FileTools.ReadFile(path, out encoding); if (fileText == null) { return(null); } } catch (Exception ex) { _mainForm.Cursor = Cursors.Default; MessageBox.Show(String.Format("{0}\r\n{1}", Resources.OpenErrorMessage, ex.Message), Resources.OpenErrorTitle, MessageBoxButtons.OK, MessageBoxIcon.Error); return(null); } /* * Populate the form. */ SqlEditForm ef = new SqlEditForm(); FileInfo fi = new FileInfo(path); ef.Text = fi.Name; ef.FileName = fi.Name; ef.FilePath = fi.FullName; ef.FileEncoding = encoding; ef.LineEnding = _documentManager.DetectLineEnding(fileText); ef.Editor.EndOfLine.Mode = ef.LineEnding; ef.Editor.Text = fileText; ef.Editor.Modified = false; ef.Editor.UndoRedo.EmptyUndoBuffer(); ef.Editor.IsReadOnly = readOnly; ef.LoadSettings(new DocumentType(fi.Extension)); ef.FileTimeStamp = DateTime.Now; ef.UpdateTab(); return(ef); } finally { _mainForm.Cursor = Cursors.Default; } }