Então, a algum tempo atrás postei aqui um pequeno tutorial de iniciação no vaadin framework , que espero que vocês tenham lido (ou não).. enfim, vamos ao que interessa…

Como eu gostei do tal framework (achei os componentes muito fodásticos), e meu pai faz anos que me enche o saco para fazer um sistema para “controlar as vacas leiteiras” (não é piada) do sítio dele, resolvi unir o útil ao agradável.

E põe agradável nisso. O Vaadin é relativamente muito simples. Nada de arquivos xhtml/css/js para fazer as páginas (como já foi citado no artigo anterior).

Falando sobre isso com o jonwelzel (do http://jonwelzel.utfpr.net), descobri que ele estava trabalhando em um sistema para a mãe dele e tals, como você também pode conferir aqui, e, recomendo que leiam o artigo dele também, que está muito bom :)

Enfim, a princípio, a maior dificuldade que tive foi com o manuseio da sessão do vaadin. Fiz uma tela de login e senha, e uma classe com um atributo usuário logado… etc etc.. outras classes com métodos de login etc… etc… etc… mas quando botei para funcionar, foi desastroso.

Abri a página na minha máquina, fiz login.. buenas, logou :D :D Fui na máquina do calouro aqui da república e falei pra ele abrir a página, e, adivinha? Não pediu para logar.. entrou na mesma sessão que eu estava…

Após muito quebrar a cabeça e o google procurando por exemplos de manuseio de sessão, acabei tendo a brilhante idéia (modéstia a parte), de fazer um foreach no getWindows(); e remover tudo. Adivinha? Funcionou :)


Ficou o seguinte:

public class SistemaLeiteiroAplicacao extends Application  {

@Override
public void init() {
cleanupPreviousResources();
Window main = new Window("Sistema Leiteiro");
main.setSizeFull();
setMainWindow(main);

if (/* Testa se o usuário está logado */) {
setMainWindow(new Inicial()); // Inicial é a tela inicial real do sistema
} else {
Window login = new Login(); // me recuso a explicar isso aqui u.u
login.setModal(true);
getMainWindow().addWindow(login);
}
}

private void cleanupPreviousResources() {
// aqui vai minha lógica para fazer logoff..
Collection oldWindows = getWindows();
for (Window w : oldWindows) {
removeWindow(w);
}
}

Pronto! Simples assim, e funciona como um relógio ;) Pra que melhor né?

Em breve, mais tutoriais, conversas jogadas fora e afins.

PS: Não estou tendo muito tempo para postar, sorry.

That’s all folks :)

Posts similares:

    None Found