Alertar ao chegar novo obejto em uma lista - Java - GUJ
Alertar ao chegar novo obejto em uma lista
AlanLojudice Janeiro 4, 2008, 3:07pm #1
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…
jdefarge Janeiro 4, 2008, 3:47pm #2
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.
Andre_Fonseca Janeiro 4, 2008, 4:06pm #3
[quote=AlanLojudice]Pessoal,
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??
Andre_Fonseca Janeiro 4, 2008, 4:08pm #4
não tinha visto a resposta, demorou pra atualizar aqui… rs
jdefarge Janeiro 4, 2008, 4:13pm #5
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.