Ejemplo n.º 1
0
        public void reBuildTree()
        {
            int nodeIdx = 0;
            List<string> openList = new List<string>();

            //▼rssListを取得する
            rssList = LiplisApiCus.getRssList(os.uid);

            //▼このウインドウをロードするためにLiplisから呼ばれている
            this.Opacity = 1;

            //▼ツリービュー更新開始
            tvRss.BeginUpdate();

            //▼開いているツリービュー名を記録する
            foreach (TreeNode p in tvRss.Nodes) { if (p.IsExpanded) { openList.Add(p.Text); } }

            //▼ツリービュー初期化
            tvRss.Nodes.Clear();

            //▼RSSリストを回して、読み込み
            foreach (ObjRssCatList catList in rssList.rssCatList)
            {
                //▼カテゴリ名が空なら、"なし"を登録
                if (catList.cat == "")
                {
                    catList.cat = "なし";
                }

                //▼ノードの作成
                LiplisTreeNodePar tne = new LiplisTreeNodePar(catList, catList.cat);
                tvRss.Nodes.Add(tne);

                //▼子ノードの作成
                foreach (ObjRss rss in catList.rssList)
                {
                    LiplisTreeNodeCld cld = new LiplisTreeNodeCld(rss, rss.title);
                    tvRss.Nodes[nodeIdx].Nodes.Add(cld);
                }

                //▼ノードのインクリメント
                nodeIdx++;
            }

            //▼開いていたツリービューを開きなおす
            foreach (string name in openList)
            {
                foreach (TreeNode p in tvRss.Nodes)
                {
                    if (p.Text.Equals(name))
                    {
                        p.Expand();
                    }
                }
            }

            //▼ツリービュー更新完了
            tvRss.EndUpdate();
        }
        public void reBuildTree()
        {
            //ノードインデックス
            int parNodeIdx = 0;

            //照合チェックフラグ
            bool flgCheck = false;

            //オープンリスト
            List<string> openList = new List<string>();

            //RSSリストの再取得
            rssList = LiplisApiCus.getRssList(os.uid);

            //▼このウインドウをロードするためにLiplisから呼ばれている
            this.Opacity = 1;

            //▼ツリービュー更新開始
            tvRss.BeginUpdate();

            //▼開いているツリービュー名を記録する
            foreach (TreeNode p in tvRss.Nodes){if (p.IsExpanded){openList.Add(p.Text);}}

            //▼ツリービュー初期化
            tvRss.Nodes.Clear();

            //▼カテゴリのツリー親ノード作成
            foreach (string cat in this.catList.catList)
            {
                //▼ノードの作成
                LiplisTreeNodePar tne = new LiplisTreeNodePar(new ObjRssCatList(cat), cat);
                tvRss.Nodes.Add(tne);
            }

            //▼RSSリストを回して、読み込み
            foreach (ObjRssCatList orcl in rssList.rssCatList)
            {
                //▼カテゴリ名が空なら、"なし"を登録
                if (orcl.cat == null || orcl.cat == "")
                {
                    orcl.cat = CAT_DEFAULT;
                }

                //▼カテゴリ照合
                flgCheck = false;
                foreach (string cat in this.catList.catList)
                {
                    if (cat == orcl.cat)
                    {
                        flgCheck = true;
                    }
                }

                //▼フラグチェック
                if (flgCheck)
                {
                    //登録リストにあったので、カテゴリリストを更新する
                    LiplisTreeNodePar ltn = getTargetTreeNode(orcl.cat);

                    //念のためNULLチェック(NULLはありえないが・・・)
                    if (ltn != null)
                    {
                        //ORCLをセットする
                        ltn.catList = orcl;
                        parNodeIdx = tvRss.Nodes.IndexOf(ltn);
                    }
                }
                else
                {
                    //▼ノードの作成
                    LiplisTreeNodePar tne = new LiplisTreeNodePar(orcl, orcl.cat);
                    tvRss.Nodes.Add(tne);
                    parNodeIdx = tvRss.Nodes.Count-1;
                }

                //▼子ノードの作成
                foreach (ObjRss rss in orcl.rssList)
                {
                    LiplisTreeNodeCld cld = new LiplisTreeNodeCld(rss, rss.title);
                    tvRss.Nodes[parNodeIdx].Nodes.Add(cld);
                }

                //リストの更新
                //getTargetTreeNode(orcl.cat).catList = orcl;
            }

            //▼開いていたツリービューを開きなおす
            foreach (string name in openList)
            {
                foreach (TreeNode p in tvRss.Nodes)
                {
                    if (p.Text.Equals(name))
                    {
                        p.Expand();
                    }
                }
            }

            //▼ツリービュー更新完了
            tvRss.EndUpdate();
        }