/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package socius.telas.util;
import java.io.IOException;
import java.rmi.RemoteException;
import java.util.logging.Level;
import java.util.logging.Logger;
import socius.dispositivos.Computador;
import socius.app.ClientBoot;
import socius.modelo.Usuario;
import socius.state.EstadoOnline;
/**
*
* @author Lucas Dillmann <lucas [at] dillmann.com.br>
*/
public class DadosGlobais {
private Usuario user;
private Computador computador;
private ClientBoot redirect = new ClientBoot();
//pseudo singleton para acesso ao computador em todas as classes
// perder o já setado
private static DadosGlobais instance;
public static DadosGlobais getInstance() {
return instance;
}
private DadosGlobais(Computador c) {
this.computador = c;
}
public DadosGlobais(Usuario user) {
this.user = user;
}
public ClientBoot getRedirect() {
return redirect;
}
// public ObservableList observeLista(){
// return computador.getList();
// }
public ClientBoot setupClient() throws IOException {
//caso senha e user corretos o user se conecta(esse controle é realizado no banco)
//ao se conectar é redirecionado a tela principal
// se não ocorrer a conexão ele dispara uma exceção na classe estado offline
//e retorna a tela de login
try {
computador = new Computador(user);
//constroi a primaira vez e cria a primeira instancia
instance = new DadosGlobais(computador);
//se logar tela principal
//se nao voltar a tela de login
computador.conectar();
if (computador.getEstado().getClass().equals(EstadoOnline.class)) {
redirect.telaPrincipal();
}
} catch (RemoteException ex) {
Logger.getLogger(DadosGlobais.class.getName()).log(Level.SEVERE, null, ex);
}
return redirect;
}
public Computador getComputador() {
return computador;
}
public Usuario getUser() {
return user;
}
}