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

org.devocative.wickomp.form.WSelectionInputAjaxUpdatingBehavior Maven / Gradle / Ivy

package org.devocative.wickomp.form;

import org.apache.wicket.Component;
import org.apache.wicket.ajax.attributes.AjaxCallListener;
import org.apache.wicket.ajax.attributes.AjaxRequestAttributes;
import org.apache.wicket.ajax.form.AjaxFormComponentUpdatingBehavior;
import org.apache.wicket.markup.html.form.CheckGroup;
import org.apache.wicket.markup.html.form.FormComponent;
import org.apache.wicket.markup.html.form.RadioGroup;

public abstract class WSelectionInputAjaxUpdatingBehavior extends AjaxFormComponentUpdatingBehavior {

	/*private static final ResourceReference CHOICE_JS = new JavaScriptResourceReference(
		AjaxFormChoiceComponentUpdatingBehavior.class, "AjaxFormChoiceComponentUpdatingBehavior.js");*/

	private static final long serialVersionUID = 1L;

	public WSelectionInputAjaxUpdatingBehavior() {
		super("click");
	}

	/*@Override
	public void renderHead(Component component, IHeaderResponse response) {
		super.renderHead(component, response);

		response.render(JavaScriptHeaderItem.forReference(CHOICE_JS));
	}*/

	@Override
	protected void updateAjaxAttributes(AjaxRequestAttributes attributes) {
		super.updateAjaxAttributes(attributes);

		attributes.setSerializeRecursively(true);
		attributes.getAjaxCallListeners().add(new AjaxCallListener() {
			private static final long serialVersionUID = 1L;

			@Override
			public CharSequence getPrecondition(Component component) {
				return String.format("return attrs.event.target.name === '%s'", getFormComponent().getInputName());
			}
		});

		/*attributes.getAjaxCallListeners().add(new AjaxCallListener() {
			private static final long serialVersionUID = 1L;

			@Override
			public CharSequence getPrecondition(Component component) {
				return String.format("return Wicket.Choice.acceptInput('%s', attrs)",
					getFormComponent().getInputName());
			}
		});

		attributes.getDynamicExtraParameters().add(
			String.format("return Wicket.Choice.getInputValues('%s', attrs)",
				getFormComponent().getInputName()));*/
	}

	/**
	 * @see org.apache.wicket.behavior.AbstractAjaxBehavior#onBind()
	 */
	@Override
	protected void onBind() {
		super.onBind();

		if (getComponent() instanceof RadioGroup || getComponent() instanceof CheckGroup) {
			getComponent().setRenderBodyOnly(false);
		}
	}

	@Override
	protected void checkComponent(FormComponent component) {
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy