package de.axone.web; import java.util.Map; import de.axone.tools.Mapper; import de.axone.web.encoding.Encoder_Attribute; import de.axone.web.encoding.Encoder_Xml; public abstract class InputBuilder { public static String hiddenFields( String ... fields ){ return hiddenFields( Mapper.hashMap( fields ) ); } public static String hiddenFields( Map<String,String> fields ){ StringBuilder result = new StringBuilder(); for( Map.Entry<String,String> entry : fields.entrySet() ){ result .append( hiddenField( entry.getKey(), entry.getValue() ) ) .append( '\n' ) ; } return result.toString(); } public static StringBuilder hiddenField( String name, String value ){ StringBuilder result = new StringBuilder(); result .append( "<input type=\"hidden\"" ) .append( " name=\"" ) .append( Encoder_Attribute.ENCODE( name ) ) .append( "\" value=\"" ) .append( Encoder_Attribute.ENCODE( value ) ) .append( "\"/>" ) ; return result; } public static StringBuilder option( String key, String value, boolean selected ){ StringBuilder result = new StringBuilder(); result .append( "<option value=\"" ) .append( Encoder_Attribute.ENCODE( key ) ) .append( '"' ) ; if( selected ){ result.append( " selected=\"selected\"" ); } result .append( "\">" ) .append( Encoder_Xml.ENCODE( value ) ) .append( "</option>" ) ; return result; } public static StringBuilder radio( String name, String key, String value, boolean selected ){ StringBuilder result = new StringBuilder(); String nameE = Encoder_Attribute.ENCODE( name ); String keyE = Encoder_Attribute.ENCODE( key ); String valueE = Encoder_Attribute.ENCODE( value ); String idE = nameE + "_" + keyE; result .append( "<span class=\"radio\">" ) .append( "<input type=\"radio\" name=\"" ) .append( nameE ) .append( "\" value=\"" ) .append( keyE ) .append( "\" id=\"" ) .append( idE ) .append( '"' ) ; if( selected ){ result.append( " checked=\"checked\"" ); } result .append( "/>" ) .append( "<label for=\"" ) .append( idE ) .append( "\">" ) .append( valueE ) .append( "</label>" ) .append( "</span>" ) ; return result; } }