0001 
0002 /*
0003  *  JScripter Standard 1.0 - To Script In Java
0004  *  Copyright (C) 2008-2011  J.J.Liu<jianjunliu@126.com> <http://www.jscripter.org>
0005  *  
0006  *  This program is free software: you can redistribute it and/or modify
0007  *  it under the terms of the GNU Affero General Public License as published by
0008  *  the Free Software Foundation, either version 3 of the License, or
0009  *  (at your option) any later version.
0010  *  
0011  *  This program is distributed in the hope that it will be useful,
0012  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
0013  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
0014  *  GNU Affero General Public License for more details.
0015  *  
0016  *  You should have received a copy of the GNU Affero General Public License
0017  *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
0018  */
0019 
0020 package js.user;
0021 
0022 import js.*;
0023 import js.core.*;
0024 
0025 /**
0026  * <p>An <b>opaque</b> class representing JavaScript client-side objects of the global 
0027  * {@link JsClient#HTMLInputElement} class.</p>
0028  * <p>This class represents a form control 
0029  * in an HTML page, or a {@link JsHTMLElement} object created with the HTML 
0030  * <tt>&lt;input&gt;</tt> tag.</p>
0031  * <p>The three most important properties of a {@link JsHTMLInputElement} object are 
0032  * {@link JsHTMLInputElement#type}, {@link JsHTMLInputElement#value}, and {@link JsHTMLInputElement#name}.</p>
0033  * <p>The legal values of {@link JsHTMLInputElement#type} and the corresponding 
0034  * <b>opaque</b> subclass of {@link JsHTMLInputElement} are:
0035  * <ul>
0036  * <li>"button": {@link JsHTMLButtonElement}</li>
0037  * <li>"checkbox": {@link JsHTMLCheckBoxElement}</li>
0038  * <li>"file": {@link JsHTMLFileUploadElement}</li>
0039  * <li>"hidden": {@link JsHTMLHiddenElement}</li>
0040  * <li>"image": {@link JsHTMLImageElement}</li>
0041  * <li>"password": {@link JsHTMLPasswordElement}</li>
0042  * <li>"radio": {@link JsHTMLRadioElement}</li>
0043  * <li>"reset": {@link JsHTMLResetElement}</li>
0044  * <li>"submit": {@link JsHTMLSubmitElement}</li>
0045  * <li>"text": {@link JsHTMLTextFieldElement}</li>
0046  * </ul></p>
0047  *
0048  * @author <a href="mailto:jianjunliu@126.com">J.J.Liu (Jianjun Liu)</a> at <a href="http://www.jscripter.org" target="_blank">http://www.jscripter.org</a>
0049  *
0050  * @javascript <b>Opaque</b> types can be resolved but no class objects for them can be
0051  * generated into the target codes. Re-compilers must exit with error on the operations of
0052  * accessing that kind of class objects.
0053  * The <tt>checkcast</tt> operation to the class literal of this interface must be ignored
0054  * and <tt>instanceof</tt> to it always <tt>true</tt>.
0055  */
0056 public class JsHTMLInputElement extends JsClient.HTMLInputElement.Prototype
0057 {
0058     /**
0059      * <p>An <b>internal</b> class containing membership data for its enclosing
0060      * opaque class.</p>
0061      * <p>This class is only used inside of <b>opaque</b> or <b>internal</b> classes or
0062      * class members.</p>
0063      *
0064      * @author <a href="mailto:jianjunliu@126.com">J.J.Liu (Jianjun Liu)</a> at <a href="http://www.jscripter.org" target="_blank">http://www.jscripter.org</a>
0065      * 
0066      * @javascript Re-compilers must report error on resolving an <b>internal</b> class.
0067      */
0068     protected static abstract class Members extends JsClient.HTMLInputElement.Prototype.Members
0069     {
0070         /**
0071          * <p>An <b>internal</b> static field defining a member ID of the field name and
0072          * used internally to define a member of the same name.</p>
0073          * @since 1.0
0074          * @see JsHTMLInputElement#accept
0075          * @see JsHTMLInputElement.Member#accept
0076          * @javascript Re-compilers must report error on accessing an <b>internal</b> field.
0077          */
0078         public final static Mid accept         = id("accept"        );
0079         /**
0080          * <p>An <b>internal</b> static field defining a member ID of the field name and
0081          * used internally to define a member of the same name.</p>
0082          * @since 1.0
0083          * @see JsHTMLInputElement#accessKey
0084          * @see JsHTMLInputElement.Member#accessKey
0085          * @javascript Re-compilers must report error on accessing an <b>internal</b> field.
0086          */
0087         public final static Mid accessKey      = id("accessKey"     );
0088         /**
0089          * <p>An <b>internal</b> static field defining a member ID of the field name and
0090          * used internally to define a member of the same name.</p>
0091          * @since 1.0
0092          * @see JsHTMLInputElement#align
0093          * @see JsHTMLInputElement.Member#align
0094          * @javascript Re-compilers must report error on accessing an <b>internal</b> field.
0095          */
0096         public final static Mid align          = id("align"         );
0097         /**
0098          * <p>An <b>internal</b> static field defining a member ID of the field name and
0099          * used internally to define a member of the same name.</p>
0100          * @since 1.0
0101          * @see JsHTMLInputElement#alt
0102          * @see JsHTMLInputElement.Member#alt
0103          * @javascript Re-compilers must report error on accessing an <b>internal</b> field.
0104          */
0105         public final static Mid alt            = id("alt"           );
0106         /**
0107          * <p>An <b>internal</b> static field defining a member ID of the field name and
0108          * used internally to define a member of the same name.</p>
0109          * @since 1.0
0110          * @see JsHTMLInputElement#checked
0111          * @see JsHTMLInputElement.Member#checked
0112          * @javascript Re-compilers must report error on accessing an <b>internal</b> field.
0113          */
0114         public final static Mid checked        = id("checked"       );
0115         /**
0116          * <p>An <b>internal</b> static field defining a member ID of the field name and
0117          * used internally to define a member of the same name.</p>
0118          * @since 1.0
0119          * @see JsHTMLInputElement#defaultChecked
0120          * @see JsHTMLInputElement.Member#defaultChecked
0121          * @javascript Re-compilers must report error on accessing an <b>internal</b> field.
0122          */
0123         public final static Mid defaultChecked = id("defaultChecked");
0124         /**
0125          * <p>An <b>internal</b> static field defining a member ID of the field name and
0126          * used internally to define a member of the same name.</p>
0127          * @since 1.0
0128          * @see JsHTMLInputElement#defaultValue
0129          * @see JsHTMLInputElement.Member#defaultValue
0130          * @javascript Re-compilers must report error on accessing an <b>internal</b> field.
0131          */
0132         public final static Mid defaultValue   = id("defaultValue"  );
0133         /**
0134          * <p>An <b>internal</b> static field defining a member ID of the field name and
0135          * used internally to define a member of the same name.</p>
0136          * @since 1.0
0137          * @see JsHTMLInputElement#disabled
0138          * @see JsHTMLInputElement.Member#disabled
0139          * @javascript Re-compilers must report error on accessing an <b>internal</b> field.
0140          */
0141         public final static Mid disabled       = id("disabled"      );
0142         /**
0143          * <p>An <b>internal</b> static field defining a member ID of the field name and
0144          * used internally to define a member of the same name.</p>
0145          * @since 1.0
0146          * @see JsHTMLInputElement#form
0147          * @see JsHTMLInputElement.Member#form
0148          * @javascript Re-compilers must report error on accessing an <b>internal</b> field.
0149          */
0150         public final static Mid form           = id("form"          );
0151         /**
0152          * <p>An <b>internal</b> static field defining a member ID of the field name and
0153          * used internally to define a member of the same name.</p>
0154          * @since 1.0
0155          * @see JsHTMLInputElement#maxLength
0156          * @see JsHTMLInputElement.Member#maxLength
0157          * @javascript Re-compilers must report error on accessing an <b>internal</b> field.
0158          */
0159         public final static Mid maxLength      = id("maxLength"     );
0160         /**
0161          * <p>An <b>internal</b> static field defining a member ID of the field name and
0162          * used internally to define a member of the same name.</p>
0163          * @since 1.0
0164          * @see JsHTMLInputElement#name
0165          * @see JsHTMLInputElement.Member#name
0166          * @javascript Re-compilers must report error on accessing an <b>internal</b> field.
0167          */
0168         public final static Mid name           = id("name"          );
0169         /**
0170          * <p>An <b>internal</b> static field defining a member ID of the field name and
0171          * used internally to define a member of the same name.</p>
0172          * @since 1.0
0173          * @see JsHTMLInputElement#readOnly
0174          * @see JsHTMLInputElement.Member#readOnly
0175          * @javascript Re-compilers must report error on accessing an <b>internal</b> field.
0176          */
0177         public final static Mid readOnly       = id("readOnly"      );
0178         /**
0179          * <p>An <b>internal</b> static field defining a member ID of the field name and
0180          * used internally to define a member of the same name.</p>
0181          * @since 1.0
0182          * @see JsHTMLInputElement#size
0183          * @see JsHTMLInputElement.Member#size
0184          * @javascript Re-compilers must report error on accessing an <b>internal</b> field.
0185          */
0186         public final static Mid size           = id("size"          );
0187         /**
0188          * <p>An <b>internal</b> static field defining a member ID of the field name and
0189          * used internally to define a member of the same name.</p>
0190          * @since 1.0
0191          * @see JsHTMLInputElement#src
0192          * @see JsHTMLInputElement.Member#src
0193          * @javascript Re-compilers must report error on accessing an <b>internal</b> field.
0194          */
0195         public final static Mid src            = id("src"           );
0196         /**
0197          * <p>An <b>internal</b> static field defining a member ID of the field name and
0198          * used internally to define a member of the same name.</p>
0199          * @since 1.0
0200          * @see JsHTMLInputElement#tabIndex
0201          * @see JsHTMLInputElement.Member#tabIndex
0202          * @javascript Re-compilers must report error on accessing an <b>internal</b> field.
0203          */
0204         public final static Mid tabIndex       = id("tabIndex"      );
0205         /**
0206          * <p>An <b>internal</b> static field defining a member ID of the field name and
0207          * used internally to define a member of the same name.</p>
0208          * @since 1.0
0209          * @see JsHTMLInputElement#type
0210          * @see JsHTMLInputElement.Member#type
0211          * @javascript Re-compilers must report error on accessing an <b>internal</b> field.
0212          */
0213         public final static Mid type           = id("type"          );
0214         /**
0215          * <p>An <b>internal</b> static field defining a member ID of the field name and
0216          * used internally to define a member of the same name.</p>
0217          * @since 1.0
0218          * @see JsHTMLInputElement#useMap
0219          * @see JsHTMLInputElement.Member#useMap
0220          * @javascript Re-compilers must report error on accessing an <b>internal</b> field.
0221          */
0222         public final static Mid useMap         = id("useMap"        );
0223         /**
0224          * <p>An <b>internal</b> static field defining a member ID of the field name and
0225          * used internally to define a member of the same name.</p>
0226          * @since 1.0
0227          * @see JsHTMLInputElement#value
0228          * @see JsHTMLInputElement.Member#value
0229          * @javascript Re-compilers must report error on accessing an <b>internal</b> field.
0230          */
0231         public final static Mid value          = id("value"         );
0232 
0233         /**
0234          * <p>An <b>internal</b> static field defining a member ID of the field name and
0235          * used internally to define a member of the same name.</p>
0236          * @since 1.0
0237          * @see JsHTMLInputElement#onblur
0238          * @see JsHTMLInputElement.Member#onblur
0239          * @javascript Re-compilers must report error on accessing an <b>internal</b> field.
0240          */
0241         public final static Mid onblur   = id("onblur"  );
0242         /**
0243          * <p>An <b>internal</b> static field defining a member ID of the field name and
0244          * used internally to define a member of the same name.</p>
0245          * @since 1.0
0246          * @see JsHTMLInputElement#onchange
0247          * @see JsHTMLInputElement.Member#onchange
0248          * @javascript Re-compilers must report error on accessing an <b>internal</b> field.
0249          */
0250         public final static Mid onchange = id("onchange");
0251         /**
0252          * <p>An <b>internal</b> static field defining a member ID of the field name and
0253          * used internally to define a member of the same name.</p>
0254          * @since 1.0
0255          * @see JsHTMLInputElement#onclick
0256          * @see JsHTMLInputElement.Member#onclick
0257          * @javascript Re-compilers must report error on accessing an <b>internal</b> field.
0258          */
0259         public final static Mid onclick  = id("onclick" );
0260         /**
0261          * <p>An <b>internal</b> static field defining a member ID of the field name and
0262          * used internally to define a member of the same name.</p>
0263          * @since 1.0
0264          * @see JsHTMLInputElement#onfocus
0265          * @see JsHTMLInputElement.Member#onfocus
0266          * @javascript Re-compilers must report error on accessing an <b>internal</b> field.
0267          */
0268         public final static Mid onfocus  = id("onfocus" );
0269     }
0270 
0271     /**
0272      * <p>An <b>opaque</b> class representing members of its enclosing <b>opaque</b> type.</p>
0273      * <p>Note that, this class is <b>opaque</b> but its constructors are all <b>internal</b>. 
0274      * This class and the subclasses of this class are used to declare either <b>opaque</b> 
0275      * <tt>public</tt> instance fields of the opaque type {@link js.Var.Member} or the 
0276      * <b>opaque</b> <tt>public</tt> static fields of other <b>opaque</b> types while their 
0277      * constructors are used to define the fields inside <b>opaque</b> classes. Under 
0278      * either circumstance, the field names must be exactly same as the member names, as 
0279      * the <b>opaque</b> fields of <b>opaque</b> types are resolved by re-compilers directly 
0280      * based on the field names.</p>
0281      *
0282      * @author <a href="mailto:jianjunliu@126.com">J.J.Liu (Jianjun Liu)</a> at <a href="http://www.jscripter.org" target="_blank">http://www.jscripter.org</a>
0283      * 
0284      * @javascript <b>Opaque</b> types can be resolved but no class objects for them can be created
0285      * in the target codes. Re-compilers must exit with error on operations accessing that kind 
0286      * of class objects.
0287      * Re-compilers must resolve an <b>opaque</b> instance field declared by this class in
0288      * {@link js.Var.Member} or its subclasses to the JavaScript identifier: 
0289      * <pre>q.m</pre>
0290      * where <tt>m</tt> is the identifier of the field name and <tt>q</tt> is the identifier
0291      * resolved from the instance of the enclosing member. Re-compilers must resolve an 
0292      * <b>opaque</b> static field declared by this class in <b>opaque</b> types other than 
0293      * {@link js.Var.Member} and its subclasses to the JavaScript identifier: 
0294      * <pre>m</pre>
0295      * where <tt>m</tt> is the identifier of the field name. And re-compilers must report
0296      * error on the access to <b>opaque</b> fields declared by this class under any other 
0297      * circumstances.
0298      */
0299     public static class Member extends JsClient.HTMLInputElement.Prototype.Member
0300     {
0301         /**
0302          * <p>Internally constructs a member based on a qualifying member.</p>
0303          * <p>This constructor is <b>internal</b> and only called inside of <b>opaque</b>
0304          * or <b>internal</b> classes or class members.</p>
0305          * <p>Note that, this constructor is <b>internal</b> but its declaring class is
0306          * <b>opaque</b>. This constructor is used to define <b>opaque</b> instance fields 
0307          * declared in the declaring class of this constructor itself or its subclasses. 
0308          * Under this circumstance, the field names must be exactly same as the member 
0309          * names, as the <b>opaque</b> instance fields of the <b>opaque</b> type 
0310          * {@link js.Var.Member} or its subclasses are resolved by re-compilers directly
0311          * to their names appending to the name resolved from the specified qualifying 
0312          * member with a dot in between.</p>
0313          * @param q A qualifying member
0314          * @param mid The ID of the member to construct
0315          * @since 1.0
0316          * @javascript Re-compilers must report error on the invocation to an <b>internal</b> constructor.
0317          */
0318         public Member(JsObject.Member q, Mid mid) {
0319             super(q, mid);
0320         }
0321         /**
0322          * <p>Internally constructs a member without a qualifying member.</p>
0323          * <p>This constructor is <b>internal</b> and only called inside of <b>opaque</b>
0324          * or <b>internal</b> classes or class members.</p>
0325          * <p>Note that, this constructor is <b>internal</b> but its declaring class is
0326          * <b>opaque</b>. This constructor is used to define <b>opaque</b> static fields, 
0327          * declared in <b>opaque</b> types other than the declaring class of this constructor 
0328          * itself and its subclasses. Under this circumstance, the field names must be
0329          * exactly same as the member names, as the <b>opaque</b> static fields of <b>opaque</b>
0330          * types are generally resolved by re-compilers directly to identifiers of their names.</p>
0331          * @param mid The ID of the member to construct
0332          * @since 1.0
0333          * @javascript Re-compilers must report error on the invocation to an <b>internal</b> constructor.
0334          */
0335         public Member(Mid mid) {
0336             super(mid);
0337         }
0338         @Override
0339         /**
0340          * <p>Evaluates the property, represented by the current member instance, of the
0341          * argument object.</p>
0342          * @param o The argument object
0343          * @return The value of the current member based on the object argument.
0344          * @since 1.0
0345          * @javascript Re-compilers must convert the instance invocation of this method into
0346          * the JavaScript expression: 
0347          * <pre>o.m</pre>
0348          * where <tt>m</tt> is the identifier name resolved from the current member
0349          * instance of the invocation.
0350          */
0351         public JsHTMLInputElement with(ObjectLike o) {
0352             return new JsHTMLInputElement(super.with(o));
0353         }
0354 
0355         /**
0356          * <p>An <b>opaque</b> instance field defining a sub-member that is named by the
0357          * name of this field, qualified by the current member instance of the field, and 
0358          * to access the property of the name on an object.</p>
0359          * <p>The property, identified by this member, of a {@link JsHTMLInputElement} 
0360          * object is a read-only reference to the {@link JsHTMLFormElement} object 
0361          * containing the control. It is <tt>null</tt> if the control is not within the 
0362          * context of a form.</p>
0363          * @since 1.0
0364          * @javascript Re-compilers must resolve the member of this instance field to the
0365          * identifier of the field name appending to the identifier resolved from its 
0366          * qualifying member with a dot in between.
0367          */
0368         public final JsHTMLFormElement.Member form = new JsHTMLFormElement.Member(this, Members.form);
0369         /**
0370          * <p>An <b>opaque</b> instance field defining a sub-member that is named by the
0371          * name of this field, qualified by the current member instance of the field, and 
0372          * to access the property of the name on an object.</p>
0373          * <p>The property, identified by this member, of a {@link JsHTMLInputElement} 
0374          * object refers to a string that mirrors the <tt>accept</tt> attribute of the 
0375          * image element. When {@link #type} is "file", the property is a comma-separated 
0376          * list of MIME types specifying the types of files that may be uploaded to and 
0377          * handled correctly by the server processing the {@link #form}.</p>
0378          * @since 1.0
0379          * @javascript Re-compilers must resolve the member of this instance field to the
0380          * identifier of the field name appending to the identifier resolved from its 
0381          * qualifying member with a dot in between.
0382          */
0383         public final Value.String.Member accept       = new Value.String.Member(this, Members.accept      );
0384         /**
0385          * <p>An <b>opaque</b> instance field defining a sub-member that is named by the
0386          * name of this field, qualified by the current member instance of the field, and 
0387          * to access the property of the name on an object.</p>
0388          * <p>The property, identified by this member, of a {@link JsHTMLInputElement} 
0389          * object refers to a string specifying single character access key to the 
0390          * element. An access key is a single character from the document character set. 
0391          * Pressing an access key assigned to an element gives focus to the element. 
0392          * The action that occurs when an element receives focus depends on the element.</p> 
0393          * @since 1.0
0394          * @javascript Re-compilers must resolve the member of this instance field to the
0395          * identifier of the field name appending to the identifier resolved from its 
0396          * qualifying member with a dot in between.
0397          */
0398         public final Value.String.Member accessKey    = new Value.String.Member(this, Members.accessKey   );
0399         /**
0400          * <p>An <b>opaque</b> instance field defining a sub-member that is named by the
0401          * name of this field, qualified by the current member instance of the field, and 
0402          * to access the property of the name on an object.</p>
0403          * <p>The property, identified by this member, of a {@link JsHTMLInputElement} 
0404          * object refers to a string specifying the horizontal alignment of the element 
0405          * with respect to the surrounding context. Possible values are:
0406          * <ul>
0407          * <li><tt>"left"</tt>: text lines are rendered flush left.</li>
0408          * <li><tt>"center"</tt>: text lines are centered.</li>
0409          * <li><tt>"right"</tt>: text lines are rendered flush right.</li>
0410          * <li><tt>"justify"</tt>: text lines are justified to both margins.</li>
0411          * </ul>
0412          * The default value of this attribute depends on the base text direction. 
0413          * For left to right text, the default is "left", while for right to left text, 
0414          * it is "right".</p>
0415          * <p>This attribute is deprecated by HTML 4.01 and should be handled by style sheets.</p> 
0416          * @since 1.0
0417          * @javascript Re-compilers must resolve the member of this instance field to the
0418          * identifier of the field name appending to the identifier resolved from its 
0419          * qualifying member with a dot in between.
0420          */
0421         public final Value.String.Member align        = new Value.String.Member(this, Members.align       );
0422         /**
0423          * <p>An <b>opaque</b> instance field defining a sub-member that is named by the
0424          * name of this field, qualified by the current member instance of the field, and 
0425          * to access the property of the name on an object.</p>
0426          * <p>The property, identified by this member, of a {@link JsHTMLInputElement} 
0427          * object refers to a string specifying an alternate text for web browsers not 
0428          * rendering the normal content of this element.</p>
0429          * @since 1.0
0430          * @javascript Re-compilers must resolve the member of this instance field to the
0431          * identifier of the field name appending to the identifier resolved from its 
0432          * qualifying member with a dot in between.
0433          */
0434         public final Value.String.Member alt          = new Value.String.Member(this, Members.alt         );
0435         /**
0436          * <p>An <b>opaque</b> instance field defining a sub-member that is named by the
0437          * name of this field, qualified by the current member instance of the field, and 
0438          * to access the property of the name on an object.</p>
0439          * <p>The property, identified by this member, of a {@link JsHTMLInputElement} 
0440          * object refers to a string that holds the initial value displayed by the 
0441          * element when {@link #type} is "text", "password" or "file". When the {@link #form} 
0442          * is reset, the element is restored to this value. Changing the value of this 
0443          * property also changes the {@link #value} property and the currently displayed 
0444          * value. The value of the property does not change if the contents of the corresponding 
0445          * form control, in an interactive browser, changes.</p>
0446          * @since 1.0
0447          * @javascript Re-compilers must resolve the member of this instance field to the
0448          * identifier of the field name appending to the identifier resolved from its 
0449          * qualifying member with a dot in between.
0450          */
0451         public final Value.String.Member defaultValue = new Value.String.Member(this, Members.defaultValue);
0452         /**
0453          * <p>An <b>opaque</b> instance field defining a sub-member that is named by the
0454          * name of this field, qualified by the current member instance of the field, and 
0455          * to access the property of the name on an object.</p>
0456          * <p>The property, identified by this member, of a {@link JsHTMLInputElement} 
0457          * object refers to a numeric value that specifies the maximum number of characters 
0458          * that the user is allowed to enter in the text field when {@link #type} is 
0459          * "text" or "password".</p>
0460          * @since 1.0
0461          * @javascript Re-compilers must resolve the member of this instance field to the
0462          * identifier of the field name appending to the identifier resolved from its 
0463          * qualifying member with a dot in between.
0464          */
0465         public final Value.Number.Member maxLength    = new Value.Number.Member(this, Members.maxLength   );
0466         /**
0467          * <p>An <b>opaque</b> instance field defining a sub-member that is named by the
0468          * name of this field, qualified by the current member instance of the field, and 
0469          * to access the property of the name on an object.</p>
0470          * <p>The property, identified by this member, of a {@link JsHTMLInputElement} 
0471          * object refers to a string specifying the name of the input control when 
0472          * submitted with the {@link #form}.</p>
0473          * @since 1.0
0474          * @javascript Re-compilers must resolve the member of this instance field to the
0475          * identifier of the field name appending to the identifier resolved from its 
0476          * qualifying member with a dot in between.
0477          */
0478         public final Value.String.Member name         = new Value.String.Member(this, Members.name        );
0479         /**
0480          * <p>An <b>opaque</b> instance field defining a sub-member that is named by the
0481          * name of this field, qualified by the current member instance of the field, and 
0482          * to access the property of the name on an object.</p>
0483          * <p>The property, identified by this member, of a {@link JsHTMLInputElement} 
0484          * object refers to an integer value that designates the initial width of the 
0485          * control. The width is given in pixels except when {@link #type} attribute has 
0486          * the value "text" or "password". In that case, its value refers to the number 
0487          * of characters.</p>
0488          * @since 1.0
0489          * @javascript Re-compilers must resolve the member of this instance field to the
0490          * identifier of the field name appending to the identifier resolved from its 
0491          * qualifying member with a dot in between.
0492          */
0493         public final Value.Number.Member size         = new Value.Number.Member(this, Members.size        );
0494         /**
0495          * <p>An <b>opaque</b> instance field defining a sub-member that is named by the
0496          * name of this field, qualified by the current member instance of the field, and 
0497          * to access the property of the name on an object.</p>
0498          * <p>The property, identified by this member, of a {@link JsHTMLInputElement} 
0499          * object refers to a string specifying the URL of the image to be used to 
0500          * decorate the graphical submit button when {@link #type} is "image".</p> 
0501          * @since 1.0
0502          * @javascript Re-compilers must resolve the member of this instance field to the
0503          * identifier of the field name appending to the identifier resolved from its 
0504          * qualifying member with a dot in between.
0505          */
0506         public final Value.String.Member src          = new Value.String.Member(this, Members.src         );
0507         /**
0508          * <p>An <b>opaque</b> instance field defining a sub-member that is named by the
0509          * name of this field, qualified by the current member instance of the field, and 
0510          * to access the property of the name on an object.</p>
0511          * <p>The property, identified by this member, of a {@link JsHTMLInputElement} 
0512          * object refers to an index number representing the element's position in the 
0513          * tabbing order.</p>
0514          * @since 1.0
0515          * @javascript Re-compilers must resolve the member of this instance field to the
0516          * identifier of the field name appending to the identifier resolved from its 
0517          * qualifying member with a dot in between.
0518          */
0519         public final Value.Number.Member tabIndex     = new Value.Number.Member(this, Members.tabIndex    );
0520         /**
0521          * <p>An <b>opaque</b> instance field defining a sub-member that is named by the
0522          * name of this field, qualified by the current member instance of the field, and 
0523          * to access the property of the name on an object.</p>
0524          * <p>The property, identified by this member, of a {@link JsHTMLInputElement} 
0525          * object refers to a string specifying the type of the input element. Possible 
0526          * values are: "text", "password", "checkbox", "radio", "submit", "reset", 
0527          * "file", "hidden", "image" or "button". The default value is "text".</p>
0528          * @since 1.0
0529          * @javascript Re-compilers must resolve the member of this instance field to the
0530          * identifier of the field name appending to the identifier resolved from its 
0531          * qualifying member with a dot in between.
0532          */
0533         public final Value.String.Member type         = new Value.String.Member(this, Members.type        );
0534         /**
0535          * <p>An <b>opaque</b> instance field defining a sub-member that is named by the
0536          * name of this field, qualified by the current member instance of the field, and 
0537          * to access the property of the name on an object.</p>
0538          * <p>The property, identified by this member, of a {@link JsHTMLInputElement} 
0539          * object refers to a string specifying a client-side image map for the image 
0540          * when {@link #type} is "image".</p> 
0541          * @since 1.0
0542          * @javascript Re-compilers must resolve the member of this instance field to the
0543          * identifier of the field name appending to the identifier resolved from its 
0544          * qualifying member with a dot in between.
0545          */
0546         public final Value.String.Member useMap       = new Value.String.Member(this, Members.useMap      );
0547         /**
0548          * <p>An <b>opaque</b> instance field defining a sub-member that is named by the
0549          * name of this field, qualified by the current member instance of the field, and 
0550          * to access the property of the name on an object.</p>
0551          * <p>The property, identified by this member, of a {@link JsHTMLInputElement} 
0552          * object refers to a string value that is passed to the web server when the 
0553          * {@link #form} is submitted. If {@link #type} is "text", "password", or "file", 
0554          * the property is the editable text contents contained by the input element. 
0555          * If {@link #type} is "button", "submit", or "reset", the property is the 
0556          * non-editable label that appears in the button. For security reasons, the 
0557          * {@link #value} property of {@link JsHTMLFileUploadElement} may be read-only. 
0558          * Similarly, this property for {@link JsHTMLPasswordElement} may not contain 
0559          * the user's actual input.</p> 
0560          * @since 1.0
0561          * @javascript Re-compilers must resolve the member of this instance field to the
0562          * identifier of the field name appending to the identifier resolved from its 
0563          * qualifying member with a dot in between.
0564          */
0565         public final Value.String.Member value        = new Value.String.Member(this, Members.value       );
0566         /**
0567          * <p>An <b>opaque</b> instance field defining a sub-member that is named by the
0568          * name of this field, qualified by the current member instance of the field, and 
0569          * to access the property of the name on an object.</p>
0570          * <p>The property, identified by this member, of a {@link JsHTMLInputElement} 
0571          * object refers to a boolean value that specifies whether the element is 
0572          * "checked" or not, mirroring the "checked" attribute of the HTML input element, 
0573          * if {@link #type} is "radio" or "checkbox". Setting this property changes the 
0574          * visual appearance of the element.</p> 
0575          * @since 1.0
0576          * @javascript Re-compilers must resolve the member of this instance field to the
0577          * identifier of the field name appending to the identifier resolved from its 
0578          * qualifying member with a dot in between.
0579          */
0580         public final Value.Boolean.Member checked        = new Value.Boolean.Member(this, Members.checked       );
0581         /**
0582          * <p>An <b>opaque</b> instance field defining a sub-member that is named by the
0583          * name of this field, qualified by the current member instance of the field, and 
0584          * to access the property of the name on an object.</p>
0585          * <p>The property, identified by this member, of a {@link JsHTMLInputElement} 
0586          * object refers to a string that holds the initial value of the <tt>checked</tt> 
0587          * attribute as it appears in the document source, when {@link #type} is "radio" 
0588          * or "checkbox". When the {@link #form} is reset, the {@link #checked} property 
0589          * is restored to this value. Changing the value of this property also changes 
0590          * the {@link #checked} property and the current checked state of the control 
0591          * element. The value of this property does not change if the state of the 
0592          * corresponding form control, in an interactive browser, changes.</p>
0593          * @since 1.0
0594          * @javascript Re-compilers must resolve the member of this instance field to the
0595          * identifier of the field name appending to the identifier resolved from its 
0596          * qualifying member with a dot in between.
0597          */
0598         public final Value.Boolean.Member defaultChecked = new Value.Boolean.Member(this, Members.defaultChecked);
0599         /**
0600          * <p>An <b>opaque</b> instance field defining a sub-member that is named by the
0601          * name of this field, qualified by the current member instance of the field, and 
0602          * to access the property of the name on an object.</p>
0603          * <p>The property, identified by this member, of a {@link JsHTMLInputElement} 
0604          * object refers to a boolean value that specifies whether the element is 
0605          * disabled and is unavailable for user input.</p> 
0606          * @since 1.0
0607          * @javascript Re-compilers must resolve the member of this instance field to the
0608          * identifier of the field name appending to the identifier resolved from its 
0609          * qualifying member with a dot in between.
0610          */
0611         public final Value.Boolean.Member disabled       = new Value.Boolean.Member(this, Members.disabled      );
0612         /**
0613          * <p>An <b>opaque</b> instance field defining a sub-member that is named by the
0614          * name of this field, qualified by the current member instance of the field, and 
0615          * to access the property of the name on an object.</p>
0616          * <p>The property, identified by this member, of a {@link JsHTMLInputElement} 
0617          * object refers to a boolean value that specifies whether the input control is 
0618          * read-only. Relevant only when {@link #type} has the value "text" or "password".</p> 
0619          * @since 1.0
0620          * @javascript Re-compilers must resolve the member of this instance field to the
0621          * identifier of the field name appending to the identifier resolved from its 
0622          * qualifying member with a dot in between.
0623          */
0624         public final Value.Boolean.Member readOnly       = new Value.Boolean.Member(this, Members.readOnly      );
0625         /**
0626          * <p>An <b>opaque</b> instance field defining a sub-member that is named by the
0627          * name of this field, qualified by the current member instance of the field, and 
0628          * to access the property of the name on an object.</p>
0629          * <p>The property, identified by this member, of a {@link JsHTMLInputElement} object is a 
0630          * reference to an event handler function invoked when the user takes keyboard focus away 
0631          * from the input control element. Calling {@link JsHTMLInputElement#blur()} to 
0632          * remove focus from an element does not invoke {@link #onblur} for that object. 
0633          * Note, however, that calling {@link JsHTMLInputElement#focus()} to transfer 
0634          * focus to some other element causes the {@link #onblur} to be invoked for 
0635          * whichever element currently has the focus.</p> 
0636          * @since 1.0
0637          * @see JsElement#addEventListener(String, JsFunction, Boolean)
0638          * @see JsElement#attachEvent(String, JsFunction)
0639          * @javascript Re-compilers must resolve the member of this instance field to the
0640          * identifier of the field name appending to the identifier resolved from its 
0641          * qualifying member with a dot in between.
0642          */
0643         public final JsFunction.Member<?> onblur   = new JsFunction.Member<Object>(this, Members.onblur  );
0644         /**
0645          * <p>An <b>opaque</b> instance field defining a sub-member that is named by the
0646          * name of this field, qualified by the current member instance of the field, and 
0647          * to access the property of the name on an object.</p>
0648          * <p>The property, identified by this member, of a {@link JsHTMLInputElement} object is a 
0649          * reference to an event handler function invoked for text-entry elements when the 
0650          * user changes the displayed text and then commits those changes by tabbing or 
0651          * clicking to transfer keyboard focus to another element. This event handler is 
0652          * not invoked for every keystroke in the input control but only when the user 
0653          * completes an edit. Toggle button elements of {@link #type} "checkbox" and 
0654          * "radio" may also fire this event in addition to the {@link #onclick} event 
0655          * when the user toggles them.</p> 
0656          * @since 1.0
0657          * @see JsElement#addEventListener(String, JsFunction, Boolean)
0658          * @see JsElement#attachEvent(String, JsFunction)
0659          * @javascript Re-compilers must resolve the member of this instance field to the
0660          * identifier of the field name appending to the identifier resolved from its 
0661          * qualifying member with a dot in between.
0662          */
0663         public final JsFunction.Member<?> onchange = new JsFunction.Member<Object>(this, Members.onchange);
0664         /**
0665          * <p>An <b>opaque</b> instance field defining a sub-member that is named by the
0666          * name of this field, qualified by the current member instance of the field, and 
0667          * to access the property of the name on an object.</p>
0668          * <p>The property, identified by this member, of a {@link JsHTMLInputElement} object is a 
0669          * reference to an event handler function invoked for push button and toggle 
0670          * button elements when the user activates the button with a mouse click or by 
0671          * keyboard traversal. The handler is NOT invoked when the {@link JsHTMLInputElement#click()} 
0672          * method is called for the element. When {@link #type} is "reset" and "submit", 
0673          * this handler is performed in addition to the default actions of resetting 
0674          * and submitting respectively the {@link #form} that contains the element. You 
0675          * can also prevent the default actions by returning <tt>false</tt> from this 
0676          * handler or from {@link JsHTMLFormElement#onreset} and {@link JsHTMLFormElement#onsubmit} 
0677          * of the {@link #form}.</p> 
0678          * @since 1.0
0679          * @see JsElement#addEventListener(String, JsFunction, Boolean)
0680          * @see JsElement#attachEvent(String, JsFunction)
0681          * @javascript Re-compilers must resolve the member of this instance field to the
0682          * identifier of the field name appending to the identifier resolved from its 
0683          * qualifying member with a dot in between.
0684          */
0685         public final JsFunction.Member<?> onclick  = new JsFunction.Member<Object>(this, Members.onclick );
0686         /**
0687          * <p>An <b>opaque</b> instance field defining a sub-member that is named by the
0688          * name of this field, qualified by the current member instance of the field, and 
0689          * to access the property of the name on an object.</p>
0690          * <p>The property, identified by this member, of a {@link JsHTMLInputElement} object is a 
0691          * reference to an event handler function invoked when the user gives keyboard 
0692          * focus to the input control element. Calling {@link JsHTMLInputElement#focus()} to 
0693          * set focus to an element does not invoke {@link #onfocus} for that object. 
0694          * Note, however, that calling {@link JsHTMLInputElement#focus()} to transfer 
0695          * focus to some other element causes the {@link #onblur} to be invoked for 
0696          * whichever element currently has the focus.</p> 
0697          * @since 1.0
0698          * @see JsElement#addEventListener(String, JsFunction, Boolean)
0699          * @see JsElement#attachEvent(String, JsFunction)
0700          * @javascript Re-compilers must resolve the member of this instance field to the
0701          * identifier of the field name appending to the identifier resolved from its 
0702          * qualifying member with a dot in between.
0703          */
0704         public final JsFunction.Member<?> onfocus  = new JsFunction.Member<Object>(this, Members.onfocus );
0705     }
0706 
0707     /**
0708      * <p>Casts an <b>opaque</b> object to the current <b>opaque</b> type by wrapping it
0709      * with the wrapping constructor.</p>
0710      * @param var The argument of an <b>opaque</b> object.
0711      * @since 1.0
0712      * @javascript Re-compilers must ignore the construction operation of this constructor,
0713      * that is, replacing it with its only argument.
0714      */
0715     public JsHTMLInputElement(JsObject var) {
0716         super(var);
0717     }
0718 
0719     /**
0720      * <p>An <b>opaque</b> static field defining a member that is named by the field name
0721      * without a qualifying member and to access the property of the name on an object.</p>
0722      * <p>The property, identified by this member, of a {@link JsHTMLInputElement} 
0723      * object is a read-only reference to the {@link JsHTMLFormElement} object 
0724      * containing the control. It is <tt>null</tt> if the control is not within the 
0725      * context of a form.</p>
0726      * @since 1.0
0727      * @javascript Re-compilers must resolve the member of this static field to the
0728      * identifier of the field name.
0729      */
0730     public static final JsHTMLFormElement.Member form = new JsHTMLFormElement.Member(Members.form);
0731     /**
0732      * <p>An <b>opaque</b> static field defining a member that is named by the field name
0733      * without a qualifying member and to access the property of the name on an object.</p>
0734      * <p>The property, identified by this member, of a {@link JsHTMLInputElement} 
0735      * object refers to a string that mirrors the <tt>accept</tt> attribute of the 
0736      * image element. When {@link #type} is "file", the property is a comma-separated 
0737      * list of MIME types specifying the types of files that may be uploaded to and 
0738      * handled correctly by the server processing the {@link #form}.</p>
0739      * @since 1.0
0740      * @javascript Re-compilers must resolve the member of this static field to the
0741      * identifier of the field name.
0742      */
0743     public static final Value.String.Member accept       = new Value.String.Member(Members.accept      );
0744     /**
0745      * <p>An <b>opaque</b> static field defining a member that is named by the field name
0746      * without a qualifying member and to access the property of the name on an object.</p>
0747      * <p>The property, identified by this member, of a {@link JsHTMLInputElement} 
0748      * object refers to a string specifying single character access key to the 
0749      * element. An access key is a single character from the document character set. 
0750      * Pressing an access key assigned to an element gives focus to the element. 
0751      * The action that occurs when an element receives focus depends on the element.</p> 
0752      * @since 1.0
0753      * @javascript Re-compilers must resolve the member of this static field to the
0754      * identifier of the field name.
0755      */
0756     public static final Value.String.Member accessKey    = new Value.String.Member(Members.accessKey   );
0757     /**
0758      * <p>An <b>opaque</b> static field defining a member that is named by the field name
0759      * without a qualifying member and to access the property of the name on an object.</p>
0760      * <p>The property, identified by this member, of a {@link JsHTMLInputElement} 
0761      * object refers to a string specifying the horizontal alignment of the element 
0762      * with respect to the surrounding context. Possible values are:
0763      * <ul>
0764      * <li><tt>"left"</tt>: text lines are rendered flush left.</li>
0765      * <li><tt>"center"</tt>: text lines are centered.</li>
0766      * <li><tt>"right"</tt>: text lines are rendered flush right.</li>
0767      * <li><tt>"justify"</tt>: text lines are justified to both margins.</li>
0768      * </ul>
0769      * The default value of this attribute depends on the base text direction. 
0770      * For left to right text, the default is "left", while for right to left text, 
0771      * it is "right".</p>
0772      * <p>This attribute is deprecated by HTML 4.01 and should be handled by style sheets.</p> 
0773      * @since 1.0
0774      * @javascript Re-compilers must resolve the member of this static field to the
0775      * identifier of the field name.
0776      */
0777     public static final Value.String.Member align        = new Value.String.Member(Members.align       );
0778     /**
0779      * <p>An <b>opaque</b> static field defining a member that is named by the field name
0780      * without a qualifying member and to access the property of the name on an object.</p>
0781      * <p>The property, identified by this member, of a {@link JsHTMLInputElement} 
0782      * object refers to a string specifying an alternate text for web browsers not 
0783      * rendering the normal content of this element.</p>
0784      * @since 1.0
0785      * @javascript Re-compilers must resolve the member of this static field to the
0786      * identifier of the field name.
0787      */
0788     public static final Value.String.Member alt          = new Value.String.Member(Members.alt         );
0789     /**
0790      * <p>An <b>opaque</b> static field defining a member that is named by the field name
0791      * without a qualifying member and to access the property of the name on an object.</p>
0792      * <p>The property, identified by this member, of a {@link JsHTMLInputElement} 
0793      * object refers to a string that holds the initial value displayed by the 
0794      * element when {@link #type} is "text", "password" or "file". When the {@link #form} 
0795      * is reset, the element is restored to this value. Changing the value of this 
0796      * property also changes the {@link #value} property and the currently displayed 
0797      * value. The value of the property does not change if the contents of the corresponding 
0798      * form control, in an interactive browser, changes.</p>
0799      * @since 1.0
0800      * @javascript Re-compilers must resolve the member of this static field to the
0801      * identifier of the field name.
0802      */
0803     public static final Value.String.Member defaultValue = new Value.String.Member(Members.defaultValue);
0804     /**
0805      * <p>An <b>opaque</b> static field defining a member that is named by the field name
0806      * without a qualifying member and to access the property of the name on an object.</p>
0807      * <p>The property, identified by this member, of a {@link JsHTMLInputElement} 
0808      * object refers to a numeric value that specifies the maximum number of characters 
0809      * that the user is allowed to enter in the text field when {@link #type} is 
0810      * "text" or "password".</p>
0811      * @since 1.0
0812      * @javascript Re-compilers must resolve the member of this static field to the
0813      * identifier of the field name.
0814      */
0815     public static final Value.Number.Member maxLength    = new Value.Number.Member(Members.maxLength   );
0816     /**
0817      * <p>An <b>opaque</b> static field defining a member that is named by the field name
0818      * without a qualifying member and to access the property of the name on an object.</p>
0819      * <p>The property, identified by this member, of a {@link JsHTMLInputElement} 
0820      * object refers to a string specifying the name of the input control when 
0821      * submitted with the {@link #form}.</p>
0822      * @since 1.0
0823      * @javascript Re-compilers must resolve the member of this static field to the
0824      * identifier of the field name.
0825      */
0826     public static final Value.String.Member name         = new Value.String.Member(Members.name        );
0827     /**
0828      * <p>An <b>opaque</b> static field defining a member that is named by the field name
0829      * without a qualifying member and to access the property of the name on an object.</p>
0830      * <p>The property, identified by this member, of a {@link JsHTMLInputElement} 
0831      * object refers to an integer value that designates the initial width of the 
0832      * control. The width is given in pixels except when {@link #type} attribute has 
0833      * the value "text" or "password". In that case, its value refers to the number 
0834      * of characters.</p>
0835      * @since 1.0
0836      * @javascript Re-compilers must resolve the member of this static field to the
0837      * identifier of the field name.
0838      */
0839     public static final Value.Number.Member size         = new Value.Number.Member(Members.size        );
0840     /**
0841      * <p>An <b>opaque</b> static field defining a member that is named by the field name
0842      * without a qualifying member and to access the property of the name on an object.</p>
0843      * <p>The property, identified by this member, of a {@link JsHTMLInputElement} 
0844      * object refers to a string specifying the URL of the image to be used to 
0845      * decorate the graphical submit button when {@link #type} is "image".</p> 
0846      * @since 1.0
0847      * @javascript Re-compilers must resolve the member of this static field to the
0848      * identifier of the field name.
0849      */
0850     public static final Value.String.Member src          = new Value.String.Member(Members.src         );
0851     /**
0852      * <p>An <b>opaque</b> static field defining a member that is named by the field name
0853      * without a qualifying member and to access the property of the name on an object.</p>
0854      * <p>The property, identified by this member, of a {@link JsHTMLInputElement} 
0855      * object refers to an index number representing the element's position in the 
0856      * tabbing order.</p>
0857      * @since 1.0
0858      * @javascript Re-compilers must resolve the member of this static field to the
0859      * identifier of the field name.
0860      */
0861     public static final Value.Number.Member tabIndex     = new Value.Number.Member(Members.tabIndex    );
0862     /**
0863      * <p>An <b>opaque</b> static field defining a member that is named by the field name
0864      * without a qualifying member and to access the property of the name on an object.</p>
0865      * <p>The property, identified by this member, of a {@link JsHTMLInputElement} 
0866      * object refers to a string specifying the type of the input element. Possible 
0867      * values are: "text", "password", "checkbox", "radio", "submit", "reset", 
0868      * "file", "hidden", "image" or "button". The default value is "text".</p>
0869      * @since 1.0
0870      * @javascript Re-compilers must resolve the member of this static field to the
0871      * identifier of the field name.
0872      */
0873     public static final Value.String.Member type         = new Value.String.Member(Members.type        );
0874     /**
0875      * <p>An <b>opaque</b> static field defining a member that is named by the field name
0876      * without a qualifying member and to access the property of the name on an object.</p>
0877      * <p>The property, identified by this member, of a {@link JsHTMLInputElement} 
0878      * object refers to a string specifying a client-side image map for the image 
0879      * when {@link #type} is "image".</p> 
0880      * @since 1.0
0881      * @javascript Re-compilers must resolve the member of this static field to the
0882      * identifier of the field name.
0883      */
0884     public static final Value.String.Member useMap       = new Value.String.Member(Members.useMap      );
0885     /**
0886      * <p>An <b>opaque</b> static field defining a member that is named by the field name
0887      * without a qualifying member and to access the property of the name on an object.</p>
0888      * <p>The property, identified by this member, of a {@link JsHTMLInputElement} 
0889      * object refers to a string value that is passed to the web server when the 
0890      * {@link #form} is submitted. If {@link #type} is "text", "password", or "file", 
0891      * the property is the editable text contents contained by the input element. 
0892      * If {@link #type} is "button", "submit", or "reset", the property is the 
0893      * non-editable label that appears in the button. For security reasons, the 
0894      * {@link #value} property of {@link JsHTMLFileUploadElement} may be read-only. 
0895      * Similarly, this property for {@link JsHTMLPasswordElement} may not contain 
0896      * the user's actual input.</p> 
0897      * @since 1.0
0898      * @javascript Re-compilers must resolve the member of this static field to the
0899      * identifier of the field name.
0900      */
0901     public static final Value.String.Member value        = new Value.String.Member(Members.value       );
0902     /**
0903      * <p>An <b>opaque</b> static field defining a member that is named by the field name
0904      * without a qualifying member and to access the property of the name on an object.</p>
0905      * <p>The property, identified by this member, of a {@link JsHTMLInputElement} 
0906      * object refers to a boolean value that specifies whether the element is 
0907      * "checked" or not, mirroring the "checked" attribute of the HTML input element, 
0908      * if {@link #type} is "radio" or "checkbox". Setting this property changes the 
0909      * visual appearance of the element.</p> 
0910      * @since 1.0
0911      * @javascript Re-compilers must resolve the member of this static field to the
0912      * identifier of the field name.
0913      */
0914     public static final Value.Boolean.Member checked        = new Value.Boolean.Member(Members.checked       );
0915     /**
0916      * <p>An <b>opaque</b> static field defining a member that is named by the field name
0917      * without a qualifying member and to access the property of the name on an object.</p>
0918      * <p>The property, identified by this member, of a {@link JsHTMLInputElement} 
0919      * object refers to a string that holds the initial value of the <tt>checked</tt> 
0920      * attribute as it appears in the document source, when {@link #type} is "radio" 
0921      * or "checkbox". When the {@link #form} is reset, the {@link #checked} property 
0922      * is restored to this value. Changing the value of this property also changes 
0923      * the {@link #checked} property and the current checked state of the control 
0924      * element. The value of this property does not change if the state of the 
0925      * corresponding form control, in an interactive browser, changes.</p>
0926      * @since 1.0
0927      * @javascript Re-compilers must resolve the member of this static field to the
0928      * identifier of the field name.
0929      */
0930     public static final Value.Boolean.Member defaultChecked = new Value.Boolean.Member(Members.defaultChecked);
0931     /**
0932      * <p>An <b>opaque</b> static field defining a member that is named by the field name
0933      * without a qualifying member and to access the property of the name on an object.</p>
0934      * <p>The property, identified by this member, of a {@link JsHTMLInputElement} 
0935      * object refers to a boolean value that specifies whether the element is 
0936      * disabled and is unavailable for user input.</p> 
0937      * @since 1.0
0938      * @javascript Re-compilers must resolve the member of this static field to the
0939      * identifier of the field name.
0940      */
0941     public static final Value.Boolean.Member disabled       = new Value.Boolean.Member(Members.disabled      );
0942     /**
0943      * <p>An <b>opaque</b> static field defining a member that is named by the field name
0944      * without a qualifying member and to access the property of the name on an object.</p>
0945      * <p>The property, identified by this member, of a {@link JsHTMLInputElement} 
0946      * object refers to a boolean value that specifies whether the input control is 
0947      * read-only. Relevant only when {@link #type} has the value "text" or "password".</p> 
0948      * @since 1.0
0949      * @javascript Re-compilers must resolve the member of this static field to the
0950      * identifier of the field name.
0951      */
0952     public static final Value.Boolean.Member readOnly       = new Value.Boolean.Member(Members.readOnly      );
0953     /**
0954      * <p>An <b>opaque</b> static field defining a member that is named by the field name
0955      * without a qualifying member and to access the property of the name on an object.</p>
0956      * <p>The property, identified by this member, of a {@link JsHTMLInputElement} object is a 
0957      * reference to an event handler function invoked when the user takes keyboard focus away 
0958      * from the input control element. Calling {@link #blur()} to 
0959      * remove focus from an element does not invoke {@link #onblur} for that object. 
0960      * Note, however, that calling {@link #focus()} to transfer 
0961      * focus to some other element causes the {@link #onblur} to be invoked for 
0962      * whichever element currently has the focus.</p> 
0963      * @since 1.0
0964      * @see JsElement#addEventListener(String, JsFunction, Boolean)
0965      * @see JsElement#attachEvent(String, JsFunction)
0966      * @javascript Re-compilers must resolve the member of this static field to the
0967      * identifier of the field name.
0968      */
0969     public static final JsFunction.Member<?> onblur   = new JsFunction.Member<Object>(Members.onblur  );
0970     /**
0971      * <p>An <b>opaque</b> static field defining a member that is named by the field name
0972      * without a qualifying member and to access the property of the name on an object.</p>
0973      * <p>The property, identified by this member, of a {@link JsHTMLInputElement} object is a 
0974      * reference to an event handler function invoked for text-entry elements when the 
0975      * user changes the displayed text and then commits those changes by tabbing or 
0976      * clicking to transfer keyboard focus to another element. This event handler is 
0977      * not invoked for every keystroke in the input control but only when the user 
0978      * completes an edit. Toggle button elements of {@link #type} "checkbox" and 
0979      * "radio" may also fire this event in addition to the {@link #onclick} event 
0980      * when the user toggles them.</p> 
0981      * @since 1.0
0982      * @see JsElement#addEventListener(String, JsFunction, Boolean)
0983      * @see JsElement#attachEvent(String, JsFunction)
0984      * @javascript Re-compilers must resolve the member of this static field to the
0985      * identifier of the field name.
0986      */
0987     public static final JsFunction.Member<?> onchange = new JsFunction.Member<Object>(Members.onchange);
0988     /**
0989      * <p>An <b>opaque</b> static field defining a member that is named by the field name
0990      * without a qualifying member and to access the property of the name on an object.</p>
0991      * <p>The property, identified by this member, of a {@link JsHTMLInputElement} object is a 
0992      * reference to an event handler function invoked for push button and toggle 
0993      * button elements when the user activates the button with a mouse click or by 
0994      * keyboard traversal. The handler is NOT invoked when the {@link JsHTMLInputElement#click()} 
0995      * method is called for the element. When {@link #type} is "reset" and "submit", 
0996      * this handler is performed in addition to the default actions of resetting 
0997      * and submitting respectively the {@link #form} that contains the element. You 
0998      * can also prevent the default actions by returning <tt>false</tt> from this 
0999      * handler or from {@link JsHTMLFormElement#onreset} and {@link JsHTMLFormElement#onsubmit} 
1000      * of the {@link #form}.</p> 
1001      * @since 1.0
1002      * @see JsElement#addEventListener(String, JsFunction, Boolean)
1003      * @see JsElement#attachEvent(String, JsFunction)
1004      * @javascript Re-compilers must resolve the member of this static field to the
1005      * identifier of the field name.
1006      */
1007     public static final JsFunction.Member<?> onclick  = new JsFunction.Member<Object>(Members.onclick );
1008     /**
1009      * <p>An <b>opaque</b> static field defining a member that is named by the field name
1010      * without a qualifying member and to access the property of the name on an object.</p>
1011      * <p>The property, identified by this member, of a {@link JsHTMLInputElement} object is a 
1012      * reference to an event handler function invoked when the user gives keyboard 
1013      * focus to the input control element. Calling {@link #focus()} to 
1014      * set focus to an element does not invoke {@link #onfocus} for that object. 
1015      * Note, however, that calling {@link #focus()} to transfer 
1016      * focus to some other element causes the {@link #onblur} to be invoked for 
1017      * whichever element currently has the focus.</p> 
1018      * @since 1.0
1019      * @see JsElement#addEventListener(String, JsFunction, Boolean)
1020      * @see JsElement#attachEvent(String, JsFunction)
1021      * @javascript Re-compilers must resolve the member of this static field to the
1022      * identifier of the field name.
1023      */
1024     public static final JsFunction.Member<?> onfocus  = new JsFunction.Member<Object>(Members.onfocus );
1025 
1026     @Override
1027     /**
1028      * <p>Returns the primitive value associated with the current instance, if there is one.
1029      * This invocation simply returns the instance itself for the current instance is an 
1030      * object and there is no primitive value for it.</p>
1031      * @return The current object itself.
1032      * @since 1.0
1033      * @javascript Re-compilers must convert the instance invocation of this method directly
1034      * into a JavaScript invocation on its current object instance without changing the 
1035      * method name, but expanding variable arguments, if any, into comma-separated values. 
1036      */
1037     public JsHTMLInputElement valueOf() {
1038         return new JsHTMLInputElement((JsObject)var().valueOf());
1039     }
1040     /**
1041      * <p>Takes keyboard focus away from the input control element.</p>
1042      * <p>This method does not transfer keyboard focus anywhere, however, so the only 
1043      * time that it is actually useful to call this method is right before you transfer 
1044      * keyboard focus elsewhere with the {@link #focus()} method, when you don't want to 
1045      * trigger the {@link #onblur} event handler. That is, by removing focus explicitly 
1046      * from the element, you won't be notified when it is removed implicitly by a {@link #focus()} 
1047      * call on another element.</p>
1048      * @since 1.0
1049      * @javascript Re-compilers must convert the instance invocation of this method directly
1050      * into a JavaScript invocation on its current object instance without changing the 
1051      * method name, but expanding variable arguments, if any, into comma-separated values. 
1052      */
1053     public void blur() {
1054         call(blur);
1055     }
1056     /**
1057      * <p>Simulates a mouse-click on the element if {@link #type} is "button", 
1058      * "checkbox", "radio", "reset", or "submit".</p>
1059      * <p>This method is not often useful. Because it does not invoke the {@link #onclick} 
1060      * event handler. When called on elements of {@link #type} "button", they don't have 
1061      * any behavior other than that defined by the {@link #onclick} handler. Calling the 
1062      * method on elements of {@link #type} "submit" or "reset" submits or resets the 
1063      * {@link #form}, but this can be more directly achieved with the {@link JsHTMLFormElement#submit()} 
1064      * and {@link JsHTMLFormElement#reset()} method of the {@link #form} itself.</p>
1065      * @since 1.0
1066      * @javascript Re-compilers must convert the instance invocation of this method directly
1067      * into a JavaScript invocation on its current object instance without changing the 
1068      * method name, but expanding variable arguments, if any, into comma-separated values. 
1069      */
1070     public void click() {
1071         call(click);
1072     }
1073     /**
1074      * <p>Gives keyboard focus to this input control element.</p>
1075      * <p>This method makes the control element active with respect to keyboard navigation 
1076      * and keyboard input. If it is called for an input element of {@link #type} "text", 
1077      * any text the user subsequently types appears in that text element. Or, if it is 
1078      * called for an element of {@link #type} "button", the user can then invoke that 
1079      * button from the keyboard.</p>
1080      * @since 1.0
1081      * @javascript Re-compilers must convert the instance invocation of this method directly
1082      * into a JavaScript invocation on its current object instance without changing the 
1083      * method name, but expanding variable arguments, if any, into comma-separated values. 
1084      */
1085     public void focus() {
1086         call(focus);
1087     }
1088     /**
1089      * <p>Selects the text displayed by the input element if {@link #type} is "file", 
1090      * "password", or "text".</p>
1091      * <p>Typically, this means that the text is highlighted and that new text entered 
1092      * by the user replaces the highlighted text instead of being appended or inserted 
1093      * to it.</p>
1094      * @since 1.0
1095      * @javascript Re-compilers must convert the instance invocation of this method directly
1096      * into a JavaScript invocation on its current object instance without changing the 
1097      * method name, but expanding variable arguments, if any, into comma-separated values. 
1098      */
1099     public void select() {
1100         call(select);
1101     }
1102 }