Coverage Report - org.trails.component.search.SearchForm
 
Classes in this File Line Coverage Branch Coverage Complexity
SearchForm
75% 
N/A 
0
 
 1  
 package org.trails.component.search;
 2  
 
 3  
 import org.apache.tapestry.IRequestCycle;
 4  
 import org.apache.tapestry.annotations.InjectObject;
 5  
 import org.apache.tapestry.annotations.Parameter;
 6  
 import org.apache.tapestry.components.Block;
 7  
 import org.apache.tapestry.event.PageBeginRenderListener;
 8  
 import org.apache.tapestry.event.PageEvent;
 9  
 import org.apache.hivemind.util.PropertyUtils;
 10  
 import org.hibernate.criterion.DetachedCriteria;
 11  
 import org.trails.component.ClassDescriptorComponent;
 12  
 import org.trails.descriptor.BlockFinder;
 13  
 import org.trails.descriptor.IClassDescriptor;
 14  
 import org.trails.descriptor.IPropertyDescriptor;
 15  
 import org.trails.page.HibernateListPage;
 16  
 import org.trails.page.PageResolver;
 17  
 import org.trails.page.TrailsPage.PageType;
 18  
 
 19  2
 public abstract class SearchForm extends ClassDescriptorComponent implements PageBeginRenderListener
 20  
 {
 21  
 
 22  
         @InjectObject("service:trails.core.PageResolver")
 23  
         public abstract PageResolver getPageResolver();
 24  
 
 25  
         @InjectObject("spring:searchBlockFinder")
 26  
         public abstract BlockFinder getBlockFinder();
 27  
 
 28  
         @Parameter(name = "classDescriptor", required = false, defaultValue = "ognl:page.classDescriptor")
 29  
         public abstract IClassDescriptor getClassDescriptor();
 30  
 
 31  
         public abstract void setClassDescriptor(IClassDescriptor ClassDescriptor);
 32  
 
 33  
         public abstract IPropertyDescriptor getPropertyDescriptor();
 34  
 
 35  
         public abstract void setPropertyDescriptor(IPropertyDescriptor PropertyDescriptor);
 36  
 
 37  
         public abstract DetachedCriteria getCriteria();
 38  
 
 39  
         public abstract void setCriteria(DetachedCriteria Criteria);
 40  
 
 41  
         public void search(IRequestCycle cycle)
 42  
         {
 43  2
                 HibernateListPage listPage = (HibernateListPage) getPageResolver().resolvePage(cycle,
 44  1
                         getClassDescriptor().getType(),
 45  1
                         PageType.List);
 46  1
                 listPage.setCriteria(getCriteria());
 47  1
                 cycle.activate(listPage);
 48  1
         }
 49  
 
 50  
         public Block getBlock()
 51  
         {
 52  0
                 Block searchBlock = getBlockFinder().findBlock(getPage().getRequestCycle(), getPropertyDescriptor());
 53  0
                 PropertyUtils.write(searchBlock.getPage(), "criteria", getCriteria());
 54  0
                 return searchBlock;
 55  
         }
 56  
 
 57  
         public void pageBeginRender(PageEvent event)
 58  
         {
 59  1
                 setCriteria(DetachedCriteria.forClass(getClassDescriptor().getType()));
 60  1
         }
 61  
 
 62  
 }