Exemplo n.º 1
0
        private void CollectInterestingNodes(List <IAXNode> collection, IAXNode node, bool insideControl)
        {
            if (node.IsInteresting(insideControl))
            {
                collection.Add(node);
            }

            if (node.IsLeafNode())
            {
                return;
            }

            insideControl = insideControl || node.IsControl();
            foreach (var child in node.Children)
            {
                CollectInterestingNodes(collection, child, insideControl);
            }
        }
Exemplo n.º 2
0
        private SerializedAXNode[] SerializeTree(IAXNode node, ICollection <IAXNode> whitelistedNodes = null)
        {
            var children = new List <SerializedAXNode>();

            foreach (var child in node.Children)
            {
                children.AddRange(SerializeTree(child, whitelistedNodes));
            }

            if (whitelistedNodes?.Contains(node) == false)
            {
                return(children.ToArray());
            }

            var serializedNode = node.Serialize();

            if (children.Count > 0)
            {
                serializedNode.Children = children.ToArray();
            }

            return(new[] { serializedNode });
        }