All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.trails.component.search.SimpleSearchField Maven / Gradle / Ivy

package org.trails.component.search;

import org.apache.tapestry.BaseComponent;
import org.apache.tapestry.IMarkupWriter;
import org.apache.tapestry.IRequestCycle;
import org.apache.tapestry.annotations.InjectObject;
import org.apache.tapestry.annotations.Parameter;
import org.hibernate.criterion.DetachedCriteria;
import org.hibernate.criterion.Restrictions;
import org.trails.descriptor.IPropertyDescriptor;
import org.trails.validation.ValidatorTranslatorService;

public abstract class SimpleSearchField extends BaseComponent
{
	public abstract Object getValue();

	public abstract void setValue(Object Value);

	@Parameter(required = false, defaultValue = "page.criteria")
	public abstract DetachedCriteria getCriteria();

	public abstract void setCriteria(DetachedCriteria Criteria);

	@Parameter(required = true)
	public abstract IPropertyDescriptor getPropertyDescriptor();

	public abstract void setPropertyDescriptor(IPropertyDescriptor PropertyDescriptor);

	@InjectObject("spring:validatorTranslatorService")
	public abstract ValidatorTranslatorService getValidatorTranslatorService();

	public void buildCriterion()
	{
		if (getValue() != null)
		{
			getCriteria().add(Restrictions.eq(getPropertyDescriptor().getName(), getValue()));
		}
	}

	@Override
	protected void renderComponent(IMarkupWriter writer, IRequestCycle cycle)
	{
		// TODO Auto-generated method stub
		super.renderComponent(writer, cycle);
		if (cycle.isRewinding())
		{
			buildCriterion();
		}
	}


}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy