Ejemplo n.º 1
0
        /// <summary>
        /// 특정 노드를 선택 상태로 설정합니다.
        /// </summary>
        /// <param name="node"></param>
        public static void SelectNode(this RadTreeNode node)
        {
            if (node == null)
            {
                return;
            }

            if (IsDebugEnabled)
            {
                log.Debug(@"지정한 TreeNode를 선택된 노드로 설정합니다. node=[{0}]", node.AsTextAndValue());
            }

            node.FocusNode();

            node.Selected = true;
            node.Expanded = true;
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 최상위 조상이 Stack의 가장 위에 있고, 지정한 node가 가장 아래에 있도록 Stack을 만들어 반환합니다.
        /// Stack에서 하나씩 꺼내서 Expand 시키거나 Navigation할 때 필요합니다.
        /// </summary>
        /// <param name="node"></param>
        /// <returns></returns>
        public static Stack <RadTreeNode> GetAncestorNodeAsStack(this RadTreeNode node)
        {
            var stack = new Stack <RadTreeNode>();

            if (IsDebugEnabled)
            {
                log.Debug(@"특정 nodeContainer의 자신과 모든 조상 노드들을 Stack에 담습니다. 최상위 조상이 Stack의 최상위에 위치하도록 합니다. node=[{0}]", node.AsTextAndValue());
            }

            foreach (var ancestorNode in node.GetAncestorNodes())
            {
                stack.Push(ancestorNode);
            }

            return(stack);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 특정 TreeNode부터 조상들의 노드들을 차례로 열거합니다.
        /// </summary>
        /// <param name="node"></param>
        /// <returns></returns>
        public static IEnumerable <RadTreeNode> GetAncestorNodes(this RadTreeNode node)
        {
            if (node == null)
            {
                yield break;
            }

            if (IsDebugEnabled)
            {
                log.Debug(@"특정 nodeContainer의 자신과 모든 조상 노드들을 열거합니다... nodeContainer=[{0}]", node.AsTextAndValue());
            }

            var current = node;

            while (current != null)
            {
                yield return(current);

                current = current.ParentNode;
            }
        }