コード例 #1
0
        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);
            }
        }
コード例 #2
0
        // 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);
            }
        }
コード例 #3
0
        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");
            }
        }
コード例 #4
0
        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);
        }
コード例 #5
0
        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);
        }