Example #1
0
        public List<FunctionPage> GetApplicableFunctions(IHTMLElement element, AppSettings.CodeLanguages language)
        {
            List<FunctionPage> applicable = new List<FunctionPage>();
            foreach (FunctionPage page in Functions)
            {
                if (page.IsApplicable(element, language))
                {
                    applicable.Add(page);
                }
            }

            if (applicable.Count==0)
            {
                // load the default page
                applicable.Add(GetPageFromTitle("Default"));
            }

            foreach (FunctionPage page in Functions)
            {
                if (page.ShowOnAll && page.Languages.Contains(language.ToString()))
                {
                    applicable.Add(page);
                }
            }

            return applicable;
        }
Example #2
0
        public bool IsApplicable(IHTMLElement element, AppSettings.CodeLanguages language)
        {
            if (element == null)
            {
                return false;
            }

            bool result = true;

            // check if this function page applies to this element
            for (int i = 0; i < nvAttributes.Count; i++)
            {
                string name = nvAttributes.Keys[i];
                string[] arrValues = nvAttributes.GetValues(i);
                string value = arrValues.Length == 0 ? "" : arrValues[0];

                if (name == "tagName")
                {
                    if (element.tagName.ToLower() != value.ToLower())
                    {
                        result = false;
                        break;
                    }
                }
                else
                {
                    string strValue = element.getAttribute(name, 0) as string;

                    if (strValue==null && value=="null")
                    {
                        continue;
                    }

                    if (strValue == null)
                    {
                        strValue = "";
                    }

                    if (strValue.ToLower() != value.ToLower())
                    {
                        result = false;
                        break;
                    }
                }
            }

            if (!this.Languages.Contains(language.ToString()))
            {
                result = false;
            }

            return result;
        }