package zemplen.ui;

import org.eclipse.swt.widgets.Composite;
import org.hibernate.Criteria;
import org.hibernate.criterion.Example;
import org.hibernate.criterion.Restrictions;

import zemplen.model.Nevezes;
import zemplen.model.Verseny;
import hibergui.Form;
import hibergui.hibernate.HibernateM2OEdit_Combo;
import hibergui.verify.Constraint;
import hibergui.verify.VerificationError;

public class RajtszamCombo extends HibernateM2OEdit_Combo<Nevezes> {

	private Verseny verseny;

	public RajtszamCombo(Form<?> form, Composite cptParent, int style) {
		super(form, cptParent, style, "versenyzo", "versenyző", "rajtszam");

		addConstraint(
				new Constraint(){
					public boolean check(Object o) {
						return !createCriteriaByExample().list().isEmpty();
					}
				},
				new VerificationError("Nincs ilyen rajtszámú versenyző!")
		);
	}

	public void fixVerseny(Verseny v) {
		verseny = v;
		refresh();
	}

	@Override
	protected Form<Nevezes> createForm(Composite cptParent, int style) {
		return new NevezesForm(cptParent, style);
	}

	@Override
	protected Criteria createCriteria() {
		return super.createCriteria().add(Restrictions.eq("verseny", verseny)).add(Restrictions.isNotNull("rajtszam"));
	}
	
	@Override
	public Example createExample(Nevezes sample) {
		return Example.create(sample);
	}
}
