package fr.openwide.core.wicket.more.markup.html.form; import org.apache.wicket.Component; import org.apache.wicket.markup.html.form.FormComponent; import org.apache.wicket.util.lang.Args; import fr.openwide.core.wicket.more.markup.html.basic.ComponentBooleanProperty; /** * Makes sure that the attached component is disabled and that its model is null * so long that a given prerequisite component's input is null or invalid.<br> * This behavior effectively enables sequenced input (first the user must input * <code>prerequisiteField</code>'s content, then the attached component's * content). * * @see AbstractAjaxInputPrerequisiteBehavior */ public class AjaxInputPrerequisiteBehavior<T> extends AbstractAjaxInputPrerequisiteBehavior<T> { private static final long serialVersionUID = 3907107358503401628L; private final ComponentBooleanProperty property; public AjaxInputPrerequisiteBehavior(FormComponent<T> prerequisiteField, ComponentBooleanProperty property) { super(prerequisiteField); this.property = Args.notNull(property, "property"); } @Override protected void setUpAttachedComponent(Component attachedComponent) { property.set(attachedComponent, true); } @Override protected void takeDownAttachedComponent(Component attachedComponent) { property.set(attachedComponent, false); } }