private void addFolderMenu_Click(object sender, EventArgs e) { var parent = tree.SelectedNode; var name = Interaction.InputBox("Enter name of the folder you'd like to add", "Add Folder"); if (string.IsNullOrEmpty(name?.Trim())) { return; } if (parent != null && parent.Tag != null) { parent = parent.Parent; } if (parent == null) { tree.Nodes.Add(new TreeNode(name) { SelectedImageIndex = 1, ImageIndex = 1 }); } else { parent.Nodes.Add(new TreeNode(name) { SelectedImageIndex = 1, ImageIndex = 1 }); } ProjectTree = ShiroProject.ExtractProjectTreeFromTreeViewOpenParenLOLCloseParen(Shiro, tree); }
private void SaveProject() { if (string.IsNullOrEmpty(ShiroProject.CurrentlyOpenProject)) { if (DialogResult.OK == saveProjectDialog.ShowDialog()) { ShiroProject.CurrentlyOpenProject = saveProjectDialog.FileName; } else { return; } } File.WriteAllText(ShiroProject.CurrentlyOpenProject, ShiroProject.GetShiroProjectFileContent(Shiro, ProjectTree)); }
private void tree_DragDrop(object sender, DragEventArgs e) { Point targetPoint = tree.PointToClient(new Point(e.X, e.Y)); TreeNode targetNode = tree.GetNodeAt(targetPoint); TreeNode draggedNode = (TreeNode)e.Data.GetData(typeof(TreeNode)); if (draggedNode.Equals(targetNode)) { return; } if (targetNode == null) { //Drag to top level (out of folder) draggedNode.Remove(); tree.Nodes.Add(draggedNode); } else if (!ContainsNode(draggedNode, targetNode)) { if (targetNode.Tag == null) { //Dragging into a folder, everything is normal draggedNode.Remove(); targetNode.Nodes.Add(draggedNode); targetNode.Expand(); } else { //Dragged on top of an item -- drop into parent if (targetNode.Parent == null) { //Top level draggedNode.Remove(); tree.Nodes.Add(draggedNode); } else { //Parented Item draggedNode.Remove(); targetNode.Parent.Nodes.Add(draggedNode); targetNode.Expand(); } } } ProjectTree = ShiroProject.ExtractProjectTreeFromTreeViewOpenParenLOLCloseParen(Shiro, tree); }
private void removeFileFromProjectMenu_Click(object sender, EventArgs e) { var node = tree.SelectedNode; if (node == null) { return; } if (string.IsNullOrEmpty(node.Tag?.ToString())) { MessageBox.Show("I can't delete directories yet, Dan is lazy."); } else if (DialogResult.Yes == MessageBox.Show($"Delete {node.Text} from the project (file will remain on disk)?", "Remove from Project?", MessageBoxButtons.YesNo)) { ProjectTree.Children.GetProperty(Shiro, "proj").Children[0] = new Token(ShiroProject.DeleteFileFromTree(Shiro, node.Tag.ToString(), ProjectTree.Children.GetProperty(Shiro, "proj").Children[0]).ToArray()); UpdateTree(); } }