private void MoveNode(AIONode [] nodeToMoves, AIONode nodeToAttach) { for (int i = 0; i < nodeToMoves.Length; i++) { AIONode nodeToMove = nodeToMoves[i]; //Logically tree.MoveNode(nodeToMove, nodeToAttach); //Change tree if (nodeToMove.data.isFile == false) //Folder { TreeNode toMove = (TreeNode)nodeToMove.container; TreeNode toAttach = (TreeNode)nodeToAttach.container; //Remove old toMove.Remove(); //Insert new InsertNode(toAttach, toMove); } } //previousSelected treeView1.SelectedNode = previousSelected; //Update UpdateListView(); }
private void listView1_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e) { if (e.KeyCode == Keys.Delete) //Delete { if (listView1.SelectedIndices.Count == 0) { return; } int index = listView1.SelectedIndices[0]; AIONode nodeToDelete = (AIONode)listView1.Items[index].Tag; //Delete tree.DeleteNode(nodeToDelete); //Update tree if isFolder if (nodeToDelete.data.isFile == false) { /* * TreeNode selected = treeView1.SelectedNode; * int i = 0; * for (i = 0;i<selected.Nodes.Count;i++) * { * if (selected.Nodes[i].Text.Equals(nodeToDelete.info.Name)) * break; * } * //Delete node at tree * selected.Nodes.RemoveAt(i);*/ TreeNode node = (TreeNode)nodeToDelete.container; node.Remove(); } //Refresh UpdateListView(); } }
private void DeleteNode(AIONode [] nodesToDelete) { for (int i = 0; i < nodesToDelete.Length; i++) { AIONode nodeToDelete = nodesToDelete[i]; try { tree.DeleteNode(nodeToDelete); if (nodeToDelete.data.isFile == false) { TreeNode toDelete = (TreeNode)nodeToDelete.container; if (toDelete != null) { toDelete.Remove(); } } } catch (Exception e) { MessageBox.Show(e.Message); } } UpdateListView(); }
//Delete private void treeView1_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e) { if (e.KeyCode == Keys.Delete) //Delete { TreeNode node = treeView1.SelectedNode; if (node == null) { return; } if (e.Shift == false) //Confirmation { DialogResult result = MessageBox.Show("Are you sure?", "Delete", MessageBoxButtons.YesNo); if (result.Equals(DialogResult.No)) { return; } } AIONode nodeToDelete = (AIONode)node.Tag; AIONode [] nodeToDeletes = new AIONode[] { nodeToDelete }; DeleteNode(nodeToDeletes); } }
public void InsertFileIntoSelectedNode(string path) { TreeNode node = treeView1.SelectedNode; if (node == null) { return; } //Insert new category AIONode nodeToAttach = (AIONode)node.Tag; tree.FilesCount++; string name = AIOUtil.GetNameFromPath(path); AIONode nodeToInsert = new AIONode(new AIOInfo(tree.GenerateFileID(), name, true)); tree.InsertFile(nodeToInsert, nodeToAttach, path); //Be sure to execute the queue aioDb.ExecuteQueueCommand(); //Update listview UpdateListView(); }
private void CopyNode(AIONode [] nodesToCopy, AIONode nodeToAttach) { for (int i = 0; i < nodesToCopy.Length; i++) { AIONode nodeToCopy = nodesToCopy[i]; //Logically AIONode newCopy = tree.CopyNode(nodeToCopy, nodeToAttach); //Change tree if (nodeToCopy.data.isFile == false) //Folder { TreeNode toAttach = (TreeNode)nodeToAttach.container; TreeNode newCopyNode = CreateTreeNode(newCopy); //Insert null child for new copy node newCopyNode.Nodes.Insert(0, new TreeNode()); //Insert new InsertNode(toAttach, newCopyNode); } } //previousSelected treeView1.SelectedNode = previousSelected; //Update UpdateListView(); }
private void CreateContainerNode(AIONode node) { AIONode parent = tree.GetParent(node); TreeNode parentNode = (TreeNode)parent.container; //Expand to create childnodes and container parentNode.Expand(); }
private void treeView1_AfterLabelEdit(object sender, System.Windows.Forms.NodeLabelEditEventArgs e) { TreeNode node = e.Node; if (e.Label != null) { AIONode aionode = (AIONode)node.Tag; aionode.data.Name = e.Label; } }
public void Synchronize() { //GetSubroot AIONode subroot = logicalExplorer1.GetCurrentFolder(); frmSynchronizeWizard synch = new frmSynchronizeWizard(tree, subroot); synch.ShowDialog(); //logicalExplorer1.SetTree(tree); }
private void listView1_AfterLabelEdit(object sender, System.Windows.Forms.LabelEditEventArgs e) { if (e.Label != null) { AIONode aionode = (AIONode)listView1.Items[e.Item].Tag; aionode.data.Name = e.Label; TreeNode node = (TreeNode)aionode.container; node.Text = e.Label; } }
//My methods----------------------------------------------------- //Create a tree node from AIONode private TreeNode CreateTreeNode(AIONode node) { TreeNode treenode = new TreeNode(); tree.CopyNodeInfo(treenode, node); //Save container node.container = treenode; return(treenode); }
public AIONode GetCurrentFolder() { TreeNode treenode = treeView1.SelectedNode; if (treenode == null) { return(null); } AIONode node = (AIONode)treenode.Tag; return(node); }
public frmSynchronizeWizard(AIOFolderTree tree2, AIONode subroot) { // // Required for Windows Form Designer support // InitializeComponent(); // // TODO: Add any constructor code after InitializeComponent call // this.tree = tree2; this.subroot = subroot; }
private void UpdateListView() { listView1.Items.Clear(); TreeNode node = treeView1.SelectedNode; if (node == null) { return; } AIONode aionode = (AIONode)node.Tag; if (aionode == null) { return; } aionode = aionode.childNode; while (aionode != null) { string name = "null"; //if (aionode.data != null) name = aionode.data.Name; //name = aionode.data.ID; ListViewItem item = listView1.Items.Add(name, 0); //Save tag item.Tag = aionode; //View sub items info if (aionode.data.isFile) { object [] obj = aioDb.GetCommonInfo(aionode.data.ID); //View it if (obj != null) { for (int i = 0; i < obj.Length; i++) { item.SubItems.Add(obj[i].ToString()); } } } if (aionode.data.isFile) { item.ImageIndex = 1; } aionode = aionode.nextNode; } }
//--------------------------------------------------------------- //Update details information private void UpdateDetailsInfo() { AIONode node = (AIONode)listView1.SelectedItems[0].Tag; if (node.data.isFile == false) { return; } string path = listView1.SelectedItems[0].SubItems[3].Text; FileInfo file = new FileInfo(path); long size = file.Length; ViewDetailsInfo(new string[] { AIOUtil.ByteToKB_String(size) }); }
TreeNode previousSelected = null; //Save previous selected node in DragDrop for Delete old node private void listView1_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e) { if ((e.Button & MouseButtons.Left) == MouseButtons.Left) { if (listView1.SelectedIndices.Count == 0) { return; } int index = listView1.SelectedIndices[0]; AIONode node = (AIONode)listView1.Items[index].Tag; //Copy or Move listView1.DoDragDrop(node, DragDropEffects.All); } }
private void tree_UpdateLogicalExplorer(AIONode node) { TreeNode treenode = new TreeNode(); tree.CopyNodeInfo(treenode, node); //Make container node.container = treenode; AIONode parent = tree.GetParent(node); TreeNode parentnode = (TreeNode)parent.container; tree.FillOneLevelNode(treenode, node); //Insert to treeView //InsertNode(parentnode, treenode); //Marshall to STA thread treeView1.Invoke(new InsertNodeDele(InsertNode), new object[] { parentnode, treenode }); }
private void treeView1_DragDrop(object sender, System.Windows.Forms.DragEventArgs e) { //Cancel drag drop IsDragDroping = false; if (treeView1.SelectedNode == null) { return; } AIONode nodeToAttach = (AIONode)treeView1.SelectedNode.Tag; AIONode [] nodeToDrops = (AIONode[])e.Data.GetData(typeof(AIONode[])); //Check if valid to move or copy for (int i = 0; i < nodeToDrops.Length; i++) { AIONode nodeToDrop = nodeToDrops[i]; if (!tree.IsValidMoveCopy(nodeToDrop, nodeToAttach)) { MessageBox.Show("Can't move or copy to sub folder."); return; //continue; } if (nodeToDrop.data.isFile == false && nodeToDrop.container == null) { CreateContainerNode(nodeToDrop); } } if (e.Effect.Equals(DragDropEffects.Move)) //Move { MoveNode(nodeToDrops, nodeToAttach); } else { if (e.Effect.Equals(DragDropEffects.Copy)) //Copy { //Logical copy CopyNode(nodeToDrops, nodeToAttach); } } }
//Tree view drapdrop private void treeView1_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e) { if (((e.Button & MouseButtons.Left) == MouseButtons.Left) && !IsDragDroping) { TreeNode treeNode = treeView1.SelectedNode; if (treeNode == null) { return; } AIONode node = (AIONode)treeNode.Tag; AIONode [] nodes = new AIONode[] { node }; IsDragDroping = true; //ddType = DragDropType.TREE; previousSelected = treeView1.SelectedNode; //Copy or Move treeView1.DoDragDrop(nodes, DragDropEffects.Copy | DragDropEffects.Move); } }
private void UpdateListView() { listView1.Items.Clear(); TreeNode node = treeView1.SelectedNode; if (node == null) { return; } AIONode aionode = (AIONode)node.Tag; aionode = aionode.childNode; while (aionode != null) { ListViewItem item = listView1.Items.Add(aionode.data.Name, 0); item.Tag = aionode; if (aionode.data.isFile) { item.ImageIndex = 1; } aionode = aionode.nextNode; } }
private void ctxNew_Click(object sender, System.EventArgs e) { TreeNode node = treeView1.SelectedNode; if (node == null) { return; } node.Expand(); //Insert new category AIONode nodeToAttach = (AIONode)node.Tag; tree.FoldersCount++; AIONode nodeToInsert = new AIONode(new AIOInfo(tree.GenerateFolderID(), "New Category", false)); tree.InsertCategory(nodeToInsert, nodeToAttach); //Tree TreeNode newNode = new TreeNode(); tree.CopyNodeInfo(newNode, nodeToInsert); //Save Container nodeToInsert.container = newNode; //Insert(); node.Nodes.Insert(0, newNode); if (node.IsExpanded == false) { node.Expand(); } newNode.BeginEdit(); }
private void GoToSelectedFolder() { if (listView1.SelectedItems.Count == 0) { return; } AIONode node = (AIONode)listView1.SelectedItems[0].Tag; if (node.data.isFile == false) //IsFolder { TreeNode selected = treeView1.SelectedNode; if (selected.IsExpanded == false) { selected.Expand(); } TreeNode treenode = (TreeNode)node.container; treeView1.SelectedNode = treenode; treeView1.Select(); UpdateListView(); if (listView1.Items.Count > 0) { listView1.Items[0].Selected = true; } listView1.Select(); } else //IsFile - Execute here----------------- { //System.Diagnostics.Process.Start(node.info.FullName); string ID = node.data.ID; EditFileInfo(ID); } }
private void ctxPaste_Click(object sender, System.EventArgs e) { if (nodeToOperateList == null) { return; } //Get node to operate AIONode [] destNodes = ((AIONode[])GetOperateNode(objSender)); if (destNodes == null) { if (objSender.Equals(listView1)) //Neu ListView khong select { destNodes = ((AIONode[])GetOperateNode(treeView1)); //Sau khi lay o tree, destNode luon la mot thu muc } else { return; } } else if (destNodes[0].data.isFile) { //Change destNode to current category in treeView destNodes = ((AIONode[])GetOperateNode(treeView1)); if (destNodes == null) { return; } } if (destNodes.Length > 1) { MessageBox.Show("Paste into " + destNodes[0].data.Name); } AIONode destNode = destNodes[0]; //Loop through operate node for (int i = 0; i < nodeToOperateList.Length; i++) { AIONode nodeToOperate = nodeToOperateList[i]; //Checking if (!tree.IsValidMoveCopy(nodeToOperate, destNode)) { //continue; return; } if (nodeToOperate.data.isFile == false && nodeToOperate.container == null) { CreateContainerNode(nodeToOperate); } } switch (ctxState) { case ContextState.CTX_CUT: MoveNode(nodeToOperateList, destNode); break; case ContextState.CTX_COPY: CopyNode(nodeToOperateList, destNode); break; } //Change the state to READY when done ctxState = ContextState.CTX_READY; }