public void LoadReleases(Release[] releases) { this.releaseItemByReleaseId.Clear(); this.releasesByAlbumArtist.Clear(); this.ArtistItems.Clear(); if (releases != null) { if (this.collectionManager == null) { throw new InvalidOperationException("You should set CollectionManager before calling any other methods."); } bool showImages = this.CollectionManager.Settings.ShowImagesInReleaseTree; foreach (Release release in releases) { SortedSet <Release> list; if (!this.releasesByAlbumArtist.TryGetValue(release.JoinedAlbumArtists, out list)) { this.releasesByAlbumArtist[release.JoinedAlbumArtists] = list = new SortedSet <Release>(this.GetComparer()); } list.Add(release); } foreach (KeyValuePair <string, SortedSet <Release> > albumArtist in this.releasesByAlbumArtist) { bool showEmptyImage = albumArtist.Value.Any(r => r.Thumbnail != null); TreeArtistItem artistItem = new TreeArtistItem() { Title = albumArtist.Key, Releases = new List <TreeReleaseItem>() }; foreach (Release release in albumArtist.Value) { TreeReleaseItem releaseItem = new TreeReleaseItem(artistItem, release, showImages, showEmptyImage); this.releaseItemByReleaseId[release.Id] = releaseItem; artistItem.Releases.Add(releaseItem); } this.ArtistItems.Add(artistItem); } } }
public SelectionInfo GetSelectedItem() { if (this.treeView.SelectedItem == null) { return(new SelectionInfo(SelectionInfoType.None)); } else if (this.treeView.SelectedItem is TreeArtistItem) { TreeArtistItem albumArtist = (TreeArtistItem)this.treeView.SelectedItem; return(new SelectionInfo(SelectionInfoType.Artist, albumArtist.Title)); } else if (this.treeView.SelectedItem is TreeReleaseItem) { TreeReleaseItem releaseItem = (TreeReleaseItem)this.treeView.SelectedItem; return(new SelectionInfo(SelectionInfoType.Release, releaseItem.Release.Id)); } else { throw new NotSupportedException(); } }