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; }
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; }