public void UpdateSubItems()
 {
     Items.Clear();
     foreach (RDAFolder rdaFolder in Enumerable.OrderBy(Folder.Folders, f => f.Name))
     {
         RDAFolderTreeViewItem folderTreeViewItem = new RDAFolderTreeViewItem();
         folderTreeViewItem.Folder = rdaFolder;
         folderTreeViewItem.Header = ControlExtension.BuildImageTextblock("pack://application:,,,/Images/Icons/folder.png", rdaFolder.Name);
         Items.Add(folderTreeViewItem);
         if ((TreeViewExtension.GetTreeView(this) as MultiSelectTreeView).SelectedItems.Contains(this))
         {
             (TreeViewExtension.GetTreeView(this) as MultiSelectTreeView).SelectItem(folderTreeViewItem);
             (TreeViewExtension.GetTreeView(this) as MultiSelectTreeView).UpdateSelectedItems();
         }
     }
     foreach (RDAFile file in Enumerable.OrderBy(Folder.Files, f => f.FileName))
     {
         RDAFileTreeViewItem fileTreeViewItem = RDAFileExtension.ToTreeViewItem(file);
         fileTreeViewItem.SelectOnRightClick = true;
         Items.Add(fileTreeViewItem);
         if ((TreeViewExtension.GetTreeView(this) as MultiSelectTreeView).SelectedItems.Contains(this))
         {
             (TreeViewExtension.GetTreeView(this) as MultiSelectTreeView).SelectItem(fileTreeViewItem);
             (TreeViewExtension.GetTreeView(this) as MultiSelectTreeView).UpdateSelectedItems();
         }
     }
     AlreadyExpanded = true;
     IsExpanded      = true;
 }
示例#2
0
        private void _RebuildTreeView(BackgroundWorker wrk)
        {
            DispatcherExtension.Dispatch(System.Windows.Application.Current, () =>
            {
                treeView.Items.Clear();

                RDAFolder root = CurrentReader.rdaFolder;
                foreach (RDAFolder folder in root.Folders)
                {
                    treeView.Items.Add(new RDAFolderTreeViewItem()
                    {
                        Folder = folder,
                        Header = ControlExtension.BuildImageTextblock("pack://application:,,,/Images/Icons/folder.png", folder.Name)
                    });
                }

                foreach (RDAFile file in root.Files)
                {
                    treeView.Items.Add(Misc.RDAFileExtension.ToTreeViewItem(file));
                }

                foreach (RDASkippedDataSection skippedBlock in CurrentReader.SkippedDataSections)
                {
                    string title = skippedBlock.blockInfo.fileCount + " encrypted files";
                    treeView.Items.Add(new RDASkippedDataSectionTreeViewItem()
                    {
                        Section = skippedBlock,
                        Header  = ControlExtension.BuildImageTextblock("pack://application:,,,/Images/Icons/error.png", title)
                    });
                }
            });
        }
        public static RDAFileTreeViewItem ToTreeViewItem(this RDAFile file)
        {
            string str   = Path.GetExtension(file.FileName).ToLower();
            string file1 = "pack://application:,,,/Images/Icons/page_white.png";

            if (str == ".xml")
            {
                file1 = "pack://application:,,,/Images/Icons/page_white_code.png";
            }
            else if (str == ".txt" || str == ".ini" || str == ".cfg")
            {
                file1 = "pack://application:,,,/Images/Icons/page_white_text.png";
            }
            else if (str == ".jpg" || str == ".bmp" || (str == ".png" || str == ".dds"))
            {
                file1 = "pack://application:,,,/Images/Icons/page_white_picture.png";
            }
            else if (str == ".mp3" || str == ".wav" || str == ".wma")
            {
                file1 = "pack://application:,,,/Images/Icons/sound.png";
            }
            RDAFileTreeViewItem fileTreeViewItem = new RDAFileTreeViewItem();

            fileTreeViewItem.Header        = ControlExtension.BuildImageTextblock(file1, Path.GetFileName(file.FileName));
            fileTreeViewItem.SemanticValue = "<File>";
            fileTreeViewItem.File          = file;
            return(fileTreeViewItem);
        }
        private static ModifiedTreeViewItem NavigateTo(ModifiedTreeViewItem view, string path, bool autocreate)
        {
            path = path.Replace("\\", "/");
            List <string> list    = Enumerable.ToList(path.Split('/'));
            string        message = list[0];

            foreach (ModifiedTreeViewItem view1 in view.Items)
            {
                if (view1.SemanticValue == message)
                {
                    if (list.Count == 1)
                    {
                        return(view1);
                    }
                    list.RemoveAt(0);
                    return(NavigateTo(view1, StringExtension.PutTogether(list, '/'), autocreate));
                }
            }
            if (!autocreate)
            {
                return(null);
            }
            ModifiedTreeViewItem view2 = new ModifiedTreeViewItem();

            view2.Header        = ControlExtension.BuildImageTextblock("pack://application:,,,/Images/Icons/folder.png", message);
            view2.SemanticValue = message;
            view.Items.Add(view2);
            if (list.Count == 1)
            {
                return(view2);
            }
            list.RemoveAt(0);
            return(NavigateTo(view2, StringExtension.PutTogether(list, '/'), autocreate));
        }