Esempio n. 1
0
  @Override
  public void procesarEvento(Evento evento) {
    Evento eventoRespuesta = null;

    switch (evento.getTipoEvento()) {
      case SALIR:
        System.out.println("Saliendo");
        System.exit(1);
        break;
      case LOGIN:
        if (!evento.getInfo().getClass().getName().equals("Modelo.Login")) {
          assert false : evento.getInfo().getClass().getName() + " clase invalida";
        } else {
          Login login = (Login) evento.getInfo();
          System.out.println("Intento acceso para: " + login.toString());
          Usuario usuario;
          try {
            usuario = biblioteca.login(login.getNombre(), login.getClave());
            ((Usuario) usuario).setLookAndFeel(login.getLookAndFeel());
            // System.out.println("---"+usuario.getClass().getSimpleName()+"-");
            eventoRespuesta = new Evento(TipoEvento.LOGIN_OK, usuario);
          } catch (Exception ex) {
            // Logger.getLogger(Controlador.class.getName()).log(Level.SEVERE, null, ex);
            System.err.println("ERROR");
            eventoRespuesta = new Evento(TipoEvento.LOGIN_FALLO);
          }
          evento.getDestinoRespueta().procesarEvento(eventoRespuesta);
        }

        break;
      case LOGOUT:
        evento.getDestinoRespueta().procesarEvento(new Evento(TipoEvento.LOGOUT));
        break;
      case OBTENER_CAT_DEWEY:
        evento
            .getDestinoRespueta()
            .procesarEvento(
                new Evento(TipoEvento.OBTENER_CAT_DEWEY, biblioteca.getCategoriasDewey()));
        break;

      case CONSULTA_CATALOGO_GENERAL:
        System.out.println("CONSULTA_CATALOGO_GENERAL");
        try {

          Catalogo catalogo = biblioteca.getAlberga();
          eventoRespuesta = new Evento(TipoEvento.CONSULTA_CATALOGO_GENERAL, catalogo);

        } catch (Exception ex) {
          Logger.getLogger(Controlador.class.getName()).log(Level.SEVERE, null, ex);
          System.err.println("CONSULTA_CATALOGO_GENERAL: ERROR");
          eventoRespuesta = new Evento(TipoEvento.ERROR);
        }
        evento.getDestinoRespueta().procesarEvento(eventoRespuesta);
        break;
      case CONSULTA_CATALOGO_CONCRETA:
        System.out.println("CONSULTA_CATALOGO_CONCRETA" + evento.getInfo().getClass().getName());
        if (!evento.getInfo().getClass().getName().startsWith("HBM.TituloId")) {
          assert false : evento.getInfo().getClass().getName() + " clase invalida";
        }

        try {
          TituloId tituloId = (TituloId) evento.getInfo();

          Titulo titulo = biblioteca.getAlberga().getCatalogo().get(tituloId);
          eventoRespuesta = new Evento(TipoEvento.CONSULTA_CATALOGO_CONCRETA, titulo);

        } catch (Exception ex) {
          Logger.getLogger(Controlador.class.getName()).log(Level.SEVERE, null, ex);
          System.err.println("CONSULTA_CATALOGO_CONCRETA: ERROR");
          eventoRespuesta = new Evento(TipoEvento.ERROR);
        }
        evento.getDestinoRespueta().procesarEvento(eventoRespuesta);
        break;

      case LISTADO_USUARIOS:
        System.out.println("Listado de usuarios");
        try {

          GestorUsuarios gestorUsuarios = biblioteca.getUsuarios();
          eventoRespuesta = new Evento(TipoEvento.LISTADO_USUARIOS, gestorUsuarios);

        } catch (Exception ex) {
          Logger.getLogger(Controlador.class.getName()).log(Level.SEVERE, null, ex);
          System.err.println("LISTADO_USUARIOS: ERROR");
          eventoRespuesta = new Evento(TipoEvento.LISTADO_USUARIOS_ERROR);
        }
        evento.getDestinoRespueta().procesarEvento(eventoRespuesta);
        break;
      case ALTA_USUARIO:
        Usuario usuario = (Usuario) evento.getInfo();
        try {
          biblioteca.altaUsuario(usuario);
          eventoRespuesta = new Evento(TipoEvento.ALTA_USUARIO_OK);

        } catch (Exception ex) {
          eventoRespuesta = new Evento(TipoEvento.ALTA_USUARIO_ERROR);
        }
        evento.getDestinoRespueta().procesarEvento(eventoRespuesta);
        break;

      case MODIFICACION_TITULO:
        Titulo titulo = (Titulo) evento.getInfo();
        try {
          biblioteca.modificacionTitulo(titulo);
          eventoRespuesta = new Evento(TipoEvento.MODIFICACION_TITULO_OK, titulo.getId());

        } catch (Exception ex) {
          eventoRespuesta = new Evento(TipoEvento.MODIFICACION_TITULO_ERROR, titulo.getId());
          System.out.println("Error en modificacion de título");
        }
        evento.getDestinoRespueta().procesarEvento(eventoRespuesta);

        break;
      case BAJA_TITULO:
        System.out.println("Controlador BAJA_TITULO");

        TituloId tituloId = ((Titulo) evento.getInfo()).getId();
        try {
          biblioteca.bajaTitulo(tituloId);
          eventoRespuesta = new Evento(TipoEvento.BAJA_TITULO_OK, tituloId);
        } catch (Exception ex) {
          eventoRespuesta = new Evento(TipoEvento.BAJA_TITULO_ERROR, tituloId);
        }
        evento.getDestinoRespueta().procesarEvento(eventoRespuesta);
    }
  }