/// <summary>
        /// This method will raise the OnSelectedFolderChangedEvent. Before raising it the navigation bar item is changed
        /// to match the new current directory and the selectedNode property is set to the new node.
        /// </summary>
        /// <param name="e">The SelectedFolderChangedEventArgs to pass on</param>
        private void OnSelectedFolderChanged(SelectedFolderChangedEventArgs e)
        {
            selectedNode = e.Node;

            if (SelectedFolderChanged != null)
            {
                SelectedFolderChanged(this, e);
            }
        }
Exemple #2
0
        private void fileBrowser_SelectedFolderChanged(object sender, SelectedFolderChangedEventArgs e)
        {
            Icon icon = ShellImageList.GetIcon(e.Node.ImageIndex, true);

            if (icon != null)
            {
                currentDirInfo.Image = icon.ToBitmap();
                this.Icon = icon;
            }
            else
            {
                currentDirInfo.Image = null;
                this.Icon = null;
            }

            currentDirInfo.Text = e.Node.Text;
            this.Text = e.Node.Text;
        }
Exemple #3
0
        /// <summary>
        /// This method will set the current directory of the navigation bar to match the current selected
        /// directory of the browser. It will add and remove items to make it look like the Windows Explorer
        /// ComboBox.
        /// </summary>
        private void ChangeNavBarItem(SelectedFolderChangedEventArgs e)
        {
            if (!navAddressBox.CurrentItem.ShellItem.Equals(e.Item))
            {
                int currentIndex = navAddressBox.Items.IndexOf(navAddressBox.CurrentItem);
                BrowserComboItem currentItem = navAddressBox.CurrentItem;
                int maxIndent = folderView.IsParentNode(myCompNode, selectedNode) ? 3 : 2;
                TreeNode[] path;

                bool isMyCompChild = folderView.IsParentNode(myCompNode, e.Node);
                if (selectedNode.Nodes.Contains(e.Node) &&
                    ((isMyCompChild && e.Node.Level >= 3) || (!isMyCompChild && e.Node.Level >= 2)))
                {
                    navAddressBox.Items.Insert(currentIndex + 1, new BrowserComboItem(e.Item, e.Node.Level));
                    navAddressBox.SelectedIndex = currentIndex + 1;
                }
                else if (folderView.IsParentNode(e.Node, selectedNode, out path))
                {
                    if (e.Node.Equals(desktopNode))
                        navAddressBox.SelectedIndex = 0;
                    else if (e.Node.Equals(myCompNode))
                        navAddressBox.SelectedIndex = desktopNode.Nodes.IndexOf(myCompNode) + 1;
                    else
                        navAddressBox.SelectedIndex = currentIndex - path.Length + 1;

                    while (currentItem.Text != e.Node.Text && currentItem.Indent >= maxIndent)
                    {
                        navAddressBox.Items.Remove(currentItem);
                        currentIndex--;
                        currentItem = (BrowserComboItem)navAddressBox.Items[currentIndex];
                    }
                }
                else
                {
                    while (currentItem.Indent >= maxIndent && !e.Node.Equals(myCompNode))
                    {
                        navAddressBox.Items.Remove(currentItem);
                        currentIndex--;
                        currentItem = (BrowserComboItem)navAddressBox.Items[currentIndex];
                    }

                    if (folderView.IsParentNode(myCompNode, e.Node, out path))
                    {
                        if (path.Length > 2)
                        {
                            int startIndex =
                                desktopNode.Nodes.IndexOf(myCompNode) +
                                myCompNode.Nodes.IndexOf(path[1]) + 1;

                            for (int i = 2; i < path.Length; i++)
                            {
                                navAddressBox.Items.Insert(startIndex + i,
                                    new BrowserComboItem((ShellItem)path[i].Tag, i + 1));
                            }

                            navAddressBox.SelectedIndex = startIndex + path.Length - 1;
                        }
                        else
                        {
                            navAddressBox.SelectedIndex =
                                desktopNode.Nodes.IndexOf(myCompNode) +
                                myCompNode.Nodes.IndexOf(e.Node) + 2;
                        }
                    }
                    else if (folderView.IsParentNode(desktopNode, e.Node, out path))
                    {
                        if (path.Length > 2)
                        {
                            int startIndex = desktopNode.Nodes.IndexOf(path[1]);

                            for (int i = 2; i < path.Length; i++)
                            {
                                navAddressBox.Items.Insert(startIndex + i,
                                    new BrowserComboItem((ShellItem)path[i].Tag, i));
                            }

                            navAddressBox.SelectedIndex = startIndex + path.Length - 1;
                        }
                        else
                        {
                            if (desktopNode.Nodes.IndexOf(e.Node) <= desktopNode.Nodes.IndexOf(myCompNode))
                                navAddressBox.SelectedIndex = desktopNode.Nodes.IndexOf(e.Node) + 1;
                            else
                                navAddressBox.SelectedIndex = desktopNode.Nodes.IndexOf(e.Node) + myCompNode.Nodes.Count + 1;
                        }
                    }
                    else
                        navAddressBox.SelectedIndex = 0;
                }
            }
        }
Exemple #4
0
        /// <summary>
        /// This method will raise the OnSelectedFolderChangedEvent. Before raising it the navigation bar item is changed
        /// to match the new current directory and the selectedNode property is set to the new node.
        /// </summary>
        /// <param name="e">The SelectedFolderChangedEventArgs to pass on</param>
        private void OnSelectedFolderChanged(SelectedFolderChangedEventArgs e)
        {
            ChangeNavBarItem(e);
            selectedNode = e.Node;

            if (SelectedFolderChanged != null)
                SelectedFolderChanged(this, e);
        }
 void br_SelectedFolderChanged(object sender, SelectedFolderChangedEventArgs e)
 {
     if (br.CurrentViewPlugin != null)
         br.CurrentViewPlugin.Reset();
 }
Exemple #6
0
 /// <summary>
 /// This method will raise the OnSelectedFolderChangedEvent. Before raising it the navigation bar item is changed
 /// to match the new current directory and the selectedNode property is set to the new node.
 /// </summary>
 /// <param name="e">The SelectedFolderChangedEventArgs to pass on</param>
 private void OnSelectedFolderChanged(SelectedFolderChangedEventArgs e)
 {
     selectedNode = e.Node;
     SelectedNode = e.Node;
     selectedItem = (ShellItem)selectedNode.Tag;
     SelectedItem = (ShellItem)selectedNode.Tag;
     if(SelectedFolderChanged != null)
         SelectedFolderChanged(this, e);
 }