[ https://issues.apache.org/jira/browse/TAP5-1861?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Howard M. Lewis Ship reassigned TAP5-1861: ------------------------------------------ Assignee: Howard M. Lewis Ship > Wrap javascript call rendering apis for interoperability and convenience > ------------------------------------------------------------------------ > > Key: TAP5-1861 > URL: https://issues.apache.org/jira/browse/TAP5-1861 > Project: Tapestry 5 > Issue Type: Improvement > Components: tapestry-core > Affects Versions: 5.3.2 > Reporter: Paul Stanton > Assignee: Howard M. Lewis Ship > Labels: ajax, javascript > > Vast improvements to the ajax and javascript rendering API's have made things > much easier to use in tapestry 5.2+, however I still think there is room for > improvement. I find I can't work without this 'helper' service I designed to > standardise script call rendering between xhr and non-xhr requests. The main > motivation/benefit is that a set of functionality can now be called in either > (xhr/non-xhr) context and still work. It also has the benefit of building the > necessary JavaScriptCallback in the xhr context. In my opinion, this makes > user code much tidier: > public class JavascriptHelperImpl implements JavascriptHelper > { > @Inject > private AjaxResponseRenderer ajaxResponseRenderer; > @Inject > private Request request; > @Inject > private JavaScriptSupport jsSupport; > @Override > public void addScript(final String format, final Object... args) > { > if (!request.isXHR()) > { > jsSupport.addScript(format, args); > return; > } > ajaxResponseRenderer.addCallback(new JavaScriptCallback() > { > @Override > public void run(JavaScriptSupport javascriptSupport) > { > javascriptSupport.addScript(format, args); > } > }); > } > } > There may or may not be additional opportunity with the other methods such as > 'addInitializerCall' but I haven't needed to. > This code is free for anyone (including apache/tapestry) to use. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira