Калитка 1.4 => 6.7 заменяет AjaxButton: getAjaxCallDecorator

Меня попросили обновить одно из наших существующих приложений, и у меня возникли некоторые проблемы с выяснением того, как обновить некоторые из наших классов.

У нас есть собственный класс CustomAjaxButton, в котором extends AjaxButton, в котором getAjaxCallDecorator переопределены, поэтому мы можем вернуть пользовательский decorateOnSuccessScript и т. д.

Я обнаружил, что https://cwiki.apache.org/confluence/display/WICKET/Wicket+Ajax#WicketAjax-oawajax.IAjaxCallDecoratorisзамененнаo.awajax.attributes.IAjaxCallListener. страница, которая объясняет, почему, но я не уверен, как совместить это с новой реализацией AjaxButton, так как getAjaxCallDecorator был удален.

Фрагмент кода старой версии:

@Override
    protected IAjaxCallDecorator getAjaxCallDecorator() {
        return new IAjaxCallDecorator()
        {
         private static final long serialVersionUID = 6L;
...
         public CharSequence decorateScript(CharSequence script)
         {
          return script + " document.getElementById('inputBlocker').style.display='none';";
         }
        };
    }

Должен признаться, что я совсем новичок в Wicket, а мой более опытный коллега в отпуске. Любая помощь\совет очень ценится.


person Kate Danes    schedule 10.05.2013    source источник


Ответы (1)


Попробуйте этот подход:

add(new AjaxLink("btn"){

    @Override
    protected void updateAjaxAttributes(AjaxRequestAttributes attributes) {
        super.updateAjaxAttributes(attributes); 
        attributes.getAjaxCallListeners().add(new AjaxCallListener(){

            @Override
            public CharSequence getSuccessHandler(Component component) {
                return " document.getElementById('inputBlocker').style.display='none';";
            }

        });
    }

});

В AjaxCallListener вы можете переопределить любой обработчик, какой захотите. Если вы хотите, вы можете изменить выполнение скрипта на полный обработчик.

person Robert Niestroj    schedule 10.05.2013
comment
В случае, если кто-то еще получит то же самое, прочитайте: wicketinaction.com/2012/ 07/wicket-6-javascript-улучшения - person Ville Myrskyneva; 23.04.2014