public static void performLogin(final AsyncCallback<Boolean> callback) {
    // let's only login if we are not actually logged in
    try {
      final String url = GWT.getHostPageBaseURL() + "api/mantle/isAuthenticated"; // $NON-NLS-1$
      RequestBuilder requestBuilder = new RequestBuilder(RequestBuilder.GET, url);
      requestBuilder.setHeader("If-Modified-Since", "01 Jan 1970 00:00:00 GMT");
      requestBuilder.setHeader("accept", "text/plain");
      requestBuilder.sendRequest(
          null,
          new RequestCallback() {

            public void onError(Request request, Throwable caught) {
              MantleLoginDialog dialog = new MantleLoginDialog(callback, false);
              dialog.show();
            }

            public void onResponseReceived(Request request, Response response) {
              if (!"true".equalsIgnoreCase(response.getText())) {
                MantleLoginDialog dialog = new MantleLoginDialog(callback, false);
                dialog.show();
              }
            }
          });
    } catch (RequestException e) {
      MantleLoginDialog dialog = new MantleLoginDialog(callback, false);
      dialog.show();
    }
  }
예제 #2
0
  private void doLogin() {
    MantleLoginDialog.performLogin(
        new AsyncCallback<Object>() {

          public void onFailure(Throwable caught) {
            MessageDialogBox dialogBox =
                new MessageDialogBox(
                    Messages.getString("error"),
                    Messages.getString("invalidLogin"),
                    false,
                    false,
                    true) {}; //$NON-NLS-1$ //$NON-NLS-2$

            dialogBox.setCallback(
                new IDialogCallback() {
                  public void cancelPressed() {
                    // do nothing
                  }

                  public void okPressed() {
                    doLogin();
                  }
                });

            dialogBox.center();
          }

          public void onSuccess(Object result) {
            fetchOverlays();
          }
        });
  }