public override bool OnMessage(GUIMessage message) { switch (message.Message) { case GUIMessage.MessageType.GUI_MSG_ITEM_FOCUS_CHANGED: { int iControl = message.SenderControlId; if (iControl == (int)m_Facade.GetID) { GUIListItem item = m_Facade.SelectedListItem; if (item == null || item.TVTag == null || !(item.TVTag is AniDB_CharacterVM)) { return(true); } AniDB_CharacterVM aniChar = item.TVTag as AniDB_CharacterVM; if (aniChar == null) { return(true); } SetCharacterProperties(aniChar); } } return(true); default: return(base.OnMessage(message)); } }
private void SetCharacterProperties(AniDB_CharacterVM aniChar) { clearGUIProperty("Character.Name"); clearGUIProperty("Character.KanjiName"); clearGUIProperty("Character.Description"); clearGUIProperty("Character.CharType"); clearGUIProperty("Character.Poster"); clearGUIProperty("Series.Poster"); clearGUIProperty("Series.Title"); setGUIProperty("Character.Name", aniChar.CharName); setGUIProperty("Character.KanjiName", aniChar.CharKanjiName); setGUIProperty("Character.Description", aniChar.CharDescription); setGUIProperty("Character.CharType", aniChar.CharType); string imagePath = GUIGraphicsContext.Skin + @"\Media\MyAnime3\anime3_blankchar.png"; if (File.Exists(aniChar.PosterPath)) { imagePath = aniChar.PosterPath; } setGUIProperty("Character.Poster", imagePath); if (aniChar.Anime != null) { setGUIProperty("Series.Title", aniChar.Anime.FormattedTitle); setGUIProperty("Series.Poster", ImageAllocator.GetAnimeImageAsFileName(aniChar.Anime, GUIFacadeControl.Layout.List)); } }
private void SetCharacterProperties(AniDB_CharacterVM aniChar) { if (dummyMainCharExists != null) { dummyMainCharExists.Visible = true; } if (dummyMainActorExists != null) { dummyMainActorExists.Visible = false; } if (dummySeriesExists != null) { dummySeriesExists.Visible = false; } clearGUIProperty("Character.Name"); clearGUIProperty("Character.KanjiName"); clearGUIProperty("Character.Description"); clearGUIProperty("Character.CharType"); clearGUIProperty("Character.PosterMainChar"); clearGUIProperty("Character.PosterSeries"); setGUIProperty("Character.Name", aniChar.CharName); setGUIProperty("Character.KanjiName", aniChar.CharKanjiName); setGUIProperty("Character.Description", aniChar.CharDescription); setGUIProperty("Character.CharType", aniChar.CharType); string imagePath = GUIGraphicsContext.Skin + @"\Media\MyAnime3\anime3_blankchar.png"; if (File.Exists(aniChar.PosterPath)) { imagePath = aniChar.PosterPath; } try { System.Drawing.Image theImage = System.Drawing.Image.FromFile(imagePath); float width = theImage.PhysicalDimension.Width; float height = theImage.PhysicalDimension.Height; if (dummyPosterMainChar != null) { dummyPosterMainChar.Visible = height > width; } } catch { } setGUIProperty("Character.PosterMainChar", imagePath); SetActorProperties(aniChar); }
private void onFacadeItemSelected(GUIListItem item, GUIControl parent) { // if this is not a message from the facade, exit if (parent != m_Facade) { return; } if (item == null || item.TVTag == null || !(item.TVTag is AniDB_CharacterVM)) { return; } AniDB_CharacterVM aniChar = item.TVTag as AniDB_CharacterVM; if (aniChar == null) { return; } SetCharacterProperties(aniChar); }
public override DataTemplate SelectTemplate(object item, DependencyObject container) { FrameworkElement element = container as FrameworkElement; if (element != null && item != null) { if (item.GetType() == typeof(AniDB_CharacterVM)) { AniDB_CharacterVM chr = item as AniDB_CharacterVM; if (chr.CharType.Equals(Constants.CharacterType.MAIN, StringComparison.InvariantCultureIgnoreCase)) { return(element.FindResource("CharacterTemplateMain") as DataTemplate); } else { return(element.FindResource("CharacterTemplate") as DataTemplate); } } } return(null); }
private string GetEntityID(ImageDownloadRequest req) { switch (req.ImageType) { case ImageEntityType.AniDB_Cover: AniDB_AnimeVM anime = req.ImageData as AniDB_AnimeVM; return(anime.AnimeID.ToString()); case ImageEntityType.TvDB_Cover: TvDB_ImagePosterVM poster = req.ImageData as TvDB_ImagePosterVM; return(poster.TvDB_ImagePosterID.ToString()); case ImageEntityType.TvDB_Banner: TvDB_ImageWideBannerVM banner = req.ImageData as TvDB_ImageWideBannerVM; return(banner.TvDB_ImageWideBannerID.ToString()); case ImageEntityType.TvDB_Episode: TvDB_EpisodeVM episode = req.ImageData as TvDB_EpisodeVM; return(episode.TvDB_EpisodeID.ToString()); case ImageEntityType.TvDB_FanArt: TvDB_ImageFanartVM fanart = req.ImageData as TvDB_ImageFanartVM; return(fanart.TvDB_ImageFanartID.ToString()); case ImageEntityType.MovieDB_Poster: MovieDB_PosterVM moviePoster = req.ImageData as MovieDB_PosterVM; return(moviePoster.MovieDB_PosterID.ToString()); case ImageEntityType.MovieDB_FanArt: MovieDB_FanartVM movieFanart = req.ImageData as MovieDB_FanartVM; return(movieFanart.MovieDB_FanartID.ToString()); case ImageEntityType.Trakt_Poster: Trakt_ImagePosterVM traktPoster = req.ImageData as Trakt_ImagePosterVM; return(traktPoster.Trakt_ImagePosterID.ToString()); case ImageEntityType.Trakt_Fanart: Trakt_ImageFanartVM trakFanart = req.ImageData as Trakt_ImageFanartVM; return(trakFanart.Trakt_ImageFanartID.ToString()); case ImageEntityType.Trakt_CommentUser: Trakt_CommentUserVM traktShoutUser = req.ImageData as Trakt_CommentUserVM; return(traktShoutUser.User.Trakt_FriendID.ToString()); case ImageEntityType.Trakt_Episode: Trakt_EpisodeVM trakEp = req.ImageData as Trakt_EpisodeVM; return(trakEp.Trakt_EpisodeID.ToString()); case ImageEntityType.AniDB_Character: AniDB_CharacterVM chr = req.ImageData as AniDB_CharacterVM; return(chr.AniDB_CharacterID.ToString()); case ImageEntityType.AniDB_Creator: AniDB_SeiyuuVM cre = req.ImageData as AniDB_SeiyuuVM; return(cre.AniDB_SeiyuuID.ToString()); default: return(""); } }
private string GetFileName(ImageDownloadRequest req, bool thumbNailOnly) { switch (req.ImageType) { case ImageEntityType.AniDB_Cover: AniDB_AnimeVM anime = req.ImageData as AniDB_AnimeVM; return(anime.PosterPathNoDefaultPlain); case ImageEntityType.TvDB_Cover: TvDB_ImagePosterVM poster = req.ImageData as TvDB_ImagePosterVM; return(poster.FullImagePathPlain); case ImageEntityType.TvDB_Banner: TvDB_ImageWideBannerVM banner = req.ImageData as TvDB_ImageWideBannerVM; return(banner.FullImagePathPlain); case ImageEntityType.TvDB_Episode: TvDB_EpisodeVM episode = req.ImageData as TvDB_EpisodeVM; return(episode.FullImagePathPlain); case ImageEntityType.TvDB_FanArt: TvDB_ImageFanartVM fanart = req.ImageData as TvDB_ImageFanartVM; if (thumbNailOnly) { return(fanart.FullThumbnailPathPlain); } else { return(fanart.FullImagePathPlain); } case ImageEntityType.MovieDB_Poster: MovieDB_PosterVM moviePoster = req.ImageData as MovieDB_PosterVM; return(moviePoster.FullImagePathPlain); case ImageEntityType.MovieDB_FanArt: MovieDB_FanartVM movieFanart = req.ImageData as MovieDB_FanartVM; return(movieFanart.FullImagePathPlain); case ImageEntityType.Trakt_Poster: Trakt_ImagePosterVM traktPoster = req.ImageData as Trakt_ImagePosterVM; return(traktPoster.FullImagePathPlain); case ImageEntityType.Trakt_Fanart: Trakt_ImageFanartVM trakFanart = req.ImageData as Trakt_ImageFanartVM; return(trakFanart.FullImagePathPlain); case ImageEntityType.Trakt_Episode: Trakt_EpisodeVM trakEp = req.ImageData as Trakt_EpisodeVM; return(trakEp.FullImagePathPlain); case ImageEntityType.AniDB_Character: AniDB_CharacterVM chr = req.ImageData as AniDB_CharacterVM; return(chr.ImagePathPlain); case ImageEntityType.AniDB_Creator: AniDB_SeiyuuVM cre = req.ImageData as AniDB_SeiyuuVM; return(cre.ImagePathPlain); default: return(""); } }
private void ShowCharacters() { GUIControl.ClearControl(this.GetID, m_Facade.GetID); //if (dummyMainCharExists != null) dummyMainCharExists.Visible = false; //if (dummyMainActorExists != null) dummyMainActorExists.Visible = false; //if (dummySeriesExists != null) dummySeriesExists.Visible = false; clearGUIProperty("Actor.Name"); clearGUIProperty("Actor.Poster"); BaseConfig.MyAnimeLog.Write("ActorWindow.GlobalSeiyuuID = {0}", MainWindow.GlobalSeiyuuID.ToString()); charList.Clear(); seiyuu = null; JMMServerBinary.Contract_AniDB_Seiyuu contract = JMMServerVM.Instance.clientBinaryHTTP.GetAniDBSeiyuu(MainWindow.GlobalSeiyuuID); if (contract == null) { return; } seiyuu = new AniDB_SeiyuuVM(contract); setGUIProperty("Actor.Name", seiyuu.SeiyuuName); string imagePath = GUIGraphicsContext.Skin + @"\Media\MyAnime3\anime3_blankchar.png"; if (File.Exists(seiyuu.PosterPath)) { imagePath = seiyuu.PosterPath; } setGUIProperty("Actor.Poster", imagePath); List <JMMServerBinary.Contract_AniDB_Character> charContracts = JMMServerVM.Instance.clientBinaryHTTP.GetCharactersForSeiyuu(MainWindow.GlobalSeiyuuID); if (charContracts == null) { return; } foreach (JMMServerBinary.Contract_AniDB_Character chr in charContracts) { charList.Add(new AniDB_CharacterVM(chr)); } bool missingImages = false; string imagePathNoPicture = GUIGraphicsContext.Skin + @"\Media\MyAnime3\anime3_blankchar.png"; foreach (AniDB_CharacterVM aniChar in charList) { imagePath = imagePathNoPicture; if (!string.IsNullOrEmpty(aniChar.PosterPath) && File.Exists(aniChar.PosterPath)) { imagePath = aniChar.PosterPath; } else { missingImages = true; } GUIListItem item = new GUIListItem(""); item.IconImage = item.IconImageBig = imagePath; item.TVTag = aniChar; item.OnItemSelected += new GUIListItem.ItemSelectedHandler(onFacadeItemSelected); m_Facade.Add(item); BaseConfig.MyAnimeLog.Write(aniChar.ToString()); } if (dummyCharactersExist != null) { if (charList.Count > 0) { dummyCharactersExist.Visible = true; } else { dummyCharactersExist.Visible = false; } } setGUIProperty("Character.CharacterCount", charList.Count.ToString()); if (m_Facade.Count > 0) { m_Facade.SelectedListItemIndex = 0; AniDB_CharacterVM aniChar = m_Facade.SelectedListItem.TVTag as AniDB_CharacterVM; if (aniChar != null) { SetCharacterProperties(aniChar); } } if (missingImages) { MainWindow.ServerHelper.DownloadCharacterImagesForSeiyuu(seiyuu); } }
private void ShowCharacters() { GUIControl.ClearControl(this.GetID, m_Facade.GetID); if (dummyMainCharExists != null) { dummyMainCharExists.Visible = false; } if (dummyMainActorExists != null) { dummyMainActorExists.Visible = false; } if (dummySeriesExists != null) { dummySeriesExists.Visible = false; } clearGUIProperty("Title"); clearGUIProperty("Character.Name"); clearGUIProperty("Character.KanjiName"); clearGUIProperty("Actor.Name"); clearGUIProperty("Actor.KanjiName"); clearGUIProperty("Character.CharacterCount"); BaseConfig.MyAnimeLog.Write("CharWindow.GlobalSeriesID = {0}", MainWindow.GlobalSeriesID.ToString()); charList.Clear(); mainAnime = null; serMain = null; serMain = JMMServerHelper.GetSeries(MainWindow.GlobalSeriesID); if (serMain != null) { mainAnime = serMain.AniDB_Anime; } else { return; } if (mainAnime == null) { return; } setGUIProperty("Character.Main.Title", mainAnime.FormattedTitle); charList = mainAnime.Characters; if (dummyCharactersExist != null) { if (charList.Count > 0) { dummyCharactersExist.Visible = true; } else { dummyCharactersExist.Visible = false; } } setGUIProperty("Character.CharacterCount", charList.Count.ToString()); setGUIProperty("Title", serMain.SeriesName); string imagePathNoPicture = GUIGraphicsContext.Skin + @"\Media\MyAnime3\anime3_blankchar.png"; foreach (AniDB_CharacterVM aniChar in charList) { string imagePath = imagePathNoPicture; if (!string.IsNullOrEmpty(aniChar.PosterPath) && File.Exists(aniChar.PosterPath)) { imagePath = aniChar.PosterPath; } GUIListItem item = new GUIListItem(""); item.IconImage = item.IconImageBig = imagePath; item.TVTag = aniChar; item.OnItemSelected += new GUIListItem.ItemSelectedHandler(onFacadeItemSelected); m_Facade.Add(item); } if (m_Facade.Count > 0) { m_Facade.SelectedListItemIndex = 0; AniDB_CharacterVM aniChar = m_Facade.SelectedListItem.TVTag as AniDB_CharacterVM; if (aniChar != null) { SetCharacterProperties(aniChar); } } }
protected override void OnClicked(int controlId, GUIControl control, MediaPortal.GUI.Library.Action.ActionType actionType) { if (this.btnGetMissingInfo != null && control == this.btnGetMissingInfo) { JMMServerVM.Instance.clientBinaryHTTP.UpdateAnimeData(mainAnime.AnimeID); setGUIProperty("Character.Status", "Request sent to server, please refresh view..."); this.btnGetMissingInfo.IsFocused = false; GUIControl.FocusControl(GetID, 50); return; } if (this.btnRefreshView != null && control == this.btnRefreshView) { MainWindow.ServerHelper.DownloadCharacterCreatorImages(mainAnime); setGUIProperty("Character.Status", "Refreshing view..."); this.btnRefreshView.IsFocused = false; GUIControl.FocusControl(GetID, 50); return; } if (this.btnSeiyuu != null && control == this.btnSeiyuu) { GUIWindowManager.ActivateWindow(Constants.WindowIDs.ACTORS, false); return; } if (MA3WindowManager.HandleWindowChangeButton(control)) { return; } try { if (actionType != MediaPortal.GUI.Library.Action.ActionType.ACTION_SELECT_ITEM) { return; // some other events raised onClicked too for some reason? } if (control == this.m_Facade) { GUIListItem item = this.m_Facade.SelectedListItem; if (item == null || item.TVTag == null || !(item.TVTag is AniDB_CharacterVM)) { return; } AniDB_CharacterVM aniChar = item.TVTag as AniDB_CharacterVM; if (aniChar == null) { return; } AniDB_SeiyuuVM actor = aniChar.Creator; MainWindow.GlobalSeiyuuID = actor.AniDB_SeiyuuID; GUIWindowManager.ActivateWindow(Constants.WindowIDs.ACTORS, false); } } catch { } base.OnClicked(controlId, control, actionType); }
private void SetActorProperties(AniDB_CharacterVM aniChar) { if (dummyMainActorExists != null) { dummyMainActorExists.Visible = false; } if (dummySeriesExists != null) { dummySeriesExists.Visible = false; } clearGUIProperty("Actor.Name"); clearGUIProperty("Actor.KanjiName"); clearGUIProperty("Character.PosterMainActor"); clearGUIProperty("Character.PosterSeries"); clearGUIProperty("Character.SeriesName"); clearGUIProperty("Character.SeriesCharacter"); clearGUIProperty("Character.SeriesKanjiCharacter"); string imagePath = GUIGraphicsContext.Skin + @"\Media\MyAnime3\anime3_blankchar.png"; // get the actor from the character AniDB_SeiyuuVM actor = aniChar.Creator; if (actor == null) { try { System.Drawing.Image theImage = System.Drawing.Image.FromFile(imagePath); float width = theImage.PhysicalDimension.Width; float height = theImage.PhysicalDimension.Height; if (dummyPosterMainActor != null) { dummyPosterMainActor.Visible = height > width; } } catch { } setGUIProperty("Character.PosterMainActor", imagePath); } else { MainWindow.GlobalSeiyuuID = actor.AniDB_SeiyuuID; if (dummyMainActorExists != null) { dummyMainActorExists.Visible = true; } setGUIProperty("Actor.Name", actor.SeiyuuName); if (File.Exists(actor.PosterPath)) { imagePath = actor.PosterPath; } try { System.Drawing.Image theImage = System.Drawing.Image.FromFile(imagePath); float width = theImage.PhysicalDimension.Width; float height = theImage.PhysicalDimension.Height; if (dummyPosterMainActor != null) { dummyPosterMainActor.Visible = height > width; } } catch { } setGUIProperty("Character.PosterMainActor", imagePath); } }