Esempio n. 1
0
        internal void RegisterNodeWithKey(int key, StylesheetTreeNode node)
        {
            LinkedList <StylesheetTreeNode> nodeList;

            if (!this.nodesByKey.TryGetValue(key, out nodeList))
            {
                nodeList             = new LinkedList <StylesheetTreeNode>();
                this.nodesByKey[key] = nodeList;
            }

            nodeList.AddLast(node);
        }
Esempio n. 2
0
        public IEnumerable <StylesheetTreeNode> EnumChildNodes(TreeTraversalMode traverseMode, bool includeSelf)
        {
            if (includeSelf)
            {
                yield return(this);
            }

            if (traverseMode == TreeTraversalMode.BreadthFirst)
            {
                Queue <StylesheetTreeNode> children = new Queue <StylesheetTreeNode>();
                children.Enqueue(this);

                while (children.Count > 0)
                {
                    StylesheetTreeNode child = children.Dequeue();
                    foreach (StylesheetTreeNode nestedChild in child.Nodes)
                    {
                        yield return(nestedChild);

                        children.Enqueue(nestedChild);
                    }
                }
            }
            else
            {
                Stack <StylesheetTreeNode> children = new Stack <StylesheetTreeNode>();
                children.Push(this);

                while (children.Count > 0)
                {
                    StylesheetTreeNode child = children.Pop();
                    foreach (StylesheetTreeNode nestedChild in child.Nodes)
                    {
                        yield return(nestedChild);

                        children.Push(nestedChild);
                    }
                }
            }
        }
Esempio n. 3
0
        private void NodeMapElement(StylesheetTreeNode node, RadElement element, MapElementContext context)
        {
            if (node.Nodes == null)
            {
                return;
            }
            foreach (RadElement childElement in ElementHierarchyEnumerator.TraverseElements(element, false))
            {
                ICollection <StylesheetTreeNode> matchingNodes = node.Nodes.FindNodes(childElement);
                foreach (StylesheetTreeNode childNode in matchingNodes)
                {
                    NodeMapElement(childNode, childElement, context);
                }
            }

            node.AttachElement(element);

            if (context != null)
            {
                context.mappedElements[element] = null;
            }
        }
Esempio n. 4
0
 /// <summary>
 /// Creates an instance of the <see cref="StylesheetTree"/> class.
 /// This class represents a parent-child selector hierarchy that
 /// comes from the loaded stylesheet.
 /// </summary>
 /// <param name="ownerStyeMap">ownerMap is used only for legacy </param>
 public StylesheetTree(StyleMap ownerStyeMap)
 {
     this.ownerStyleMap = ownerStyeMap;
     rootNode           = new StylesheetTreeNode(this, null);
 }
Esempio n. 5
0
 public NodeElementEntry(RadElement conditionCheckTargetElement, RadElement element, StylesheetTreeNode treeNode)
 {
     this.conditionCheckTargetElement = conditionCheckTargetElement;
     this.element  = element;
     this.treeNode = treeNode;
 }