LayoutFarm.WebDom.CssActiveSheet.ExpandSelector C# (CSharp) Méthode

ExpandSelector() private méthode

private ExpandSelector ( List relatedRuleSets, WebDom selector ) : void
relatedRuleSets List
selector WebDom
Résultat void
        void ExpandSelector(List<CssRuleSetGroup> relatedRuleSets, WebDom.CssElementSelector selector)
        {
            //recursive
            //create active element set                
            if (selector.IsSimpleSelector)
            {
                WebDom.CssSimpleElementSelector simpleSelector = (WebDom.CssSimpleElementSelector)selector;
                switch (simpleSelector.selectorType)
                {
                    default:
                        {
                            throw new NotSupportedException();
                        }
                    case WebDom.SimpleElementSelectorKind.ClassName:
                        {
                            //any element with specific class name 
                            relatedRuleSets.Add(
                                GetGroupOrCreateIfNotExists(
                                    rulesForClassName,
                                    simpleSelector));
                        }
                        break;
                    case WebDom.SimpleElementSelectorKind.Extend:
                        {
                        }
                        break;
                    case WebDom.SimpleElementSelectorKind.Id:
                        {
                            //element with id                              
                            relatedRuleSets.Add(
                                GetGroupOrCreateIfNotExists(
                                    rulesForElementId,
                                    simpleSelector));
                        }
                        break;
                    case WebDom.SimpleElementSelectorKind.PseudoClass:
                        {
                            relatedRuleSets.Add(
                               GetGroupOrCreateIfNotExists(
                                   rulesForPsedoClass,
                                   simpleSelector));
                        }
                        break;
                    case WebDom.SimpleElementSelectorKind.TagName:
                        {
                            relatedRuleSets.Add(
                                GetGroupOrCreateIfNotExists(
                                    rulesForTagName,
                                    simpleSelector));
                        }
                        break;
                    case WebDom.SimpleElementSelectorKind.All:
                        {
                            relatedRuleSets.Add(
                                GetGroupOrCreateIfNotExists(
                                    rulesForAll,
                                    simpleSelector));
                        }
                        break;
                }
            }
            else
            {
                WebDom.CssCompundElementSelector combiSelector = (WebDom.CssCompundElementSelector)selector;
                switch (combiSelector.OperatorName)
                {
                    case WebDom.CssCombinatorOperator.List:
                        {
                            ExpandSelector(relatedRuleSets, combiSelector.LeftSelector);
                            ExpandSelector(relatedRuleSets, combiSelector.RightSelector);
                        }
                        break;
                    case WebDom.CssCombinatorOperator.Descendant:
                        {
                            //focus on right side?
                            ExpandSelector(relatedRuleSets, combiSelector.RightSelector);
                        }
                        break;
                    default:
                        {
                            throw new NotSupportedException();
                        }
                }
            }
            //-----------------------------------------------------------------------------
        }