/// <summary> /// /// </summary> /// <param name="node"></param> /// <returns>Returns whether the sub-tree has been fully expanded in the hierarchy.</returns> public override void GenerateSubTree(IHierarchyNode node) { ArtistHierarchyNode subTreeNode = (ArtistHierarchyNode)node; ArtistGroup relatedArtistList = Client.GetRelatedArtists(subTreeNode.ArtistViewModel.Artist.ID); //First determine which artists are new; add those. int nodesAdded = 0; foreach (Artist relatedArtist in relatedArtistList.Artists) { if (NodeDictionary.ContainsKey(relatedArtist.Name)) { continue; } if (nodesAdded < AddChildrenLimit) { ArtistViewModel artistViewModel = new ArtistViewModel(relatedArtist); ArtistHierarchyNode relatedArtistNode = new ArtistHierarchyNode(artistViewModel, this, subTreeNode, subTreeNode.Level + 1); subTreeNode.Children.Add(relatedArtistNode); NodeDictionary.Add(relatedArtist.Name, relatedArtistNode); nodesAdded++; } else { return; } } }
/// <summary> /// Generates the tree from the root artist. /// </summary> /// <param name="artist"></param> protected override void GenerateTree(object obj) { Artist artist = (Artist)obj; if (NodeDictionary.ContainsKey(artist.Name)) { return; } ArtistViewModel rootViewModel = new ArtistViewModel(artist); ArtistHierarchyNode root = new ArtistHierarchyNode(rootViewModel, this, null, 0); RootNodes.Add(root); NodeDictionary.Add(artist.Name, root); ArtistGroup relatedArtistList = Client.GetRelatedArtists(artist.ID); //First determine which artists are new; add those. List <Artist> newArtists = new List <Artist>(); int nodesAdded = 0; foreach (Artist relatedArtist in relatedArtistList.Artists) { if (NodeDictionary.ContainsKey(relatedArtist.Name)) { continue; } if (nodesAdded < AddChildrenLimit) { newArtists.Add(relatedArtist); ArtistViewModel artistViewModel = new ArtistViewModel(relatedArtist); ArtistHierarchyNode relatedArtistNode = new ArtistHierarchyNode(artistViewModel, this, root, 1); root.Children.Add(relatedArtistNode); NodeDictionary.Add(relatedArtist.Name, relatedArtistNode); nodesAdded++; } else { break; } } }
public ArtistNetworkNodeViewModel( ArtistViewModel viewModel, AtlasHierarchy hierarchy, IHierarchyNode hierarchyNode, IPlaylistView playlist) : base(viewModel.Name) { ArtistViewModel = viewModel; Debug.Assert(hierarchyNode is ArtistHierarchyNode); _hierarchyNode = (ArtistHierarchyNode) hierarchyNode; _hierarchy = hierarchy; _playlist = playlist; _numTracks = GetArtistTrackCount(); IsHighlighted = SpotifyCacheService.IsArtistFollowed(ArtistViewModel.Artist); }
public ArtistNetworkNodeViewModel( ArtistViewModel viewModel, AtlasHierarchy hierarchy, IHierarchyNode hierarchyNode, IPlaylistView playlist) : base(viewModel.Name) { ArtistViewModel = viewModel; Debug.Assert(hierarchyNode is ArtistHierarchyNode); _hierarchyNode = (ArtistHierarchyNode)hierarchyNode; _hierarchy = hierarchy; _playlist = playlist; _numTracks = GetArtistTrackCount(); IsHighlighted = SpotifyCacheService.IsArtistFollowed(ArtistViewModel.Artist); }
/// <summary> /// Generates the tree from the root artist. /// </summary> /// <param name="artist"></param> protected override void GenerateTree(object obj) { Artist artist = (Artist)obj; if (NodeDictionary.ContainsKey(artist.Name)) return; ArtistViewModel rootViewModel = new ArtistViewModel(artist); ArtistHierarchyNode root = new ArtistHierarchyNode(rootViewModel, this, null, 0); RootNodes.Add(root); NodeDictionary.Add(artist.Name, root); ArtistGroup relatedArtistList = Client.GetRelatedArtists(artist.ID); //First determine which artists are new; add those. List<Artist> newArtists = new List<Artist>(); int nodesAdded = 0; foreach (Artist relatedArtist in relatedArtistList.Artists) { if (NodeDictionary.ContainsKey(relatedArtist.Name)) continue; if (nodesAdded < AddChildrenLimit) { newArtists.Add(relatedArtist); ArtistViewModel artistViewModel = new ArtistViewModel(relatedArtist); ArtistHierarchyNode relatedArtistNode = new ArtistHierarchyNode(artistViewModel, this, root, 1); root.Children.Add(relatedArtistNode); NodeDictionary.Add(relatedArtist.Name, relatedArtistNode); nodesAdded++; } else { break; } } }
/// <summary> /// /// </summary> /// <param name="node"></param> /// <returns>Returns whether the sub-tree has been fully expanded in the hierarchy.</returns> public override void GenerateSubTree(IHierarchyNode node) { ArtistHierarchyNode subTreeNode = (ArtistHierarchyNode) node; ArtistGroup relatedArtistList = Client.GetRelatedArtists(subTreeNode.ArtistViewModel.Artist.ID); //First determine which artists are new; add those. int nodesAdded = 0; foreach (Artist relatedArtist in relatedArtistList.Artists) { if (NodeDictionary.ContainsKey(relatedArtist.Name)) continue; if (nodesAdded < AddChildrenLimit) { ArtistViewModel artistViewModel = new ArtistViewModel(relatedArtist); ArtistHierarchyNode relatedArtistNode = new ArtistHierarchyNode(artistViewModel, this, subTreeNode, subTreeNode.Level + 1); subTreeNode.Children.Add(relatedArtistNode); NodeDictionary.Add(relatedArtist.Name, relatedArtistNode); nodesAdded++; } else { return; } } }