Alertar ao chegar novo obejto em uma lista

Pessoal,

Estou com um problema no meu sistema que nao to conseguindo resolver. Gostaria de saber se alguem ja fez isso ou se tem alguma ideia de como posso fazer.

Eu tenho uma lista de atividades, essa lista esta paginada de 10 em 10. E dando um refresh nela a cada 30 segundos. Eu gostaria de toda vez que for dado um refresh nessa tela ela verificar se tem alguma atividade a mais nessa lista, caso tenha gostaria que fosse dado um alerta, tipo um pop up, som…qq coisa…

Se alguem tive uma ideia, ia ajudar mto…

valeu

Bem, acredito que uma das soluções passa por ter uma wrapper class que implementa o padrão Observable. Assim, cada vez que um objeto é adicionado na Collection (pode ser List ou Set), a wrapper avisa aos Observers.

[quote=AlanLojudice]Pessoal,

Estou com um problema no meu sistema que nao to conseguindo resolver. Gostaria de saber se alguem ja fez isso ou se tem alguma ideia de como posso fazer.

Eu tenho uma lista de atividades, essa lista esta paginada de 10 em 10. E dando um refresh nela a cada 30 segundos. Eu gostaria de toda vez que for dado um refresh nessa tela ela verificar se tem alguma atividade a mais nessa lista, caso tenha gostaria que fosse dado um alerta, tipo um pop up, som…qq coisa…

Se alguem tive uma ideia, ia ajudar mto…

valeu[/quote]

Você consegue saber quando foi dado um refresh na tela? Se sim você pode implementar o pattern Observer, ai quando o correr o refresh vc gera um evento, do outro lado você cria um listener que irá escutar os eventos e quando acontecer o refresh fazer o que vc precisa…

http://jacques.dsc.ufcg.edu.br/cursos/map/html/arqu/observer.htm

http://www.guj.com.br/java.tutorial.artigo.47.1.guj

Isso resolve o seu problema??

[]´s

não tinha visto a resposta, demorou pra atualizar aqui… rs

Mas pensando melhor acho que vc se sua lista de atividades é uma FILA (primeiro que entra é primeiro que sai) então vc poderia armazenar na sessão do usuário o código hash (objeto.hashCode()) do último elemento da lista.

Assim a cada refresh vc verifica se o último elemento da lista recuperada tem um código hash igual ao que vc tem armazenando. Se isso não for verdadeiro então vc varre a lista de trás pra frente até encontrar o código hash igual ao que vc tem na sessão (ou então até encontrar o começo da lista). Os elementos nesse intervalo serão aqueles inseridos desde o último refresh.

Nem preciso dizer que o hashCode deve ser diferente para cada objeto da lista, mas ao invés de hashcode pode ser um selo temporal (timestamp) qualquer tb.

Falou,

vc quer fazer isso na web? ou desktop?
se for desktop as sugestões dadas resolvem o problema.
se for na web, é so vc ter um javascript que dispara um alert de acordo com um flag.
quando vc refaz a consulta, verifica que a lista aumentou, seta o flag p/ true e manda p/ tela.
é +ou- por ae.

[]´s