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 }