private void _treDirectories_AfterSelect(object sender, TreeViewEventArgs e) { if (last_selected == e.Node) { return; } last_selected = e.Node; if (e.Node.Name == "directory_unsorted") { if (directory_selected != null) { directory_selected(new DC_DirectoryInformation() { url_id = "0", name = "Unsorted" }); } } else { DC_DirectoryInformation dir = e.Node.Tag as DC_DirectoryInformation; if (dir == null) { return; } if (directory_selected != null) { directory_selected(dir); } } }
public DC_DirectoryInformation getDirectoryAtCursor() { Point cursora = Cursor.Position; Point client_pt = this.PointToClient(cursora); TreeNode node = _treDirectories.GetNodeAt(client_pt); if (node == null) { return(null); } DC_DirectoryInformation dir = node.Tag as DC_DirectoryInformation; if (dir == null && node.Name == "directory_unsorted") { dir = new DC_DirectoryInformation() { url_id = "0", name = "Unsorted" }; } return(dir); }
private void _cmiDirectoryDelete_Click(object sender, EventArgs e) { if (_treDirectories.SelectedNode.Tag == null) { return; } DC_DirectoryInformation dir = _treDirectories.SelectedNode.Tag as DC_DirectoryInformation; if (dir == null) // Should never happen. { return; } if (dir.url_id == "") { return; } // Remove the node for user verification of deletion. _treDirectories.SelectedNode.Remove(); connector.callServerMethod("Files:directoryDelete", dir.url_id); if (status_update != null) { status_update("Deleting directory.", DirectoryTreeListStatusEnum.deleting); } }
public void directoryCreateConfirmation(DC_DirectoryInformation dir) { addDirectory(dir); if (status_update != null) { status_update("Idle", DirectoryTreeListStatusEnum.created); } }
/// <summary> /// Add a directory to the TreeList /// </summary> /// <param name="dir">Directory information.</param> private void addDirectory(DC_DirectoryInformation dir) { string dir_type = (dir.bool_public) ? "directory" : "directory_private"; TreeNode node = node_root.Nodes.Add(dir.id, dir.name, dir_type, dir_type); node.Tag = dir; directory_nodes.Add(node); }
private void _cmiDirectoryCopyDirectoryUrl_Click(object sender, EventArgs e) { DC_DirectoryInformation dir = _treDirectories.SelectedNode.Tag as DC_DirectoryInformation; if (dir == null) { return; } Clipboard.SetText(Client.server_info.server_url + "/" + dir.url_id); }
private void _treDirectories_AfterLabelEdit(object sender, NodeLabelEditEventArgs e) { if (e.Label == null) { return; } if (e.Node.Tag == null) { connector.callServerMethod("Files:directoryCreate", e.Label); e.Node.Remove(); if (status_update != null) { status_update("Creating directory " + e.Label, DirectoryTreeListStatusEnum.creating); } } else { DC_DirectoryInformation dir = e.Node.Tag as DC_DirectoryInformation; if (dir == null) { e.CancelEdit = true; return; } // Determine if the label has changed at all. if (dir.name == e.Label) { return; } if (Regex.IsMatch(e.Label, @"^[a-zA-Z0-9 _-]+$") == false) { MessageBox.Show("Directory name can only contain Alphanumeric and any of the following characters: _-", "Directory Name Change", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); e.CancelEdit = true; return; } else if (e.Label.Length > 128) { MessageBox.Show("Directory name has to be less than 128 characters.", "Directory Name Change", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); e.CancelEdit = true; return; } updatingDirectory(e.Node); connector.callServerMethod("Files:directoryRename", dir.url_id, e.Label); if (status_update != null) { status_update("Renaming Directory " + dir.name, DirectoryTreeListStatusEnum.renaming); } } }
/// <summary> /// Sets a directory to be in "Updating" to visually let the user know that something is going on. /// </summary> /// <param name="node">The node that is being updated.</param> private void updatingDirectory(TreeNode node) { DC_DirectoryInformation dir = node.Tag as DC_DirectoryInformation; if (dir == null) { return; } node.SelectedImageKey = "updating"; node.ImageKey = "updating"; }
/// <summary> /// Called after the directory is updated successfully or otherwise. /// </summary> /// <param name="node">The node that has completed the work requested.</param> private void completedUpdatingDirectory(TreeNode node) { DC_DirectoryInformation dir = node.Tag as DC_DirectoryInformation; if (dir == null) { return; } node.Text = dir.name; if (dir.bool_public) { node.SelectedImageKey = "directory"; node.ImageKey = "directory"; } else { node.SelectedImageKey = "directory_private"; node.ImageKey = "directory_private"; } }
public void directoryRenameConfirmation(string url_id, string name) { foreach (TreeNode node in node_root.Nodes) { DC_DirectoryInformation dir = node.Tag as DC_DirectoryInformation; if (dir == null) { continue; } if (dir.url_id == url_id) { dir.name = name; completedUpdatingDirectory(node); break; } } if (status_update != null) { status_update("Directory renamed.", DirectoryTreeListStatusEnum.renamed); } }
private void _cmiDirectoryMakePublic_Click(object sender, EventArgs e) { DC_DirectoryInformation dir = _treDirectories.SelectedNode.Tag as DC_DirectoryInformation; if (dir == null) { return; } var set_prop = new Dictionary <string, bool>() { { "is_public", true } }; connector.callServerMethod("Files:directorySetProperties", dir.url_id, set_prop); _treDirectories.SelectedNode.ImageKey = "directory"; _treDirectories.SelectedNode.SelectedImageKey = "directory"; dir.bool_public = true; if (status_update != null) { status_update("Setting directory " + dir.name + " to Public.", DirectoryTreeListStatusEnum.property_setting); } }
private void _dtlDirectories_DragDrop(object sender, DragEventArgs e) { List <string> move_url_ids = new List <string>(); DC_DirectoryInformation dir = _dtlDirectories.getDirectoryAtCursor(); if (dir == null) { dragging_files.Clear(); return; } _lblStatusText.Text = "Moving (" + dragging_files.Count.ToString() + ") File(s) into directory " + dir.name; foreach (ListViewItem item in dragging_files) { move_url_ids.Add(((DC_FileInformation)item.Tag).url_id); // Potentially a null reference error... item.Remove(); } dragging_files.Clear(); connector.callServerMethod("Files:move", move_url_ids.ToArray(), dir.url_id); }
private void _dtlDirectories_directory_selected(DC_DirectoryInformation directory) { _lstFiles.Items.Clear(); _lstFiles.Items.Add("Loading", "loading"); connector.callServerMethod("Files:directoryFiles", directory.url_id); }