Mostra uma janela de andamento do processo em um applet

0 respostas
zorba

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

o código do meu SwingWorker:
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();
		}
obrigado desde ja :D
Criado 20 de novembro de 2009
Respostas 0
Participantes 1