View Javadoc

1   /*
2    * ImageRenderer.java
3    *
4    * Created on 17 Май 2006 г., 15:41
5    */
6   
7   package org.weda.tapestry.renderer.impl;
8   
9   import org.apache.hivemind.ApplicationRuntimeException;
10  import org.apache.tapestry.IMarkupWriter;
11  import org.apache.tapestry.IRequestCycle;
12  import org.weda.property.PropertyDescriptor;
13  import org.weda.converter.ValueTypeConverter;
14  import org.weda.enhance.InjectObject;
15  import org.weda.data.DataProviderLinkBuilder;
16  
17  /**
18   *
19   * @author Mikhail Titov
20   */
21  public abstract class ImageRenderer extends AbstractRenderer {
22      
23      @InjectObject()
24      public abstract DataProviderLinkBuilder getLinkBuilder(); 
25      
26      public ImageRenderer(){
27          setNeedDataId(true);
28          setNeedValue(true);
29      }
30      
31      public void render(
32              IMarkupWriter writer, IRequestCycle cycle
33              , PropertyDescriptor propertyDescriptor
34              , ValueTypeConverter converter, Object value, Object dataId) 
35      {
36          try{
37              String url = getLinkBuilder().getLinkToDataViewer(dataId);
38              if (value!=null){
39                  writer.begin("img");
40                  writer.attributeRaw("src", url);
41                  writer.end();
42              }else
43                  writer.printRaw(" ");
44          }catch(Exception e){
45              throw new ApplicationRuntimeException("Can't render value", e);
46          }
47      }
48      
49  }