001    package org.trails.page;
002    
003    import org.apache.tapestry.IRequestCycle;
004    import org.apache.tapestry.annotations.InjectObject;
005    import org.hibernate.criterion.DetachedCriteria;
006    import org.trails.persistence.HibernatePersistenceService;
007    
008    public abstract class HibernateListPage extends ListPage
009    {
010    
011            @InjectObject("service:trails.hibernate.PersistenceService")
012            public abstract HibernatePersistenceService getHibernatePersistenceService();
013    
014            /**
015             * @todo: remove when the components reuse issue goes away.
016             */
017            public HibernatePersistenceService getPersistenceService()
018            {
019                    return getHibernatePersistenceService();
020            }
021    
022            public void activateTrailsPage(Object[] args, IRequestCycle cycle)
023            {
024                    super.activateTrailsPage(args, cycle);
025                    setCriteria(DetachedCriteria.forClass(getClassDescriptor().getType()));
026            }
027    
028            public abstract DetachedCriteria getCriteria();
029    
030            public abstract void setCriteria(DetachedCriteria Criteria);
031    
032            public Class getType()
033            {
034                    return getClassDescriptor().getType();
035            }
036    }