/**
   * enlista las actividades por el estado seleccionado y el grupo actual refresca el datatable
   *
   * @param event
   */
  public void onNodeSelect(NodeSelectEvent event) {

    int j = 0;

    activi = new Actividad();
    activi.setEstado(event.getTreeNode().toString());
    actividad = consultarActividades(idusu, activi);
    actividades = new ArrayList<Actividad>();
    if (actividad.getActividads().isEmpty()) {
      actividades = null;
    }
    Grupo g = new Grupo();
    for (int i = 0; i < grupos.size(); i++) {
      if (grupos.get(i).getNombre().compareTo(GrupoPanel) == 0) {
        g = grupos.get(i);
        indice = i;
      }
    }
    while (actividad.getActividads().size() > j) {
      act = actividad.getActividads().get(j);
      if (act.getIdInstancia().getIdPeriodoGrupoProceso().getIdGrupo().getId().compareTo(g.getId())
          != 0) {
      } else {
        actividades.add(act);
      }

      j++;
    }
  }
  /**
   * Cambio de pestaña de los grupo, enlista las actividades por el grupo seleccionado y refresca el
   * datatable
   *
   * @param event
   */
  public void onTabChange(TabChangeEvent event) {
    activi = new Actividad();
    Grupo gSeleccionado = (Grupo) event.getData();
    grupoSeleccionado = gSeleccionado;
    activi.setEstado(estadoSeleccionado.getData().toString());
    actividad = consultarActividades(idusu, activi);
    actividades = new ArrayList<Actividad>();
    if (actividad.getActividads().isEmpty()) {
      actividades = null;
    }
    Grupo g = new Grupo();
    for (int i = 0; i < grupos.size(); i++) {
      if (grupos.get(i).getNombre().compareTo(gSeleccionado.getNombre()) == 0) {
        g = grupos.get(i);
        indice = i;
      }
    }

    int j = 0;

    while (actividad.getActividads().size() > j) {
      act = actividad.getActividads().get(j);
      if (act.getIdInstancia().getIdPeriodoGrupoProceso().getIdGrupo().getId().compareTo(g.getId())
          == 0) {
        actividades.add(act);
      }

      j++;
    }
  }
  public void finalizarActividad() {

    try {
      FacesContext contex = FacesContext.getCurrentInstance();
      contex
          .getExternalContext()
          .redirect(
              "http://192.168.1.102:2020/aplicacionesExternas/externa.php?idAct="
                  + act.getId()
                  + "&idSes="
                  + sesion_actual.getId()
                  + "&idCond=1&idUsu="
                  + idusu.getId());
    } catch (Exception e) {
      System.out.println("----------------------------Error---------------------------------" + e);
    }
  }
  /**
   * cambia el estado de la actividad pendiente a abierta, inicia la actividad y refresca el
   * datatable
   *
   * @param evento
   */
  public void cambiarEstado(CloseEvent evento) {

    resul = iniciarActividad(act, sesion_actual);
    FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(resul.getEstatus()));
    int j = 0;
    activi = new Actividad();
    activi.setEstado(estadoSeleccionado.toString());
    actividad = consultarActividades(idusu, activi);
    actividades = new ArrayList<Actividad>();
    if (actividad.getActividads().isEmpty()) {
      actividades = null;
    }
    while (actividad.getActividads().size() > j) {
      act = actividad.getActividads().get(j);
      actividades.add(act);
      j++;
    }
  }
  /** se toma la condicion, la sesion y la actividad y se cierra la actividad a dedo */
  public void cerraractividad() {

    ses = new Sesion();
    ses.setIdUsuario(idusu);
    cond = new Condicion();
    cond.setEstado("activa");
    resul = finalizarActividad(act, ses, cond);

    FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(resul.getEstatus()));
    int j = 0;
    activi = new Actividad();
    activi.setEstado(estadoSeleccionado.toString());
    actividad = consultarActividades(idusu, activi);
    actividades = new ArrayList<Actividad>();
    if (actividad.getActividads().isEmpty()) {
      actividades = null;
    }
    while (actividad.getActividads().size() > j) {
      act = actividad.getActividads().get(j);
      actividades.add(act);
      j++;
    }
  }
  /**
   * enlista los estados, muestra por defecto las actividades el primer estado que conigue las
   * actividades y del primer grupo de consigue.
   */
  @PostConstruct
  public void init() {

    if (verificarLogueo()) {
      Redireccionar();
    } else {
      estact = new DefaultTreeNode("root", null);
      idusu = new Usuario();
      FacesContext fc = FacesContext.getCurrentInstance();
      ExternalContext ec = fc.getExternalContext();
      HttpSession sesion = (HttpSession) ec.getSession(true);
      sesion_actual = (Sesion) (sesion.getAttribute("Sesion"));
      idusu = (Usuario) (sesion.getAttribute("Usuario"));
      String icono;
      // bande=consultarBandejas(idusu);
      estados = buscarEstados();
      int i = 0;

      while (estados.size() > i) {
        if ("abierta".equals(estados.get(i))) {
          icono = "s";
        } else if ("pendiente".equals(estados.get(i))) {
          icono = "i";
        } else if ("cerrada".equals(estados.get(i))) {
          icono = "t";
        } else {
          icono = "j";
        }
        TreeNode inbox = new DefaultTreeNode(icono, estados.get(i), estact);
        i++;
      }

      grupos = this.gruposUsuario(idusu);
      estadoSeleccionado = estact.getChildren().get(0);
      indice = 0;
      estact.getChildren().get(0).setSelected(true);
      int j = 0;
      activi = new Actividad();
      activi.setEstado(estados.get(j));
      actividad = consultarActividades(idusu, activi);
      actividades = new ArrayList<Actividad>();
      grupoSeleccionado = grupos.get(0);
      GrupoPanel = grupoSeleccionado.getNombre();
      if (actividad.getActividads().isEmpty()) {
        actividades = null;
      }
      while (actividad.getActividads().size() > j) {
        act = actividad.getActividads().get(j);
        if (act.getIdInstancia()
                .getIdPeriodoGrupoProceso()
                .getIdGrupo()
                .getId()
                .compareTo(grupoSeleccionado.getId())
            != 0) {
        } else {
          actividades.add(act);
        }

        j++;
      }
    }
  }