/* ************************************************************************ # # DivConq # # http://divconq.com/ # # Copyright: # Copyright 2014 eTimeline, LLC. All rights reserved. # # License: # See the license.txt file in the project's top-level directory for details. # # Authors: # * Andy White # ************************************************************************ */ package w3.html; import divconq.lang.op.OperationContext; import divconq.web.WebContext; import divconq.web.dcui.Attributes; import divconq.web.dcui.HtmlUtil; import divconq.web.dcui.ICodeTag; import divconq.web.dcui.MixedElement; import divconq.web.dcui.Nodes; import divconq.xml.XElement; public class Input extends MixedElement implements ICodeTag { public Input() { super(); } public Input(Object... args) { super(args); } @Override public void parseElement(WebContext ctx, Nodes nodes, XElement xel) { Attributes attrs = HtmlUtil.initAttrs(xel); if (xel.hasAttribute("alt")) attrs.add("alt", xel.getRawAttribute("alt")); if (xel.hasAttribute("checked")) attrs.add("checked", xel.getRawAttribute("checked")); if (xel.hasAttribute("disabled")) attrs.add("disabled", xel.getRawAttribute("disabled")); if (xel.hasAttribute("placeholder")) attrs.add("placeholder", xel.getRawAttribute("placeholder")); if (xel.hasAttribute("maxlength")) attrs.add("maxlength", xel.getRawAttribute("maxlength")); if (xel.hasAttribute("multiple")) attrs.add("multiple", xel.getRawAttribute("multiple")); if (xel.hasAttribute("name")) attrs.add("name", xel.getRawAttribute("name")); if (xel.hasAttribute("readonly")) attrs.add("readonly", xel.getRawAttribute("readonly")); if (xel.hasAttribute("size")) attrs.add("size", xel.getRawAttribute("size")); if (xel.hasAttribute("src")) attrs.add("src", xel.getRawAttribute("src")); if (xel.hasAttribute("type")) attrs.add("type", xel.getRawAttribute("type")); if (xel.hasAttribute("value")) attrs.add("value", xel.getRawAttribute("value")); if (xel.hasAttribute("min")) attrs.add("min", xel.getRawAttribute("min")); if (xel.hasAttribute("max")) attrs.add("max", xel.getRawAttribute("max")); this.myArguments = new Object[] { attrs, ctx.getDomain().parseXml(ctx, xel) }; nodes.add(this); } @Override public void build(WebContext ctx, Object... args) { if (OperationContext.get().getWorkingLocaleDefinition().isRightToLeft()) super.build(ctx, "input", new Attributes("dir", "rtl"), args); else super.build(ctx, "input", args); } }