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;
     }
 }
Esempio n. 3
0
 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);
     //}
 }
Esempio n. 4
0
 /// <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));
 }
Esempio n. 5
0
        /// <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);
            }
        }
Esempio n. 6
0
        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);
        }
Esempio n. 7
0
        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);
            }
        }
Esempio n. 8
0
        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);
                }
            }
        }