/*
* Copyright 2004 The Apache Software Foundation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jboss.seam.ui.util;
import java.io.IOException;
import java.util.List;
import javax.el.ValueExpression;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
/**
* Constant declarations for JSF tags
*
* @author Anton Koinov
* @author Manfred Geiler
*
*/
public class JSF
{
// Common Attributes
public static final String ID_ATTR = "id";
public static final String VALUE_ATTR = "value";
public static final String BINDING_ATTR = "binding";
public static final String STYLE_CLASS_ATTR = "styleClass";
public static final String ESCAPE_ATTR = "escape";
// Common Output Attributes
public static final String FOR_ATTR = "for";
public static final String CONVERTER_ATTR = "converter";
// Ouput_Time Attributes
public static final String TIME_STYLE_ATTR = "timeStyle";
public static final String TIMEZONE_ATTR = "timezone";
// Common Input Attributes
public static final String REQUIRED_ATTR = "required";
public static final String VALIDATOR_ATTR = "validator";
// Input_Secret Attributes
public static final String REDISPLAY_ATTR = "redisplay";
// Input_Checkbox Attributes
public static final String LAYOUT_ATTR = "layout";
// Select_Menu Attributes
public static final String SIZE_ATTR = "size";
// SelectMany Checkbox List/ Select One Radio Attributes
public static final String BORDER_ATTR = "border";
public static final String DISABLED_CLASS_ATTR = "disabledClass";
public static final String ENABLED_CLASS_ATTR = "enabledClass";
// Common Command Attributes
/** @deprecated */
public static final String COMMAND_CLASS_ATTR = "commandClass";
public static final String LABEL_ATTR = "label";
public static final String IMAGE_ATTR = "image";
public static final String ACTION_ATTR = "action";
public static final String IMMEDIATE_ATTR = "immediate";
// Command_Button Attributes
public static final String TYPE_ATTR = "type";
// Common Panel Attributes
/** @deprecated */
public static final String PANEL_CLASS_ATTR = "panelClass";
public static final String FOOTER_CLASS_ATTR = "footerClass";
public static final String HEADER_CLASS_ATTR = "headerClass";
public static final String COLUMN_CLASSES_ATTR = "columnClasses";
public static final String ROW_CLASSES_ATTR = "rowClasses";
// Panel_Grid Attributes
public static final String COLUMNS_ATTR = "columns";
public static final String COLSPAN_ATTR = "colspan"; // extension
// UIMessage and UIMessages attributes
public static final String SHOW_SUMMARY_ATTR = "showSummary";
public static final String SHOW_DETAIL_ATTR = "showDetail";
public static final String GLOBAL_ONLY_ATTR = "globalOnly";
// HtmlOutputMessage attributes
public static final String ERROR_CLASS_ATTR = "errorClass";
public static final String ERROR_STYLE_ATTR = "errorStyle";
public static final String FATAL_CLASS_ATTR = "fatalClass";
public static final String FATAL_STYLE_ATTR = "fatalStyle";
public static final String INFO_CLASS_ATTR = "infoClass";
public static final String INFO_STYLE_ATTR = "infoStyle";
public static final String WARN_CLASS_ATTR = "warnClass";
public static final String WARN_STYLE_ATTR = "warnStyle";
public static final String TITLE_ATTR = "title";
public static final String TOOLTIP_ATTR = "tooltip";
// GraphicImage attributes
public static final String URL_ATTR = "url";
// UISelectItem attributes
public static final String ITEM_DISABLED_ATTR = "itemDisabled";
public static final String ITEM_DESCRIPTION_ATTR = "itemDescription";
public static final String ITEM_LABEL_ATTR = "itemLabel";
public static final String ITEM_VALUE_ATTR = "itemValue";
// UIData attributes
public static final String ROWS_ATTR = "rows";
public static final String VAR_ATTR = "var";
public static final String FIRST_ATTR = "first";
public static void renderChildren(FacesContext facesContext,
UIComponent component) throws IOException
{
List children = component.getChildren();
for (int j=0, size = component.getChildCount(); j<size; j++)
{
UIComponent child = (UIComponent) children.get(j);
renderChild(facesContext, child);
}
}
public static void renderChild(FacesContext facesContext, UIComponent child)
throws IOException
{
if ( child.isRendered() )
{
child.encodeBegin(facesContext);
if ( child.getRendersChildren() )
{
child.encodeChildren(facesContext);
}
else
{
renderChildren(facesContext, child);
}
child.encodeEnd(facesContext);
}
}
public static String getStringValue(FacesContext context, ValueExpression vb)
{
Object value = vb.getValue(context.getELContext());
if (value == null)
{
return null;
}
return value.toString();
}
public static Integer getIntegerValue(FacesContext context, ValueExpression vb)
{
String value = getStringValue(context, vb);
if (value == null)
{
return null;
}
return new Integer(value);
}
public static Double getDoubleValue(FacesContext context, ValueExpression vb)
{
String value = getStringValue(context, vb);
if (value == null)
{
return null;
}
return new Double(value);
}
public static Boolean getBooleanValue(FacesContext context, ValueExpression vb)
{
Object value = vb.getValue(context.getELContext());
if (value == null)
{
return null;
}
if (value instanceof Boolean)
{
return (Boolean) value;
}
else
{
return Boolean.valueOf(value.toString());
}
}
}