using System.Collections.Generic; using ET; using FairyGUI; using UI.Poem; using UnityEngine; namespace GFGGame { public class PoemGalleryView : BaseWindow { private UI_PoemGalleryUI _ui; private GList _list; private List _galleryDatas = new List(); private int _sortType = 0;//由GallerySortType定义 private int _pageCount = 10; private int _tabIndex = 0;//当前选中大页签下标,首页0投稿1收藏2 private int _subtabIndex = 0;//当前选中小页签下标,推荐0好友1排行榜2;我的收藏0我的作品1 public override void Dispose() { if (_ui != null) { _ui.Dispose(); _ui = null; } base.Dispose(); } protected override void OnInit() { base.OnInit(); packageName = UI_PoemGalleryUI.PACKAGE_NAME; _ui = UI_PoemGalleryUI.Create(); this.viewCom = _ui.target; isfullScreen = true; _ui.m_loaBg.url = ResPathUtil.GetBgImgPath("hc_bj_1"); _ui.m_comNormal.m_comBoBox.items = new string[] { "推荐", "最新" }; _ui.m_btnback.onClick.Add(OnBtnBackClick); _ui.m_btnRecover.onClick.Add(OnBtnRecoverClick); _ui.m_btnJoin.onClick.Add(OnBtnJoinClick); _ui.m_btnFavorites.onClick.Add(OnBtnFavoritesClick); _ui.m_comNormal.m_listRecommend.itemRenderer = RenderListItem; _ui.m_comNormal.m_listRecommend.SetVirtual(); _ui.m_comNormal.m_listRecommend.scrollPane.onPullDownRelease.Add(onPullDownRelease); _ui.m_comNormal.m_listRecommend.scrollPane.onScroll.Add(onScroll); _ui.m_comNormal.m_listFriend.itemRenderer = RenderListItem; _ui.m_comNormal.m_listFriend.SetVirtual(); _ui.m_comNormal.m_listFriend.scrollPane.onScroll.Add(onScroll); _ui.m_comNormal.m_listRank.itemRenderer = RenderListRankItem; _ui.m_comNormal.m_listRank.SetVirtual(); _ui.m_comNormal.m_listRank.scrollPane.onScroll.Add(onScroll); _ui.m_comFavorites.m_listFavorite.itemRenderer = RenderListItem; _ui.m_comFavorites.m_listFavorite.SetVirtual(); _ui.m_comFavorites.m_listFavorite.scrollPane.onScroll.Add(onScroll); _ui.m_comFavorites.m_listMySelf.itemRenderer = RenderListItem; _ui.m_comFavorites.m_listMySelf.SetVirtual(); _ui.m_comFavorites.m_listMySelf.scrollPane.onScroll.Add(onScroll); _ui.m_comNormal.m_btnShop.onClick.Add(OnBtnShopClick); _ui.m_comNormal.m_btnReward.onClick.Add(OnBtnRewardClick); // _ui.m_c1.onChanged.Add(OnTabChange); _ui.m_comNormal.m_c1.onChanged.Add(OnNormalTabChange); _ui.m_comFavorites.m_c1.onChanged.Add(OnFavoritesTabChange); } protected override void AddEventListener() { base.AddEventListener(); EventAgent.AddEventListener(ConstMessage.GALLERY_DATA_CHANGE, UpdateGalleryList); EventAgent.AddEventListener(ConstMessage.GALLERY_RANK_DATA_CHANGE, UpdateGalleryRankList); } protected override void OnShown() { base.OnShown(); _tabIndex = 0; _subtabIndex = 0; if (this.viewData != null) { _tabIndex = (int)(this.viewData as object[])[0]; _subtabIndex = (int)(this.viewData as object[])[1]; } _ui.m_c1.selectedIndex = _tabIndex; if (_tabIndex == 0) { _ui.m_comNormal.m_c1.selectedIndex = _subtabIndex; OnNormalTabChange(); } else if (_tabIndex == 2) { _ui.m_comFavorites.m_c1.selectedIndex = _subtabIndex; OnFavoritesTabChange(); } _list = _ui.m_comNormal.m_listRecommend; _list.numItems = 10; UpdateView(); } protected override void OnHide() { base.OnHide(); ResetPullDownRelease(); _ui.m_comNormal.m_comBoBox.selectedIndex = 0; } protected override void RemoveEventListener() { base.RemoveEventListener(); EventAgent.RemoveEventListener(ConstMessage.GALLERY_DATA_CHANGE, UpdateGalleryList); EventAgent.RemoveEventListener(ConstMessage.GALLERY_RANK_DATA_CHANGE, UpdateGalleryRankList); } private void OnBtnBackClick() { ViewManager.GoBackFrom(typeof(PoemGalleryView).FullName); } /// /// 首页 /// private void OnBtnRecoverClick() { _tabIndex = _ui.m_c1.selectedIndex; if (_ui.m_comNormal.m_c1.selectedIndex == 0) { onPullDownRelease(); // OnNormalTabChange();//每次点首页都要刷新 } else { _ui.m_comNormal.m_c1.selectedIndex = 0; } } /// /// 投稿 /// private void OnBtnJoinClick() { // int tabIndex = _ui.m_c1.selectedIndex; // int subType = _ui.m_c1.selectedIndex object[] gobackParamDatas = new object[] { _tabIndex, _subtabIndex }; ViewManager.Show(1, new object[] { typeof(PoemGalleryView).FullName, gobackParamDatas }, true); } /// ///收藏夹 /// private void OnBtnFavoritesClick() { _tabIndex = _ui.m_c1.selectedIndex; if (_ui.m_comFavorites.m_c1.selectedIndex != 0) { _ui.m_comFavorites.m_c1.selectedIndex = 0; } ResetPullDownRelease(); } // /// // /// 切换ui页签:首页,投稿,收藏 // /// // private void OnTabChange() // { // if (_ui.m_c1.selectedIndex == 0)//刷新首页 // { // if (_ui.m_comNormal.m_c1.selectedIndex == 0) // { // OnNormalTabChange(); // } // else // { // _ui.m_comNormal.m_c1.selectedIndex = 0; // } // } // else if (_ui.m_c1.selectedIndex == 2)//刷新收藏页 // { // if (_ui.m_comFavorites.m_c1.selectedIndex == 0) // { // OnFavoritesTabChange(); // } // else // { // _ui.m_comFavorites.m_c1.selectedIndex = 0; // } // } // } /// /// 切换首页页签 /// private void OnNormalTabChange() { ResetPullDownRelease(); _subtabIndex = _ui.m_comNormal.m_c1.selectedIndex; if (_ui.m_comNormal.m_c1.selectedIndex == 2)//排行榜 { } else { if (_ui.m_comNormal.m_c1.selectedIndex == 0)//首页 { // _infoType = GalleryType.Recommend; if (_ui.m_comNormal.m_comBoBox.selectedIndex == 0)//推荐 { _sortType = (int)GallerySortType.Recommend; _galleryDatas = PoemGalleryDataManager.Instance.RecommendDatas; } else//最新 { _sortType = (int)GallerySortType.Newest; _galleryDatas = PoemGalleryDataManager.Instance.NewestDatas; } _list = _ui.m_comNormal.m_listRecommend; } else if (_ui.m_comNormal.m_c1.selectedIndex == 1)//好友 { _sortType = (int)GallerySortType.Friend; _galleryDatas = PoemGalleryDataManager.Instance.FrinedDatas; _list = _ui.m_comNormal.m_listFriend; } if (_list.numItems > 0) _list.ScrollToView(0); ReqGalleryList(0); } } /// /// 切换收藏页签 /// private void OnFavoritesTabChange() { _subtabIndex = _ui.m_comFavorites.m_c1.selectedIndex; if (_ui.m_comFavorites.m_c1.selectedIndex == 0)//我的收藏 { _sortType = (int)GallerySortType.MyCollect; _galleryDatas = PoemGalleryDataManager.Instance.FrinedDatas; _list = _ui.m_comFavorites.m_listFavorite; } else if (_ui.m_comFavorites.m_c1.selectedIndex == 1)//我的作品 { _sortType = (int)GallerySortType.MyWorks; _galleryDatas = PoemGalleryDataManager.Instance.FrinedDatas; _list = _ui.m_comFavorites.m_listMySelf; } if (_list.numItems > 0) _list.ScrollToView(0); ReqGalleryList(0); } //分页刷新 private void onScroll() { if (_list == null) return; int itemIndex = _list.ChildIndexToItemIndex(0); int startIndex = itemIndex + 1; if (startIndex >= _list.numItems && startIndex % _pageCount == 0) { ReqGalleryList(startIndex); } } //请求刷新 private void ReqGalleryList(int startIndex) { PoemGallerySProxy.ReqGalleryList(_sortType, startIndex, _pageCount).Coroutine(); } private void UpdateGalleryList() { _list.numItems = _galleryDatas.Count; UpdateView(); } private void UpdateGalleryRankList() { _ui.m_comNormal.m_listRank.numItems = _galleryDatas.Count; UpdateView(); } /// /// 积分商店 /// private void OnBtnShopClick() { object[] gobackParamDatas = new object[] { _tabIndex, _subtabIndex }; ViewManager.Show(new object[] { ConstStoreId.GALLERY_STORE_ID }, new object[] { typeof(PoemGalleryView).FullName, gobackParamDatas }, true); } /// /// 排行榜奖励 /// private void OnBtnRewardClick() { ViewManager.Show(null, new object[] { typeof(PoemGalleryView).FullName, this.viewData }); } private void UpdateView() { GalleryThemeCfg themeCfg = GalleryThemeCfgArray.Instance.GetCfg((int)PoemGalleryDataManager.Instance.ThemeId); _ui.m_comNormal.m_txtTheme.text = string.Format("本期主题:{0}", themeCfg.theme); long monday = TimeUtil.GetCurWeekMondayTime(GlobalCfgArray.globalCfg.refreshTime);//本周一5点 long startTime = 0; long endTime = 0; if ((TimeInfo.Instance.ServerNow() / 1000) < monday)//本周一5点之前显示上周 { startTime = TimeUtil.GetLastWeekMondayTime(GlobalCfgArray.globalCfg.refreshTime); endTime = TimeUtil.GetLastWeekSundayTime("23:59:59"); } else { startTime = monday * 1000; endTime = TimeUtil.GetCurWeekSundayTime("23:59:59") * 1000; ; } string strStartTime = TimeUtil.FormattingTime3(startTime); string strEndTime = TimeUtil.FormattingTime3(endTime); ; _ui.m_comNormal.m_txtTime.text = string.Format("截止日期:{0}至{1}", strStartTime, strEndTime); _ui.m_comNormal.m_txtRank.text = string.Format("我的排名:{0}", PoemGalleryDataManager.Instance.MyRank); } private void RenderListItem(int index, GObject obj) { // PoemGalleryData data = _galleryDatas[index]; UI_ListItem item = UI_ListItem.Proxy(obj); // item.m_loaIcon.height = 550 + Random.Range(40, 100); // if (index > 1) // { // item.target.y= // } // item.target.height = item.m_loaIcon.height + 80; // item.m_loaIcon.texture = data.Ntexture; // item.m_txtName.text = data.AuthorName; // item.m_btnCollect.title = data.CollectCount.ToString(); // item.m_btnCollect.selected = data.CollectOrNot; // item.m_btnVote.title = data.VoteCount.ToString(); // item.m_btnVote.selected = data.VoteOrNot; // if (item.m_loaIcon.data == null) // { // item.m_loaIcon.onClick.Add(OnLoaIconClick); // } // item.m_loaIcon.data = data; // if (item.m_btnCollect.data == null) // { // item.m_btnCollect.onClick.Add(OnBtnCollectClick); // } // item.m_btnCollect.data = data; // if (item.m_btnVote.data == null) // { // item.m_btnVote.onClick.Add(OnBtnVoteClick); // } // item.m_btnVote.data = data; UI_ListItem.ProxyEnd(); } private void RenderListRankItem(int index, GObject obj) { } private void OnLoaIconClick(EventContext context) { GObject obj = context.data as GObject; PoemGalleryData data = obj.data as PoemGalleryData; } private void OnBtnCollectClick(EventContext context) { GObject obj = context.data as GObject; PoemGalleryData data = obj.data as PoemGalleryData; } private void OnBtnVoteClick(EventContext context) { GObject obj = context.data as GObject; PoemGalleryData data = obj.data as PoemGalleryData; } //下拉刷新 private void onPullDownRelease() { // ReqGalleryList(0); GComponent header = _ui.m_comNormal.m_listRecommend.scrollPane.header; if (header.height < header.sourceHeight) return; // Transition transition = header.GetTransition("t0"); // transition.Play(); // controller.selectedIndex = 1; _ui.m_comNormal.m_listRecommend.scrollPane.LockHeader(header.sourceHeight); Timers.inst.Add(2, 1, OnTimeComplete); } private void OnTimeComplete(object param) { GComponent header = _ui.m_comNormal.m_listRecommend.scrollPane.header; Transition transition = header.GetTransition("t0"); transition.Stop(); // header.GetController("c1").selectedIndex = 2; _ui.m_comNormal.m_listRecommend.scrollPane.LockHeader(0); } /// /// 重置下拉刷新状态 /// private void ResetPullDownRelease() { Timers.inst.Remove(OnTimeComplete); OnTimeComplete(null); } } }