1
2
3
4
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 }