private static void AddElementTagForEachInputType(ElementTag elementTag, ArrayList uniqueElementTags) { string[] inputtypes = elementTag.InputTypes.Split(" ".ToCharArray()); foreach (string inputtype in inputtypes) { ElementTag inputtypeElementTag = new ElementTag(elementTag.TagName, inputtype); uniqueElementTags.Add(inputtypeElementTag); } }
private static NativeElementBasedFactory GetNativeElementBasedFactory(ElementTag tag) { Type elementType; if (elementTypeByTag.TryGetValue(tag, out elementType)) { return(nativeElementBasedFactoriesByType[elementType]); } return(CreateUntypedElement); }
private static void AddElementTag(ElementTag elementTag, ArrayList uniqueElementTags) { if (elementTag.IsInputElement) { AddElementTagForEachInputType(elementTag, uniqueElementTags); } else { uniqueElementTags.Add(elementTag); } }
/// <summary> /// Creates a typed element wrapper for a given native element. /// </summary> /// <remarks> /// <para> /// The returned element will be a subclass of <see cref="Element" /> that is /// appropriate for element's tag. /// </para> /// </remarks> /// <param name="domContainer">The element's DOM container</param> /// <param name="nativeElement">The native element to wrap, or null if none</param> /// <returns>The typed element, or null if none</returns> public static Element CreateElement(DomContainer domContainer, INativeElement nativeElement) { if (nativeElement == null) { return(null); } var elementTag = ElementTag.FromNativeElement(nativeElement); var factory = GetNativeElementBasedFactory(elementTag); return(factory(domContainer, nativeElement)); }
public static Element CreateTypedElement(DomContainer domContainer, INativeElement ieNativeElement) { if (ieNativeElement == null) return null; if (_elementConstructors == null) { _elementConstructors = CreateElementConstructorHashTable(); } ElementTag elementTag = new ElementTag(ieNativeElement); Element returnElement = GetDefaultReturnElement(domContainer, ieNativeElement); if (_elementConstructors.Contains(elementTag)) { ConstructorInfo constructorInfo = (ConstructorInfo)_elementConstructors[elementTag]; return (Element)constructorInfo.Invoke(new object[] { returnElement }); } return returnElement; }
public override bool Equals(object obj) { if (this == obj) { return(true); } ElementTag elementTag = obj as ElementTag; if (elementTag == null) { return(false); } if (!Equals(TagName, elementTag.TagName)) { return(false); } if (!Equals(InputTypes, elementTag.InputTypes)) { return(false); } return(true); }
public static Element CreateTypedElement(DomContainer domContainer, INativeElement ieNativeElement) { if (ieNativeElement == null) { return(null); } if (_elementConstructors == null) { _elementConstructors = CreateElementConstructorHashTable(); } ElementTag elementTag = new ElementTag(ieNativeElement); Element returnElement = GetDefaultReturnElement(domContainer, ieNativeElement); if (_elementConstructors.Contains(elementTag)) { ConstructorInfo constructorInfo = (ConstructorInfo)_elementConstructors[elementTag]; return((Element)constructorInfo.Invoke(new object[] { returnElement })); } return(returnElement); }
/// <summary> /// Returns a string representation of the element tags. /// </summary> public string ElementTagsToString() { return(ElementTag.ElementTagsToString(ElementTags)); }
private bool IsMatchByTag(INativeElement nativeElement) { return(ElementTag.IsMatch(ElementTags, nativeElement)); }
private NativeElementFinder CreateElementFinder(Constraint findBy, string tagName, params string[] inputTypes) { var tags = ElementTag.ToElementTags(tagName, inputTypes); return(CreateElementFinder(findBy, tags)); }
public static IList <ElementTag> CreateTagList(INativeElement nativeElement) { return(new[] { ElementTag.FromNativeElement(nativeElement) }); }
private NativeElementFinder CreateElementFinder(Constraint findBy, string tagName, params string[] inputTypes) { var tags = ElementTag.ToElementTags(tagName, inputTypes); return(new NativeElementFinder(nativeElementCollectionFactory, domContainer, new List <ElementTag>(tags), findBy)); }