package Controlador;
import java.util.List;
import java.util.Observable;
import java.util.Observer;
import Comunicacion.ConectarConServidor;
import Comunicacion.Protocolo;
import Vista.FachadaVista;
public class FachadaControlador extends Observable implements Observer
{
private Protocolo conexion;
private FachadaVista vista;
private boolean informar;
private int activarEvento;
private List<Double> parametros;
private int tipoObjeto;
public FachadaControlador()
{
this.activarEvento = -1;
this.informar = false;
}
public void addObservers(Principal a)
{
this.addObserver(a);
this.vista = new FachadaVista(this);
this.conexion = new Protocolo(this.vista);
this.conexion.iniciarEnvio();
this.informarValores();
this.conexion.iniciarEscucha();
}
public void informarValores()
{
System.out.println("Tamano del Canvas es: " + this.vista.getXMaxCanvas() + " " + this.vista.getYMaxCanvas());
this.conexion.valoresMaximosCanvas(this.vista.getXMaxCanvas(), this.vista.getYMaxCanvas());
}
public int crearObjeto(int idTipoObjeto, double posX, double posY, List<Object> parametros2)
{
if(!this.informar)
{
this.conexion.iniciarEnvioServidor();
this.informar = true;
}
int idObjeto = this.conexion.crearObjeto(idTipoObjeto, posX, posY, parametros2);
//this.vista.informarCreacionObjeto(posX, posY, this.parametros, idObjeto, idTipoObjeto);
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.conexion.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;
}
}