public override DockablePanel OpenView(Model Model) { var r = new TextDocumentEditor( this, OpenEditors.Count != 0 ? (OpenEditors[0] as TextDocumentEditor).GetScintillaDocument() : (ScintillaNET.Document?)null, Model.SpellChecker, Model.Thesaurus); r.CustomizeContextMenu = (menu) => { var item = menu.MenuItems.Add("Cut to new document"); item.Click += (sender, args) => { var createCommand = new Commands.CreateNewDocument(System.IO.Path.GetDirectoryName(Path), "txt"); r.InvokeCommand(createCommand); if (!createCommand.Succeeded) { System.Windows.Forms.MessageBox.Show("Failed to create new file."); return; } var prose = r.textEditor.SelectedText; System.IO.File.WriteAllText(createCommand.FullPath, prose); r.textEditor.ReplaceSelection(""); MadeChanges(); }; }; OpenEditors.Add(r); return(r); }
private void NewFileMenuItemHandler(object sender, EventArgs e) { Commands.CreateNewDocument createCommand = null; TreeNode newNode = null; if (ContextNode != null) { var tag = ContextNode.Tag as NodeTag; var dirPath = tag.Path; if (tag.NodeType == NodeTag.Type.File) { dirPath = System.IO.Path.GetDirectoryName(dirPath); } createCommand = new Commands.CreateNewDocument(dirPath, "txt"); InvokeCommand(createCommand); UpdateNode(ContextNode); foreach (TreeNode node in ContextNode.Nodes) { if ((node.Tag as NodeTag).Path == dirPath + "\\" + createCommand.NewFileName) { newNode = node; } } } else { createCommand = new Commands.CreateNewDocument(Project.Path, "txt"); InvokeCommand(createCommand); UpdateNode(null); foreach (TreeNode node in treeView.Nodes) { if ((node.Tag as NodeTag).Path == Project.Path + "\\" + createCommand.NewFileName) { newNode = node; } } } newNode.EnsureVisible(); treeView.SelectedNode = newNode; newNode.BeginEdit(); }
private void newFileToolStripMenuItem_Click(object sender, EventArgs e) { Commands.CreateNewDocument createCommand = null; TreeNode newNode = null; if (ContextNode != null) { var tag = ContextNode.Tag as NodeTag; createCommand = new Commands.CreateNewDocument(tag.Path); ControllerCommand(createCommand); UpdateNode(ContextNode); foreach (TreeNode node in ContextNode.Nodes) { if ((node.Tag as NodeTag).Path == tag.Path + "\\" + createCommand.NewFileName) { newNode = node; } } } else { createCommand = new Commands.CreateNewDocument(System.IO.Path.GetDirectoryName(Project.Path)); ControllerCommand(createCommand); UpdateNode(null); foreach (TreeNode node in treeView.Nodes) { if ((node.Tag as NodeTag).Path == System.IO.Path.GetDirectoryName(Project.Path) + "\\" + createCommand.NewFileName) { newNode = node; } } } newNode.EnsureVisible(); treeView.SelectedNode = newNode; newNode.BeginEdit(); }