001    package org.trails.component;
002    
003    import org.apache.tapestry.annotations.ComponentClass;
004    import org.apache.tapestry.annotations.InjectObject;
005    import org.apache.tapestry.annotations.Parameter;
006    import org.trails.finder.BlockFinder;
007    import org.trails.descriptor.IClassDescriptor;
008    import org.trails.descriptor.IPropertyDescriptor;
009    
010    @ComponentClass(allowBody = true, allowInformalParameters = true)
011    public abstract class SimplePropertyEditor extends PropertyEditor
012    {
013    
014            @Parameter(required = true)
015            public abstract String getProperty();
016    
017            @Parameter(defaultValue = "container.classDescriptor")
018            public abstract IClassDescriptor getClassDescriptor();
019    
020            @InjectObject("service:trails.core.EditorService")
021            public abstract BlockFinder getBlockFinder();
022    
023            public IPropertyDescriptor getDescriptor()
024            {
025                    return getClassDescriptor().getPropertyDescriptor(getProperty());
026            }
027    }