/*
 * Copyright (c) 2003, Morpho Project.
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are met:
 *
 * 1. Redistributions of source code must retain the above copyright notice,
 *	  this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright notice,
 *	  this list of conditions and the following disclaimer in the documentation
 *	  and/or other materials provided with the distribution.
 * 3. Neither the name of the Morpho Project nor the names of its contributors
 *	  may be used to endorse or promote products derived from this software
 *	  without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 * POSSIBILITY OF SUCH DAMAGE.
 */
package jp.morpho.webapp.servlet.jsp.tagext.html;

import jp.morpho.webapp.servlet.jsp.tagext.BaseTag;

/**
 * <P>
 * チェックボックス、ラジオボタン、メニューなどのコントロールを実装したタグハンドラを定義するための基底クラスです。
 * </P>
 * @author Kumiko Hiroi
 */
public abstract class ControlTagSupport
	extends BaseTag
	implements Attrs
{
	/**
	 * <P>
	 * デフォルトのコンストラクタです。
	 * すべてのサブクラスは、同じシグニチャーを持つ public コンストラクタを定義し、スーパークラスのコンストラクタを呼び出す必要があります。
	 * このコンストラクタは、JSP トランスレータによって生成されたコードから呼び出されます。
	 * </P>
	 */
	public ControlTagSupport()
	{
		super();
	}

	/**
	 * <P>
	 * class 属性を返します。
	 * </P>
	 * @return class 属性
	 * @see jp.morpho.webapp.servlet.jsp.tagext.html.CoreAttrs#getStyleclass()
	 */
	public String getStyleclass()
	{
		return getAttributeMap().getString("class");
	}

	/**
	 * <P>
	 * id 属性を返します。
	 * </P>
	 * @return id 属性
	 * @see jp.morpho.webapp.servlet.jsp.tagext.html.CoreAttrs#getStyleid()
	 */
	public String getStyleid()
	{
		return getAttributeMap().getString("id");
	}

	/**
	 * <P>
	 * style 属性を返します。
	 * </P>
	 * @return style 属性
	 * @see jp.morpho.webapp.servlet.jsp.tagext.html.CoreAttrs#getStyle()
	 */
	public String getStyle()
	{
		return getAttributeMap().getString("style");
	}

	/**
	 * <P>
	 * title 属性を返します。
	 * </P>
	 * @return title 属性
	 * @see jp.morpho.webapp.servlet.jsp.tagext.html.CoreAttrs#getTitle()
	 */
	public String getTitle()
	{
		return getAttributeMap().getString("title");
	}

	/**
	 * <P>
	 * class 属性を設定します。
	 * </P>
	 * @param cls class 属性
	 * @see jp.morpho.webapp.servlet.jsp.tagext.html.CoreAttrs#setStyleclass(String)
	 */
	public void setStyleclass(String cls)
	{
		getAttributeMap().putString("class", cls);
	}

	/**
	 * <P>
	 * id 属性を設定します。
	 * </P>
	 * @param id id 属性
	 * @see jp.morpho.webapp.servlet.jsp.tagext.html.CoreAttrs#setStyleid(String)
	 */
	public void setStyleid(String id)
	{
		getAttributeMap().putString("id", id);
	}

	/**
	 * <P>
	 * style 属性を設定します。
	 * </P>
	 * @param style style 属性
	 * @see jp.morpho.webapp.servlet.jsp.tagext.html.CoreAttrs#setStyle(String)
	 */
	public void setStyle(String style)
	{
		getAttributeMap().putString("style", style);
	}

	/**
	 * <P>
	 * title 属性を設定します。
	 * </P>
	 * @param title title 属性
	 * @see jp.morpho.webapp.servlet.jsp.tagext.html.CoreAttrs#setTitle(String)
	 */
	public void setTitle(String title)
	{
		getAttributeMap().putString("title", title);
	}

	/**
	 * <P>
	 * onclick 属性を返します。
	 * </P>
	 * @return onclick 属性
	 * @see jp.morpho.webapp.servlet.jsp.tagext.html.Events#getOnclick()
	 */
	public String getOnclick()
	{
		return getAttributeMap().getString("onclick");
	}

	/**
	 * <P>
	 * ondblclick 属性を返します。
	 * </P>
	 * @return ondblclick 属性
	 * @see jp.morpho.webapp.servlet.jsp.tagext.html.Events#getOndblclick()
	 */
	public String getOndblclick()
	{
		return getAttributeMap().getString("ondblclick");
	}

	/**
	 * <P>
	 * onkeydown 属性を返します。
	 * </P>
	 * @return onkeydown 属性
	 * @see jp.morpho.webapp.servlet.jsp.tagext.html.Events#getOnkeydown()
	 */
	public String getOnkeydown()
	{
		return getAttributeMap().getString("onkeydown");
	}

	/**
	 * <P>
	 * onkeypress 属性を返します。
	 * </P>
	 * @return onkeypress 属性
	 * @see jp.morpho.webapp.servlet.jsp.tagext.html.Events#getOnkeypress()
	 */
	public String getOnkeypress()
	{
		return getAttributeMap().getString("onkeypress");
	}

	/**
	 * <P>
	 * onkeyup 属性を返します。
	 * </P>
	 * @return onkeyup 属性
	 * @see jp.morpho.webapp.servlet.jsp.tagext.html.Events#getOnkeyup()
	 */
	public String getOnkeyup()
	{
		return getAttributeMap().getString("onkeyup");
	}

	/**
	 * <P>
	 * onmousedown 属性を返します。
	 * </P>
	 * @return onmousedown 属性
	 * @see jp.morpho.webapp.servlet.jsp.tagext.html.Events#getOnmousedown()
	 */
	public String getOnmousedown()
	{
		return getAttributeMap().getString("onmousedown");
	}

	/**
	 * <P>
	 * onmousemove 属性を返します。
	 * </P>
	 * @return onmousemove 属性
	 * @see jp.morpho.webapp.servlet.jsp.tagext.html.Events#getOnmousemove()
	 */
	public String getOnmousemove()
	{
		return getAttributeMap().getString("onmousemove");
	}

	/**
	 * <P>
	 * onmouseout 属性を返します。
	 * </P>
	 * @return onmouseout 属性
	 * @see jp.morpho.webapp.servlet.jsp.tagext.html.Events#getOnmouseout()
	 */
	public String getOnmouseout()
	{
		return getAttributeMap().getString("onmouseout");
	}

	/**
	 * <P>
	 * onmouseover 属性を返します。
	 * </P>
	 * @return onmouseover 属性
	 * @see jp.morpho.webapp.servlet.jsp.tagext.html.Events#getOnmouseover()
	 */
	public String getOnmouseover()
	{
		return getAttributeMap().getString("onmouseover");
	}

	/**
	 * <P>
	 * onmouseup 属性を返します。
	 * </P>
	 * @return onmouseup 属性
	 * @see jp.morpho.webapp.servlet.jsp.tagext.html.Events#getOnmouseup()
	 */
	public String getOnmouseup()
	{
		return getAttributeMap().getString("onmouseup");
	}

	/**
	 * <P>
	 * onclick 属性を設定します。
	 * </P>
	 * @param onclick onclick 属性
	 * @see jp.morpho.webapp.servlet.jsp.tagext.html.Events#setOnclick(String)
	 */
	public void setOnclick(String onclick)
	{
		getAttributeMap().putString("onclick", onclick);
	}

	/**
	 * <P>
	 * ondblclick 属性を設定します。
	 * </P>
	 * @param ondblclick ondblclick 属性
	 * @see jp.morpho.webapp.servlet.jsp.tagext.html.Events#setOndblclick(String)
	 */
	public void setOndblclick(String ondblclick)
	{
		getAttributeMap().putString("ondblclick", ondblclick);
	}

	/**
	 * <P>
	 * onkeydown 属性を設定します。
	 * </P>
	 * @param onkeydown onkeydown 属性
	 * @see jp.morpho.webapp.servlet.jsp.tagext.html.Events#setOnkeydown(String)
	 */
	public void setOnkeydown(String onkeydown)
	{
		getAttributeMap().putString("onkeydown", onkeydown);
	}

	/**
	 * <P>
	 * onkeypress 属性を設定します。
	 * </P>
	 * @param onkeypress onkeypress 属性
	 * @see jp.morpho.webapp.servlet.jsp.tagext.html.Events#setOnkeypress(String)
	 */
	public void setOnkeypress(String onkeypress)
	{
		getAttributeMap().putString("onkeypress", onkeypress);
	}

	/**
	 * <P>
	 * onkeyup 属性を設定します。
	 * </P>
	 * @param onkeyup onkeyup 属性
	 * @see jp.morpho.webapp.servlet.jsp.tagext.html.Events#setOnkeyup(String)
	 */
	public void setOnkeyup(String onkeyup)
	{
		getAttributeMap().putString("onkeyup", onkeyup);
	}

	/**
	 * <P>
	 * onmousedown 属性を設定します。
	 * </P>
	 * @param onmousedown onmousedown 属性
	 * @see jp.morpho.webapp.servlet.jsp.tagext.html.Events#setOnmousedown(String)
	 */
	public void setOnmousedown(String onmousedown)
	{
		getAttributeMap().putString("onmousedown", onmousedown);
	}

	/**
	 * <P>
	 * onmousemove 属性を設定します。
	 * </P>
	 * @param onmousemove onmousemove 属性
	 * @see jp.morpho.webapp.servlet.jsp.tagext.html.Events#setOnmousemove(String)
	 */
	public void setOnmousemove(String onmousemove)
	{
		getAttributeMap().putString("onmousemove", onmousemove);
	}

	/**
	 * <P>
	 * onmouseout 属性を設定します。
	 * </P>
	 * @param onmouseout onmouseout 属性
	 * @see jp.morpho.webapp.servlet.jsp.tagext.html.Events#setOnmouseout(String)
	 */
	public void setOnmouseout(String onmouseout)
	{
		getAttributeMap().putString("onmouseout", onmouseout);
	}

	/**
	 * <P>
	 * onmouseover 属性を設定します。
	 * </P>
	 * @param onmouseover onmouseover 属性
	 * @see jp.morpho.webapp.servlet.jsp.tagext.html.Events#setOnmouseover(String)
	 */
	public void setOnmouseover(String onmouseover)
	{
		getAttributeMap().putString("onmouseover", onmouseover);
	}

	/**
	 * <P>
	 * onmouseup 属性を設定します。
	 * </P>
	 * @param onmouseup onmouseup 属性
	 * @see jp.morpho.webapp.servlet.jsp.tagext.html.Events#setOnmouseup(String)
	 */
	public void setOnmouseup(String onmouseup)
	{
		getAttributeMap().putString("onmouseup", onmouseup);
	}

	/**
	 * <P>
	 * dir 属性を返します。
	 * </P>
	 * @return dir 属性
	 * @see jp.morpho.webapp.servlet.jsp.tagext.html.I18n#getDir()
	 */
	public String getDir()
	{
		return getAttributeMap().getString("dir");
	}

	/**
	 * <P>
	 * lang 属性を返します。
	 * </P>
	 * @return lang 属性
	 * @see jp.morpho.webapp.servlet.jsp.tagext.html.I18n#getLang()
	 */
	public String getLang()
	{
		return getAttributeMap().getString("lang");
	}

	/**
	 * <P>
	 * dir 属性を設定します。
	 * </P>
	 * @param dir dir 属性
	 * @see jp.morpho.webapp.servlet.jsp.tagext.html.I18n#setDir(String)
	 */
	public void setDir(String dir)
	{
		getAttributeMap().putString("dir", dir);
	}

	/**
	 * <P>
	 * lang 属性を設定します。
	 * </P>
	 * @param lang lang 属性
	 * @see jp.morpho.webapp.servlet.jsp.tagext.html.I18n#setLang(String)
	 */
	public void setLang(String lang)
	{
		getAttributeMap().putString("lang", lang);
	}

}
