Exemple #1
0
 /// <summary>
 /// フィード内のアイテムをすべて既読にします。
 /// </summary>
 /// <param name="node"></param>
 public void ReadAll(FeedTreeNode node)
 {
     foreach (FeedTreeNode child in node.Nodes)
     {
         child.Read = true;
     }
     node.Nodes.Clear();
 }
Exemple #2
0
 /// <summary>
 /// フィード内のアイテムをすべて既読にします。
 /// </summary>
 /// <param name="node"></param>
 public void ReadAll(FeedTreeNode node)
 {
     foreach (FeedTreeNode child in node.Nodes)
     {
         child.Read = true;
     }
     node.Nodes.Clear();
 }
Exemple #3
0
 /// <summary>
 /// フィードを管理から削除します。
 /// </summary>
 /// <param name="node"></param>
 public void RemoveFeed(FeedTreeNode node)
 {
     this.parentNodeList.Remove(node);
 }
Exemple #4
0
        /// <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);
        }
Exemple #5
0
 /// <summary>
 /// フィードを管理から削除します。
 /// </summary>
 /// <param name="node"></param>
 public void RemoveFeed(FeedTreeNode node)
 {
     this.parentNodeList.Remove(node);
 }
Exemple #6
0
        /// <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;
        }