Bom dia :)
eu tenho um applet que pega uma lista de imagens, envia para um servidor, e espera o servidor fazer toda uma conversão nas imagens, criar um tiff e outras coisas. o método que inicia esse processoe esta dentro de uma classe anonima que extende SwingWorker. Mas as vezes o applet trava ou ficar muuuito tempo esperando a resposta. bem, o que eu queria era colocar uma janela indicando que apenas que o applet não travou, para o usuário não se desesperar e fechar o browser.
é, eu sei, applets são um atraso de vida, mas não fui eu quem escolheu isso
private class IndexarWork extends SwingWorker<Void, Void>
{
@Override
protected Void doInBackground() throws Exception
{
indexar();
return null;
}
private void indexar() throws Exception
{
/*
* Timer timer = new Timer(); timer.scheduleAtFixedRate(new TimerTask()
* { public void run() { verificarCadastroDocumento(); } },
* INTERVALO_VERIFICACAO_CADASTRO, INTERVALO_VERIFICACAO_CADASTRO);
*
* try { while (cadastroEmEdicao) Thread.sleep(1000); } catch
* (InterruptedException e) { e.printStackTrace(); }
*
* timer.cancel();
*/
int[] selecionadas = jLNomes.getSelectedIndices();
if(selecionadas.length == 0)
{
showMessageWarning("selecionarImagens");
return;
}
if (edicaoDocumento)
{
int opt = OptionsDialog.showDialog(null);
String nome = conexaoHTTPS.getNomeArquvoTiff();
System.out.println("Nome do arquivo: " + nome);
Vector<ImagemDigitalizada> imgs = pegaImagens(selecionadas);
Vector<BufferedImage> imgsBuff = new Vector<BufferedImage>();
for (ImagemDigitalizada imagemDigitalizada : imgs)
{
imgsBuff.add(imagemDigitalizada.getImagem());
}
conexaoHTTPS.enviaImagensPaginasDigitalizadas(imgsBuff, nome);
if (opt == JOptionPane.YES_OPTION)
{
fazerCheckin();
} else
{
fazerSubstituicao();
}
}
else
{
if(isEdicaoDocumento())
{
Vector<ImagemDigitalizada> imgs = pegaImagens(selecionadas);
Vector<BufferedImage> imgsBuff = new Vector<BufferedImage>();
for (ImagemDigitalizada imagemDigitalizada : imgs)
{
imgsBuff.add(imagemDigitalizada.getImagem());
}
if(conexaoHTTPS.enviaImagensPaginasDigitalizadas(imgsBuff))
{
showMessageOk("Enviado com sucesso!");
return;
}
else
{
showMessageErro("Não pude enviar!");
return;
}
}
try
{
Documento documento = getDocumento();
boolean send = conexaoHTTPS.enviaImagensBuffered(getSelecionados(selecionadas));
if(send)
{
conexaoHTTPS.criarTiffImagensDigitalizadas();
conexaoHTTPS.setarDocumentoNoManaged(documento);
getAppletContext().showDocument(new URL(JAVASCRIPT_INSERIR_DOCUMENTO));
}
//DESCOMENTAR AQUI PARA VERSAO ANTIGA
// if(conexaoHTTPS.enviaImagensPaginasDigitalizadas(imgsBuff))
// {
// conexaoHTTPS.setarDocumentoNoManaged(documento);
// getAppletContext().showDocument(new URL(JAVASCRIPT_INSERIR_DOCUMENTO));
// }
// else
// {
// showMessageErro("erroEnvioImagens");
// return;
// }
} catch (Exception e)
{
e.printStackTrace();
}
cadastroEmEdicao = true;
try
{
while(cadastroEmEdicao)
{
verificarCadastroDocumento();
Thread.sleep(INTERVALO_VERIFICACAO_CADASTRO);
}
}
catch(InterruptedException e)
{
e.printStackTrace();
}
if(conexaoHTTPS.verificaCheckinDocumento())
{
System.err.println("if(conexaoHTTPS.verificaCheckinDocumento())");
}
}
}
@Override
protected void done()
{
excluir();
hidePageIndexacao();
}