Ejemplo n.º 1
0
 public IHierarchyNode(AtlasHierarchy hierarchy, IHierarchyNode parent, int level)
 {
     Hierarchy = hierarchy;
     Children = new List<IHierarchyNode>();
     Level = level;
     GraphNodeViewModel = null;
 }
Ejemplo n.º 2
0
        /// <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;
                }
            }
        }
Ejemplo n.º 3
0
 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);
     }
 }
Ejemplo n.º 4
0
 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);
         }
     }
 }
Ejemplo n.º 5
0
        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;
 }
Ejemplo n.º 8
0
 public abstract void GenerateSubTree(IHierarchyNode node);
Ejemplo n.º 9
0
 public ArtistHierarchyNode(ArtistViewModel artistViewModel, AtlasHierarchy hierarchy, IHierarchyNode parent, int level)
     : base(hierarchy, parent, level)
 {
     ArtistViewModel = artistViewModel;
 }
Ejemplo n.º 10
0
 public abstract void GenerateSubTree(IHierarchyNode node);