> Has someone a working example of an ITemplateSourceDelegate 
> or or a PageSpecificationResolverImpl ? I can't find any.
> I only want to have a .class for each page and in the same 
> package the html template. All .page configuration will be 
> set using annotations.
> Thanks !!
> 

Here is ISpecificationResolverDelegate which I use in my project. It allows
me to
1. get rid of *.page files. Ionly need MyPage.html and MyPage.class
2. store both MyPage.html and MyPage.class in the same location ( in my case
it's WEB_INF\classes\com\Mycompany\page\ )
3. use getPage( "com.mycompany.MyPage" ) 
4. get rid of <meta key="org.apache.tapestry.page-class-packages" > in my
.application file

Hope this helps.

import org.apache.hivemind.Resource;
import org.apache.hivemind.impl.LocationImpl;
import org.apache.tapestry.INamespace;
import org.apache.tapestry.IRequestCycle;
import org.apache.tapestry.resolver.ISpecificationResolverDelegate;
import org.apache.tapestry.spec.ComponentSpecification;
import org.apache.tapestry.spec.IComponentSpecification;

public class SpecificationResolverDelegate implements
ISpecificationResolverDelegate {

        public IComponentSpecification findPageSpecification(IRequestCycle
cycle, INamespace namespace, String simplePageName){

                final Resource namespaceLocation =
namespace.getSpecificationLocation();
                final Resource templateResource =
namespaceLocation.getRelativeResource( "classes/" + simplePageName.replace(
'.', '/' ) + ".html" );

                if ( templateResource.getResourceURL() != null ){
                        final Resource pageResource =
namespaceLocation.getRelativeResource( "classes/" + simplePageName.replace(
'.', '/' ) + ".page" );

                        final IComponentSpecification specification = new
ComponentSpecification();
                        specification.setComponentClassName( simplePageName
);
                        specification.setPageSpecification( false );
                        specification.setSpecificationLocation( pageResource
);
                        specification.setLocation( new LocationImpl(
templateResource ) );
                        return specification;
                }
                return null;
        }

        public IComponentSpecification findComponentSpecification(
IRequestCycle cycle, INamespace namespace, String type){
                return null;
        }
}




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to