You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by "Jochen Kemnade (JIRA)" <ji...@apache.org> on 2016/02/22 14:44:18 UTC

[jira] [Updated] (TAP5-1861) Wrap javascript call rendering apis for interoperability and convenience

     [ https://issues.apache.org/jira/browse/TAP5-1861?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jochen Kemnade updated TAP5-1861:
---------------------------------
    Labels: bulk-close-candidate  (was: ajax javascript)

This issue affects an old version of Tapestry that is not actively developed anymore, and is therefore prone to be bulk-closed in the near future.

If the issue still persists with the most recent version of Tapestry (currently 5.4.0, available from Maven Central), please update it as soon as possible and add '5.4.0') to the issue's affected versions.

> 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: bulk-close-candidate
>
> 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 was sent by Atlassian JIRA
(v6.3.4#6332)