com.icesoft.faces.renderkit.dom_html_basic.InputTextRenderer Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of icefaces-compat Show documentation
Show all versions of icefaces-compat Show documentation
${icefaces.product.name} Compat Component Library
The newest version!
/*
* Copyright 2004-2013 ICEsoft Technologies Canada Corp.
*
* 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 com.icesoft.faces.renderkit.dom_html_basic;
import com.icesoft.faces.component.AttributeConstants;
import com.icesoft.faces.context.effects.CurrentStyle;
import java.io.IOException;
import java.util.Map;
import javax.faces.component.UIComponent;
import javax.faces.component.UIInput;
import javax.faces.context.FacesContext;
import javax.faces.context.ResponseWriter;
public class InputTextRenderer extends BaseRenderer{
private static final String[] passThruAttributes = AttributeConstants.getAttributes(AttributeConstants.H_INPUTTEXT);
public void decode(FacesContext facesContext, UIComponent uiComponent) {
//readonly or disabled components are not required to submit the value
super.decode(facesContext, uiComponent);
if(DomBasicRenderer.isStatic(uiComponent)) return;
String clientId = uiComponent.getClientId(facesContext);
Map requestMap =
facesContext.getExternalContext().getRequestParameterMap();
if (requestMap.containsKey(clientId)) {
String decodedValue = (String) requestMap.get(clientId);
((UIInput)uiComponent).setSubmittedValue(decodedValue);
}
}
public void encodeBegin(FacesContext facesContext, UIComponent uiComponent)
throws IOException {
ResponseWriter writer = facesContext.getResponseWriter();
String clientId = uiComponent.getClientId(facesContext);
writer.startElement(HTML.INPUT_ELEM, uiComponent);
writer.writeAttribute(HTML.ID_ATTR, clientId, HTML.ID_ATTR);
renderHtmlAttributes(facesContext, writer, uiComponent);
PassThruAttributeWriter.renderBooleanAttributes(
writer,
uiComponent,
new String[0]);
writer.writeAttribute(HTML.NAME_ATTR, clientId, null);
writer.writeAttribute(HTML.TYPE_ATTR, "text", null);
Object styleClass = uiComponent.getAttributes().get("styleClass");
if (styleClass != null) {
writer.writeAttribute(HTML.CLASS_ATTR, styleClass, null);
}
}
public void encodeEnd(FacesContext facesContext, UIComponent uiComponent)
throws IOException {
//it must call the super.encode to support effects and facesMessage recovery
super.encodeEnd(facesContext, uiComponent);
ResponseWriter writer = facesContext.getResponseWriter();
Object value = getValue(facesContext, uiComponent);
if (value != null) {
writer.writeAttribute(HTML.VALUE_ATTR, value, null);
}
writer.endElement(HTML.INPUT_ELEM);
}
public String getValue(FacesContext facesContext, UIComponent uiComponent) {
// for input components, get the submitted value
if (uiComponent instanceof UIInput) {
Object submittedValue = ((UIInput) uiComponent).getSubmittedValue();
if (submittedValue != null && submittedValue instanceof String) {
return (String) submittedValue;
}
}
return DomBasicInputRenderer.converterGetAsString(facesContext,
uiComponent, ((UIInput) uiComponent).getValue());
}
protected void renderHtmlAttributes(
FacesContext facesContext, ResponseWriter writer, UIComponent uiComponent)
throws IOException{
PassThruAttributeWriter.renderHtmlAttributes(
writer, uiComponent, passThruAttributes);
}
}