package Controlador;
import java.rmi.RemoteException;
import java.util.List;
import java.util.Observable;
import java.util.Observer;
import Comunicacion.ComunicacionCliente;
import Vista.FachadaVista;
public class FachadaControlador extends Observable implements Observer
{
private ComunicacionCliente comunicacion;
private FachadaVista vista;
private int activarEvento;
private List<Double> parametros;
private int tipoObjeto;
public FachadaControlador()
{
this.activarEvento = -1;
}
public void addObservers(PrincipalCliente a)
{
this.addObserver(a);
this.vista = new FachadaVista(this);
try {
this.comunicacion = new ComunicacionCliente(this.vista);
} catch (RemoteException e)
{
e.printStackTrace();
}
this.comunicacion.valoresMaximosCanvas(this.vista.getXMaxCanvas(), this.vista.getYMaxCanvas());
}
public int crearObjeto(int idTipoObjeto, double posX, double posY, List<Object> parametros2)
{
int idObjeto = 0;
try {
idObjeto = this.comunicacion.crearObjeto(idTipoObjeto, posX, posY, parametros2);
} catch (RemoteException e)
{
e.printStackTrace();
}
return idObjeto;
}
public List<Double> getParametros() {
return parametros;
}
public void setParametros(List<Double> parametros) {
this.parametros = parametros;
}
public void lanzar(int idObjeto, double velocidad, double angulo)
{
this.comunicacion.lanzar(idObjeto, velocidad, angulo);
}
public void update(Observable arg0, Object arg1)
{
this.tipoObjeto = this.vista.getTipoObjeto();
this.parametros = this.vista.getParametros();
this.activarEvento = this.vista.getActivarEvento();
this.setChanged();
this.notifyObservers();
}
public int getActivarEvento() {
return activarEvento;
}
public void setActivarEvento(int activarEvento) {
this.activarEvento = activarEvento;
}
public int getTipoObjeto() {
return tipoObjeto;
}
public void setTipoObjeto(int tipoObjeto) {
this.tipoObjeto = tipoObjeto;
}
}