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); }
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); } } } }
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; } }
/// <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); }
public NodeElementEntry(RadElement conditionCheckTargetElement, RadElement element, StylesheetTreeNode treeNode) { this.conditionCheckTargetElement = conditionCheckTargetElement; this.element = element; this.treeNode = treeNode; }