View Javadoc

1   package org.weda.tapestry.component;
2   
3   import org.apache.tapestry.AbstractComponent;
4   import org.apache.tapestry.IMarkupWriter;
5   import org.apache.tapestry.IRequestCycle;
6   import org.apache.tapestry.annotations.ComponentClass;
7   import org.apache.tapestry.annotations.InjectObject;
8   import org.apache.tapestry.annotations.Parameter;
9   import org.weda.converter.ValueTypeConverter;
10  import org.weda.tapestry.renderer.Renderer;
11  import org.weda.property.PropertyDescriptor;
12  
13  /**Цель: делегировать прорисовку компоненту указанному в свойстве <code>renderer
14   * </code>
15   *
16   * @author tim
17   */
18  @ComponentClass(allowBody=false)
19  public abstract class ValueRenderer extends AbstractComponent {
20  
21      @Parameter(required=true)
22      public abstract Renderer getRenderer();
23      @Parameter(required=true)
24      public abstract Object getValue();
25      @Parameter(required=true)
26      public abstract PropertyDescriptor getPropertyDescriptor();
27      @Parameter(required=true)
28      public abstract Object getDataId();
29      @InjectObject("service:org.weda.converter.ValueTypeConverter")
30      public abstract ValueTypeConverter getConverter();
31  
32      protected void renderComponent(IMarkupWriter writer, IRequestCycle cycle) {
33          getRenderer().render(
34              writer, cycle, getPropertyDescriptor(), getConverter()
35              , getValue(), getDataId());
36      }
37      
38  }