<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- saved from url=(0014)about:internet -->
<HTML>
<HEAD>
<!-- Generated by javadoc (build 1.5.0_19) on Sun Mar 20 20:56:37 PKT 2011 -->
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<TITLE>
LongField (Click Extras API - v2.3.0)
</TITLE>

<META NAME="keywords" CONTENT="org.apache.click.extras.control.LongField class">

<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">

<SCRIPT type="text/javascript">
function windowTitle()
{
    parent.document.title="LongField (Click Extras API - v2.3.0)";
}
</SCRIPT>
<NOSCRIPT>
</NOSCRIPT>

</HEAD>

<BODY BGCOLOR="white">


<!-- ========= START OF TOP NAVBAR ======= -->
<A NAME="navbar_top"><!-- --></A>
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_top_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
  <TR ALIGN="center" VALIGN="top">
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
  </TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>

<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="../../../../../org/apache/click/extras/control/LinkDecorator.html" title="class in org.apache.click.extras.control"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../../org/apache/click/extras/control/Menu.html" title="class in org.apache.click.extras.control"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../../../index.html?org/apache/click/extras/control/LongField.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="LongField.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
&nbsp;<SCRIPT type="text/javascript">
  <!--
  if(window==top) {
    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
  }
  //-->
</SCRIPT>
<NOSCRIPT>
  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>


</FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#fields_inherited_from_class_org.apache.click.extras.control.NumberField">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_top"></A>
<!-- ========= END OF TOP NAVBAR ========= -->

<HR>
<!-- ======== START OF CLASS DATA ======== -->
<H2>
<FONT SIZE="-1">
org.apache.click.extras.control</FONT>
<BR>
Class LongField</H2>
<PRE>
<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html" title="class or interface in java.lang">java.lang.Object</A>
  <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractControl.html" title="class or interface in org.apache.click.control">org.apache.click.control.AbstractControl</A>
      <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/Field.html" title="class or interface in org.apache.click.control">org.apache.click.control.Field</A>
          <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/TextField.html" title="class or interface in org.apache.click.control">org.apache.click.control.TextField</A>
              <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../../../org/apache/click/extras/control/NumberField.html" title="class in org.apache.click.extras.control">org.apache.click.extras.control.NumberField</A>
                  <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><B>org.apache.click.extras.control.LongField</B>
</PRE>
<DL>
<DT><B>All Implemented Interfaces:</B> <DD><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/io/Serializable.html" title="class or interface in java.io">Serializable</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/Control.html" title="class or interface in org.apache.click">Control</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/Stateful.html" title="class or interface in org.apache.click">Stateful</A></DD>
</DL>
<HR>
<DL>
<DT><PRE>public class <B>LongField</B><DT>extends <A HREF="../../../../../org/apache/click/extras/control/NumberField.html" title="class in org.apache.click.extras.control">NumberField</A></DL>
</PRE>

<P>
Provides a Long Field control: &nbsp; &lt;input type='text'&gt;.

 <table class='htmlHeader' cellspacing='6'>
 <tr>
 <td>Long Field</td>
 <td><input type='text' value='93019382701' title='LongField Control'/></td>
 </tr>
 </table>

 LongField will validate the number when the control is processed and invoke
 the control listener if defined.
 <p/>
 The LongField uses a JavaScript onkeypress() integerFilter() method to prevent
 users from entering invalid characters.  To enable number key filtering
 reference the variables <tt class="blue">$jsElements</tt> and
 <tt class="blue">$headElements</tt> in your page template. For example:

 <pre class="codeHtml">
 &lt;html&gt;
 &lt;head&gt;
 <span class="blue">$headElements</span>
 &lt;/head&gt;
 &lt;body&gt;

 <span class="red">$form</span>

 <span class="blue">$jsElements</span>
 &lt;/body&gt;
 &lt;/html&gt; </pre>

 The LongField has left justified horizontal text alignment,
 <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/Field.html#setTextAlign(java.lang.String)" title="class or interface in org.apache.click.control"><CODE>Field.setTextAlign(String)</CODE></A>.
 <p/>

 See also W3C HTML reference
 <a class="external" target="_blank" title="W3C HTML 4.01 Specification"
    href="http://www.w3.org/TR/html401/interact/forms.html#h-17.4">INPUT</a>
<P>

<P>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../../serialized-form.html#org.apache.click.extras.control.LongField">Serialized Form</A></DL>
<HR>

<P>
<!-- =========== FIELD SUMMARY =========== -->

<A NAME="field_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Field Summary</B></FONT></TH>
</TR>
</TABLE>
&nbsp;<A NAME="fields_inherited_from_class_org.apache.click.extras.control.NumberField"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Fields inherited from class org.apache.click.extras.control.<A HREF="../../../../../org/apache/click/extras/control/NumberField.html" title="class in org.apache.click.extras.control">NumberField</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="../../../../../org/apache/click/extras/control/NumberField.html#maxvalue">maxvalue</A>, <A HREF="../../../../../org/apache/click/extras/control/NumberField.html#minvalue">minvalue</A>, <A HREF="../../../../../org/apache/click/extras/control/NumberField.html#numberFormat">numberFormat</A>, <A HREF="../../../../../org/apache/click/extras/control/NumberField.html#pattern">pattern</A>, <A HREF="../../../../../org/apache/click/extras/control/NumberField.html#VALIDATE_NUMBER_FIELD_FUNCTION">VALIDATE_NUMBER_FIELD_FUNCTION</A></CODE></TD>
</TR>
</TABLE>
&nbsp;<A NAME="fields_inherited_from_class_org.apache.click.control.TextField"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Fields inherited from class org.apache.click.control.<A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/TextField.html" title="class or interface in org.apache.click.control">TextField</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/TextField.html#maxLength" title="class or interface in org.apache.click.control">maxLength</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/TextField.html#minLength" title="class or interface in org.apache.click.control">minLength</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/TextField.html#size" title="class or interface in org.apache.click.control">size</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/TextField.html#VALIDATE_TEXTFIELD_FUNCTION" title="class or interface in org.apache.click.control">VALIDATE_TEXTFIELD_FUNCTION</A></CODE></TD>
</TR>
</TABLE>
&nbsp;<A NAME="fields_inherited_from_class_org.apache.click.control.Field"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Fields inherited from class org.apache.click.control.<A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/Field.html" title="class or interface in org.apache.click.control">Field</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/Field.html#disabled" title="class or interface in org.apache.click.control">disabled</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/Field.html#error" title="class or interface in org.apache.click.control">error</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/Field.html#focus" title="class or interface in org.apache.click.control">focus</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/Field.html#form" title="class or interface in org.apache.click.control">form</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/Field.html#help" title="class or interface in org.apache.click.control">help</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/Field.html#label" title="class or interface in org.apache.click.control">label</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/Field.html#labelStyle" title="class or interface in org.apache.click.control">labelStyle</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/Field.html#labelStyleClass" title="class or interface in org.apache.click.control">labelStyleClass</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/Field.html#parentStyleClassHint" title="class or interface in org.apache.click.control">parentStyleClassHint</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/Field.html#parentStyleHint" title="class or interface in org.apache.click.control">parentStyleHint</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/Field.html#readonly" title="class or interface in org.apache.click.control">readonly</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/Field.html#required" title="class or interface in org.apache.click.control">required</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/Field.html#tabindex" title="class or interface in org.apache.click.control">tabindex</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/Field.html#title" title="class or interface in org.apache.click.control">title</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/Field.html#trim" title="class or interface in org.apache.click.control">trim</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/Field.html#validate" title="class or interface in org.apache.click.control">validate</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/Field.html#value" title="class or interface in org.apache.click.control">value</A></CODE></TD>
</TR>
</TABLE>
&nbsp;<A NAME="fields_inherited_from_class_org.apache.click.control.AbstractControl"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Fields inherited from class org.apache.click.control.<A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractControl.html" title="class or interface in org.apache.click.control">AbstractControl</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractControl.html#actionListener" title="class or interface in org.apache.click.control">actionListener</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractControl.html#attributes" title="class or interface in org.apache.click.control">attributes</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractControl.html#behaviors" title="class or interface in org.apache.click.control">behaviors</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractControl.html#headElements" title="class or interface in org.apache.click.control">headElements</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractControl.html#listener" title="class or interface in org.apache.click.control">listener</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractControl.html#listenerMethod" title="class or interface in org.apache.click.control">listenerMethod</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractControl.html#messages" title="class or interface in org.apache.click.control">messages</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractControl.html#name" title="class or interface in org.apache.click.control">name</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractControl.html#parent" title="class or interface in org.apache.click.control">parent</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractControl.html#styles" title="class or interface in org.apache.click.control">styles</A></CODE></TD>
</TR>
</TABLE>
&nbsp;<A NAME="fields_inherited_from_class_org.apache.click.Control"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Fields inherited from interface org.apache.click.<A HREF="http://click.apache.org/docs/click-api/org/apache/click/Control.html" title="class or interface in org.apache.click">Control</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="http://click.apache.org/docs/click-api/org/apache/click/Control.html#CONTROL_MESSAGES" title="class or interface in org.apache.click">CONTROL_MESSAGES</A></CODE></TD>
</TR>
</TABLE>
&nbsp;
<!-- ======== CONSTRUCTOR SUMMARY ======== -->

<A NAME="constructor_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Constructor Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><B><A HREF="../../../../../org/apache/click/extras/control/LongField.html#LongField()">LongField</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Create a LongField with no name defined.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><B><A HREF="../../../../../org/apache/click/extras/control/LongField.html#LongField(java.lang.String)">LongField</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;name)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Construct a LongField field with the given name.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><B><A HREF="../../../../../org/apache/click/extras/control/LongField.html#LongField(java.lang.String, boolean)">LongField</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;name,
          boolean&nbsp;required)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Construct a LongField field with the given name and required status.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><B><A HREF="../../../../../org/apache/click/extras/control/LongField.html#LongField(java.lang.String, java.lang.String)">LongField</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;name,
          <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;label)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Construct a LongField field with the given name and label.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><B><A HREF="../../../../../org/apache/click/extras/control/LongField.html#LongField(java.lang.String, java.lang.String, boolean)">LongField</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;name,
          <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;label,
          boolean&nbsp;required)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Construct a LongField field with the given name, label and required
 status.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><B><A HREF="../../../../../org/apache/click/extras/control/LongField.html#LongField(java.lang.String, java.lang.String, int)">LongField</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;name,
          <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;label,
          int&nbsp;size)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Construct the LongField with the given name, label and size.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><B><A HREF="../../../../../org/apache/click/extras/control/LongField.html#LongField(java.lang.String, java.lang.String, int, boolean)">LongField</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;name,
          <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;label,
          int&nbsp;size,
          boolean&nbsp;required)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Construct the LongField with the given name, label, size and
 required status.</TD>
</TR>
</TABLE>
&nbsp;
<!-- ========== METHOD SUMMARY =========== -->

<A NAME="method_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Method Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Integer.html" title="class or interface in java.lang">Integer</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/click/extras/control/LongField.html#getInteger()">getInteger</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return the field Integer value, or null if value was empty or a parsing
 error occurred.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Long.html" title="class or interface in java.lang">Long</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/click/extras/control/LongField.html#getLong()">getLong</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return the field Long value, or null if value was empty or a parsing
 error occurred.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/click/extras/control/LongField.html#getValueObject()">getValueObject</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return the field Long value, or null if value was empty or a parsing
 error occurred.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/click/extras/control/LongField.html#setValueObject(java.lang.Object)">setValueObject</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html" title="class or interface in java.lang">Object</A>&nbsp;object)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the long value of the field using the given object.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/click/extras/control/LongField.html#validate()">validate</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Validate the LongField request submission.</TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_org.apache.click.extras.control.NumberField"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Methods inherited from class org.apache.click.extras.control.<A HREF="../../../../../org/apache/click/extras/control/NumberField.html" title="class in org.apache.click.extras.control">NumberField</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="../../../../../org/apache/click/extras/control/NumberField.html#getHeadElements()">getHeadElements</A>, <A HREF="../../../../../org/apache/click/extras/control/NumberField.html#getMaxValue()">getMaxValue</A>, <A HREF="../../../../../org/apache/click/extras/control/NumberField.html#getMinValue()">getMinValue</A>, <A HREF="../../../../../org/apache/click/extras/control/NumberField.html#getNumber()">getNumber</A>, <A HREF="../../../../../org/apache/click/extras/control/NumberField.html#getNumberFormat()">getNumberFormat</A>, <A HREF="../../../../../org/apache/click/extras/control/NumberField.html#getPattern()">getPattern</A>, <A HREF="../../../../../org/apache/click/extras/control/NumberField.html#getValidationJavaScript()">getValidationJavaScript</A>, <A HREF="../../../../../org/apache/click/extras/control/NumberField.html#setMaxValue(double)">setMaxValue</A>, <A HREF="../../../../../org/apache/click/extras/control/NumberField.html#setMinValue(double)">setMinValue</A>, <A HREF="../../../../../org/apache/click/extras/control/NumberField.html#setNumber(java.lang.Number)">setNumber</A>, <A HREF="../../../../../org/apache/click/extras/control/NumberField.html#setNumberFormat(java.text.NumberFormat)">setNumberFormat</A>, <A HREF="../../../../../org/apache/click/extras/control/NumberField.html#setPattern(java.lang.String)">setPattern</A></CODE></TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_org.apache.click.control.TextField"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Methods inherited from class org.apache.click.control.<A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/TextField.html" title="class or interface in org.apache.click.control">TextField</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/TextField.html#getControlSizeEst()" title="class or interface in org.apache.click.control">getControlSizeEst</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/TextField.html#getMaxLength()" title="class or interface in org.apache.click.control">getMaxLength</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/TextField.html#getMinLength()" title="class or interface in org.apache.click.control">getMinLength</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/TextField.html#getSize()" title="class or interface in org.apache.click.control">getSize</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/TextField.html#getTag()" title="class or interface in org.apache.click.control">getTag</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/TextField.html#getType()" title="class or interface in org.apache.click.control">getType</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/TextField.html#render(org.apache.click.util.HtmlStringBuffer)" title="class or interface in org.apache.click.control">render</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/TextField.html#setMaxLength(int)" title="class or interface in org.apache.click.control">setMaxLength</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/TextField.html#setMinLength(int)" title="class or interface in org.apache.click.control">setMinLength</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/TextField.html#setSize(int)" title="class or interface in org.apache.click.control">setSize</A></CODE></TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_org.apache.click.control.Field"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Methods inherited from class org.apache.click.control.<A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/Field.html" title="class or interface in org.apache.click.control">Field</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/Field.html#bindRequestValue()" title="class or interface in org.apache.click.control">bindRequestValue</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/Field.html#getError()" title="class or interface in org.apache.click.control">getError</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/Field.html#getErrorLabel()" title="class or interface in org.apache.click.control">getErrorLabel</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/Field.html#getFocus()" title="class or interface in org.apache.click.control">getFocus</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/Field.html#getFocusJavaScript()" title="class or interface in org.apache.click.control">getFocusJavaScript</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/Field.html#getForm()" title="class or interface in org.apache.click.control">getForm</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/Field.html#getHelp()" title="class or interface in org.apache.click.control">getHelp</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/Field.html#getId()" title="class or interface in org.apache.click.control">getId</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/Field.html#getLabel()" title="class or interface in org.apache.click.control">getLabel</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/Field.html#getLabelStyle()" title="class or interface in org.apache.click.control">getLabelStyle</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/Field.html#getLabelStyleClass()" title="class or interface in org.apache.click.control">getLabelStyleClass</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/Field.html#getParentStyleClassHint()" title="class or interface in org.apache.click.control">getParentStyleClassHint</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/Field.html#getParentStyleHint()" title="class or interface in org.apache.click.control">getParentStyleHint</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/Field.html#getRequestValue()" title="class or interface in org.apache.click.control">getRequestValue</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/Field.html#getState()" title="class or interface in org.apache.click.control">getState</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/Field.html#getTabIndex()" title="class or interface in org.apache.click.control">getTabIndex</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/Field.html#getTextAlign()" title="class or interface in org.apache.click.control">getTextAlign</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/Field.html#getTitle()" title="class or interface in org.apache.click.control">getTitle</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/Field.html#getValidate()" title="class or interface in org.apache.click.control">getValidate</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/Field.html#getValue()" title="class or interface in org.apache.click.control">getValue</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/Field.html#getWidth()" title="class or interface in org.apache.click.control">getWidth</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/Field.html#isDisabled()" title="class or interface in org.apache.click.control">isDisabled</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/Field.html#isHidden()" title="class or interface in org.apache.click.control">isHidden</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/Field.html#isReadonly()" title="class or interface in org.apache.click.control">isReadonly</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/Field.html#isRequired()" title="class or interface in org.apache.click.control">isRequired</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/Field.html#isTrim()" title="class or interface in org.apache.click.control">isTrim</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/Field.html#isValid()" title="class or interface in org.apache.click.control">isValid</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/Field.html#onProcess()" title="class or interface in org.apache.click.control">onProcess</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/Field.html#removeState(org.apache.click.Context)" title="class or interface in org.apache.click.control">removeState</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/Field.html#renderTagBegin(java.lang.String, org.apache.click.util.HtmlStringBuffer)" title="class or interface in org.apache.click.control">renderTagBegin</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/Field.html#restoreState(org.apache.click.Context)" title="class or interface in org.apache.click.control">restoreState</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/Field.html#saveState(org.apache.click.Context)" title="class or interface in org.apache.click.control">saveState</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/Field.html#setDisabled(boolean)" title="class or interface in org.apache.click.control">setDisabled</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/Field.html#setError(java.lang.String)" title="class or interface in org.apache.click.control">setError</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/Field.html#setErrorMessage(java.lang.String)" title="class or interface in org.apache.click.control">setErrorMessage</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/Field.html#setErrorMessage(java.lang.String, T)" title="class or interface in org.apache.click.control">setErrorMessage</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/Field.html#setFocus(boolean)" title="class or interface in org.apache.click.control">setFocus</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/Field.html#setForm(org.apache.click.control.Form)" title="class or interface in org.apache.click.control">setForm</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/Field.html#setHelp(java.lang.String)" title="class or interface in org.apache.click.control">setHelp</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/Field.html#setLabel(java.lang.String)" title="class or interface in org.apache.click.control">setLabel</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/Field.html#setLabelStyle(java.lang.String)" title="class or interface in org.apache.click.control">setLabelStyle</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/Field.html#setLabelStyleClass(java.lang.String)" title="class or interface in org.apache.click.control">setLabelStyleClass</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/Field.html#setListener(java.lang.Object, java.lang.String)" title="class or interface in org.apache.click.control">setListener</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/Field.html#setParent(java.lang.Object)" title="class or interface in org.apache.click.control">setParent</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/Field.html#setParentStyleClassHint(java.lang.String)" title="class or interface in org.apache.click.control">setParentStyleClassHint</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/Field.html#setParentStyleHint(java.lang.String)" title="class or interface in org.apache.click.control">setParentStyleHint</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/Field.html#setReadonly(boolean)" title="class or interface in org.apache.click.control">setReadonly</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/Field.html#setRequired(boolean)" title="class or interface in org.apache.click.control">setRequired</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/Field.html#setState(java.lang.Object)" title="class or interface in org.apache.click.control">setState</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/Field.html#setTabIndex(int)" title="class or interface in org.apache.click.control">setTabIndex</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/Field.html#setTextAlign(java.lang.String)" title="class or interface in org.apache.click.control">setTextAlign</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/Field.html#setTitle(java.lang.String)" title="class or interface in org.apache.click.control">setTitle</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/Field.html#setTrim(boolean)" title="class or interface in org.apache.click.control">setTrim</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/Field.html#setValidate(boolean)" title="class or interface in org.apache.click.control">setValidate</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/Field.html#setValue(java.lang.String)" title="class or interface in org.apache.click.control">setValue</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/Field.html#setWidth(java.lang.String)" title="class or interface in org.apache.click.control">setWidth</A></CODE></TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_org.apache.click.control.AbstractControl"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Methods inherited from class org.apache.click.control.<A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractControl.html" title="class or interface in org.apache.click.control">AbstractControl</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractControl.html#addBehavior(org.apache.click.Behavior)" title="class or interface in org.apache.click.control">addBehavior</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractControl.html#addStyleClass(java.lang.String)" title="class or interface in org.apache.click.control">addStyleClass</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractControl.html#appendAttributes(org.apache.click.util.HtmlStringBuffer)" title="class or interface in org.apache.click.control">appendAttributes</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractControl.html#dispatchActionEvent()" title="class or interface in org.apache.click.control">dispatchActionEvent</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractControl.html#getActionListener()" title="class or interface in org.apache.click.control">getActionListener</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractControl.html#getAttribute(java.lang.String)" title="class or interface in org.apache.click.control">getAttribute</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractControl.html#getAttributes()" title="class or interface in org.apache.click.control">getAttributes</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractControl.html#getBehaviors()" title="class or interface in org.apache.click.control">getBehaviors</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractControl.html#getContext()" title="class or interface in org.apache.click.control">getContext</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractControl.html#getHtmlImports()" title="class or interface in org.apache.click.control">getHtmlImports</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractControl.html#getMessage(java.lang.String)" title="class or interface in org.apache.click.control">getMessage</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractControl.html#getMessage(java.lang.String, java.lang.Object...)" title="class or interface in org.apache.click.control">getMessage</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractControl.html#getMessages()" title="class or interface in org.apache.click.control">getMessages</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractControl.html#getName()" title="class or interface in org.apache.click.control">getName</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractControl.html#getPage()" title="class or interface in org.apache.click.control">getPage</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractControl.html#getParent()" title="class or interface in org.apache.click.control">getParent</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractControl.html#getStyle(java.lang.String)" title="class or interface in org.apache.click.control">getStyle</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractControl.html#getStyles()" title="class or interface in org.apache.click.control">getStyles</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractControl.html#hasAttribute(java.lang.String)" title="class or interface in org.apache.click.control">hasAttribute</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractControl.html#hasAttributes()" title="class or interface in org.apache.click.control">hasAttributes</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractControl.html#hasBehaviors()" title="class or interface in org.apache.click.control">hasBehaviors</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractControl.html#hasStyles()" title="class or interface in org.apache.click.control">hasStyles</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractControl.html#isAjaxTarget(org.apache.click.Context)" title="class or interface in org.apache.click.control">isAjaxTarget</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractControl.html#onDeploy(javax.servlet.ServletContext)" title="class or interface in org.apache.click.control">onDeploy</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractControl.html#onDestroy()" title="class or interface in org.apache.click.control">onDestroy</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractControl.html#onInit()" title="class or interface in org.apache.click.control">onInit</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractControl.html#onRender()" title="class or interface in org.apache.click.control">onRender</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractControl.html#removeBehavior(org.apache.click.Behavior)" title="class or interface in org.apache.click.control">removeBehavior</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractControl.html#removeStyleClass(java.lang.String)" title="class or interface in org.apache.click.control">removeStyleClass</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractControl.html#renderTagEnd(java.lang.String, org.apache.click.util.HtmlStringBuffer)" title="class or interface in org.apache.click.control">renderTagEnd</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractControl.html#setActionListener(org.apache.click.ActionListener)" title="class or interface in org.apache.click.control">setActionListener</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractControl.html#setAttribute(java.lang.String, java.lang.String)" title="class or interface in org.apache.click.control">setAttribute</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractControl.html#setId(java.lang.String)" title="class or interface in org.apache.click.control">setId</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractControl.html#setName(java.lang.String)" title="class or interface in org.apache.click.control">setName</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractControl.html#setStyle(java.lang.String, java.lang.String)" title="class or interface in org.apache.click.control">setStyle</A>, <A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractControl.html#toString()" title="class or interface in org.apache.click.control">toString</A></CODE></TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html" title="class or interface in java.lang">Object</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
</TR>
</TABLE>
&nbsp;
<P>

<!-- ========= CONSTRUCTOR DETAIL ======== -->

<A NAME="constructor_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Constructor Detail</B></FONT></TH>
</TR>
</TABLE>

<A NAME="LongField(java.lang.String)"><!-- --></A><H3>
LongField</H3>
<PRE>
public <B>LongField</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;name)</PRE>
<DL>
<DD>Construct a LongField field with the given name.
<P>
<DL>
<DT><B>Parameters:</B><DD><CODE>name</CODE> - the name of the field</DL>
</DL>
<HR>

<A NAME="LongField(java.lang.String, boolean)"><!-- --></A><H3>
LongField</H3>
<PRE>
public <B>LongField</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;name,
                 boolean&nbsp;required)</PRE>
<DL>
<DD>Construct a LongField field with the given name and required status.
<P>
<DL>
<DT><B>Parameters:</B><DD><CODE>name</CODE> - the name of the field<DD><CODE>required</CODE> - the field required status</DL>
</DL>
<HR>

<A NAME="LongField(java.lang.String, java.lang.String)"><!-- --></A><H3>
LongField</H3>
<PRE>
public <B>LongField</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;name,
                 <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;label)</PRE>
<DL>
<DD>Construct a LongField field with the given name and label.
<P>
<DL>
<DT><B>Parameters:</B><DD><CODE>name</CODE> - the name of the field<DD><CODE>label</CODE> - the label of the field</DL>
</DL>
<HR>

<A NAME="LongField(java.lang.String, java.lang.String, boolean)"><!-- --></A><H3>
LongField</H3>
<PRE>
public <B>LongField</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;name,
                 <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;label,
                 boolean&nbsp;required)</PRE>
<DL>
<DD>Construct a LongField field with the given name, label and required
 status.
<P>
<DL>
<DT><B>Parameters:</B><DD><CODE>name</CODE> - the name of the field<DD><CODE>label</CODE> - the label of the field<DD><CODE>required</CODE> - the field required status</DL>
</DL>
<HR>

<A NAME="LongField(java.lang.String, java.lang.String, int)"><!-- --></A><H3>
LongField</H3>
<PRE>
public <B>LongField</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;name,
                 <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;label,
                 int&nbsp;size)</PRE>
<DL>
<DD>Construct the LongField with the given name, label and size.
<P>
<DL>
<DT><B>Parameters:</B><DD><CODE>name</CODE> - the name of the field<DD><CODE>label</CODE> - the label of the field<DD><CODE>size</CODE> - the size of the field</DL>
</DL>
<HR>

<A NAME="LongField(java.lang.String, java.lang.String, int, boolean)"><!-- --></A><H3>
LongField</H3>
<PRE>
public <B>LongField</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;name,
                 <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;label,
                 int&nbsp;size,
                 boolean&nbsp;required)</PRE>
<DL>
<DD>Construct the LongField with the given name, label, size and
 required status.
<P>
<DL>
<DT><B>Parameters:</B><DD><CODE>name</CODE> - the name of the field<DD><CODE>label</CODE> - the label of the field<DD><CODE>size</CODE> - the size of the field<DD><CODE>required</CODE> - the field required status</DL>
</DL>
<HR>

<A NAME="LongField()"><!-- --></A><H3>
LongField</H3>
<PRE>
public <B>LongField</B>()</PRE>
<DL>
<DD>Create a LongField with no name defined.
 <p/>
 <b>Please note</b> the control's name must be defined before it is valid.
<P>
</DL>

<!-- ============ METHOD DETAIL ========== -->

<A NAME="method_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Method Detail</B></FONT></TH>
</TR>
</TABLE>

<A NAME="getLong()"><!-- --></A><H3>
getLong</H3>
<PRE>
public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Long.html" title="class or interface in java.lang">Long</A> <B>getLong</B>()</PRE>
<DL>
<DD>Return the field Long value, or null if value was empty or a parsing
 error occurred.
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the field Long value</DL>
</DD>
</DL>
<HR>

<A NAME="getInteger()"><!-- --></A><H3>
getInteger</H3>
<PRE>
public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Integer.html" title="class or interface in java.lang">Integer</A> <B>getInteger</B>()</PRE>
<DL>
<DD>Return the field Integer value, or null if value was empty or a parsing
 error occurred.
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the field Integer value</DL>
</DD>
</DL>
<HR>

<A NAME="getValueObject()"><!-- --></A><H3>
getValueObject</H3>
<PRE>
public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html" title="class or interface in java.lang">Object</A> <B>getValueObject</B>()</PRE>
<DL>
<DD>Return the field Long value, or null if value was empty or a parsing
 error occurred.
<P>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../../org/apache/click/extras/control/NumberField.html#getValueObject()">getValueObject</A></CODE> in class <CODE><A HREF="../../../../../org/apache/click/extras/control/NumberField.html" title="class in org.apache.click.extras.control">NumberField</A></CODE></DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>the Long object representation of the Field value<DT><B>See Also:</B><DD><A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/Field.html#getValueObject()" title="class or interface in org.apache.click.control"><CODE>Field.getValueObject()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setValueObject(java.lang.Object)"><!-- --></A><H3>
setValueObject</H3>
<PRE>
public void <B>setValueObject</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html" title="class or interface in java.lang">Object</A>&nbsp;object)</PRE>
<DL>
<DD>Set the long value of the field using the given object.
<P>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../../org/apache/click/extras/control/NumberField.html#setValueObject(java.lang.Object)">setValueObject</A></CODE> in class <CODE><A HREF="../../../../../org/apache/click/extras/control/NumberField.html" title="class in org.apache.click.extras.control">NumberField</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>object</CODE> - the object value to set<DT><B>See Also:</B><DD><A HREF="http://click.apache.org/docs/click-api/org/apache/click/control/Field.html#setValueObject(java.lang.Object)" title="class or interface in org.apache.click.control"><CODE>Field.setValueObject(Object)</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="validate()"><!-- --></A><H3>
validate</H3>
<PRE>
public void <B>validate</B>()</PRE>
<DL>
<DD>Validate the LongField request submission.
 <p/>
 A field error message is displayed if a validation error occurs.
 These messages are defined in the resource bundle:
 <blockquote>
 <ul>
   <li>/click-control.properties
     <ul>
       <li>field-required-error</li>
       <li>number-format-error</li>
       <li>number-maxvalue-error</li>
       <li>number-minvalue-error</li>
     </ul>
   </li>
 </ul>
 </blockquote>
<P>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../../org/apache/click/extras/control/NumberField.html#validate()">validate</A></CODE> in class <CODE><A HREF="../../../../../org/apache/click/extras/control/NumberField.html" title="class in org.apache.click.extras.control">NumberField</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<!-- ========= END OF CLASS DATA ========= -->
<HR>


<!-- ======= START OF BOTTOM NAVBAR ====== -->
<A NAME="navbar_bottom"><!-- --></A>
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_bottom_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
  <TR ALIGN="center" VALIGN="top">
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
  </TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>

<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="../../../../../org/apache/click/extras/control/LinkDecorator.html" title="class in org.apache.click.extras.control"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../../org/apache/click/extras/control/Menu.html" title="class in org.apache.click.extras.control"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../../../index.html?org/apache/click/extras/control/LongField.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="LongField.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
&nbsp;<SCRIPT type="text/javascript">
  <!--
  if(window==top) {
    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
  }
  //-->
</SCRIPT>
<NOSCRIPT>
  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>


</FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#fields_inherited_from_class_org.apache.click.extras.control.NumberField">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_bottom"></A>
<!-- ======== END OF BOTTOM NAVBAR ======= -->

<HR>

<style type='text/css'>.str{color:#2A00FF;}.kwd{color:#7F0055;font-weight:bold;}.com{color:#3F7F5F;}.typ{color:#000;}.lit{color:#066;}.pun{color:#660;}.pln{color:#000;}.tag{color:#000099;font-weight:bold;}.atn{color:#009900;}.atv{color:#000;}.dec{color:#606;}pre.prettyprint{padding:1em;border:1px solid #888;overflow:auto;}@media print{.str{color:#2A00FF;}.kwd{color:#7F0055;font-weight:bold;}.com{color:#3F7F5F;font-style:italic;}.typ{color:#000;font-weight:bold;}.lit{color:#044;}.pun{color:#440;}.pln{color:#000;}.tag{color:#000099;font-weight:bold;}.atn{color:#009900;}.atv{color:#000;}}</style><script type='text/javascript'>var PR_keywords={};(function(){var CPP_KEYWORDS='abstract bool break case catch char class const '+'const_cast continue default delete deprecated dllexport dllimport do '+'double dynamic_cast else enum explicit extern false float for friend '+'goto if inline int long mutable naked namespace new noinline noreturn '+'nothrow novtable operator private property protected public register '+'reinterpret_cast return selectany short signed sizeof static '+'static_cast struct switch template this thread throw true try typedef '+'typeid typename union unsigned using declaration, directive uuid '+'virtual void volatile while typeof';var CSHARP_KEYWORDS='as base by byte checked decimal delegate descending '+'event finally fixed foreach from group implicit in interface internal '+'into is lock null object override orderby params readonly ref sbyte '+'sealed stackalloc string select uint ulong unchecked unsafe ushort var';var JAVA_KEYWORDS='package synchronized boolean implements import throws '+'instanceof transient extends final strictfp native super';var JSCRIPT_KEYWORDS='debugger export function with NaN Infinity';var PERL_KEYWORDS='require sub unless until use elsif BEGIN END';var PYTHON_KEYWORDS='and assert def del elif except exec global lambda '+'not or pass print raise yield False True None';var RUBY_KEYWORDS='then end begin rescue ensure module when undef next '+'redo retry alias defined';var SH_KEYWORDS='done fi';var KEYWORDS=[CPP_KEYWORDS,CSHARP_KEYWORDS,JAVA_KEYWORDS,JSCRIPT_KEYWORDS,PERL_KEYWORDS,PYTHON_KEYWORDS,RUBY_KEYWORDS,SH_KEYWORDS];for(var k=0;k<KEYWORDS.length;k++){var kw=KEYWORDS[k].split(' ');for(var i=0;i<kw.length;i++){if(kw[i]){PR_keywords[kw[i]]=true;}}}}).call(this);var PR_STRING='str';var PR_KEYWORD='kwd';var PR_COMMENT='com';var PR_TYPE='typ';var PR_LITERAL='lit';var PR_PUNCTUATION='pun';var PR_PLAIN='pln';var PR_TAG='tag';var PR_DECLARATION='dec';var PR_SOURCE='src';var PR_ATTRIB_NAME='atn';var PR_ATTRIB_VALUE='atv';var PR_TAB_WIDTH=8;function PR_isWordChar(ch){return(ch>='a'&&ch<='z')||(ch>='A'&&ch<='Z');}function PR_spliceArrayInto(inserted,container,containerPosition,countReplaced){inserted.unshift(containerPosition,countReplaced||0);try{container.splice.apply(container,inserted);}finally{inserted.splice(0,2);}}var REGEXP_PRECEDER_PATTERN=(function(){var preceders=['!','!=','!==','#','%','%=','&','&&','&&=','&=','(','*','*=','+=',',','-=','->','/','/=',':','::',';','<','<<','<<=','<=','=','==','===','>','>=','>>','>>=','>>>','>>>=','?','@','[','^','^=','^^','^^=','{','|','|=','||','||=','~','break','case','continue','delete','do','else','finally','instanceof','return','throw','try','typeof'];var pattern='(?:'+'(?:(?:^|[^0-9\.])\\.{1,3})|'+'(?:(?:^|[^\\+])\\+)|'+'(?:(?:^|[^\\-])-)';for(var i=0;i<preceders.length;++i){var preceder=preceders[i];if(PR_isWordChar(preceder.charAt(0))){pattern+='|\\b'+preceder;}else{pattern+='|'+preceder.replace(/([^=<>:&])/g,'\\$1');}}pattern+='|^)\\s*$';return new RegExp(pattern);})();var pr_amp=/&/g;var pr_lt=/</g;var pr_gt=/>/g;var pr_quot=/"/g;function PR_attribToHtml(str){return str.replace(pr_amp,'&amp;').replace(pr_lt,'&lt;').replace(pr_gt,'&gt;').replace(pr_quot,'&quot;');}function PR_textToHtml(str){return str.replace(pr_amp,'&amp;').replace(pr_lt,'&lt;').replace(pr_gt,'&gt;');}var pr_ltEnt=/&lt;/g;var pr_gtEnt=/&gt;/g;var pr_aposEnt=/&apos;/g;var pr_quotEnt=/&quot;/g;var pr_ampEnt=/&amp;/g;function PR_htmlToText(html){var pos=html.indexOf('&');if(pos<0){return html;}for(--pos;(pos=html.indexOf('&#',pos+1))>=0;){var end=html.indexOf(';',pos);if(end>=0){var num=html.substring(pos+3,end);var radix=10;if(num&&num.charAt(0)=='x'){num=num.substring(1);radix=16;}var codePoint=parseInt(num,radix);if(!isNaN(codePoint)){html=(html.substring(0,pos)+String.fromCharCode(codePoint)+html.substring(end+1));}}}return html.replace(pr_ltEnt,'<').replace(pr_gtEnt,'>').replace(pr_aposEnt,"'").replace(pr_quotEnt,'"').replace(pr_ampEnt,'&');}function PR_isRawContent(node){return'XMP'==node.tagName;}var PR_innerHtmlWorks=null;function PR_getInnerHtml(node){if(null===PR_innerHtmlWorks){var testNode=document.createElement('PRE');testNode.appendChild(document.createTextNode('<!DOCTYPE foo PUBLIC "foo bar">\n<foo />'));PR_innerHtmlWorks=!/</.test(testNode.innerHTML);}if(PR_innerHtmlWorks){var content=node.innerHTML;if(PR_isRawContent(node)){content=PR_textToHtml(content);}return content;}var out=[];for(var child=node.firstChild;child;child=child.nextSibling){PR_normalizedHtml(child,out);}return out.join('');}function PR_normalizedHtml(node,out){switch(node.nodeType){case 1:var name=node.tagName.toLowerCase();out.push('\074',name);for(var i=0;i<node.attributes.length;++i){var attr=node.attributes[i];if(!attr.specified){continue;}out.push(' ');PR_normalizedHtml(attr,out);}out.push('>');for(var child=node.firstChild;child;child=child.nextSibling){PR_normalizedHtml(child,out);}if(node.firstChild||!/^(?:br|link|img)$/.test(name)){out.push('<\/',name,'>');}break;case 2:out.push(node.name.toLowerCase(),'="',PR_attribToHtml(node.value),'"');break;case 3:case 4:out.push(PR_textToHtml(node.nodeValue));break;}}function PR_tabExpander(tabWidth){var SPACES='                ';var charInLine=0;return function(plainText){var out=null;var pos=0;for(var i=0,n=plainText.length;i<n;++i){var ch=plainText.charAt(i);switch(ch){case'\t':if(!out){out=[];}out.push(plainText.substring(pos,i));var nSpaces=tabWidth-(charInLine%tabWidth);charInLine+=nSpaces;for(;nSpaces>=0;nSpaces-=SPACES.length){out.push(SPACES.substring(0,nSpaces));}pos=i+1;break;case'\n':charInLine=0;break;default:++charInLine;}}if(!out){return plainText;}out.push(plainText.substring(pos));return out.join('');};}var pr_chunkPattern=/(?:[^<]+|<!--[\s\S]*?-->|<!\[CDATA\[([\s\S]*?)\]\]>|<\/?[a-zA-Z][^>]*>|<)/g;var pr_commentPrefix=/^<!--/;var pr_cdataPrefix=/^<\[CDATA\[/;var pr_brPrefix=/^<br\b/i;function PR_extractTags(s){var matches=s.match(pr_chunkPattern);var sourceBuf=[];var sourceBufLen=0;var extractedTags=[];if(matches){for(var i=0,n=matches.length;i<n;++i){var match=matches[i];if(match.length>1&&match.charAt(0)==='<'){if(pr_commentPrefix.test(match)){continue;}if(pr_cdataPrefix.test(match)){sourceBuf.push(match.substring(9,match.length-3));sourceBufLen+=match.length-12;}else if(pr_brPrefix.test(match)){sourceBuf.push('\n');sourceBufLen+=1;}else{extractedTags.push(sourceBufLen,match);}}else{var literalText=PR_htmlToText(match);sourceBuf.push(literalText);sourceBufLen+=literalText.length;}}}return{source:sourceBuf.join(''),tags:extractedTags};}function PR_createSimpleLexer(shortcutStylePatterns,fallthroughStylePatterns){var shortcuts={};(function(){var allPatterns=shortcutStylePatterns.concat(fallthroughStylePatterns);for(var i=allPatterns.length;--i>=0;){var patternParts=allPatterns[i];var shortcutChars=patternParts[3];if(shortcutChars){for(var c=shortcutChars.length;--c>=0;){shortcuts[shortcutChars.charAt(c)]=patternParts;}}}})();var nPatterns=fallthroughStylePatterns.length;return function(sourceCode,opt_basePos){opt_basePos=opt_basePos||0;var decorations=[opt_basePos,PR_PLAIN];var lastToken='';var pos=0;var tail=sourceCode;while(tail.length){var style;var token=null;var patternParts=shortcuts[tail.charAt(0)];if(patternParts){var match=tail.match(patternParts[1]);token=match[0];style=patternParts[0];}else{for(var i=0;i<nPatterns;++i){patternParts=fallthroughStylePatterns[i];var contextPattern=patternParts[2];if(contextPattern&&!contextPattern.test(lastToken)){continue;}var match=tail.match(patternParts[1]);if(match){token=match[0];style=patternParts[0];break;}}if(!token){style=PR_PLAIN;token=tail.substring(0,1);}}decorations.push(opt_basePos+pos,style);pos+=token.length;tail=tail.substring(token.length);if(style!==PR_COMMENT&&/\S/.test(token)){lastToken=token;}}return decorations;};}var PR_C_STYLE_STRING_AND_COMMENT_LEXER=PR_createSimpleLexer([[PR_STRING,/^\'(?:[^\\\']|\\[\s\S])*(?:\'|$)/,null,"'"],[PR_STRING,/^"(?:[^\\"]|\\[\s\S])*(?:"|$)/,null,'"'],[PR_STRING,/^\`(?:[^\\\`]|\\[\s\S])*(?:\`|$)/,null,'`']],[[PR_PLAIN,/^(?:[^\'"\`\/\#]+)/,null,' \r\n'],[PR_COMMENT,/^#[^\r\n]*/,null,'#'],[PR_COMMENT,/^\/\/[^\r\n]*/,null],[PR_STRING,/^\/(?:[^\\\*\/]|\\[\s\S])+(?:\/|$)/,REGEXP_PRECEDER_PATTERN],[PR_COMMENT,/^\/\*[\s\S]*?(?:\*\/|$)/,null]]);function PR_splitStringAndCommentTokens(sourceCode){return PR_C_STYLE_STRING_AND_COMMENT_LEXER(sourceCode);}var PR_C_STYLE_LITERAL_IDENTIFIER_PUNC_RECOGNIZER=PR_createSimpleLexer([],[[PR_PLAIN,/^\s+/,null,' \r\n'],[PR_PLAIN,/^[a-z_$@][a-z_$@0-9]*/i,null],[PR_LITERAL,/^0x[a-f0-9]+[a-z]/i,null],[PR_LITERAL,/^(?:\d(?:_\d+)*\d*(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?[a-z]*/i,null,'123456789'],[PR_PUNCTUATION,/^[^\s\w\.$@]+/,null]]);function PR_splitNonStringNonCommentTokens(source,decorations){for(var i=0;i<decorations.length;i+=2){var style=decorations[i+1];if(style===PR_PLAIN){var start=decorations[i];var end=i+2<decorations.length?decorations[i+2]:source.length;var chunk=source.substring(start,end);var subDecs=PR_C_STYLE_LITERAL_IDENTIFIER_PUNC_RECOGNIZER(chunk,start);for(var j=0,m=subDecs.length;j<m;j+=2){var subStyle=subDecs[j+1];if(subStyle===PR_PLAIN){var subStart=subDecs[j];var subEnd=j+2<m?subDecs[j+2]:chunk.length;var token=source.substring(subStart,subEnd);if(token=='.'){subDecs[j+1]=PR_PUNCTUATION;}else if(token in PR_keywords){subDecs[j+1]=PR_KEYWORD;}else if(/^@?[A-Z][A-Z$]*[a-z][A-Za-z$]*$/.test(token)){subDecs[j+1]=token.charAt(0)=='@'?PR_LITERAL:PR_TYPE;}}}PR_spliceArrayInto(subDecs,decorations,i,2);i+=subDecs.length-2;}}return decorations;}var PR_MARKUP_LEXER=PR_createSimpleLexer([],[[PR_PLAIN,/^[^<]+/,null],[PR_DECLARATION,/^<!\w[^>]*(?:>|$)/,null],[PR_COMMENT,/^<!--[\s\S]*?(?:-->|$)/,null],[PR_SOURCE,/^<\?[\s\S]*?(?:\?>|$)/,null],[PR_SOURCE,/^<%[\s\S]*?(?:%>|$)/,null],[PR_SOURCE,/^<(script|style|xmp)\b[^>]*>[\s\S]*?<\/\1\b[^>]*>/i,null],[PR_TAG,/^<\/?\w[^<>]*>/,null]]);var PR_SOURCE_CHUNK_PARTS=/^(<[^>]*>)([\s\S]*)(<\/[^>]*>)$/;function PR_tokenizeMarkup(source){var decorations=PR_MARKUP_LEXER(source);for(var i=0;i<decorations.length;i+=2){if(decorations[i+1]===PR_SOURCE){var start=decorations[i];var end=i+2<decorations.length?decorations[i+2]:source.length;var sourceChunk=source.substring(start,end);var match=(sourceChunk.match(PR_SOURCE_CHUNK_PARTS));if(match){decorations.splice(i,2,start,PR_TAG,start+match[1].length,PR_SOURCE,start+match[1].length+(match[2]||'').length,PR_TAG);}}}return decorations;}var PR_TAG_LEXER=PR_createSimpleLexer([[PR_ATTRIB_VALUE,/^\'[^\']*(?:\'|$)/,null,"'"],[PR_ATTRIB_VALUE,/^"[^"]*(?:"|$)/,null,'"'],[PR_PUNCTUATION,/^[<>\/=]+/,null,'<>/=']],[[PR_TAG,/^[\w-]+/,/^</],[PR_ATTRIB_VALUE,/^[\w-]+/,/^=/],[PR_ATTRIB_NAME,/^[\w-]+/,null],[PR_PLAIN,/^\s+/,null,' \r\n']]);function PR_splitTagAttributes(source,decorations){for(var i=0;i<decorations.length;i+=2){var style=decorations[i+1];if(style===PR_TAG){var start=decorations[i];var end=i+2<decorations.length?decorations[i+2]:source.length;var chunk=source.substring(start,end);var subDecorations=PR_TAG_LEXER(chunk,start);PR_spliceArrayInto(subDecorations,decorations,i,2);i+=subDecorations.length-2;}}return decorations;}function PR_splitSourceNodes(source,decorations){for(var i=0;i<decorations.length;i+=2){var style=decorations[i+1];if(style==PR_SOURCE){var start=decorations[i];var end=i+2<decorations.length?decorations[i+2]:source.length;var subDecorations=PR_decorateSource(source.substring(start,end));for(var j=0,m=subDecorations.length;j<m;j+=2){subDecorations[j]+=start;}PR_spliceArrayInto(subDecorations,decorations,i,2);i+=subDecorations.length-2;}}return decorations;}function PR_splitSourceAttributes(source,decorations){var nextValueIsSource=false;for(var i=0;i<decorations.length;i+=2){var style=decorations[i+1];if(style===PR_ATTRIB_NAME){var start=decorations[i];var end=i+2<decorations.length?decorations[i+2]:source.length;nextValueIsSource=/^on|^style$/i.test(source.substring(start,end));}else if(style==PR_ATTRIB_VALUE){if(nextValueIsSource){var start=decorations[i];var end=i+2<decorations.length?decorations[i+2]:source.length;var attribValue=source.substring(start,end);var attribLen=attribValue.length;var quoted=(attribLen>=2&&/^["\']/.test(attribValue)&&attribValue.charAt(0)===attribValue.charAt(attribLen-1));var attribSource;var attribSourceStart;var attribSourceEnd;if(quoted){attribSourceStart=start+1;attribSourceEnd=end-1;attribSource=attribValue;}else{attribSourceStart=start+1;attribSourceEnd=end-1;attribSource=attribValue.substring(1,attribValue.length-1);}var attribSourceDecorations=PR_decorateSource(attribSource);for(var j=0,m=attribSourceDecorations.length;j<m;j+=2){attribSourceDecorations[j]+=attribSourceStart;}if(quoted){attribSourceDecorations.push(attribSourceEnd,PR_ATTRIB_VALUE);PR_spliceArrayInto(attribSourceDecorations,decorations,i+2,0);}else{PR_spliceArrayInto(attribSourceDecorations,decorations,i,2);}}nextValueIsSource=false;}}return decorations;}function PR_decorateSource(sourceCode){var decorations=PR_splitStringAndCommentTokens(sourceCode);decorations=PR_splitNonStringNonCommentTokens(sourceCode,decorations);return decorations;}function PR_decorateMarkup(sourceCode){var decorations=PR_tokenizeMarkup(sourceCode);decorations=PR_splitTagAttributes(sourceCode,decorations);decorations=PR_splitSourceNodes(sourceCode,decorations);decorations=PR_splitSourceAttributes(sourceCode,decorations);return decorations;}function PR_recombineTagsAndDecorations(sourceText,extractedTags,decorations){var html=[];var outputIdx=0;var openDecoration=null;var currentDecoration=null;var tagPos=0;var decPos=0;var tabExpander=PR_tabExpander(PR_TAB_WIDTH);function emitTextUpTo(sourceIdx){if(sourceIdx>outputIdx){if(openDecoration&&openDecoration!==currentDecoration){html.push('</span>');openDecoration=null;}if(!openDecoration&&currentDecoration){openDecoration=currentDecoration;html.push('<span class="',openDecoration,'">');}var htmlChunk=PR_textToHtml(tabExpander(sourceText.substring(outputIdx,sourceIdx))).replace(/(\r\n?|\n| ) /g,'$1&nbsp;').replace(/\r\n?|\n/g,'&nbsp;<br>');html.push(htmlChunk);outputIdx=sourceIdx;}}while(true){var outputTag;if(tagPos<extractedTags.length){if(decPos<decorations.length){outputTag=extractedTags[tagPos]<=decorations[decPos];}else{outputTag=true;}}else{outputTag=false;}if(outputTag){emitTextUpTo(extractedTags[tagPos]);if(openDecoration){html.push('</span>');openDecoration=null;}html.push(extractedTags[tagPos+1]);tagPos+=2;}else if(decPos<decorations.length){emitTextUpTo(decorations[decPos]);currentDecoration=decorations[decPos+1];decPos+=2;}else{break;}}emitTextUpTo(sourceText.length);if(openDecoration){html.push('</span>');}return html.join('');}function prettyPrintOne(sourceCodeHtml){try{var sourceAndExtractedTags=PR_extractTags(sourceCodeHtml);var source=sourceAndExtractedTags.source;var extractedTags=sourceAndExtractedTags.tags;var isMarkup=/^\s*</.test(source)&&/>\s*$/.test(source);var decorations=isMarkup?PR_decorateMarkup(source):PR_decorateSource(source);return PR_recombineTagsAndDecorations(source,extractedTags,decorations);}catch(e){if('console'in window){console.log(e);console.trace();}return sourceCodeHtml;}}var PR_SHOULD_USE_CONTINUATION=true;function prettyPrint(opt_whenDone){var codeSegments=[document.getElementsByTagName('pre'),document.getElementsByTagName('code'),document.getElementsByTagName('xmp')];var elements=[];for(var i=0;i<codeSegments.length;++i){for(var j=0;j<codeSegments[i].length;++j){elements.push(codeSegments[i][j]);}}codeSegments=null;var k=0;function doWork(){var endTime=(PR_SHOULD_USE_CONTINUATION?new Date().getTime()+250:Infinity);for(;k<elements.length&&new Date().getTime()<endTime;k++){var cs=elements[k];if(cs.className&&cs.className.indexOf('prettyprint')>=0){var nested=false;for(var p=cs.parentNode;p!=null;p=p.parentNode){if((p.tagName=='pre'||p.tagName=='code'||p.tagName=='xmp')&&p.className&&p.className.indexOf('prettyprint')>=0){nested=true;break;}}if(!nested){var content=PR_getInnerHtml(cs);content=content.replace(/(?:\r\n?|\n)$/,'');var newContent=prettyPrintOne(content);if(!PR_isRawContent(cs)){cs.innerHTML=newContent;}else{var pre=document.createElement('PRE');for(var i=0;i<cs.attributes.length;++i){var a=cs.attributes[i];if(a.specified){pre.setAttribute(a.name,a.value);}}pre.innerHTML=newContent;cs.parentNode.replaceChild(pre,cs);}}}}if(k<elements.length){setTimeout(doWork,250);}else if(opt_whenDone){opt_whenDone();}}doWork();}</script><script type='text/javascript'>prettyPrint();</script></BODY>
</HTML>
