private StylesheetTreeNode AddNodeRecursive(PropertySettingGroup propertySettings, IElementSelector selector, StylesheetTreeNodeCollection parentNodeCollection)
        {
            if (selector.Key == 0)
            {
                return(null);
            }

            StylesheetTreeNode node = parentNodeCollection.FindSelectorNode(selector.Key);

            if (node == null)
            {
                node = new StylesheetTreeNode(this.ownerNode.OwnerTree, selector);
                parentNodeCollection.RegisterSelectorNode(node);
            }

            if (selector.ChildSelector != null)
            {
                this.AddNodeRecursive(propertySettings, selector.ChildSelector, node.Nodes);
            }
            else
            {
                node.PropertySettingGroups.Add(propertySettings);
            }

            return(node);
        }