@SuppressWarnings("deprecation")
  public void bind() {

    // modificar el menú de inicio de sesión para los visitantes que no han
    // iniciado sesión
    if (!AppController.getNivelAccesoActual().equals(NivelAcceso.VISITANTE)) {

      display.getEnlaceLogin().setText(AppController.getI18nConstantes().cerrar_sesion());
      display.getEnlaceLogin().setTargetHistoryToken("");

      display
          .getEnlaceLogin()
          .addClickHandler(
              new ClickHandler() {

                @Override
                public void onClick(ClickEvent event) {

                  rpcService.cerrarSesion(
                      new Fragmentos.ManejadorCierreSesion(rpcService, eventBus));
                }
              });

    } else {
      display.getEnlacePerfil().setText("");
    }

    // consultar los datos de la instancia

    display.getIndicadorDeCargaDePagina().agregarLlamada();

    rpcService.mIGetInstancia(
        idInstanciaDeseada,
        new AsyncCallback<Instancia>() {

          @Override
          public void onSuccess(final Instancia result) {

            display.getIndicadorDeCargaDePagina().quitarLlamada();

            procesarInstanciaLeida(result);
          }

          @Override
          public void onFailure(Throwable caught) {
            // no hay resultados...

            GWT.log("Falla, no hay instancia para esta sesión:", caught);

            display.getIndicadorDeCargaDePagina().quitarLlamada();

            // enviar a la página de error
            eventBus.fireEvent(new EventoPaginaError());
          }
        });
  }
  public void go(final HasWidgets container) {

    // verificar si es super admin, admin, write o read ->
    if (AppController.getNivelAccesoActual().equals(NivelAcceso.VISITANTE)
        || AppController.getNivelAccesoActual().equals(NivelAcceso.USUARIO_SIN_INSTANCIA)) {

      // no -> enviar a página de error
      eventBus.fireEvent(new EventoPaginaError());
      return;

    } else {

      // mostrar la página
      bind();
      container.clear();
      container.add(display.asWidget());
    }
  }
  private void procesarInstanciaLeida(final Instancia result) {
    // mostrar los datos de la aplicación
    display.getTbNombre().setText(result.getNombre());
    display
        .getLinkUsuCread()
        .setTargetHistoryToken(
            Destinos.USUARIO_INDIVIDUAL.value
                + Aplicacion.SEPARADOR_TOKEN.value
                + result.getIdUsuarioCreador());
    display
        .getLinkGrupAdmin()
        .setTargetHistoryToken(
            Destinos.GRUPO_INDIVIDUAL.value
                + Aplicacion.SEPARADOR_TOKEN.value
                + result.getIdGrupoAdmin());
    display
        .getLinkGrupWrite()
        .setTargetHistoryToken(
            Destinos.GRUPO_INDIVIDUAL.value
                + Aplicacion.SEPARADOR_TOKEN.value
                + result.getIdGrupoEscritor());
    display
        .getLinkGrupRead()
        .setTargetHistoryToken(
            Destinos.GRUPO_INDIVIDUAL.value
                + Aplicacion.SEPARADOR_TOKEN.value
                + result.getIdGrupoLector());

    // solo dar la opción de editar a super admin y a admin
    if (AppController.getNivelAccesoActual().equals(NivelAcceso.USUARIO_LECTOR)
        || AppController.getNivelAccesoActual().equals(NivelAcceso.USUARIO_ESCRITOR)) {
      display.getBtnEditar().setEnabled(false);
    } else {
      display
          .getBtnEditar()
          .addClickHandler(
              new ClickHandler() {

                @Override
                public void onClick(ClickEvent event) {

                  History.newItem(
                      Destinos.INSTANCIA_EDITAR.value
                          + Aplicacion.SEPARADOR_TOKEN.value
                          + result.getPid());
                }
              });
    }

    if (!AppController.getNivelAccesoActual().equals(NivelAcceso.SUPER_ADMIN)) {

      display
          .getBtnDesasoc()
          .addClickHandler(
              new ClickHandler() {

                @Override
                public void onClick(ClickEvent event) {
                  // solicitar desasociarse
                  if (Window.confirm(
                      AppController.getI18nConstantes().preg_desasociarse_de_esta_instancia())) {

                    desasociarDeInstancia();
                  }
                }
              });

    } else {
      display.getBtnDesasoc().setEnabled(false);
    }
  }