Index: modules/trails-core/src/main/java/org/trails/component/SearchLink.java =================================================================== --- modules/trails-core/src/main/java/org/trails/component/SearchLink.java (revision 916) +++ modules/trails-core/src/main/java/org/trails/component/SearchLink.java Fri Jul 04 10:41:29 CEST 2008 @@ -4,6 +4,7 @@ import org.trails.page.PageResolver; import org.trails.page.SearchPage; import org.trails.page.TrailsPage; +import org.trails.TrailsRuntimeException; public abstract class SearchLink extends AbstractTypeNavigationLink { @@ -22,6 +23,15 @@ PageResolver pageResolver = getPageResolver(); SearchPage searchPage = (SearchPage) pageResolver.resolvePage(cycle, getType(), TrailsPage.PageType.Search); searchPage.setType(getType()); + + try + { + searchPage.setModel(getType().newInstance()); + } catch (Exception e) + { + throw new TrailsRuntimeException(e, getType()); + } + cycle.activate(searchPage); } Index: modules/trails-hibernate/src/main/java/org/trails/component/search/SimpleSearchField.java =================================================================== --- modules/trails-hibernate/src/main/java/org/trails/component/search/SimpleSearchField.java (revision 916) +++ modules/trails-hibernate/src/main/java/org/trails/component/search/SimpleSearchField.java Thu Jul 03 18:44:25 CEST 2008 @@ -12,8 +12,8 @@ public abstract class SimpleSearchField extends BaseComponent { + @Parameter public abstract Object getValue(); - public abstract void setValue(Object Value); @Parameter(required = false, defaultValue = "page.criteria") Index: modules/trails-hibernate/src/main/java/org/trails/component/search/SearchForm.java =================================================================== --- modules/trails-hibernate/src/main/java/org/trails/component/search/SearchForm.java (revision 916) +++ modules/trails-hibernate/src/main/java/org/trails/component/search/SearchForm.java Fri Jul 04 09:58:40 CEST 2008 @@ -28,6 +28,9 @@ @Parameter(name = "classDescriptor", required = false, defaultValue = "ognl:page.classDescriptor") public abstract IClassDescriptor getClassDescriptor(); + @Parameter(required = false, defaultValue = "ognl:page.model") + public abstract Object getModel(); + public abstract void setClassDescriptor(IClassDescriptor ClassDescriptor); public abstract IPropertyDescriptor getPropertyDescriptor(); @@ -50,6 +53,7 @@ public Block getBlock() { Block searchBlock = getBlockFinder().findBlock(getPage().getRequestCycle(), getPropertyDescriptor()); + PropertyUtils.write(searchBlock.getPage(), "model", getModel()); PropertyUtils.write(searchBlock.getPage(), "criteria", getCriteria()); return searchBlock; } Index: modules/trails-core/src/main/java/org/trails/page/SearchPage.java =================================================================== --- modules/trails-core/src/main/java/org/trails/page/SearchPage.java (revision 916) +++ modules/trails-core/src/main/java/org/trails/page/SearchPage.java Fri Jul 04 10:52:32 CEST 2008 @@ -15,9 +15,10 @@ @Persist public abstract Class getType(); - public abstract void setType(Class type); + public abstract Object getModel(); + public abstract void setModel(Object model); @Override public void pushCallback() Index: modules/trails-hibernate/src/main/java/org/trails/page/HibernateListPage.java =================================================================== --- modules/trails-hibernate/src/main/java/org/trails/page/HibernateListPage.java (revision 916) +++ modules/trails-hibernate/src/main/java/org/trails/page/HibernateListPage.java Fri Jul 04 10:39:44 CEST 2008 @@ -5,17 +5,30 @@ import org.hibernate.criterion.DetachedCriteria; import org.trails.callback.HibernateListCallback; import org.trails.persistence.HibernatePersistenceService; +import org.trails.TrailsRuntimeException; public abstract class HibernateListPage extends ListPage { + @Persist + public abstract Object getModel(); + public abstract void setModel(Object model); + public void activateExternalPage(Object[] args, IRequestCycle cycle) { super.activateExternalPage(args, cycle); setCriteria(DetachedCriteria.forClass(getType())); getCallbackStack().getStack().clear(); + + try + { + setModel(getType().newInstance()); + } catch (Exception e) + { + throw new TrailsRuntimeException(e, getType()); - } + } + } @Persist public abstract DetachedCriteria getCriteria(); Index: modules/trails-hibernate/src/main/resources/org/trails/page/SearchBlocks.html =================================================================== --- modules/trails-hibernate/src/main/resources/org/trails/page/SearchBlocks.html (revision 916) +++ modules/trails-hibernate/src/main/resources/org/trails/page/SearchBlocks.html Thu Jul 03 18:25:52 CEST 2008 @@ -3,26 +3,26 @@
  • - +
  • - +
  • - +
  • - +
  • - +