Калитка: Как изменить видимость компонента ProgressBar два раза во время ответа Ajax - PullRequest
0 голосов
/ 18 мая 2011

В моей форме у меня есть компонент ProgessBar из проекта Wiquery (http://code.google.com/p/wiquery/), а для свойства ProgressBar в начале установлено значение false.

У меня также есть AjaxButton в форме, и мне нужносделать несколько вещей в его методе onSubmit ():

  1. Во-первых, мне нужно показать ProgressBar, значение которого установлено в 0 (установить видимым в true).
  2. Во-вторых, янеобходимо выполнить аннотацию страницы, которая займет несколько секунд.
  3. Наконец, мне нужно обновить ProgressBar со значения 0 до значения 100 во время процесса аннотации, и мне нужно скрыть компонент ProgressBar наконец процесса аннотации.

Ниже приведен код, который мне нужно улучшить. Я также пытался использовать компонент UploadProgressBar, но есть сообщение «Загрузка начинается ...», котороездесь не обязательно. Есть ли способ изменить это сообщение?

progressBar = new ProgressBar("progress");
progressBar.setValue(0);
progressBar.setOutputMarkupId(true);
progressBar.setVisible(false);
form.add(progressBar);


semAnnButton = new AjaxButton("semAnnButton"){

        private static final long serialVersionUID = 1L;

        @Override
        protected void onSubmit(AjaxRequestTarget target,
                Form<?> form) {

            progressBar.setVisible(true);
            target.addComponent(progressBar);
            performAnnotation(webPageURL);
            progressBar.increment(target, 100);


        }};
    semAnnButton.setOutputMarkupId(true);
    semAnnButton.setOutputMarkupPlaceholderTag(true);
    semAnnButton.setVisible(true);
    form.add(semAnnButton);

1 Ответ

0 голосов
/ 18 мая 2011

Проблема, с которой вы столкнулись, заключается в том, что метод onSubmit будет запущен перед возвратом к клиенту. К этому времени вы установите индикатор выполнения на 100.

Я не думаю, что индикатор прогресса - это то, что вам нужно для этого, нет шагов, на которых вы можете сказать это x% выполнено . Он либо завершен, либо не завершен, поэтому индикатор выполнения не может отображаться с прогрессом. Я бы посоветовал использовать индикатор (AjaxIndicatorAppender).

Надеюсь, это поможет.

...