/// <summary> /// フィード内のアイテムをすべて既読にします。 /// </summary> /// <param name="node"></param> public void ReadAll(FeedTreeNode node) { foreach (FeedTreeNode child in node.Nodes) { child.Read = true; } node.Nodes.Clear(); }
/// <summary> /// フィードを管理から削除します。 /// </summary> /// <param name="node"></param> public void RemoveFeed(FeedTreeNode node) { this.parentNodeList.Remove(node); }
/// <summary> /// フィードをツリーに追加、または既にあるノードを更新します。 /// このメソッドは、バックグラウンドワーカーから呼び出されるため、UIの操作は避けています。 /// </summary> /// <param name="feedInfo">追加、または更新するフィード</param> /// <returns></returns> public bool UpdateFeed(Feed.FeedInfo feedInfo) { if (null == feedInfo) { return(false); } FeedTreeNode parentNode = null; foreach (var node in this.parentNodeList) { if (node.Url.ToString() == feedInfo.Url.ToString()) { parentNode = node; break; } } if (null == parentNode) { parentNode = new FeedTreeNode(); this.parentNodeList.Add(parentNode); } parentNode.Title = feedInfo.Title; parentNode.Description = feedInfo.Description; parentNode.Url = feedInfo.Url; parentNode.ToolTipText = feedInfo.Description; parentNode.IconIndex = GetFaviconIndex(feedInfo.Url); List <FeedTreeNode> childList; if (false == this.childNodeList.TryGetValue(parentNode, out childList)) { this.childNodeList.Add(parentNode, new List <FeedTreeNode>()); } foreach (var item in feedInfo.Items) { FeedTreeNode childNode = null; foreach (FeedTreeNode child in this.childNodeList[parentNode]) { if (child.Url.ToString() == item.Link.ToString()) { childNode = child; break; } } if (null == childNode) { childNode = new FeedTreeNode(); this.childNodeList[parentNode].Add(childNode); } childNode.Title = item.Title; childNode.Content = item.Content; childNode.Summary = item.Summary; childNode.Url = item.Link; childNode.Date = item.Date; childNode.IconIndex = GetFaviconIndex(item.Link); } return(true); }
/// <summary> /// フィードをツリーに追加、または既にあるノードを更新します。 /// このメソッドは、バックグラウンドワーカーから呼び出されるため、UIの操作は避けています。 /// </summary> /// <param name="feedInfo">追加、または更新するフィード</param> /// <returns></returns> public bool UpdateFeed(Feed.FeedInfo feedInfo) { if (null == feedInfo) { return false; } FeedTreeNode parentNode = null; foreach (var node in this.parentNodeList) { if (node.Url.ToString() == feedInfo.Url.ToString()) { parentNode = node; break; } } if (null == parentNode) { parentNode = new FeedTreeNode(); this.parentNodeList.Add(parentNode); } parentNode.Title = feedInfo.Title; parentNode.Description = feedInfo.Description; parentNode.Url = feedInfo.Url; parentNode.ToolTipText = feedInfo.Description; parentNode.IconIndex = GetFaviconIndex(feedInfo.Url); List<FeedTreeNode> childList; if (false == this.childNodeList.TryGetValue(parentNode, out childList)) { this.childNodeList.Add(parentNode, new List<FeedTreeNode>()); } foreach (var item in feedInfo.Items) { FeedTreeNode childNode = null; foreach (FeedTreeNode child in this.childNodeList[parentNode]) { if (child.Url.ToString() == item.Link.ToString()) { childNode = child; break; } } if (null == childNode) { childNode = new FeedTreeNode(); this.childNodeList[parentNode].Add(childNode); } childNode.Title = item.Title; childNode.Content = item.Content; childNode.Summary = item.Summary; childNode.Url = item.Link; childNode.Date = item.Date; childNode.IconIndex = GetFaviconIndex(item.Link); } return true; }