All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.hfg.html.InputNumber Maven / Gradle / Ivy

There is a newer version: 20240423
Show newest version
package com.hfg.html;

import com.hfg.util.StringUtil;

import java.math.BigDecimal;

//------------------------------------------------------------------------------
/**
 * Represents a text input form element restricted to numbers (<input type='number'>).
 *
 * @author J. Alex Taylor, hairyfatguy.com
 */
//------------------------------------------------------------------------------
// com.hfg XML/HTML Coding Library
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public
// License as published by the Free Software Foundation; either
// version 2.1 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
// Lesser General Public License for more details.
//
// You should have received a copy of the GNU Lesser General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
//
// J. Alex Taylor, President, Founder, CEO, COO, CFO, OOPS hairyfatguy.com
// [email protected]
//------------------------------------------------------------------------------

public class InputNumber extends HTMLTagWithFormEvents
{

   //##########################################################################
   // PRIVATE FIELDS
   //##########################################################################


   //##########################################################################
   // CONSTRUCTORS
   //##########################################################################

   //--------------------------------------------------------------------------
   public InputNumber()
   {
      super(HTML.INPUT);
      setAttribute(HTML.TYPE, HTML.NUMBER);
   }

   //--------------------------------------------------------------------------
   public InputNumber(String inName)
   {
      this(inName, null);
   }

   //--------------------------------------------------------------------------
   public InputNumber(String inName, Number inValue)
   {
      this();
      setName(inName);
      setValue(inValue);
   }

   //##########################################################################
   // PUBLIC METHODS
   //##########################################################################

   //--------------------------------------------------------------------------
   public InputNumber setSize(int inValue)
   {
      setAttribute(HTML.SIZE, Integer.toString(inValue));

      return this;
   }

   //--------------------------------------------------------------------------
   public InputNumber setMaxLength(int inValue)
   {
      setAttribute(HTML.MAX_LENGTH, Integer.toString(inValue));

      return this;
   }

   //--------------------------------------------------------------------------
   public InputNumber setStep(int inValue)
   {
      setAttribute(HTML.STEP, Integer.toString(inValue));

      return this;
   }

   //--------------------------------------------------------------------------
   public InputNumber setMin(int inValue)
   {
      setAttribute(HTML.MIN, Integer.toString(inValue));

      return this;
   }

   //--------------------------------------------------------------------------
   public InputNumber setMax(int inValue)
   {
      setAttribute(HTML.MAX, Integer.toString(inValue));

      return this;
   }


   //--------------------------------------------------------------------------
   public InputNumber setName(String inValue)
   {
      setAttribute(HTML.NAME, inValue);

      return this;
   }

   //--------------------------------------------------------------------------
   public String getName()
   {
      return getAttributeValue(HTML.NAME);
   }

   //--------------------------------------------------------------------------
   public InputNumber setValue(Number inValue)
   {
      setAttribute(HTML.VALUE, inValue != null ? inValue.toString() : null);

      return this;
   }

   //--------------------------------------------------------------------------
   public Number getValue()
   {
      String stringValue = getAttributeValue(HTML.VALUE);
      Number value = null;
      if (StringUtil.isSet(stringValue))
      {
         if (stringValue.toLowerCase().indexOf("e") > 0)
         {
            value = new BigDecimal(stringValue);
         }
         else if (stringValue.indexOf(".") > 0)
         {
            value = Double.parseDouble(stringValue);
         }
         else
         {
            value = Integer.parseInt(stringValue);
         }
      }

      return value;
   }

   // Overrides for HTMLTag setters to allow method chaining.

   //--------------------------------------------------------------------------
   @Override
   public InputNumber setId(String inValue)
   {
      return (InputNumber) super.setId(inValue);
   }

   //--------------------------------------------------------------------------
   @Override
   public InputNumber setStyle(CharSequence inValue)
   {
      return (InputNumber) super.setStyle(inValue);
   }

   //--------------------------------------------------------------------------
   @Override
   public InputNumber addStyle(String inValue)
   {
      return (InputNumber) super.addStyle(inValue);
   }

   //--------------------------------------------------------------------------
   public InputNumber setOnInput(String inValue)
   {
      setAttribute(HTML.ONINPUT, inValue);
      return this;
   }

   // Overrides for HTMLTagWithCoreEvents setters to allow method chaining.

   //--------------------------------------------------------------------------
   @Override
   public InputNumber setOnClick(String inValue)
   {
      return (InputNumber) super.setOnClick(inValue);
   }

   //--------------------------------------------------------------------------
   @Override
   public InputNumber setOnDblClick(String inValue)
   {
      return (InputNumber) super.setOnDblClick(inValue);
   }

   //--------------------------------------------------------------------------
   @Override
   public InputNumber setOnMouseDown(String inValue)
   {
      return (InputNumber) super.setOnMouseDown(inValue);
   }

   //--------------------------------------------------------------------------
   @Override
   public InputNumber setOnMouseMove(String inValue)
   {
      return (InputNumber) super.setOnMouseMove(inValue);
   }

   //--------------------------------------------------------------------------
   @Override
   public InputNumber setOnMouseOut(String inValue)
   {
      return (InputNumber) super.setOnMouseOut(inValue);
   }

   //--------------------------------------------------------------------------
   @Override
   public InputNumber setOnMouseOver(String inValue)
   {
      return (InputNumber) super.setOnMouseOver(inValue);
   }

   //--------------------------------------------------------------------------
   @Override
   public InputNumber setOnMouseUp(String inValue)
   {
      return (InputNumber) super.setOnMouseUp(inValue);
   }

   //--------------------------------------------------------------------------
   @Override
   public InputNumber setOnKeyDown(String inValue)
   {
      return (InputNumber) super.setOnKeyDown(inValue);
   }

   //--------------------------------------------------------------------------
   @Override
   public InputNumber setOnKeyPress(String inValue)
   {
      return (InputNumber) super.setOnKeyPress(inValue);
   }

   //--------------------------------------------------------------------------
   @Override
   public InputNumber setOnKeyUp(String inValue)
   {
      return (InputNumber) super.setOnKeyUp(inValue);
   }

   // Overrides for HTMLTagWithFormEvents setters to allow method chaining.

   //--------------------------------------------------------------------------
   @Override
   public InputNumber setOnBlur(String inValue)
   {
      return (InputNumber) super.setOnBlur(inValue);
   }

   //--------------------------------------------------------------------------
   @Override
   public InputNumber setOnChange(String inValue)
   {
      return (InputNumber) super.setOnChange(inValue);
   }

   //--------------------------------------------------------------------------
   @Override
   public InputNumber setOnFocus(String inValue)
   {
      return (InputNumber) super.setOnFocus(inValue);
   }

   //--------------------------------------------------------------------------
   @Override
   public InputNumber setAutofocus()
   {
      return (InputNumber) super.setAutofocus();
   }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy