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(); }