public void RefreshData() { try { AniDB_AnimeVM anime = null; AnimeSeriesVM animeSeries = (AnimeSeriesVM)this.DataContext; if (animeSeries == null) { RelatedAnimeLinks.Clear(); return; } RelatedAnimeLinks.Clear(); anime = animeSeries.AniDB_Anime; if (anime == null) { return; } List <JMMServerBinary.Contract_AniDB_Anime_Relation> links = JMMServerVM.Instance.clientBinaryHTTP.GetRelatedAnimeLinks(anime.AnimeID, JMMServerVM.Instance.CurrentUser.JMMUserID.Value); List <AniDB_Anime_RelationVM> tempList = new List <AniDB_Anime_RelationVM>(); foreach (JMMServerBinary.Contract_AniDB_Anime_Relation link in links) { AniDB_Anime_RelationVM rel = new AniDB_Anime_RelationVM(); rel.Populate(link); tempList.Add(rel); } List <SortPropOrFieldAndDirection> sortCriteria = new List <SortPropOrFieldAndDirection>(); sortCriteria.Add(new SortPropOrFieldAndDirection("SortPriority", false, SortType.eInteger)); tempList = Sorting.MultiSort <AniDB_Anime_RelationVM>(tempList, sortCriteria); foreach (AniDB_Anime_RelationVM rel in tempList) { RelatedAnimeLinks.Add(rel); } if (RelatedAnimeLinks.Count == 0) { DataExists = false; DataMissing = true; } else { DataExists = true; DataMissing = false; } } catch (Exception ex) { Utils.ShowErrorMessage(ex); } }
// triggered when a selection change was made on the facade private void onFacadeItemSelected(GUIListItem item, GUIControl parent) { // if this is not a message from the facade, exit //if (parent != m_Facade) // return; AniDB_Anime_RelationVM ra = item.TVTag as AniDB_Anime_RelationVM; if (ra != null) { SetAnime(ra); } }
private void SetAnime(AniDB_Anime_RelationVM ra) { AniDB_AnimeVM anime = ra.AniDB_Anime; setGUIProperty("Related.Title", ra.DisplayName); setGUIProperty("Related.Relationship", ra.RelationType); setGUIProperty("Related.Episodes", "-"); setGUIProperty("Related.Year", "-"); setGUIProperty("Related.Description", "-"); setGUIProperty("Related.Genre", "-"); setGUIProperty("Related.GenreShort", "-"); setGUIProperty("Related.Status", "-"); if (dummyHasSeries != null) { dummyHasSeries.Visible = false; } if (dummyHasSeries != null && ra.AnimeSeries != null) { dummyHasSeries.Visible = false; } if (anime != null) { setGUIProperty("Related.Episodes", anime.EpisodeCountNormal.ToString() + " (" + anime.EpisodeCountSpecial.ToString() + " Specials)"); setGUIProperty("Related.Year", anime.AirDateAsString); setGUIProperty("Related.Description", anime.ParsedDescription); setGUIProperty("Related.Genre", anime.CategoriesFormatted); setGUIProperty("Related.GenreShort", anime.CategoriesFormattedShort); } if (ra.AnimeSeries != null) { if (ra.AnimeSeries.MissingEpisodeCount > 0) { setGUIProperty("Related.Status", "Collecting"); } else { setGUIProperty("Related.Status", "All Episodes Available"); } } else { setGUIProperty("Related.Status", "Not In My Collection"); } }
protected override void OnClicked(int controlId, GUIControl control, MediaPortal.GUI.Library.Action.ActionType actionType) { //BaseConfig.MyAnimeLog.Write("OnClicked: {0}", controlId.ToString()); if (control == this.m_Facade) { AniDB_Anime_RelationVM ra = m_Facade.SelectedListItem.TVTag as AniDB_Anime_RelationVM; if (ra != null && ra.AnimeSeries != null) { // show relations for this anime MainWindow.GlobalSeriesID = ra.AnimeSeries.AnimeSeriesID.Value; GUIWindowManager.CloseCurrentWindow(); GUIWindowManager.ActivateWindow(Constants.WindowIDs.RELATIONS, false); } else { Utils.DialogMsg("Error", "You do not have this series in your collection"); return; } } if (this.btnGetMissingInfo != null && control == this.btnGetMissingInfo) { MainWindow.ServerHelper.DownloadRelatedAnime(mainAnime.AnimeID); setGUIProperty("Related.DownloadStatus", "Waiting on server..."); GUIControl.FocusControl(GetID, 50); return; } if (MA3WindowManager.HandleWindowChangeButton(control)) { return; } base.OnClicked(controlId, control, actionType); }
private void ShowRelations() { GUIControl.ClearControl(this.GetID, m_Facade.GetID); if (dummyRelationsExist != null) { if (relations.Count > 0) { dummyRelationsExist.Visible = true; } else { dummyRelationsExist.Visible = false; } } string imagePathMissing = GUIGraphicsContext.Skin + @"\Media\MyAnime3\anime3_question_poster.png"; string imagePathNoPicture = GUIGraphicsContext.Skin + @"\Media\MyAnime3\anime3_blankchar.png"; foreach (AniDB_Anime_RelationVM ra in relations) { string imagePath = ""; BaseConfig.MyAnimeLog.Write("AnimeID: " + mainAnime.AnimeID.ToString() + ", Related ID: " + ra.AniDB_Anime.AnimeID.ToString()); BaseConfig.MyAnimeLog.Write("Poster Path: " + ra.AniDB_Anime.DefaultPosterPath); AniDB_AnimeVM anime = ra.AniDB_Anime; if (anime != null) { // try and load the series AnimeSeriesVM serAnime = ra.AnimeSeries; if (serAnime != null) { string posterName = ImageAllocator.GetSeriesImageAsFileName(serAnime, GUIFacadeControl.Layout.Filmstrip); if (File.Exists(posterName)) { imagePath = posterName; } } if (imagePath.Length == 0) { if (anime.DefaultPosterPath.Trim().Length > 0 && File.Exists(anime.DefaultPosterPath)) { imagePath = anime.DefaultPosterPath; } else { imagePath = imagePathNoPicture; } } } else { imagePath = imagePathMissing; } GUIListItem item = new GUIListItem(); item.IconImage = item.IconImageBig = imagePath; item.TVTag = ra; item.OnItemSelected += new GUIListItem.ItemSelectedHandler(onFacadeItemSelected); m_Facade.Add(item); } if (m_Facade.Count > 0) { m_Facade.SelectedListItemIndex = 0; AniDB_Anime_RelationVM ra = m_Facade.SelectedListItem.TVTag as AniDB_Anime_RelationVM; if (ra != null) { SetAnime(ra); } } //GUIControl.FocusControl(GetID, 50); }