Or if you are making your own "base page" or "base component" class, it goes in the /base directory instead of /pages or /components
i.e. for my reports I have /base/reports/AbstractReportPage.java and my implementations of it go in /pages/....../ReportABC.java I have my user's ASO and some Inject annotations in the abstract class (I think it could be concrete without making a difference), and everything works well in the pages that extend it. I have not tried page render cycle annotations in my base classes yet, but I don't see how it would be different. If you are in fact making your own generic page, I would make sure you don't call it anything similar to the T5 internals, just for your own sanity. =) Also, I think having those kinds of classes in /base protects those classes from the black-magic T5 does with classes found under /pages, /mixins and /components. On 8/2/07, Howard Lewis Ship <[EMAIL PROTECTED]> wrote: > You create components, not pages. You don't extend from Page. That's an > internal Tapestry interface. Please read the tutorial. > > On 8/2/07, Evan Rawson - Work <[EMAIL PROTECTED]> wrote: > > > > hello. > > > > i created a generic page which i want all of my other pages in my > > application to extend. This page controls various methods which all of my > > pages need to use. Event Listening methods (ie: onActivate, or any lifecycle > > annotation) does not work. I have to manually call the method and activate > > it on the extend page, not the root page which contains the method. > > > > I tried to manually implement the Page interface with the generic page > > which extends all of my other pages > > > > public class genericPage implements Page { > > ..... > > } > > > > i get these errors > > > > > > Severity and Description Path Resource Location Creation Time Id > > The type ProtectedPage must implement the inherited abstract method > > Page.addLifecycleListener(PageLifecycleListener) > > dma/src/main/java/com/americanadtrader/dma/services ProtectedPage.javaline > > 20 1186086487400 313088 > > The type ProtectedPage must implement the inherited abstract method > > Page.attached() dma/src/main/java/com/americanadtrader/dma/services > > ProtectedPage.java line 20 1186086487400 313095 > > The type ProtectedPage must implement the inherited abstract method > > Page.createActionLink(ComponentPageElement, String, boolean, Object...) > > dma/src/main/java/com/americanadtrader/dma/services ProtectedPage.javaline > > 20 1186086487400 313096 > > The type ProtectedPage must implement the inherited abstract method > > Page.createPageLink(String, boolean, Object...) > > dma/src/main/java/com/americanadtrader/dma/services ProtectedPage.javaline > > 20 1186086487400 313089 > > The type ProtectedPage must implement the inherited abstract method > > Page.decrementDirtyCount() > > dma/src/main/java/com/americanadtrader/dma/services ProtectedPage.javaline > > 20 1186086487400 313087 > > The type ProtectedPage must implement the inherited abstract method > > Page.detached() dma/src/main/java/com/americanadtrader/dma/services > > ProtectedPage.java line 20 1186086487400 313083 > > The type ProtectedPage must implement the inherited abstract method > > Page.getComponentElementByNestedId(String) > > dma/src/main/java/com/americanadtrader/dma/services ProtectedPage.javaline > > 20 1186086487400 313093 > > The type ProtectedPage must implement the inherited abstract method > > Page.getFieldChange(ComponentPageElement, String) > > dma/src/main/java/com/americanadtrader/dma/services ProtectedPage.javaline > > 20 1186086487400 313085 > > The type ProtectedPage must implement the inherited abstract method > > Page.getLocale() dma/src/main/java/com/americanadtrader/dma/services > > ProtectedPage.java line 20 1186086487400 313099 > > The type ProtectedPage must implement the inherited abstract method > > Page.getLog() dma/src/main/java/com/americanadtrader/dma/services > > ProtectedPage.java line 20 1186086487400 313090 > > The type ProtectedPage must implement the inherited abstract method > > Page.getLogicalName() dma/src/main/java/com/americanadtrader/dma/services > > ProtectedPage.java line 20 1186086487400 313094 > > The type ProtectedPage must implement the inherited abstract method > > Page.getRootComponent() > > dma/src/main/java/com/americanadtrader/dma/services ProtectedPage.javaline > > 20 1186086487400 313091 > > The type ProtectedPage must implement the inherited abstract method > > Page.getRootElement() dma/src/main/java/com/americanadtrader/dma/services > > ProtectedPage.java line 20 1186086487400 313092 > > The type ProtectedPage must implement the inherited abstract method > > Page.incrementDirtyCount() > > dma/src/main/java/com/americanadtrader/dma/services ProtectedPage.javaline > > 20 1186086487400 313097 > > The type ProtectedPage must implement the inherited abstract method > > Page.loaded() dma/src/main/java/com/americanadtrader/dma/services > > ProtectedPage.java line 20 1186086487400 313098 > > The type ProtectedPage must implement the inherited abstract method > > Page.persistFieldChange(ComponentResources, String, Object) > > dma/src/main/java/com/americanadtrader/dma/services ProtectedPage.javaline > > 20 1186086487400 313086 > > The type ProtectedPage must implement the inherited abstract method > > Page.setRootElement(ComponentPageElement) > > dma/src/main/java/com/americanadtrader/dma/services ProtectedPage.javaline > > 20 1186086487400 313084 > > > > > > thanks > > ~evan > > > > > -- > Howard M. Lewis Ship > TWD Consulting, Inc. > Independent J2EE / Open-Source Java Consultant > Creator and PMC Chair, Apache Tapestry > Creator, Apache HiveMind > > Professional Tapestry training, mentoring, support > and project work. http://howardlewisship.com > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]