package com.googlecode.tawus.addons.mixins;
import org.apache.tapestry5.annotations.AfterRender;
import org.apache.tapestry5.annotations.Import;
import org.apache.tapestry5.annotations.InjectContainer;
import org.apache.tapestry5.corelib.components.Form;
import org.apache.tapestry5.ioc.annotations.Inject;
import org.apache.tapestry5.services.javascript.JavaScriptSupport;
/**
* A mixin which when added to a form prevents double submission.
* As the mixin is based on javascript, it is only effective if the javascript
* is enabled.
*
*/
@Import(library = "prevent-double-submission.js")
public class PreventDoubleSubmission
{
@Inject
private JavaScriptSupport javaScriptSupport;
@InjectContainer
private Form form;
@AfterRender
void addJavaScript()
{
javaScriptSupport.addInitializerCall("preventDoubleSubmission", form.getClientId());
}
}