コード例 #1
0
        private void DoFileMove(
            ListViewItem item
            )
        {
            FileBrowserNode node        = base.TreeNode as FileBrowserNode;
            string          destination = "";

            // Determine destingation to move to
            SelectDestinationDialog destinationDialog = new SelectDestinationDialog(node.Path, SelectDestinationDialog.SELECT_DESTINATION_OPERATION.MOVE_FILE, plugin);

            if (destinationDialog.ShowDialog() == DialogResult.OK)
            {
                destination = destinationDialog.GetPath() + PathSeparator + item.Text;

                string   path  = node.Path + PathSeparator + item.Text;
                WinError error = FileClient.FileClient.MoveFile(path, destination);

                if (error == WinError.NO_ERROR)
                {
                    lvFilePage.BeginUpdate();
                    lvFilePage.Items.Remove(item);
                    lvFilePage.EndUpdate();
                    Refresh();
                }
                else
                {
                    string message = "Move file operation failed. Error: " + error.ToString();
                    MessageBox.Show(message, "Could not move file", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
        }
コード例 #2
0
        private void DoDirectoryDelete(
            ListViewItem item
            )
        {
            FileBrowserNode node   = base.TreeNode as FileBrowserNode;
            DialogResult    result = MessageBox.Show("Are you sure that you want to delete the directory called: " + item.Text + "?",
                                                     "File Browser",
                                                     MessageBoxButtons.YesNo);

            if (result == DialogResult.Yes)
            {
                string   path  = node.Path + PathSeparator + item.Text;
                WinError error = FileClient.FileClient.DeleteDirectory(path);

                if (error == WinError.NO_ERROR)
                {
                    TreeNode[] removedItem = node.Nodes.Find(item.Text, false);
                    if (removedItem.Length > 0)
                    {
                        removedItem[0].Remove();
                    }

                    lvFilePage.BeginUpdate();
                    lvFilePage.Items.Remove(item);
                    lvFilePage.EndUpdate();
                    Refresh();
                }
                else
                {
                    string message = "Delete directory operation failed. Error: " + error.ToString();
                    MessageBox.Show(message, "Could not remove directory", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
        }
コード例 #3
0
        private void DoFileCopy(
            ListViewItem item
            )
        {
            FileBrowserNode node        = base.TreeNode as FileBrowserNode;
            string          destination = "";

            // Determine destingation to copy to
            SelectDestinationDialog destinationDialog = new SelectDestinationDialog(node.Path, SelectDestinationDialog.SELECT_DESTINATION_OPERATION.COPY_FILE, plugin);

            if (destinationDialog.ShowDialog() == DialogResult.OK)
            {
                destination = destinationDialog.GetPath() + PathSeparator + item.Text;

                string   path  = node.Path + PathSeparator + item.Text;
                WinError error = FileClient.FileClient.CopyFile(path, destination, true);

                if (error == WinError.ERROR_FILE_EXISTS)
                {
                    destination = destinationDialog.GetPath() + PathSeparator + "Copy of " + item.Text;
                    error       = FileClient.FileClient.CopyFile(path, destination, true);
                }

                if (error == WinError.NO_ERROR)
                {
                    Refresh();
                }
                else
                {
                    string message = "Copy file operation failed. Error: " + error.ToString();
                    MessageBox.Show(message, "Could not copy file", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
        }
コード例 #4
0
        private void cm_OnRename(object sender, EventArgs e)
        {
            if (_currentNode != null &&
                _selectedNode != null &&
                _currentNode == _selectedNode)
            {
                FileBrowserNode node    = _currentNode as FileBrowserNode;
                FileBrowserNode parent  = _currentNode.Parent as FileBrowserNode;
                string          newName = "";

                if (node != null &&
                    parent != null)
                {
                    // Determine destingation to copy to
                    RenameDialog renameDialog = new RenameDialog(node.Name, RenameDialog.RENAME_OPERATION.RENAME_DIRECTORY, this);

                    if (renameDialog.ShowDialog() == DialogResult.OK)
                    {
                        newName = renameDialog.GetName();

                        WinError error = FileClient.FileClient.MoveDirectory(parent.Path, parent.Path, node.Name, newName, true);

                        if (error != WinError.NO_ERROR)
                        {
                            string message = "Rename directory operation failed. Error: " + error.ToString();
                            MessageBox.Show(message, "Could not rename directory", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }
                    }
                }
            }
        }
コード例 #5
0
        private void cm_OnCreateFolder(object sender, EventArgs e)
        {
            if (_currentNode != null &&
                _selectedNode != null &&
                _currentNode == _selectedNode)
            {
                FileBrowserNode node    = _currentNode as FileBrowserNode;
                string          newName = "";

                if (node != null)
                {
                    // Determine destingation to copy to
                    RenameDialog renameDialog = new RenameDialog("New Folder", RenameDialog.RENAME_OPERATION.NEW_FOLDER_NAME, this);

                    if (renameDialog.ShowDialog() == DialogResult.OK)
                    {
                        newName = node.Path + PathSeparator + renameDialog.GetName();

                        WinError error = FileClient.FileClient.CreateDirectory(newName);

                        if (error != WinError.NO_ERROR)
                        {
                            string message = "Create directory operation failed. Error: " + error.ToString();
                            MessageBox.Show(message, "Could not create new directory", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }
                    }
                }
            }
        }
コード例 #6
0
        private void DoDirectoryCopy(
            ListViewItem item
            )
        {
            FileBrowserNode node = base.TreeNode as FileBrowserNode;

            // Determine destingation to copy to
            SelectDestinationDialog destinationDialog = new SelectDestinationDialog(node.Path, SelectDestinationDialog.SELECT_DESTINATION_OPERATION.COPY_DIRECTORY, plugin);

            if (destinationDialog.ShowDialog() == DialogResult.OK)
            {
                WinError error = FileClient.FileClient.CopyDirectory(node.Path, destinationDialog.GetPath(), item.Text, item.Text, true);

                if (error == WinError.ERROR_FILE_EXISTS ||
                    error == WinError.ERROR_ALREADY_EXISTS)
                {
                    error = FileClient.FileClient.CopyDirectory(node.Path, destinationDialog.GetPath(), item.Text, "Copy of " + item.Text, true);
                }

                if (error == WinError.NO_ERROR)
                {
                    Refresh();
                }
                else
                {
                    string message = "Copy directory operation failed. Error: " + error.ToString();
                    MessageBox.Show(message, "Could not copy directory", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
        }
コード例 #7
0
        private void cm_OnDelete(object sender, EventArgs e)
        {
            if (_currentNode != null &&
                _selectedNode != null &&
                _currentNode == _selectedNode)
            {
                FileBrowserNode node   = _currentNode as FileBrowserNode;
                DialogResult    result = MessageBox.Show("Are you sure that you want to delete the directory called: " + node.Name + "?",
                                                         "File Browser",
                                                         MessageBoxButtons.YesNo);

                if (result == DialogResult.Yes)
                {
                    WinError error = FileClient.FileClient.DeleteDirectory(node.Path);

                    if (error != WinError.NO_ERROR)
                    {
                        string message = "Delete directory operation failed. Error: " + error.ToString();
                        MessageBox.Show(message, "Could not remove directory", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                    else
                    {
                        node.Remove();
                    }
                }
            }
        }
コード例 #8
0
        public void EnumChildren(LACTreeNode parentNode)
        {
            List <NETRESOURCE> NetResources = new List <NETRESOURCE>();
            FileBrowserNode    node         = parentNode as FileBrowserNode;

            if (node == null)
            {
                return;
            }

            if (node.FBNodeType == FileBrowserNode.FileBrowserNopeType.ROOT)
            {
                // Enumerate the child nodes of "File Browser" tree root
                BuildNodesToPlugin();
                return;
            }

            if (node.Name.Equals("Network"))
            {
                // Enumerate the child nodes of the "Network" tree node
                if (platform == LikewiseTargetPlatform.Windows)
                {
                    NetResources = GetNetworkConnections();
                    AddShareNodes(parentNode, NetResources);
                }
                else
                {
                    AddShareNodes(parentNode, RemoteShares);
                }
                return;
            }

            if (node.Name.Equals("Computer"))
            {
                return;
            }

            if (node.FBNodeType == FileBrowserNode.FileBrowserNopeType.SHARE ||
                node.FBNodeType == FileBrowserNode.FileBrowserNopeType.DIRECTORY)
            {
                // Enum files and directories under share/directory path.
                List <FileItem> FileList = FileClient.FileClient.EnumFiles(node.Path, false);

                if (FileList == null || FileList.Count == 0)
                {
                    return;
                }

                foreach (FileItem File in FileList)
                {
                    if (File.IsDirectory)
                    {
                        AddDirFolderNodes(node, File.FileName);
                    }
                }
            }
        }
コード例 #9
0
        private FileBrowserNode GetFileBrowserNode()
        {
            if (_pluginNode == null)
            {
                Icon ic = Resources.Library;
                _pluginNode                    = new FileBrowserNode("File Browser", ic, typeof(FilesBrowserPluginPage), this);
                _pluginNode.ImageIndex         = (int)Manage.ManageImageType.Generic;
                _pluginNode.SelectedImageIndex = (int)Manage.ManageImageType.Generic;
                _pluginNode.FBNodeType         = FileBrowserNode.FileBrowserNopeType.ROOT;

                _pluginNode.IsPluginNode = true;
            }

            return(_pluginNode);
        }
コード例 #10
0
        private void AddDirFolderNodes(
            FileBrowserNode parentNode,
            string folderName
            )
        {
            TreeNode[] found = parentNode.Nodes.Find(folderName, false);

            if (found == null || found.Length == 0)
            {
                FileBrowserNode node = new FileBrowserNode(folderName, Resources.Folder, null, null);
                node.FBNodeType = FileBrowserNode.FileBrowserNopeType.DIRECTORY;
                node.Path       = parentNode.Path + _pathSeparator + folderName;
                parentNode.Nodes.Add(node);
            }
        }
コード例 #11
0
        private void DoDirectoryMove(
            ListViewItem item
            )
        {
            FileBrowserNode node = base.TreeNode as FileBrowserNode;

            // Determine destingation to move to
            SelectDestinationDialog destinationDialog = new SelectDestinationDialog(node.Path, SelectDestinationDialog.SELECT_DESTINATION_OPERATION.MOVE_DIRECTORY, plugin);

            if (destinationDialog.ShowDialog() == DialogResult.OK)
            {
                string   path  = node.Path + PathSeparator + item.Text;
                WinError error = FileClient.FileClient.MoveDirectory(node.Path,
                                                                     destinationDialog.GetPath(),
                                                                     item.Text,
                                                                     item.Text,
                                                                     true);

                if (error == WinError.ERROR_FILE_EXISTS ||
                    error == WinError.ERROR_ALREADY_EXISTS)
                {
                    error = FileClient.FileClient.MoveDirectory(node.Path,
                                                                destinationDialog.GetPath(),
                                                                item.Text,
                                                                "Copy of " + item.Text,
                                                                true);
                }

                if (error == WinError.NO_ERROR)
                {
                    TreeNode[] removedItem = node.Nodes.Find(item.Text, false);
                    if (removedItem.Length > 0)
                    {
                        removedItem[0].Remove();
                    }

                    lvFilePage.BeginUpdate();
                    lvFilePage.Items.Remove(item);
                    lvFilePage.EndUpdate();
                    Refresh();
                }
                else
                {
                    string message = "Move directory operation failed. Error: " + error.ToString();
                    MessageBox.Show(message, "Could not move directory", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
        }
コード例 #12
0
        private void lvFilePage_DoubleClick(
            object sender,
            EventArgs
            e)
        {
            FileBrowserNode parent = base.TreeNode as FileBrowserNode;
            int             count  = lvFilePage.SelectedItems.Count;

            if (parent == null)
            {
                return;
            }

            if (count != 1)
            {
                return;
            }

            TreeNode[] nodes = base.TreeNode.Nodes.Find(lvFilePage.SelectedItems[0].Text, true);

            if (nodes == null || nodes.Length == 0)
            {
                return;
            }

            LACTreeNode node = nodes[0] as LACTreeNode;

            plugin.EnumChildren(node);

            if (node != null)
            {
                if (node.TreeView != null)
                {
                    parent.TreeView.SelectedNode = node;
                    treeNode = node;

                    if (node.Nodes.Count > 0)
                    {
                        node.Expand();
                    }

                    Refresh();
                }
            }
        }
コード例 #13
0
        private void AddShareNodes(
            FileBrowserNode parentNode,
            List <string> Shares
            )
        {
            foreach (string Share in Shares)
            {
                TreeNode[] found = parentNode.Nodes.Find(Share, false);

                if (found == null || found.Length == 0)
                {
                    FileBrowserNode node = new FileBrowserNode(Share, Resources.Share, null, null);
                    node.FBNodeType = FileBrowserNode.FileBrowserNopeType.SHARE;
                    node.Path       = Share;
                    parentNode.Nodes.Add(node);
                }
            }
        }
コード例 #14
0
        private void AddShareNodes(
            FileBrowserNode parentNode,
            List <NETRESOURCE> NetResources
            )
        {
            foreach (NETRESOURCE NetResource in NetResources)
            {
                TreeNode[] found = parentNode.Nodes.Find(NetResource.pRemoteName, false);

                if (found == null || found.Length == 0)
                {
                    FileBrowserNode node = new FileBrowserNode(NetResource.pRemoteName, Resources.Share, null, null);
                    node.FBNodeType = FileBrowserNode.FileBrowserNopeType.SHARE;
                    node.Path       = NetResource.pRemoteName;
                    parentNode.Nodes.Add(node);
                }
            }
        }
コード例 #15
0
        private void cm_OnMove(object sender, EventArgs e)
        {
            if (_currentNode != null &&
                _selectedNode != null &&
                _currentNode == _selectedNode)
            {
                FileBrowserNode node   = _currentNode as FileBrowserNode;
                FileBrowserNode parent = _currentNode.Parent as FileBrowserNode;

                // Determine destingation to copy to
                SelectDestinationDialog destinationDialog = new SelectDestinationDialog(node.Path, SelectDestinationDialog.SELECT_DESTINATION_OPERATION.MOVE_DIRECTORY, this);

                if (destinationDialog.ShowDialog() == DialogResult.OK)
                {
                    WinError error = FileClient.FileClient.MoveDirectory(parent.Path,
                                                                         destinationDialog.GetPath(),
                                                                         node.Name,
                                                                         node.Name,
                                                                         true);

                    if (error == WinError.ERROR_FILE_EXISTS ||
                        error == WinError.ERROR_ALREADY_EXISTS)
                    {
                        error = FileClient.FileClient.MoveDirectory(parent.Path,
                                                                    destinationDialog.GetPath(),
                                                                    node.Name,
                                                                    "Copy of " + node.Name,
                                                                    true);
                    }

                    if (error != WinError.NO_ERROR)
                    {
                        string message = "Move directory operation failed. Error: " + error.ToString();
                        MessageBox.Show(message, "Could not move directory", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                    else
                    {
                        _currentNode.Remove();
                    }
                }
            }
        }
コード例 #16
0
        private void AddDirFolderNodes(
            FileBrowserNode parentNode,
            string folderName
            )
        {
            TreeNode[] found = parentNode.Nodes.Find(folderName, false);

            if (found == null || found.Length == 0)
            {
                FileBrowserNode node = new FileBrowserNode(folderName, Resources.Folder, typeof(FilesDetailPage), this);
                node.FBNodeType = FileBrowserNode.FileBrowserNopeType.DIRECTORY;

                if (parentNode.Path.Equals("/"))
                {
                    node.Path = parentNode.Path + folderName;
                }
                else
                {
                    node.Path = parentNode.Path + PathSeparator + folderName;
                }
                parentNode.Nodes.Add(node);
            }
        }
コード例 #17
0
        private void AddDirFolderNodes(
            FileBrowserNode parentNode,
            string folderName
            )
        {
            TreeNode[] found = parentNode.Nodes.Find(folderName, false);

            if (found == null || found.Length == 0)
            {
                FileBrowserNode node = new FileBrowserNode(folderName, Resources.Folder, typeof(FilesDetailPage), this);
                node.FBNodeType = FileBrowserNode.FileBrowserNopeType.DIRECTORY;

                if (parentNode.Path.Equals("/"))
                {
                     node.Path = parentNode.Path + folderName;
                }
                else
                {
                    node.Path = parentNode.Path + PathSeparator + folderName;
                }
                parentNode.Nodes.Add(node);
            }
        }
コード例 #18
0
        private void AddShareNodes(
            LACTreeNode parentNode,
            List<NETRESOURCE> NetResources
            )
        {
            foreach (NETRESOURCE NetResource in NetResources)
            {

                TreeNode[] found = parentNode.Nodes.Find(NetResource.pRemoteName, false);

                if (found == null || found.Length == 0)
                {
                    FileBrowserNode node = new FileBrowserNode(NetResource.pRemoteName, Resources.Share, typeof(FilesDetailPage), this);
                    node.FBNodeType = FileBrowserNode.FileBrowserNopeType.SHARE;
                    node.Path = NetResource.pRemoteName;
                    parentNode.Nodes.Add(node);
                }
            }
        }
コード例 #19
0
        private void AddShareNodes(
            LACTreeNode parentNode,
            List<string> Shares
            )
        {
            foreach (string Share in Shares)
            {

                TreeNode[] found = parentNode.Nodes.Find(Share, false);

                if (found == null || found.Length == 0)
                {
                    FileBrowserNode node = new FileBrowserNode(Share, Resources.Share, typeof(FilesDetailPage), this);
                    node.FBNodeType = FileBrowserNode.FileBrowserNopeType.SHARE;
                    node.Path = Share;
                    parentNode.Nodes.Add(node);
                }
            }
        }
コード例 #20
0
        public ContextMenu GetTreeContextMenu(LACTreeNode nodeClicked)
        {
            FileBrowserNode node = nodeClicked as FileBrowserNode;
            ContextMenu     fileBrowserContextMenu = null;
            MenuItem        menuItem        = null;
            StandardPage    fileBrowserPage = (StandardPage)nodeClicked.PluginPage;

            _selectedNode = _pluginNode.TreeView.SelectedNode as LACTreeNode;
            _currentNode  = nodeClicked;

            if (fileBrowserPage == null)
            {
                Type   type = nodeClicked.NodeType;
                object o    = Activator.CreateInstance(type);
                if (o is IPlugInPage)
                {
                    ((IPlugInPage)o).SetPlugInInfo(_container, nodeClicked.Plugin, nodeClicked, (LWTreeView)nodeClicked.TreeView, nodeClicked.sc);
                }
            }

            if (node == null)
            {
                return(fileBrowserContextMenu);
            }

            if (node.FBNodeType == FileBrowserNode.FileBrowserNopeType.ROOT)
            {
                fileBrowserContextMenu = new ContextMenu();

                menuItem = new MenuItem("View Details", cm_OnSetView_Detail);
                if (_currentView == View.Details)
                {
                    menuItem.Checked = true;
                }
                fileBrowserContextMenu.MenuItems.Add(menuItem);

                menuItem = new MenuItem("View Large Icons", cm_OnSetView_LargeIcon);
                if (_currentView == View.LargeIcon)
                {
                    menuItem.Checked = true;
                }
                fileBrowserContextMenu.MenuItems.Add(menuItem);

                menuItem = new MenuItem("View Small Icons", cm_OnSetView_SmallIcon);
                if (_currentView == View.SmallIcon)
                {
                    menuItem.Checked = true;
                }
                fileBrowserContextMenu.MenuItems.Add(menuItem);

                menuItem = new MenuItem("View List", cm_OnSetView_List);
                if (_currentView == View.List)
                {
                    menuItem.Checked = true;
                }
                fileBrowserContextMenu.MenuItems.Add(menuItem);

                return(fileBrowserContextMenu);
            }

            fileBrowserContextMenu = new ContextMenu();

            menuItem = new MenuItem("Expand", cm_OnExpand);
            fileBrowserContextMenu.MenuItems.Add(0, menuItem);

            if (node.Name.Equals(Resources.String_Network))
            {
                menuItem = new MenuItem("Connect share", new EventHandler(cm_OnConnectToShare));
                fileBrowserContextMenu.MenuItems.Add(menuItem);
            }
            else if (node.Parent.Name.Equals(Resources.String_Network))
            {
                menuItem = new MenuItem("Disconnect share", new EventHandler(cm_OnDisconnectShare));
                fileBrowserContextMenu.MenuItems.Add(menuItem);
            }

            if (node.FBNodeType == FileBrowserNode.FileBrowserNopeType.SHARE ||
                node.FBNodeType == FileBrowserNode.FileBrowserNopeType.DIRECTORY)
            {
                menuItem = new MenuItem("Refresh", cm_OnRefresh);
                fileBrowserContextMenu.MenuItems.Add(menuItem);

                menuItem = new MenuItem("New folder", new EventHandler(cm_OnCreateFolder));
                fileBrowserContextMenu.MenuItems.Add(menuItem);

                menuItem = new MenuItem("Copy", new EventHandler(cm_OnCopy));
                fileBrowserContextMenu.MenuItems.Add(menuItem);
            }

            if (node.FBNodeType == FileBrowserNode.FileBrowserNopeType.DIRECTORY)
            {
                menuItem = new MenuItem("Move", new EventHandler(cm_OnMove));
                fileBrowserContextMenu.MenuItems.Add(menuItem);

                menuItem = new MenuItem("Delete", new EventHandler(cm_OnDelete));
                fileBrowserContextMenu.MenuItems.Add(menuItem);

                menuItem = new MenuItem("Rename", new EventHandler(cm_OnRename));
                fileBrowserContextMenu.MenuItems.Add(menuItem);
            }

            return(fileBrowserContextMenu);
        }
コード例 #21
0
        public override void Refresh(
            )
        {
            List <FileItem> FileList = null;

            base.Refresh();

            FileBrowserNode node = base.TreeNode as FileBrowserNode;

            if (lvFilePage.Items.Count != 0)
            {
                lvFilePage.Items.Clear();
            }

            if (node.FBNodeType == FileBrowserNode.FileBrowserNopeType.CATEGORY ||
                node.FBNodeType == FileBrowserNode.FileBrowserNopeType.ROOT)
            {
                this.lblCaption.Text = node.Text;
            }

            if (node.FBNodeType == FileBrowserNode.FileBrowserNopeType.SHARE ||
                node.FBNodeType == FileBrowserNode.FileBrowserNopeType.DIRECTORY)
            {
                if (String.IsNullOrEmpty(node.Path))
                {
                    // Local HD root scenario
                    this.lblCaption.Text = node.Text;

                    FileList = FileClient.FileClient.EnumFiles("", false);
                }
                else
                {
                    this.lblCaption.Text = string.Format(this.lblCaption.Text, node.Path);
                    FileList             = FileClient.FileClient.EnumFiles(node.Path, false);
                }
            }

            if (FileList == null || FileList.Count == 0)
            {
                return;
            }

            foreach (FileItem File in FileList)
            {
                string creation   = "";
                string modified   = "";
                string size       = "";
                string type       = "Directory";
                int    imageIndex = FOLDER_INDEX;

                if (!File.IsDirectory)
                {
                    type       = "File";
                    imageIndex = FILE_INDEX;
                }

                if (File.CreationTime != new DateTime())
                {
                    creation = File.CreationTime.ToString();
                }

                if (File.LastWriteTime != new DateTime())
                {
                    modified = File.LastWriteTime.ToString();
                }

                if (File.FileSizeInKB > 0)
                {
                    size = File.FileSizeInKB.ToString() + " KB";
                }
                else
                {
                    size = File.FileSmallSizeInBytes.ToString() + " Bytes";
                }
                string[] file = { File.FileName, creation, modified, type, size };

                ListViewItem lvItem = new ListViewItem(file, imageIndex);
                lvFilePage.Items.Add(lvItem);
            }

            lvFilePage.Sort();
            lvFilePage.View = plugin.GetCurrentViewStyle();
        }
コード例 #22
0
        private void BuildNodesToPlugin()
        {
            if (_pluginNode != null)
            {
                Icon iconNetShare = Resources.Share;
                Icon iconFolder   = Resources.Folder;
                Icon iconComputer = Resources.Computer_48;
                Icon iconHome     = Resources.Home;

                if (_pluginNode.Nodes.Find(Resources.String_Network, false).Length == 0)
                {
                    FileBrowserNode networkNode = new FileBrowserNode(Resources.String_Network, iconNetShare, typeof(FilesDetailPage), this);
                    networkNode.FBNodeType = FileBrowserNode.FileBrowserNopeType.CATEGORY;
                    _pluginNode.Nodes.Add(networkNode);
                }

                if (_pluginNode.Nodes.Find(Resources.String_Computer, false).Length == 0)
                {
                    FileBrowserNode computerNode = new FileBrowserNode(Resources.String_Computer, iconComputer, typeof(FilesDetailPage), this);
                    computerNode.Path       = "";
                    computerNode.FBNodeType = FileBrowserNode.FileBrowserNopeType.CATEGORY;
                    _pluginNode.Nodes.Add(computerNode);

                    FileBrowserNode localDiskRootNode = new FileBrowserNode("[HD]", iconFolder, typeof(FilesDetailPage), this);
                    localDiskRootNode.Path       = "";
                    localDiskRootNode.FBNodeType = FileBrowserNode.FileBrowserNopeType.DIRECTORY;
                    computerNode.Nodes.Add(localDiskRootNode);

                    /* Disabled for now - These could be suitable common local user paths that are worth browsing.
                     * if (platform != LikewiseTargetPlatform.Windows)
                     * {
                     *  FileBrowserNode homeNode = new FileBrowserNode(Resources.String_Home, iconHome, typeof(FilesDetailPage), this);
                     *  computerNode.Path = "~/";
                     *  homeNode.FBNodeType = FileBrowserNode.FileBrowserNopeType.CATEGORY;
                     *  computerNode.Nodes.Add(homeNode);
                     *
                     *  FileBrowserNode deskNode = new FileBrowserNode(Resources.String_Desktop, iconFolder, typeof(FilesDetailPage), this);
                     *  deskNode.Path = "~/Desktop/";
                     *  deskNode.FBNodeType = FileBrowserNode.FileBrowserNopeType.CATEGORY;
                     *  computerNode.Nodes.Add(deskNode);
                     *
                     *  FileBrowserNode docNode = new FileBrowserNode(Resources.String_Documents, iconFolder, typeof(FilesDetailPage), this);
                     *  docNode.Path = "~/Documents/";
                     *  docNode.FBNodeType = FileBrowserNode.FileBrowserNopeType.CATEGORY;
                     *  computerNode.Nodes.Add(docNode);
                     *
                     *  FileBrowserNode musicNode = new FileBrowserNode(Resources.String_Music, iconFolder, typeof(FilesDetailPage), this);
                     *  musicNode.Path = "~/Music/";
                     *  musicNode.FBNodeType = FileBrowserNode.FileBrowserNopeType.CATEGORY;
                     *  computerNode.Nodes.Add(musicNode);
                     *
                     *  FileBrowserNode pictNode = new FileBrowserNode(Resources.String_Pictures, iconFolder, typeof(FilesDetailPage), this);
                     *  pictNode.Path = "~/Photos/";
                     *  pictNode.FBNodeType = FileBrowserNode.FileBrowserNopeType.CATEGORY;
                     *  computerNode.Nodes.Add(pictNode);
                     *
                     *  FileBrowserNode videoNode = new FileBrowserNode(Resources.String_Videos, iconFolder, typeof(FilesDetailPage), this);
                     *  videoNode.Path = "~/Movies/";
                     *  videoNode.FBNodeType = FileBrowserNode.FileBrowserNopeType.CATEGORY;
                     *  computerNode.Nodes.Add(videoNode);
                     * }
                     */
                }
            }
        }
コード例 #23
0
        private void contextMenuStrip_ItemClicked(
            object sender,
            ToolStripItemClickedEventArgs e
            )
        {
            FileBrowserNode node   = base.TreeNode as FileBrowserNode;
            int             count  = lvFilePage.SelectedItems.Count;
            string          option = e.ClickedItem.Text;

            FileBrowserNode.FileBrowserNopeType fbtype = FileBrowserNode.FileBrowserNopeType.UNKNOWN;

            if (node == null)
            {
                return;
            }

            contextMenuStrip.Hide();

            if (count != 1)
            {
                return;
            }

            ListViewItem item = lvFilePage.SelectedItems[0];

            if (item.SubItems[3].Text == "Directory")
            {
                fbtype = FileBrowserNode.FileBrowserNopeType.DIRECTORY;
            }

            if (item.SubItems[3].Text == "File")
            {
                fbtype = FileBrowserNode.FileBrowserNopeType.FILE;
            }

            switch (option)
            {
            case "Properties":
                if (fbtype == FileBrowserNode.FileBrowserNopeType.DIRECTORY)
                {
                    ShowDirectoryProperties(item);
                }

                if (fbtype == FileBrowserNode.FileBrowserNopeType.FILE)
                {
                    ShowFileProperties(item);
                }
                break;

            case "Delete":
                if (fbtype == FileBrowserNode.FileBrowserNopeType.DIRECTORY)
                {
                    DoDirectoryDelete(item);
                }

                if (fbtype == FileBrowserNode.FileBrowserNopeType.FILE)
                {
                    DoFileDelete(item);
                }
                break;

            case "Move":
                if (fbtype == FileBrowserNode.FileBrowserNopeType.DIRECTORY)
                {
                    DoDirectoryMove(item);
                }

                if (fbtype == FileBrowserNode.FileBrowserNopeType.FILE)
                {
                    DoFileMove(item);
                }
                break;

            case "Copy":
                if (fbtype == FileBrowserNode.FileBrowserNopeType.DIRECTORY)
                {
                    DoDirectoryCopy(item);
                }

                if (fbtype == FileBrowserNode.FileBrowserNopeType.FILE)
                {
                    DoFileCopy(item);
                }
                break;

            default:
                break;
            }
        }
コード例 #24
0
        private void AddDirFolderNodes(
            FileBrowserNode parentNode,
            string folderName
            )
        {
            TreeNode[] found = parentNode.Nodes.Find(folderName, false);

            if (found == null || found.Length == 0)
            {
                FileBrowserNode node = new FileBrowserNode(folderName, Resources.Folder, null, null);
                node.FBNodeType = FileBrowserNode.FileBrowserNopeType.DIRECTORY;
				node.Path = parentNode.Path + _pathSeparator + folderName;
                parentNode.Nodes.Add(node);
            }
        }
コード例 #25
0
        public void EnumChildren(FileBrowserNode parentNode)
        {
            List<NETRESOURCE> NetResources = new List<NETRESOURCE>();
            FileBrowserNode node = parentNode as FileBrowserNode;

            if (node == null)
            {
                return;
            }

            tbPath.Text = "";

            if (node.FBNodeType == FileBrowserNode.FileBrowserNopeType.ROOT)
            {
                // Enumerate the child nodes of "File Browser" tree root
                BuildTopNodes();
                return;
            }

            if (node.Name.Equals("Network"))
            {
                // Enumerate the child nodes of the "Network" tree node
                if (_platform == LikewiseTargetPlatform.Windows)
                {
                    NetResources = GetNetworkConnections();
                    AddShareNodes(parentNode, NetResources);
                }
                else
                {
                    AddShareNodes(parentNode, _activeShares);
                }
                return;
            }

            if (node.Name.Equals("Computer"))
            {
                return;
            }

            if (node.FBNodeType == FileBrowserNode.FileBrowserNopeType.SHARE ||
                node.FBNodeType == FileBrowserNode.FileBrowserNopeType.DIRECTORY)
            {
                // Enum files and directories under share/directory path.
                List<FileItem> FileList = FileClient.FileClient.EnumFiles(node.Path, false);

                // Update the text box with the current item path value
                tbPath.Text = parentNode.Path;

                if (FileList == null || FileList.Count == 0)
                {
                    return;
                }

                foreach (FileItem File in FileList)
                {
                    if (File.IsDirectory)
                    {
                        AddDirFolderNodes(node, File.FileName);
                    }
                }
            }
        }
コード例 #26
0
        private void BuildTopNodes()
        {
            if (tvDestinationTree != null)
            {
                Icon iconNetShare = Resources.Share;
                Icon iconFolder = Resources.Folder;
                Icon iconComputer = Resources.Computer_48;
                Icon iconHome = Resources.Home;

                if (tvDestinationTree.Nodes.Find(Resources.String_Network, false).Length == 0)
                {
                    FileBrowserNode networkNode = new FileBrowserNode(Resources.String_Network, iconNetShare, null, null);
                    networkNode.FBNodeType = FileBrowserNode.FileBrowserNopeType.CATEGORY;
                    tvDestinationTree.Nodes.Add(networkNode);
                }

                if (tvDestinationTree.Nodes.Find(Resources.String_Computer, false).Length == 0)
                {
                    FileBrowserNode computerNode = new FileBrowserNode(Resources.String_Computer, iconComputer, null, null);
                    computerNode.FBNodeType = FileBrowserNode.FileBrowserNopeType.CATEGORY;
                    tvDestinationTree.Nodes.Add(computerNode);

                    FileBrowserNode localDiskRootNode = new FileBrowserNode("[HD]", iconFolder, null, null);
                    localDiskRootNode.Path = "";
                    localDiskRootNode.FBNodeType = FileBrowserNode.FileBrowserNopeType.DIRECTORY;
                    computerNode.Nodes.Add(localDiskRootNode);

                    /* Disabled for now - These could be suitable common local user paths that are worth browsing.
                    FileBrowserNode homeNode = new FileBrowserNode(Resources.String_Home, iconHome, null, null);
                    computerNode.Path = "~/";
                    homeNode.FBNodeType = FileBrowserNode.FileBrowserNopeType.CATEGORY;
                    computerNode.Nodes.Add(homeNode);

                    FileBrowserNode deskNode = new FileBrowserNode(Resources.String_Desktop, iconFolder, null, null);
                    deskNode.Path = "~/Desktop/";
                    deskNode.FBNodeType = FileBrowserNode.FileBrowserNopeType.CATEGORY;
                    computerNode.Nodes.Add(deskNode);

                    FileBrowserNode docNode = new FileBrowserNode(Resources.String_Documents, iconFolder, null, null);
                    docNode.Path = "~/Documents/";
                    docNode.FBNodeType = FileBrowserNode.FileBrowserNopeType.CATEGORY;
                    computerNode.Nodes.Add(docNode);

                    FileBrowserNode musicNode = new FileBrowserNode(Resources.String_Music, iconFolder, null, null);
                    musicNode.Path = "~/Music/";
                    musicNode.FBNodeType = FileBrowserNode.FileBrowserNopeType.CATEGORY;
                    computerNode.Nodes.Add(musicNode);

                    FileBrowserNode pictNode = new FileBrowserNode(Resources.String_Pictures, iconFolder, null, null);
                    pictNode.Path = "~/Photos/";
                    pictNode.FBNodeType = FileBrowserNode.FileBrowserNopeType.CATEGORY;
                    computerNode.Nodes.Add(pictNode);

                    FileBrowserNode videoNode = new FileBrowserNode(Resources.String_Videos, iconFolder, null, null);
                    videoNode.Path = "~/Movies/";
                    videoNode.FBNodeType = FileBrowserNode.FileBrowserNopeType.CATEGORY;
                    computerNode.Nodes.Add(videoNode);
                  */
                }
            }
        }
コード例 #27
0
        private FileBrowserNode GetFileBrowserNode()
        {
            if (_pluginNode == null)
            {
                Icon ic = Resources.Library;
                _pluginNode = new FileBrowserNode("File Browser", ic, typeof(FilesBrowserPluginPage), this);
                _pluginNode.ImageIndex = (int)Manage.ManageImageType.Generic;
                _pluginNode.SelectedImageIndex = (int)Manage.ManageImageType.Generic;
                _pluginNode.FBNodeType = FileBrowserNode.FileBrowserNopeType.ROOT;

                _pluginNode.IsPluginNode = true;
            }

            return _pluginNode;
        }
コード例 #28
0
        private void lwDestinationTree_AfterSelect(object sender, TreeViewEventArgs e)
        {
            FileBrowserNode node = e.Node as FileBrowserNode;

            EnumChildren(node);
        }
コード例 #29
0
        private void BuildNodesToPlugin()
        {
            if (_pluginNode != null)
            {
                Icon iconNetShare = Resources.Share;
                Icon iconFolder = Resources.Folder;
                Icon iconComputer = Resources.Computer_48;
                Icon iconHome = Resources.Home;

                if (_pluginNode.Nodes.Find(Resources.String_Network, false).Length == 0)
                {
                    FileBrowserNode networkNode = new FileBrowserNode(Resources.String_Network, iconNetShare, typeof(FilesDetailPage), this);
                    networkNode.FBNodeType = FileBrowserNode.FileBrowserNopeType.CATEGORY;
                    _pluginNode.Nodes.Add(networkNode);
                }

                if (_pluginNode.Nodes.Find(Resources.String_Computer, false).Length == 0)
                {
                    FileBrowserNode computerNode = new FileBrowserNode(Resources.String_Computer, iconComputer, typeof(FilesDetailPage), this);
                    computerNode.Path = "";
                    computerNode.FBNodeType = FileBrowserNode.FileBrowserNopeType.CATEGORY;
                    _pluginNode.Nodes.Add(computerNode);

                    FileBrowserNode localDiskRootNode = new FileBrowserNode("[HD]", iconFolder, typeof(FilesDetailPage), this);
                    localDiskRootNode.Path = "";
                    localDiskRootNode.FBNodeType = FileBrowserNode.FileBrowserNopeType.DIRECTORY;
                    computerNode.Nodes.Add(localDiskRootNode);

                    /* Disabled for now - These could be suitable common local user paths that are worth browsing.
                    if (platform != LikewiseTargetPlatform.Windows)
                    {
                        FileBrowserNode homeNode = new FileBrowserNode(Resources.String_Home, iconHome, typeof(FilesDetailPage), this);
                        computerNode.Path = "~/";
                        homeNode.FBNodeType = FileBrowserNode.FileBrowserNopeType.CATEGORY;
                        computerNode.Nodes.Add(homeNode);

                        FileBrowserNode deskNode = new FileBrowserNode(Resources.String_Desktop, iconFolder, typeof(FilesDetailPage), this);
                        deskNode.Path = "~/Desktop/";
                        deskNode.FBNodeType = FileBrowserNode.FileBrowserNopeType.CATEGORY;
                        computerNode.Nodes.Add(deskNode);

                        FileBrowserNode docNode = new FileBrowserNode(Resources.String_Documents, iconFolder, typeof(FilesDetailPage), this);
                        docNode.Path = "~/Documents/";
                        docNode.FBNodeType = FileBrowserNode.FileBrowserNopeType.CATEGORY;
                        computerNode.Nodes.Add(docNode);

                        FileBrowserNode musicNode = new FileBrowserNode(Resources.String_Music, iconFolder, typeof(FilesDetailPage), this);
                        musicNode.Path = "~/Music/";
                        musicNode.FBNodeType = FileBrowserNode.FileBrowserNopeType.CATEGORY;
                        computerNode.Nodes.Add(musicNode);

                        FileBrowserNode pictNode = new FileBrowserNode(Resources.String_Pictures, iconFolder, typeof(FilesDetailPage), this);
                        pictNode.Path = "~/Photos/";
                        pictNode.FBNodeType = FileBrowserNode.FileBrowserNopeType.CATEGORY;
                        computerNode.Nodes.Add(pictNode);

                        FileBrowserNode videoNode = new FileBrowserNode(Resources.String_Videos, iconFolder, typeof(FilesDetailPage), this);
                        videoNode.Path = "~/Movies/";
                        videoNode.FBNodeType = FileBrowserNode.FileBrowserNopeType.CATEGORY;
                        computerNode.Nodes.Add(videoNode);
                    }
                  */
                }
            }
        }
コード例 #30
0
        private void BuildTopNodes()
        {
            if (tvDestinationTree != null)
            {
                Icon iconNetShare = Resources.Share;
                Icon iconFolder   = Resources.Folder;
                Icon iconComputer = Resources.Computer_48;
                Icon iconHome     = Resources.Home;

                if (tvDestinationTree.Nodes.Find(Resources.String_Network, false).Length == 0)
                {
                    FileBrowserNode networkNode = new FileBrowserNode(Resources.String_Network, iconNetShare, null, null);
                    networkNode.FBNodeType = FileBrowserNode.FileBrowserNopeType.CATEGORY;
                    tvDestinationTree.Nodes.Add(networkNode);
                }

                if (tvDestinationTree.Nodes.Find(Resources.String_Computer, false).Length == 0)
                {
                    FileBrowserNode computerNode = new FileBrowserNode(Resources.String_Computer, iconComputer, null, null);
                    computerNode.FBNodeType = FileBrowserNode.FileBrowserNopeType.CATEGORY;
                    tvDestinationTree.Nodes.Add(computerNode);

                    FileBrowserNode localDiskRootNode = new FileBrowserNode("[HD]", iconFolder, null, null);
                    localDiskRootNode.Path       = "";
                    localDiskRootNode.FBNodeType = FileBrowserNode.FileBrowserNopeType.DIRECTORY;
                    computerNode.Nodes.Add(localDiskRootNode);

                    /* Disabled for now - These could be suitable common local user paths that are worth browsing.
                     * FileBrowserNode homeNode = new FileBrowserNode(Resources.String_Home, iconHome, null, null);
                     * computerNode.Path = "~/";
                     * homeNode.FBNodeType = FileBrowserNode.FileBrowserNopeType.CATEGORY;
                     * computerNode.Nodes.Add(homeNode);
                     *
                     * FileBrowserNode deskNode = new FileBrowserNode(Resources.String_Desktop, iconFolder, null, null);
                     * deskNode.Path = "~/Desktop/";
                     * deskNode.FBNodeType = FileBrowserNode.FileBrowserNopeType.CATEGORY;
                     * computerNode.Nodes.Add(deskNode);
                     *
                     * FileBrowserNode docNode = new FileBrowserNode(Resources.String_Documents, iconFolder, null, null);
                     * docNode.Path = "~/Documents/";
                     * docNode.FBNodeType = FileBrowserNode.FileBrowserNopeType.CATEGORY;
                     * computerNode.Nodes.Add(docNode);
                     *
                     * FileBrowserNode musicNode = new FileBrowserNode(Resources.String_Music, iconFolder, null, null);
                     * musicNode.Path = "~/Music/";
                     * musicNode.FBNodeType = FileBrowserNode.FileBrowserNopeType.CATEGORY;
                     * computerNode.Nodes.Add(musicNode);
                     *
                     * FileBrowserNode pictNode = new FileBrowserNode(Resources.String_Pictures, iconFolder, null, null);
                     * pictNode.Path = "~/Photos/";
                     * pictNode.FBNodeType = FileBrowserNode.FileBrowserNopeType.CATEGORY;
                     * computerNode.Nodes.Add(pictNode);
                     *
                     * FileBrowserNode videoNode = new FileBrowserNode(Resources.String_Videos, iconFolder, null, null);
                     * videoNode.Path = "~/Movies/";
                     * videoNode.FBNodeType = FileBrowserNode.FileBrowserNopeType.CATEGORY;
                     * computerNode.Nodes.Add(videoNode);
                     */
                }
            }
        }