@Override
  public void onEnterPage(
      PageParameters parameters, PageRequestSession session, final AsyncPageCallback callback) {
    callback.waitForAsync();
    if (parameters.getParameters().length > 0) {
      productService.getForEditing(
          parameters.asString(0),
          new AsyncCallback<Pair<Product, String>>() {

            @Override
            public void onSuccess(Pair<Product, String> result) {
              show(result);
              callback.onSuccess();
            }

            @Override
            public void onFailure(Throwable caught) {
              Messages.get().error(caught.getMessage(), null);
            }
          });
    }
  }