/**
   * Rechercher l'opportunité correspondant au numéro de transaction saisi. Si l'opportunité est
   * trouvée, envoie un évènement pour ouvrir l'opportunité dans Square.
   */
  private void getOpportuniteByNumTransaction() {
    view.afficherLoadingPopup(
        new LoadingPopupConfiguration(view.getViewConstants().msgRechercheOppEnCours()));
    final String numTransaction = view.getNumTransactionValue().getValue();
    tarificateurServiceGwtAsync.getOpportuniteByNumTransaction(
        numTransaction,
        new AsyncCallback<OpportuniteModel>() {

          @Override
          public void onSuccess(OpportuniteModel result) {
            // On cache la popup
            view.afficher(false);
            view.onRpcServiceSuccess();
            // On ouvre la fiche de la personne et l'opportunité trouvée
            fireEventLocalBus(
                new OpenOpportuniteEvent(
                    result.getEidOpportunite(), result.getEidPersonnePrincipale()));
          }

          @Override
          public void onFailure(Throwable caught) {
            // On cache la popup
            view.afficher(false);
            // On affiche le message d'erreur
            view.onRpcServiceFailure(caught);
          }
        });
  }
  /** {@inheritDoc} */
  @Override
  public void onBind() {
    view.getBtnRechercheClickHandler()
        .addClickHandler(
            new ClickHandler() {

              @Override
              public void onClick(ClickEvent event) {
                getOpportuniteByNumTransaction();
              }
            });

    view.getBtnAnnulerClickHandler()
        .addClickHandler(
            new ClickHandler() {

              @Override
              public void onClick(ClickEvent event) {
                view.afficher(false);
              }
            });
    view.getFocusPanelAllKeyHandlers()
        .addKeyDownHandler(
            new KeyDownHandler() {

              @Override
              public void onKeyDown(KeyDownEvent event) {
                final int keyCode = event.getNativeKeyCode();
                if (keyCode == KeyCodes.KEY_ENTER) {
                  // On lance la recherche lorsque la touche entrée est pressée
                  getOpportuniteByNumTransaction();
                } else if (keyCode == KeyCodes.KEY_ESCAPE) {
                  // On cache la popup lorsque la touche echap est pressée
                  view.afficher(false);
                }
              }
            });
  }
 /** {@inheritDoc} */
 @Override
 public void onShow(HasWidgets container) {
   view.afficher(true);
 }