示例#1
0
        // TODO Implement an override version of GetAttributeNodeType (performance)

        static HxlAttribute Controls(HxlQualifiedName name)
        {
            switch (name.Name)
            {
            case "layout":
                return(new HxlLayoutAttribute());

            case "placeholder":
                return(new HxlPlaceholderAttribute());

            case "placeholdertarget":
                return(new HxlPlaceholderTargetAttribute());

            case "feature":
                return(new HxlFeatureAttribute());

            case "features":
                return(new HxlFeaturesAttribute());

            case "body":
                return(new HxlBodyAttribute());

            default:
                return(HtmlControls(name));
            }
        }
示例#2
0
 public override Type GetElementNodeType(HxlQualifiedName name)
 {
     if (name == null)
     {
         throw new ArgumentNullException("name");
     }
     throw HxlFailure.NoMatchingServerElement(name.FullName);
 }
示例#3
0
 public override DomAttribute CreateAttribute(HxlQualifiedName name)
 {
     if (name == null)
     {
         throw new ArgumentNullException("name");
     }
     throw HxlFailure.NoMatchingServerAttribute(name.FullName);
 }
示例#4
0
        static DomElement ControlsElement(HxlQualifiedName name)
        {
            switch (name.Name)
            {
            case "body":
                return(new HxlBodyElement());
            }

            return(null);
        }
示例#5
0
        static HxlAttribute HtmlControls(HxlQualifiedName name)
        {
            switch (name.Name)
            {
            case "class":
                return(new HxlClassAttribute());

            case "charset":
                return(new HxlCharSetAttribute());
            }
            return(null);
        }
示例#6
0
        public override DomAttribute CreateAttribute(HxlQualifiedName name)
        {
            if (name.NamespaceUri == Xmlns.HxlLangUri)
            {
                return(Lang(name));
            }

            if (name.NamespaceUri == Xmlns.HxlUri)
            {
                return(Controls(name));
            }

            return(null);
        }
示例#7
0
        public override DomElement CreateElement(HxlQualifiedName name)
        {
            if (name.NamespaceUri == Xmlns.HxlLangUri)
            {
                return(LangElement(name));
            }

            if (name.NamespaceUri == Xmlns.HxlUri)
            {
                return(ControlsElement(name));
            }

            return(null);
        }
示例#8
0
        public override DomElement CreateElement(HxlQualifiedName name)
        {
            Type type = elements.GetValueOrDefault(name.QualifiedName);

            if (type != null)
            {
                using (HxlCompilerContext.Set(name.Prefix)) {
                    return((DomElement)Activator.CreateInstance(type));
                }
            }
            else
            {
                return(null);
            }
        }
示例#9
0
        static HxlAttribute Lang(HxlQualifiedName name)
        {
            switch (name.Name)
            {
            case "t":
                return(new HxlTAttribute());

            case "if":
                return(new HxlIfAttribute());

            case "render":
                return(new HxlRenderAttribute());

            case "unless":
                return(new HxlUnlessAttribute());

            case "foreach":
                return(new HxlForEachAttribute());

            case "for":
                return(new HxlForAttribute());

            case "runat":
                return(new HxlRunAtAttribute());

            case "text":
                return(new HxlTextAttribute());

            case "model":
                return(new HxlModelAttribute());

            case "when":
                return(new HxlWhenAttribute());

            case "case":
                return(new HxlCaseAttribute());

            case "otherwise":
                return(new HxlOtherwiseAttribute());

            case "space":
                return(new HxlSpaceAttribute());
            }

            // TODO c:while, c:until, c:case/c:when
            return(null);
        }
示例#10
0
        static DomElement LangElement(HxlQualifiedName name)
        {
            switch (name.Name)
            {
            case "comment":
                return(new HxlCommentElement());

            case "if":
                return(new HxlIfElement());

            case "unless":
                return(new HxlUnlessElement());

            case "foreach":
                return(new HxlForEachElement());

            case "for":
                return(new HxlForElement());

            case "text":
                return(new HxlTextElement());

            case "value":
                return(new HxlValueElement());

            case "model":
                return(new HxlModelElement());

            case "when":
                return(new HxlWhenElement());

            case "case":
                return(new HxlCaseElement());

            case "otherwise":
                return(new HxlOtherwiseElement());

            case "root":
                return(new HxlRootElement());
            }

            // TODO c:while, c:until
            return(null);
        }