package com.googlecode.tawus.mixins; import org.apache.tapestry5.BindingConstants; import org.apache.tapestry5.ClientElement; import org.apache.tapestry5.annotations.Import; import org.apache.tapestry5.annotations.InjectContainer; import org.apache.tapestry5.annotations.Parameter; import org.apache.tapestry5.ioc.annotations.Inject; import org.apache.tapestry5.json.JSONObject; import org.apache.tapestry5.services.javascript.JavaScriptSupport; /** * Confirm mixin. Prompts a javascript confirmation dialog box when the * associated button is clicked * * @author Taha Hafeez */ @Import(library = "confirm.js") public class Confirm { @InjectContainer private ClientElement container; @Inject private JavaScriptSupport javaScriptSupport; @Parameter(value = "confirm.message", defaultPrefix = BindingConstants.MESSAGE) private String confirmMessage; @Parameter(defaultPrefix = BindingConstants.LITERAL, value = "click") private String clientEvent; @org.apache.tapestry5.annotations.BeforeRenderTemplate void addScript() { JSONObject json = new JSONObject(); json.put("id", container.getClientId()); json.put("message", confirmMessage); json.put("event", clientEvent); javaScriptSupport.addScript("new ConfirmDialog(%s);", json.toString()); } }