/*
* Copyright (c) 1998-2011 Caucho Technology -- all rights reserved
*
* This file is part of Resin(R) Open Source
*
* Each copy or derived work must preserve the copyright notice and this
* notice unmodified.
*
* Resin Open Source is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2
* as published by the Free Software Foundation.
*
* Resin Open Source 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, or any warranty
* of NON-INFRINGEMENT. See the GNU General Public License for more
* details.
*
* You should have received a copy of the GNU General Public License
* along with Resin Open Source; if not, write to the
*
* Free Software Foundation, Inc.
* 59 Temple Place, Suite 330
* Boston, MA 02111-1307 USA
*
* @author Scott Ferguson
*/
package javax.faces.component.html;
import java.util.*;
import javax.el.*;
import javax.faces.component.*;
import javax.faces.context.*;
public class HtmlDataTable extends UIData
{
public static final String COMPONENT_TYPE = "javax.faces.HtmlDataTable";
private static final HashMap<String,PropEnum> _propMap
= new HashMap<String,PropEnum>();
private String _bgcolor;
private ValueExpression _bgcolorExpr;
private Integer _border;
private ValueExpression _borderExpr;
private String _captionClass;
private ValueExpression _captionClassExpr;
private String _captionStyle;
private ValueExpression _captionStyleExpr;
private String _cellpadding;
private ValueExpression _cellpaddingExpr;
private String _cellspacing;
private ValueExpression _cellspacingExpr;
private String _columnClasses;
private ValueExpression _columnClassesExpr;
private Integer _columns;
private ValueExpression _columnsExpr;
private String _dir;
private ValueExpression _dirExpr;
private String _footerClass;
private ValueExpression _footerClassExpr;
private String _frame;
private ValueExpression _frameExpr;
private String _headerClass;
private ValueExpression _headerClassExpr;
private String _lang;
private ValueExpression _langExpr;
private String _onclick;
private ValueExpression _onclickExpr;
private String _ondblclick;
private ValueExpression _ondblclickExpr;
private String _onkeydown;
private ValueExpression _onkeydownExpr;
private String _onkeypress;
private ValueExpression _onkeypressExpr;
private String _onkeyup;
private ValueExpression _onkeyupExpr;
private String _onmousedown;
private ValueExpression _onmousedownExpr;
private String _onmousemove;
private ValueExpression _onmousemoveExpr;
private String _onmouseout;
private ValueExpression _onmouseoutExpr;
private String _onmouseover;
private ValueExpression _onmouseoverExpr;
private String _onmouseup;
private ValueExpression _onmouseupExpr;
private String _rowClasses;
private ValueExpression _rowClassesExpr;
private String _rules;
private ValueExpression _rulesExpr;
private String _style;
private ValueExpression _styleExpr;
private String _styleClass;
private ValueExpression _styleClassExpr;
private String _summary;
private ValueExpression _summaryExpr;
private String _title;
private ValueExpression _titleExpr;
private String _width;
private ValueExpression _widthExpr;
public HtmlDataTable()
{
setRendererType("javax.faces.Table");
}
//
// properties
//
public String getBgcolor()
{
if (_bgcolor != null)
return _bgcolor;
else if (_bgcolorExpr != null)
return Util.evalString(_bgcolorExpr);
else
return null;
}
public void setBgcolor(String value)
{
_bgcolor = value;
}
public int getBorder()
{
if (_border != null)
return _border;
else if (_borderExpr != null)
return Util.evalInt(_borderExpr);
else
return Integer.MIN_VALUE;
}
public void setBorder(int value)
{
_border = value;
}
public String getCaptionClass()
{
if (_captionClass != null)
return _captionClass;
else if (_captionClassExpr != null)
return Util.evalString(_captionClassExpr);
else
return null;
}
public void setCaptionClass(String value)
{
_captionClass = value;
}
public String getCaptionStyle()
{
if (_captionStyle != null)
return _captionStyle;
else if (_captionStyleExpr != null)
return Util.evalString(_captionStyleExpr);
else
return null;
}
public void setCaptionStyle(String value)
{
_captionStyle = value;
}
public String getCellpadding()
{
if (_cellpadding != null)
return _cellpadding;
else if (_cellpaddingExpr != null)
return Util.evalString(_cellpaddingExpr);
else
return null;
}
public void setCellpadding(String value)
{
_cellpadding = value;
}
public String getCellspacing()
{
if (_cellspacing != null)
return _cellspacing;
else if (_cellspacingExpr != null)
return Util.evalString(_cellspacingExpr);
else
return null;
}
public void setCellspacing(String value)
{
_cellspacing = value;
}
public String getColumnClasses()
{
if (_columnClasses != null)
return _columnClasses;
else if (_columnClassesExpr != null)
return Util.evalString(_columnClassesExpr);
else
return null;
}
public void setColumnClasses(String value)
{
_columnClasses = value;
}
public String getDir()
{
if (_dir != null)
return _dir;
else if (_dirExpr != null)
return Util.evalString(_dirExpr);
else
return null;
}
public void setDir(String value)
{
_dir = value;
}
public String getFooterClass()
{
if (_footerClass != null)
return _footerClass;
else if (_footerClassExpr != null)
return Util.evalString(_footerClassExpr);
else
return null;
}
public void setFooterClass(String value)
{
_footerClass = value;
}
public String getFrame()
{
if (_frame != null)
return _frame;
else if (_frameExpr != null)
return Util.evalString(_frameExpr);
else
return null;
}
public void setFrame(String value)
{
_frame = value;
}
public String getHeaderClass()
{
if (_headerClass != null)
return _headerClass;
else if (_headerClassExpr != null)
return Util.evalString(_headerClassExpr);
else
return null;
}
public void setHeaderClass(String value)
{
_headerClass = value;
}
public String getLang()
{
if (_lang != null)
return _lang;
else if (_langExpr != null)
return Util.evalString(_langExpr);
else
return null;
}
public void setLang(String value)
{
_lang = value;
}
public String getOnclick()
{
if (_onclick != null)
return _onclick;
else if (_onclickExpr != null)
return Util.evalString(_onclickExpr);
else
return null;
}
public void setOnclick(String value)
{
_onclick = value;
}
public String getOndblclick()
{
if (_ondblclick != null)
return _ondblclick;
else if (_ondblclickExpr != null)
return Util.evalString(_ondblclickExpr);
else
return null;
}
public void setOndblclick(String value)
{
_ondblclick = value;
}
public String getOnkeydown()
{
if (_onkeydown != null)
return _onkeydown;
else if (_onkeydownExpr != null)
return Util.evalString(_onkeydownExpr);
else
return null;
}
public void setOnkeydown(String value)
{
_onkeydown = value;
}
public String getOnkeypress()
{
if (_onkeypress != null)
return _onkeypress;
else if (_onkeypressExpr != null)
return Util.evalString(_onkeypressExpr);
else
return null;
}
public void setOnkeypress(String value)
{
_onkeypress = value;
}
public String getOnkeyup()
{
if (_onkeyup != null)
return _onkeyup;
else if (_onkeyupExpr != null)
return Util.evalString(_onkeyupExpr);
else
return null;
}
public void setOnkeyup(String value)
{
_onkeyup = value;
}
public String getOnmousedown()
{
if (_onmousedown != null)
return _onmousedown;
else if (_onmousedownExpr != null)
return Util.evalString(_onmousedownExpr);
else
return null;
}
public void setOnmousedown(String value)
{
_onmousedown = value;
}
public String getOnmousemove()
{
if (_onmousemove != null)
return _onmousemove;
else if (_onmousemoveExpr != null)
return Util.evalString(_onmousemoveExpr);
else
return null;
}
public void setOnmousemove(String value)
{
_onmousemove = value;
}
public String getOnmouseout()
{
if (_onmouseout != null)
return _onmouseout;
else if (_onmouseoutExpr != null)
return Util.evalString(_onmouseoutExpr);
else
return null;
}
public void setOnmouseout(String value)
{
_onmouseout = value;
}
public String getOnmouseover()
{
if (_onmouseover != null)
return _onmouseover;
else if (_onmouseoverExpr != null)
return Util.evalString(_onmouseoverExpr);
else
return null;
}
public void setOnmouseover(String value)
{
_onmouseover = value;
}
public String getOnmouseup()
{
if (_onmouseup != null)
return _onmouseup;
else if (_onmouseupExpr != null)
return Util.evalString(_onmouseupExpr);
else
return null;
}
public void setOnmouseup(String value)
{
_onmouseup = value;
}
public String getRowClasses()
{
if (_rowClasses != null)
return _rowClasses;
else if (_rowClassesExpr != null)
return Util.evalString(_rowClassesExpr);
else
return null;
}
public void setRowClasses(String value)
{
_rowClasses = value;
}
public String getRules()
{
if (_rules != null)
return _rules;
else if (_rulesExpr != null)
return Util.evalString(_rulesExpr);
else
return null;
}
public void setRules(String value)
{
_rules = value;
}
public String getStyle()
{
if (_style != null)
return _style;
else if (_styleExpr != null)
return Util.evalString(_styleExpr);
else
return null;
}
public void setStyle(String value)
{
_style = value;
}
public String getStyleClass()
{
if (_styleClass != null)
return _styleClass;
else if (_styleClassExpr != null)
return Util.evalString(_styleClassExpr);
else
return null;
}
public void setStyleClass(String value)
{
_styleClass = value;
}
public String getSummary()
{
if (_summary != null)
return _summary;
else if (_summaryExpr != null)
return Util.evalString(_summaryExpr);
else
return null;
}
public void setSummary(String value)
{
_summary = value;
}
public String getTitle()
{
if (_title != null)
return _title;
else if (_titleExpr != null)
return Util.evalString(_titleExpr);
else
return null;
}
public void setTitle(String value)
{
_title = value;
}
public String getWidth()
{
if (_width != null)
return _width;
else if (_widthExpr != null)
return Util.evalString(_widthExpr);
else
return null;
}
public void setWidth(String value)
{
_width = value;
}
//
// value expression override
//
/**
* Returns the value expression with the given name.
*/
@Override
public ValueExpression getValueExpression(String name)
{
PropEnum prop = _propMap.get(name);
if (prop != null) {
switch (prop) {
case BGCOLOR:
return _bgcolorExpr;
case BORDER:
return _borderExpr;
case CAPTION_CLASS:
return _captionClassExpr;
case CAPTION_STYLE:
return _captionStyleExpr;
case CELLPADDING:
return _cellpaddingExpr;
case CELLSPACING:
return _cellspacingExpr;
case COLUMN_CLASSES:
return _columnClassesExpr;
case COLUMNS:
return _columnsExpr;
case DIR:
return _dirExpr;
case FOOTER_CLASS:
return _footerClassExpr;
case FRAME:
return _frameExpr;
case HEADER_CLASS:
return _headerClassExpr;
case LANG:
return _langExpr;
case ONCLICK:
return _onclickExpr;
case ONDBLCLICK:
return _ondblclickExpr;
case ONKEYDOWN:
return _onkeydownExpr;
case ONKEYPRESS:
return _onkeypressExpr;
case ONKEYUP:
return _onkeyupExpr;
case ONMOUSEDOWN:
return _onmousedownExpr;
case ONMOUSEMOVE:
return _onmousemoveExpr;
case ONMOUSEOUT:
return _onmouseoutExpr;
case ONMOUSEOVER:
return _onmouseoverExpr;
case ONMOUSEUP:
return _onmouseupExpr;
case ROW_CLASSES:
return _rowClassesExpr;
case RULES:
return _rulesExpr;
case STYLE:
return _styleExpr;
case STYLE_CLASS:
return _styleClassExpr;
case SUMMARY:
return _summaryExpr;
case TITLE:
return _titleExpr;
case WIDTH:
return _widthExpr;
}
}
return super.getValueExpression(name);
}
/**
* Sets the value expression with the given name.
*/
@Override
public void setValueExpression(String name, ValueExpression expr)
{
PropEnum prop = _propMap.get(name);
if (prop != null) {
switch (prop) {
case BGCOLOR:
if (expr != null && expr.isLiteralText()) {
_bgcolor = Util.evalString(expr);
return;
}
else
_bgcolorExpr = expr;
break;
case BORDER:
if (expr != null && expr.isLiteralText()) {
_border = Util.evalInt(expr);
return;
}
else
_borderExpr = expr;
break;
case CAPTION_CLASS:
if (expr != null && expr.isLiteralText()) {
_captionClass = Util.evalString(expr);
return;
}
else
_captionClassExpr = expr;
break;
case CAPTION_STYLE:
if (expr != null && expr.isLiteralText()) {
_captionStyle = Util.evalString(expr);
return;
}
else
_captionStyleExpr = expr;
break;
case CELLPADDING:
if (expr != null && expr.isLiteralText()) {
_cellpadding = Util.evalString(expr);
return;
}
else
_cellpaddingExpr = expr;
break;
case CELLSPACING:
if (expr != null && expr.isLiteralText()) {
_cellspacing = Util.evalString(expr);
return;
}
else
_cellspacingExpr = expr;
break;
case COLUMN_CLASSES:
if (expr != null && expr.isLiteralText()) {
_columnClasses = Util.evalString(expr);
return;
}
else
_columnClassesExpr = expr;
break;
case COLUMNS:
if (expr != null && expr.isLiteralText()) {
_columns = Util.evalInt(expr);
return;
}
else
_columnsExpr = expr;
break;
case DIR:
if (expr != null && expr.isLiteralText()) {
_dir = Util.evalString(expr);
return;
}
else
_dirExpr = expr;
break;
case FOOTER_CLASS:
if (expr != null && expr.isLiteralText()) {
_footerClass = Util.evalString(expr);
return;
}
else
_footerClassExpr = expr;
break;
case FRAME:
if (expr != null && expr.isLiteralText()) {
_frame = Util.evalString(expr);
return;
}
else
_frameExpr = expr;
break;
case HEADER_CLASS:
if (expr != null && expr.isLiteralText()) {
_headerClass = Util.evalString(expr);
return;
}
else
_headerClassExpr = expr;
break;
case LANG:
if (expr != null && expr.isLiteralText()) {
_lang = Util.evalString(expr);
return;
}
else
_langExpr = expr;
break;
case ONCLICK:
if (expr != null && expr.isLiteralText()) {
_onclick = Util.evalString(expr);
return;
}
else
_onclickExpr = expr;
break;
case ONDBLCLICK:
if (expr != null && expr.isLiteralText()) {
_ondblclick = Util.evalString(expr);
return;
}
else
_ondblclickExpr = expr;
break;
case ONKEYDOWN:
if (expr != null && expr.isLiteralText()) {
_onkeydown = Util.evalString(expr);
return;
}
else
_onkeydownExpr = expr;
break;
case ONKEYPRESS:
if (expr != null && expr.isLiteralText()) {
_onkeypress = Util.evalString(expr);
return;
}
else
_onkeypressExpr = expr;
break;
case ONKEYUP:
if (expr != null && expr.isLiteralText()) {
_onkeyup = Util.evalString(expr);
return;
}
else
_onkeyupExpr = expr;
break;
case ONMOUSEDOWN:
if (expr != null && expr.isLiteralText()) {
_onmousedown = Util.evalString(expr);
return;
}
else
_onmousedownExpr = expr;
break;
case ONMOUSEMOVE:
if (expr != null && expr.isLiteralText()) {
_onmousemove = Util.evalString(expr);
return;
}
else
_onmousemoveExpr = expr;
break;
case ONMOUSEOUT:
if (expr != null && expr.isLiteralText()) {
_onmouseout = Util.evalString(expr);
return;
}
else
_onmouseoutExpr = expr;
break;
case ONMOUSEOVER:
if (expr != null && expr.isLiteralText()) {
_onmouseover = Util.evalString(expr);
return;
}
else
_onmouseoverExpr = expr;
break;
case ONMOUSEUP:
if (expr != null && expr.isLiteralText()) {
_onmouseup = Util.evalString(expr);
return;
}
else
_onmouseupExpr = expr;
break;
case ROW_CLASSES:
if (expr != null && expr.isLiteralText()) {
_rowClasses = Util.evalString(expr);
return;
}
else
_rowClassesExpr = expr;
break;
case RULES:
if (expr != null && expr.isLiteralText()) {
_rules = Util.evalString(expr);
return;
}
else
_rulesExpr = expr;
break;
case STYLE:
if (expr != null && expr.isLiteralText()) {
_style = Util.evalString(expr);
return;
}
else
_styleExpr = expr;
break;
case STYLE_CLASS:
if (expr != null && expr.isLiteralText()) {
_styleClass = Util.evalString(expr);
return;
}
else
_styleClassExpr = expr;
break;
case SUMMARY:
if (expr != null && expr.isLiteralText()) {
_summary = Util.evalString(expr);
return;
}
else
_summaryExpr = expr;
break;
case TITLE:
if (expr != null && expr.isLiteralText()) {
_title = Util.evalString(expr);
return;
}
else
_titleExpr = expr;
break;
case WIDTH:
if (expr != null && expr.isLiteralText()) {
_width = Util.evalString(expr);
return;
}
else
_widthExpr = expr;
break;
}
}
super.setValueExpression(name, expr);
}
//
// state
//
@Override
public Object saveState(FacesContext context)
{
Object parent = super.saveState(context);
return new Object[] {
parent,
_bgcolor,
_border,
_captionClass,
_captionStyle,
_cellpadding,
_cellspacing,
_columnClasses,
_columns,
_dir,
_footerClass,
_frame,
_headerClass,
_lang,
_onclick,
_ondblclick,
_onkeydown,
_onkeypress,
_onkeyup,
_onmousedown,
_onmousemove,
_onmouseout,
_onmouseover,
_onmouseup,
_rowClasses,
_rules,
_style,
_styleClass,
_summary,
_title,
_width,
};
}
@Override
public void restoreState(FacesContext context, Object value)
{
Object []state = (Object []) value;
int i = 0;
if (state != null)
super.restoreState(context, state[i++]);
_bgcolor = (String) state[i++];
_border = (Integer) state[i++];
_captionClass = (String) state[i++];
_captionStyle = (String) state[i++];
_cellpadding = (String) state[i++];
_cellspacing = (String) state[i++];
_columnClasses = (String) state[i++];
_columns = (Integer) state[i++];
_dir = (String) state[i++];
_footerClass = (String) state[i++];
_frame = (String) state[i++];
_headerClass = (String) state[i++];
_lang = (String) state[i++];
_onclick = (String) state[i++];
_ondblclick = (String) state[i++];
_onkeydown = (String) state[i++];
_onkeypress = (String) state[i++];
_onkeyup = (String) state[i++];
_onmousedown = (String) state[i++];
_onmousemove = (String) state[i++];
_onmouseout = (String) state[i++];
_onmouseover = (String) state[i++];
_onmouseup = (String) state[i++];
_rowClasses = (String) state[i++];
_rules = (String) state[i++];
_style = (String) state[i++];
_styleClass = (String) state[i++];
_summary = (String) state[i++];
_title = (String) state[i++];
_width = (String) state[i++];
}
//
// utility
//
private enum PropEnum {
BGCOLOR,
BORDER,
CAPTION_CLASS,
CAPTION_STYLE,
CELLPADDING,
CELLSPACING,
COLUMN_CLASSES,
COLUMNS,
DIR,
FOOTER_CLASS,
FRAME,
HEADER_CLASS,
LANG,
ONCLICK,
ONDBLCLICK,
ONKEYDOWN,
ONKEYPRESS,
ONKEYUP,
ONMOUSEDOWN,
ONMOUSEMOVE,
ONMOUSEOUT,
ONMOUSEOVER,
ONMOUSEUP,
ROW_CLASSES,
RULES,
STYLE,
STYLE_CLASS,
SUMMARY,
TITLE,
WIDTH,
}
static {
_propMap.put("bgcolor", PropEnum.BGCOLOR);
_propMap.put("border", PropEnum.BORDER);
_propMap.put("captionClass", PropEnum.CAPTION_CLASS);
_propMap.put("captionStyle", PropEnum.CAPTION_STYLE);
_propMap.put("cellpadding", PropEnum.CELLPADDING);
_propMap.put("cellspacing", PropEnum.CELLSPACING);
_propMap.put("columnClasses", PropEnum.COLUMN_CLASSES);
_propMap.put("columns", PropEnum.COLUMNS);
_propMap.put("dir", PropEnum.DIR);
_propMap.put("footerClass", PropEnum.FOOTER_CLASS);
_propMap.put("frame", PropEnum.FRAME);
_propMap.put("headerClass", PropEnum.HEADER_CLASS);
_propMap.put("lang", PropEnum.LANG);
_propMap.put("onclick", PropEnum.ONCLICK);
_propMap.put("ondblclick", PropEnum.ONDBLCLICK);
_propMap.put("onkeydown", PropEnum.ONKEYDOWN);
_propMap.put("onkeypress", PropEnum.ONKEYPRESS);
_propMap.put("onkeyup", PropEnum.ONKEYUP);
_propMap.put("onmousedown", PropEnum.ONMOUSEDOWN);
_propMap.put("onmousemove", PropEnum.ONMOUSEMOVE);
_propMap.put("onmouseover", PropEnum.ONMOUSEOVER);
_propMap.put("onmouseout", PropEnum.ONMOUSEOUT);
_propMap.put("onmouseup", PropEnum.ONMOUSEUP);
_propMap.put("rowClasses", PropEnum.ROW_CLASSES);
_propMap.put("rules", PropEnum.RULES);
_propMap.put("style", PropEnum.STYLE);
_propMap.put("styleClass", PropEnum.STYLE_CLASS);
_propMap.put("summary", PropEnum.SUMMARY);
_propMap.put("title", PropEnum.TITLE);
_propMap.put("width", PropEnum.WIDTH);
}
}