Ejemplo n.º 1
0
        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));
            }
        }
Ejemplo n.º 2
0
        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));
            }
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 6
0
        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("");
            }
        }
Ejemplo n.º 7
0
        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("");
            }
        }
Ejemplo n.º 8
0
        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);
            }
        }
Ejemplo n.º 9
0
        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);
                }
            }
        }
Ejemplo n.º 10
0
        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);
        }
Ejemplo n.º 11
0
        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);
            }
        }