Exemplo n.º 1
0
        private void PopulateDirectoryTree()
        {
            DirectoryTreeController.ClearMultiSelection();
            DirectoryTree.Clear();

            DirectoryTreeViewNode rootNode = new DirectoryTreeViewNode("/", null, DirectoryTreeController);
            IDictionary <string, TreeViewNode> directoryLookup = new SortedDictionary <string, TreeViewNode>();

            directoryLookup[rootNode.DisplayString] = rootNode;

            foreach (SongMetadata song in m_DataModel.Database.Songs)
            {
                TreeViewNode             parent = FindDirectoryNode(song.Directory, directoryLookup, rootNode);
                SongMetadataTreeViewNode leaf   = new SongMetadataTreeViewNode(song.Filename, song, parent, DirectoryTreeController);
                parent.AddChild(leaf);
            }

            AssignTreeViewNodeIDs(rootNode, 0);

            if (rootNode.Children.Count > 0)
            {
                DirectoryTree.Add(rootNode);
                rootNode.IsExpanded = true;
            }
        }
Exemplo n.º 2
0
        public void ShowSongsInDirectoryTree(IEnumerable <SongMetadata> selectedSongs)
        {
            DirectoryTreeController.ClearMultiSelection();

            // This looks more complex than necessary because it is trying to
            // support multiple roots.
            foreach (TreeViewNode root in DirectoryTreeController.RootLevelNodes)
            {
                if (root is DirectoryTreeViewNode)
                {
                    DirectoryTreeViewNode rootDirectory = root as DirectoryTreeViewNode;

                    foreach (TreeViewNode node in rootDirectory.Children)
                    {
                        node.IsExpanded = false;

                        foreach (SongMetadata song in selectedSongs)
                        {
                            SearchAndSelectPath(node, song.Path);
                        }
                    }
                }
            }
        }