1 package org.weda.tapestry.renderer.impl; 2 3 import org.apache.hivemind.ApplicationRuntimeException; 4 import org.apache.tapestry.IMarkupWriter; 5 import org.apache.tapestry.IRequestCycle; 6 import org.weda.property.PropertyDescriptor; 7 import org.weda.converter.ValueTypeConverter; 8 import org.weda.converter.ValueTypeConverterException; 9 10 /** 11 * 12 * @author Mikhail Titov 13 */ 14 public class InplaceRenderer extends AbstractRenderer { 15 public void render( 16 IMarkupWriter writer, IRequestCycle cycle 17 , PropertyDescriptor propertyDescriptor 18 , ValueTypeConverter converter, Object value, Object dataId) 19 { 20 try{ 21 writer.begin("p"); 22 String style = getStyle(value); 23 if (style!=null) 24 writer.attribute("style", style); 25 if ( value == null 26 || !Number.class.isAssignableFrom( 27 propertyDescriptor.getPropertyClass())) 28 { 29 renderContent( 30 writer 31 , value==null?" ": 32 (String)converter.convert( 33 String.class, value 34 , propertyDescriptor.getPattern())); 35 }else{ 36 writer.attribute("align", "right"); 37 renderContent( 38 writer 39 , (String)converter.convert( 40 String.class, value 41 , propertyDescriptor.getPattern())); 42 } 43 writer.end(); 44 }catch(ValueTypeConverterException e){ 45 throw new ApplicationRuntimeException(e); 46 } 47 } 48 49 protected void renderContent(IMarkupWriter writer, String content){ 50 writer.print(content); 51 } 52 53 protected String getStyle(Object value){ 54 return null; 55 } 56 }