public void irPreguntaAnterior() {
   if (preguntaActual > 0) {
     preguntaActual = preguntaActual - 1;
     preguntaDto = this.dto.getListaPreguntas().get(preguntaActual - 1);
     cantTotalOpciones = preguntaDto.getListaOpcionesResp().size();
     cargarRespuestasPregunta();
   }
 }
  public void rellenar() {

    try {
      List<EncuestadoDto> listEncuestados =
          encuestadoManager.obtenerEncuestadoxPersona(personaDto, this.dto);
      if (listEncuestados != null && listEncuestados.size() > 0) {
        encuestadoDto = listEncuestados.get(0);
      }
    } catch (DAOException ex) {
      logger.error("ERROR DE SISTEMA", ex);
      showError(ex.getMessage());
    }
    Collections.sort(this.dto.getListaPreguntas(), new Comparador("orden"));

    cantTotalPreguntas = this.dto.getListaPreguntas().size();
    for (int i = 0; i < this.dto.getListaEncuestados().size(); i++) {
      if (this.dto
          .getListaEncuestados()
          .get(i)
          .getPersonaDto()
          .getId()
          .equals(personaDto.getId())) {
        // Si el usuario aun no respondio ninguna pregunta
        if (this.dto.getListaEncuestados().get(i).getPreguntaDto() == null) {
          preguntaDto = this.dto.getListaPreguntas().get(0);
          preguntaActual = 1;
        } else {
          preguntaDto = this.dto.getListaEncuestados().get(i).getPreguntaDto();
          preguntaActual = this.dto.getListaEncuestados().get(i).getNumeroPregunta().intValue();

          cargarRespuestasPregunta();
        }
      }
    }
    cantTotalOpciones = preguntaDto.getListaOpcionesResp().size();
  }
  public boolean irPreguntaSiguiente() throws DAOException {
    if (ConstantesClima.Parametro.PREGUNTA_TIPO_RESPUESTA_UNICA_HORIZONTAL.equals(
            preguntaDto.getTipoPreguntaDto().getId())
        || ConstantesClima.Parametro.PREGUNTA_TIPO_RESPUESTA_UNICA_VERTICAL.equals(
            preguntaDto.getTipoPreguntaDto().getId())
        || ConstantesClima.Parametro.PREGUNTA_TIPO_RESPUESTA_UNICA_DESPLEGABLE.equals(
            preguntaDto.getTipoPreguntaDto().getId())) {
      if (preguntaDto.getEsObligatorio() && preguntaDto.getOpcionSeleted() == null) {
        showError(
            UtilCore.Internacionalizacion.getMensajeInternacional(
                "encuestado.mensaje.validacion.pregunta"));
        return false;
      }
      if (preguntaDto.getOpcionSeleted() != null) {
        RespuestaDto respuestaDto = new RespuestaDto();
        for (int i = 0; i < preguntaDto.getListaOpcionesResp().size(); i++) {
          if (preguntaDto
              .getOpcionSeleted()
              .equals(preguntaDto.getListaOpcionesResp().get(i).getId())) {

            List<RespuestaDto> listResp =
                respuestaManager.obtenerRespuestaxPreguntaEncuestado(preguntaDto, encuestadoDto);
            if (listResp != null && listResp.size() > 0) {
              respuestaDto = listResp.get(0);
              respuestaDto.setOpcionDto(preguntaDto.getListaOpcionesResp().get(i));
              respuestaManager.editar(respuestaDto);
            } else {
              respuestaDto.setOpcionDto(preguntaDto.getListaOpcionesResp().get(i));
              respuestaDto.setPreguntaDto(preguntaDto);
              respuestaDto.setEncuestadoDto(encuestadoDto);
              respuestaManager.nuevo(respuestaDto);
            }
            encuestadoDto.setPreguntaDto(preguntaDto);
            encuestadoDto.setNumeroPregunta(new Long(preguntaActual));
            encuestadoDto.setEncuestaDto(dto);
            encuestadoManager.editar(encuestadoDto);
            break;
          }
        }
      } else { // para las preguntas que no sean obligatorias, si es que habia algo en base de datos
        // se elimina
        List<RespuestaDto> listResp =
            respuestaManager.obtenerRespuestaxPreguntaEncuestado(preguntaDto, encuestadoDto);
        if (listResp != null && listResp.size() > 0) {
          respuestaManager.eliminar(listResp.get(0));
        }
      }
    } else if (ConstantesClima.Parametro.PREGUNTA_TIPO_RESPUESTA_MULTIPLE_HORIZONTAL.equals(
            preguntaDto.getTipoPreguntaDto().getId())
        || ConstantesClima.Parametro.PREGUNTA_TIPO_RESPUESTA_MULTIPLE_VERTICAL.equals(
            preguntaDto.getTipoPreguntaDto().getId())) {
      if (preguntaDto.getEsObligatorio()) {
        boolean sel = false;
        for (int i = 0; i < preguntaDto.getListaOpcionesResp().size(); i++) {
          // System.out.println("opcion: "+ i+ "==>
          // "+preguntaDto.getListaOpcionesResp().get(i).isSelected());
          if (preguntaDto.getListaOpcionesResp().get(i).isSelected()) {
            // showError(UtilCore.Internacionalizacion.getMensajeInternacional("encuestado.mensaje.validacion.pregunta"));
            sel = true;
            break;
          }
        }
        if (!sel) {
          showError(
              UtilCore.Internacionalizacion.getMensajeInternacional(
                  "encuestado.mensaje.validacion.pregunta"));
          return false;
        }
      }

      List<RespuestaDto> listResp =
          respuestaManager.obtenerRespuestaxPreguntaEncuestado(preguntaDto, encuestadoDto);
      for (int j = 0; j < listResp.size(); j++) {
        respuestaManager.eliminar(listResp.get(j));
      }

      for (int i = 0; i < preguntaDto.getListaOpcionesResp().size(); i++) {
        if (preguntaDto.getListaOpcionesResp().get(i).isSelected()) {
          RespuestaDto respuestaDto = new RespuestaDto();
          respuestaDto.setOpcionDto(preguntaDto.getListaOpcionesResp().get(i));
          respuestaDto.setPreguntaDto(preguntaDto);
          respuestaDto.setEncuestadoDto(encuestadoDto);
          respuestaManager.nuevo(respuestaDto);
        }
      }

      encuestadoDto.setPreguntaDto(preguntaDto);
      encuestadoDto.setNumeroPregunta(new Long(preguntaActual));
      encuestadoDto.setEncuestaDto(dto);
      encuestadoManager.editar(encuestadoDto);

    } else if (ConstantesClima.Parametro.PREGUNTA_TIPO_RESPUESTA_ABIERTA.equals(
        preguntaDto.getTipoPreguntaDto().getId())) {
      if (preguntaDto.getEsObligatorio()) {
        if (preguntaDto.getTextInserted() == null
            || preguntaDto.getTextInserted().trim().equals("")) {
          showError(
              UtilCore.Internacionalizacion.getMensajeInternacional(
                  "encuestado.mensaje.validacion.pregunta"));
          return false;
        }
      }

      RespuestaDto respuestaDto = new RespuestaDto();
      List<RespuestaDto> listResp =
          respuestaManager.obtenerRespuestaxPreguntaEncuestado(preguntaDto, encuestadoDto);
      if (listResp != null && listResp.size() > 0) {
        respuestaDto = listResp.get(0);
        respuestaDto.setValor(preguntaDto.getTextInserted());
        respuestaManager.editar(respuestaDto);
      } else {
        respuestaDto.setValor(
            preguntaDto.getTextInserted() == null ? "" : preguntaDto.getTextInserted());
        respuestaDto.setPreguntaDto(preguntaDto);
        respuestaDto.setEncuestadoDto(encuestadoDto);
        respuestaManager.nuevo(respuestaDto);
      }

      encuestadoDto.setPreguntaDto(preguntaDto);
      encuestadoDto.setNumeroPregunta(new Long(preguntaActual));
      encuestadoDto.setEncuestaDto(dto);
      encuestadoManager.editar(encuestadoDto);
    }

    if (preguntaActual < cantTotalPreguntas) {
      preguntaDto = this.dto.getListaPreguntas().get(preguntaActual);
      preguntaActual = preguntaActual + 1;
      cantTotalOpciones = preguntaDto.getListaOpcionesResp().size();
    }
    return true;
  }
 public void cargarRespuestasPregunta() {
   try {
     if (ConstantesClima.Parametro.PREGUNTA_TIPO_RESPUESTA_UNICA_HORIZONTAL.equals(
             preguntaDto.getTipoPreguntaDto().getId())
         || ConstantesClima.Parametro.PREGUNTA_TIPO_RESPUESTA_UNICA_VERTICAL.equals(
             preguntaDto.getTipoPreguntaDto().getId())
         || ConstantesClima.Parametro.PREGUNTA_TIPO_RESPUESTA_UNICA_DESPLEGABLE.equals(
             preguntaDto.getTipoPreguntaDto().getId())) {
       List<RespuestaDto> listResp =
           respuestaManager.obtenerRespuestaxPreguntaEncuestado(preguntaDto, encuestadoDto);
       if (listResp != null && listResp.size() > 0) {
         preguntaDto.setOpcionSeleted(listResp.get(0).getOpcionDto().getId());
       }
     } else if (ConstantesClima.Parametro.PREGUNTA_TIPO_RESPUESTA_MULTIPLE_HORIZONTAL.equals(
             preguntaDto.getTipoPreguntaDto().getId())
         || ConstantesClima.Parametro.PREGUNTA_TIPO_RESPUESTA_MULTIPLE_VERTICAL.equals(
             preguntaDto.getTipoPreguntaDto().getId())) {
       List<RespuestaDto> listResp =
           respuestaManager.obtenerRespuestaxPreguntaEncuestado(preguntaDto, encuestadoDto);
       if (listResp != null && listResp.size() > 0) {
         for (int n = 0; n < listResp.size(); n++) {
           for (int p = 0; p < preguntaDto.getListaOpcionesResp().size(); p++) {
             if (listResp
                 .get(n)
                 .getOpcionDto()
                 .getId()
                 .equals(preguntaDto.getListaOpcionesResp().get(p).getId())) {
               preguntaDto.getListaOpcionesResp().get(p).setSelected(true);
               break;
             }
           }
         }
       }
     } else if (ConstantesClima.Parametro.PREGUNTA_TIPO_RESPUESTA_ABIERTA.equals(
         preguntaDto.getTipoPreguntaDto().getId())) {
       List<RespuestaDto> listResp =
           respuestaManager.obtenerRespuestaxPreguntaEncuestado(preguntaDto, encuestadoDto);
       if (listResp != null && listResp.size() > 0) {
         preguntaDto.setTextInserted(listResp.get(0).getValor());
       }
     }
   } catch (Exception e) {
   }
 }