public IHierarchyNode(AtlasHierarchy hierarchy, IHierarchyNode parent, int level) { Hierarchy = hierarchy; Children = new List<IHierarchyNode>(); Level = level; GraphNodeViewModel = null; }
/// <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; } } }
public void GetNodesAtLevel(int level, IHierarchyNode targetNode, ref List<IHierarchyNode> levelNodeList) { foreach (IHierarchyNode childNode in targetNode.Children) { if (childNode.Level == level) levelNodeList.Add(childNode); else GetNodesAtLevel(level, childNode, ref levelNodeList); } }
public void GetNodesAtLevel(int level, IHierarchyNode targetNode, ref List <IHierarchyNode> levelNodeList) { foreach (IHierarchyNode childNode in targetNode.Children) { if (childNode.Level == level) { levelNodeList.Add(childNode); } else { GetNodesAtLevel(level, childNode, ref levelNodeList); } } }
public bool HasChild(IHierarchyNode node) { if (Children.Contains(node)) return true; bool isChild = false; Children.ForEach(child => { if (child.HasChild(node)) { isChild = true; } }); return isChild; }
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 override void GenerateSubTree(IHierarchyNode node) { //New Release Items do not have sub-trees. return; }
public abstract void GenerateSubTree(IHierarchyNode node);
public ArtistHierarchyNode(ArtistViewModel artistViewModel, AtlasHierarchy hierarchy, IHierarchyNode parent, int level) : base(hierarchy, parent, level) { ArtistViewModel = artistViewModel; }