/*
 * ControladorSalaComputo.java
 *
 * Created on March 24, 2003, 6:41 PM
 */

/**
 *
 * @author  gustavo
 */
 class ControladorSalaComputo {
    GUISalaComputo gui;
    SalaComputo sala;
    /** Creates a new instance of ControladorSalaComputo */
    ControladorSalaComputo(GUISalaComputo g,SalaComputo s) {
        gui = g;
        sala = s;
    }
    
    void operar() {
        boolean continuar=true;
        while (continuar) {
            
            String operacion= gui.opcion();
            
            if (GUISalaComputo.RESERVAR.equals(operacion)) {
                int donde= sala.buscarLugar();
                if (donde < 0) {
                    gui.mensaje("Sala Llena");
                } else if ((donde>=0) && (donde <sala.capacidad)) {
                    String usuario = gui.preguntarUsuario();
                    sala.asignar(donde,usuario);
                    gui.mensaje("Computadora #"+donde+" asignada");
                }//if
            } else if (GUISalaComputo.REPORTE.equals(operacion)) {
                gui.limpiarImpresion();
                gui.imprimir(sala.nombre);
                for (int i=0;i<sala.capacidad;i++)  {
                    String usuario = sala.computadoras[i].usuario;
                    gui.imprimir("Computadora #"+i+"->"+usuario);
                }
            } else if (GUISalaComputo.LIBERAR.equals(operacion) ){
                int donde=gui.preguntarComputadora();
                if ((donde>=0) && (donde <sala.capacidad)) {
                    if ( sala.desasignar(donde) ) {
                        gui.mensaje("Computadora #"+donde+" libre");
                    }
                } else { gui.mensaje("Indicar numero correcto"); }
            } else if (GUISalaComputo.SALIR.equals(operacion) ) {
                continuar=false;
            } else {
                gui.mensaje("Opcion desconocida");
            }//if
        }//while
        
    }//operar
}
