Aguardar processamento de método

4 respostas
andrestrindade

Oi gente, estou com uma dúvida meio tola. Tenho uma geração de relatório com ireport que demora um pouco.
Gostaria de evitar o usuário a clicar no botão de geração enquanto estiver processando.

Como posso evitar que esse processamento continue, caso esteja sendo gerado?
Lembrando-se que a dúvida é de java básico, não quero solução com JAVASCRIPT, AJAX, ETC… Nem colocando atributo de seção.

Grato

4 Respostas

rmendes08

Simples, desabilita o botão quando o usuário clicar e habilita novamente quando o processamento terminar.

andrestrindade

Não é simples, não pra mim.

-Estou usando struts 1.2
-Estou gerando um xls

Isso significa, que no meu struts a response (o forward) não pode retornar para uma página, pois JÁ estou chamando um outputStream no momento que faço o envio do relatório, e no struts estou com “return null”.

Como eu vou detectar que o processamento acabou? Eis a questão.

ViniGodoy

Movido para o fórum de desenvolvimento web.
“Java básico” são para dúvidas elementares da linguagem Java, tais como sintaxe básica da linguagem.

Carol_M_de_Paula

Ola andrestrindade,

Talvez no final da execucao do relatorio, voce poderia 'notificar' um objeto 'handler' do termino do relatorio.
O objeto handler determinaria a acao a ser tomada dependo do output da classe que o chamou, sucesso ou nao.

class FormUI() {


     void action() {

        button.disable();
        RelatorioExecutor exec = new RelatorioExecutor();
        exec .execute();
        button.enable();

     }
}


class RelatorioExecutor() {

   void execute() {
      .
      .
      .
      // fim do processamento do relatorio
      RelatioHandler handler = new Relatoriohandler();
      handler.notify();

}



class RelatorioHandler() {

     void notify() {
        // acao apos termino do relatorio
        if ( sucesso ) {
                // em caso de sucesso, visualizacao do relatorio
        } else {
                // em caso de falha, mensagem de erro.

        }
      }

}

Espero ter ajudado. Boa sorte!

Criado 1 de junho de 2011
Ultima resposta 1 de jun. de 2011
Respostas 4
Participantes 4