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 }