 | public class InputDateRenderer extends Renderer {
public static final String RENDERER_TYPE = "to.wings.msn.jsf.custom.InputDateRenderer";
public static final String YEAR_SUFFIX = ".year";
public static final String MONTH_SUFFIX = ".month";
public static final String DAY_SUFFIX = ".day";
public void encodeEnd(FacesContext context, UIComponent uiComponent) throws IOException { if ( context == null || uiComponent == null ){ throw new NullPointerException(); }
UIInputeDate inputDate = (UIInputeDate)uiComponent; Calendar calVal = (Calendar)inputDate.getValue();
ResponseWriter writer = context.getResponseWriter(); String clientId = inputDate.getClientId( context ); Map submittedValue = (Map)((UIInput)uiComponent).getSubmittedValue();
String year = ""; String month = ""; String day = ""; if ( submittedValue != null ){ year = (String)submittedValue.get( YEAR_SUFFIX ); month = (String)submittedValue.get( MONTH_SUFFIX ); day = (String)submittedValue.get( DAY_SUFFIX ); } writeInputText( writer , clientId + YEAR_SUFFIX , 4 , 4 , year ); writer.write( "年" ); writeInputText( writer , clientId + MONTH_SUFFIX , 2 , 2 , month ); writer.write( "月" ); writeInputText( writer , clientId + DAY_SUFFIX , 2 , 2 , day ); writer.write( "日" ); }
private void writeInputText(ResponseWriter writer , String name,int maxLength,int size,String value) throws IOException{ writer.startElement( "input" , null ); writer.writeAttribute( "type" , "text" , null ); writer.writeAttribute( "name" , name , null ); writer.writeAttribute( "size" , String.valueOf(size) , null ); writer.writeAttribute( "maxlength" , String.valueOf(maxLength) , null ); writer.writeAttribute( "value" , value , null ); writer.endElement("input"); }
public void decode(FacesContext context, UIComponent uiComponent) {
super.decode(context, uiComponent); UIInputeDate inputDate = (UIInputeDate)uiComponent; Map requestMap = context.getExternalContext().getRequestParameterMap();
String clientId = uiComponent.getClientId( context ); String year = (String)requestMap.get( clientId + YEAR_SUFFIX ); String month = (String)requestMap.get( clientId + MONTH_SUFFIX ); String day = (String)requestMap.get( clientId + DAY_SUFFIX );
Map submitMap = new HashMap(); submitMap.put( YEAR_SUFFIX , year ); submitMap.put( MONTH_SUFFIX , month ); submitMap.put( DAY_SUFFIX , day ); ( (UIInput)uiComponent ).setSubmittedValue( submitMap ); } }
|  |