public static void RemoveTreeNode(TreeViewFolderBrowser folderTreeViewFolder, TreeNode treeNode) { if (treeNode != null) { TreeNodePath node = (TreeNodePath)treeNode; Raccoom.Win32.ShellItem folderItem = ((Raccoom.Win32.ShellItem)node.Tag); folderItem.ClearFolders(); node.Remove(); } }
public static void RefreshTreeNode(TreeViewFolderBrowser folderTreeViewFolder, TreeNode treeNode) { if (treeNode != null) { TreeNodePath node = (TreeNodePath)treeNode; Raccoom.Win32.ShellItem folderItem = ((Raccoom.Win32.ShellItem)node.Tag); folderItem.ClearFolders(); node.Refresh(); folderTreeViewFolder.UseWaitCursor = true; folderTreeViewFolder.BeginUpdate(); treeNode.Collapse(); treeNode.Expand(); folderTreeViewFolder.EndUpdate(); folderTreeViewFolder.UseWaitCursor = false; } }
public override void QueryContextMenuItems(TreeNodePath node) { if (!EnableContextMenu) { return; } // Raccoom.Win32.ShellItem fi = node.Tag as Raccoom.Win32.ShellItem; if (fi == null) { return; } //// //foreach (.FolderItemVerb verb in fi..Verbs()) //{ // if (verb.Name.Length == 0) continue; // // // MenuItemShellVerb item = new MenuItemShellVerb(verb); // Helper.TreeView.ContextMenu.MenuItems.Add(item); //} }
/// <summary> /// Do we have to add a dummy node (+ sign) /// </summary> protected virtual bool IsFolderWithChilds(Raccoom.Win32.ShellItem fi) { return(_showAllShellObjects || (fi.IsFileSystem && fi.IsFolder && !fi.IsBrowsable)); }
/// <summary> /// Popluates the MyComputer node /// </summary> /// <param name="folderItem"></param> /// <param name="parentCollection"></param> /// <param name="helper"></param> protected virtual void FillMyComputer(Raccoom.Win32.ShellItem folderItem, System.Windows.Forms.TreeNodeCollection parentCollection, TreeViewFolderBrowserNodeFactory helper) { _rootCollection = parentCollection; // get wmi logical disk's if we have to System.IO.DriveInfo driveInfo; // folderItem.Expand(true, true, System.IntPtr.Zero); // foreach (Raccoom.Win32.ShellItem fi in folderItem.SubFolders) { // only File System shell objects ? if (!_showAllShellObjects && !fi.IsFileSystem) { continue; } // if (DriveTypes != DriveTypes.All && fi.IsDisk) { driveInfo = new System.IO.DriveInfo(fi.Path); // switch (driveInfo.DriveType) { case System.IO.DriveType.CDRom: if ((DriveTypes & DriveTypes.CompactDisc) == 0) { continue; } break; case System.IO.DriveType.Fixed: if ((DriveTypes & DriveTypes.LocalDisk) == 0) { continue; } break; case System.IO.DriveType.Network: if ((DriveTypes & DriveTypes.NetworkDrive) == 0) { continue; } break; case System.IO.DriveType.NoRootDirectory: if ((DriveTypes & DriveTypes.NoRootDirectory) == 0) { continue; } break; case System.IO.DriveType.Ram: if ((DriveTypes & DriveTypes.RAMDisk) == 0) { continue; } break; case System.IO.DriveType.Removable: if ((DriveTypes & DriveTypes.RemovableDisk) == 0) { continue; } break; case System.IO.DriveType.Unknown: if ((DriveTypes & DriveTypes.NoRootDirectory) == 0) { continue; } break; } } // create new node TreeNodePath node = CreateTreeNode(parentCollection, null, fi); } }
protected virtual TreeNodePath CreateTreeNode(System.Windows.Forms.TreeNodeCollection parentCollection, TreeNodePath parentNode, Raccoom.Win32.ShellItem shellItem) { if (shellItem == null) { throw new ArgumentNullException("shellItem"); } // TreeNodePath node = CreateTreeNode(parentCollection, parentNode, shellItem.Text, shellItem.Path, !shellItem.IsFolder, shellItem.HasSubfolder, !shellItem.IsFileSystem); node.ImageIndex = shellItem.ImageIndex; node.SelectedImageIndex = shellItem.SelectedImageIndex; node.Tag = shellItem; // shellItem.ShellItemUpdated += delegate(object sender, EventArgs e) { node.Text = shellItem.Text; node.ImageIndex = shellItem.ImageIndex; node.SelectedImageIndex = shellItem.SelectedImageIndex; }; return(node); }
public override void RequestChildNodes(TreeNodePath parent, System.Windows.Forms.TreeViewCancelEventArgs e) { Raccoom.Win32.ShellItem folderItem = ((Raccoom.Win32.ShellItem)parent.Tag); folderItem.Expand(this.ShowFiles, true, System.IntPtr.Zero); // TreeNodePath node = null; System.IO.DriveInfo driveInfo; // foreach (Raccoom.Win32.ShellItem childFolder in folderItem.SubFolders) { if (!_showAllShellObjects && !childFolder.IsFileSystem) { continue; } // if (DriveTypes != DriveTypes.All && childFolder.IsDisk) { driveInfo = new System.IO.DriveInfo(childFolder.Path); // switch (driveInfo.DriveType) { case System.IO.DriveType.CDRom: if ((DriveTypes & DriveTypes.CompactDisc) == 0) { continue; } break; case System.IO.DriveType.Fixed: if ((DriveTypes & DriveTypes.LocalDisk) == 0) { continue; } break; case System.IO.DriveType.Network: if ((DriveTypes & DriveTypes.NetworkDrive) == 0) { continue; } break; case System.IO.DriveType.NoRootDirectory: if ((DriveTypes & DriveTypes.NoRootDirectory) == 0) { continue; } break; case System.IO.DriveType.Ram: if ((DriveTypes & DriveTypes.RAMDisk) == 0) { continue; } break; case System.IO.DriveType.Removable: if ((DriveTypes & DriveTypes.RemovableDisk) == 0) { continue; } break; case System.IO.DriveType.Unknown: if ((DriveTypes & DriveTypes.NoRootDirectory) == 0) { continue; } break; } } // node = CreateTreeNode(null, parent, childFolder); } if (!ShowFiles) { return; } // foreach (Raccoom.Win32.ShellItem fileItem in folderItem.SubFiles) { node = CreateTreeNode(null, parent, fileItem); } }
public override void RequestChildNodes(TreeNodePath parent, System.Windows.Forms.TreeViewCancelEventArgs e) { #region Add Computers if (parent.Tag is string && (string)parent.Tag == ScannerNetworkTag) { Trinet.Networking.NetworkCompuersAndSharesHandler networkCompuersAndSharesHandler = new Trinet.Networking.NetworkCompuersAndSharesHandler(); networkCompuersAndSharesHandler.ScanForComputers(); foreach (string computerName in networkCompuersAndSharesHandler.ComputerNames) { TreeNodePath childNode = CreateTreeNode(computerName, "\\\\" + computerName, true, true); parent.Nodes.Add(childNode); childNode.Tag = ScannerComputerTag; AddImageListResourceImages(parent.TreeView, childNode, "NetworkImage", Raccoom.TreeViewFolderBrowser.DataProviders.Properties.Resources.SharedComputer, "NetworkImageSelected", Raccoom.TreeViewFolderBrowser.DataProviders.Properties.Resources.SharedComputer); } } #endregion #region Add Shares if (parent.Tag is string && (string)parent.Tag == ScannerComputerTag) { Trinet.Networking.NetworkCompuersAndSharesHandler networkCompuersAndSharesHandler = new Trinet.Networking.NetworkCompuersAndSharesHandler(); List <DirectoryInfo> directoryInfoList = networkCompuersAndSharesHandler.GetComputerShares(parent.Text); foreach (DirectoryInfo directoryInfo in directoryInfoList) { TreeNodePath childNode = CreateTreeNode(directoryInfo.Name, directoryInfo.FullName, true, true); parent.Nodes.Add(childNode); childNode.Tag = ScannerComputerShareTag; AddImageListResourceImages(parent.TreeView, childNode, "FolderImage", Raccoom.TreeViewFolderBrowser.DataProviders.Properties.Resources.SharedFolder, "FolderImageSelected", Raccoom.TreeViewFolderBrowser.DataProviders.Properties.Resources.SharedFolder); } } #endregion #region Add Folders if (parent.Tag is string && ((string)parent.Tag == ScannerComputerShareTag || (string)parent.Tag == ScannerFolderTag)) { try { System.IO.DirectoryInfo directoryInfoOnShare = new DirectoryInfo(parent.Path); System.IO.DirectoryInfo[] directoryInfoList = directoryInfoOnShare.GetDirectories(); foreach (DirectoryInfo directoryInfo in directoryInfoList) { TreeNodePath childNode = CreateTreeNode(directoryInfo.Name, directoryInfo.FullName, true, true); parent.Nodes.Add(childNode); childNode.Tag = ScannerFolderTag; AddImageListResourceImages(parent.TreeView, childNode, "FolderImage", Raccoom.TreeViewFolderBrowser.DataProviders.Properties.Resources.SharedFolder, "FolderImageSelected", Raccoom.TreeViewFolderBrowser.DataProviders.Properties.Resources.SharedFolder); } } catch { } } #endregion if (parent.Tag is Raccoom.Win32.ShellItem) { #region Add ShellItems Raccoom.Win32.ShellItem folderItem = ((Raccoom.Win32.ShellItem)parent.Tag); folderItem.Expand(this.ShowFiles, true, System.IntPtr.Zero); // TreeNodePath node = null; System.IO.DriveInfo driveInfo; // foreach (Raccoom.Win32.ShellItem childFolder in folderItem.SubFolders) { if (!_showAllShellObjects && !childFolder.IsFileSystem) { continue; } // if (DriveTypes != DriveTypes.All && childFolder.IsDisk) { driveInfo = new System.IO.DriveInfo(childFolder.Path); // switch (driveInfo.DriveType) { case System.IO.DriveType.CDRom: if ((DriveTypes & DriveTypes.CompactDisc) == 0) { continue; } break; case System.IO.DriveType.Fixed: if ((DriveTypes & DriveTypes.LocalDisk) == 0) { continue; } break; case System.IO.DriveType.Network: if ((DriveTypes & DriveTypes.NetworkDrive) == 0) { continue; } break; case System.IO.DriveType.NoRootDirectory: if ((DriveTypes & DriveTypes.NoRootDirectory) == 0) { continue; } break; case System.IO.DriveType.Ram: if ((DriveTypes & DriveTypes.RAMDisk) == 0) { continue; } break; case System.IO.DriveType.Removable: if ((DriveTypes & DriveTypes.RemovableDisk) == 0) { continue; } break; case System.IO.DriveType.Unknown: if ((DriveTypes & DriveTypes.NoRootDirectory) == 0) { continue; } break; } } // node = CreateTreeNode(null, parent, childFolder); AddImageListImage(Helper.TreeView, node); } #endregion #region Add Network Scanner if (parent.Parent == null) { TreeNodePath childNode = CreateTreeNode("Network scanner", "Network scanner", true, true); parent.Nodes.Add(childNode); childNode.Tag = ScannerNetworkTag; AddImageListResourceImages(parent.TreeView, childNode, "ComputerImage", Raccoom.TreeViewFolderBrowser.DataProviders.Properties.Resources.SharedNetwork, "ComputerImageSelected", Raccoom.TreeViewFolderBrowser.DataProviders.Properties.Resources.SharedNetwork); } #endregion if (!ShowFiles) { return; } // foreach (Raccoom.Win32.ShellItem fileItem in folderItem.SubFiles) { node = CreateTreeNode(null, parent, fileItem); AddImageListImage(Helper.TreeView, node); } } }