private void loadEmbed(String embedMode) {
    if (!embedLoaders.containsKey(embedMode)) {

      String allEmbeds = "";
      for (String key : embedLoaders.keySet()) {
        allEmbeds += " " + key;
      }

      embedContainer.setInfoText("Embed mode '" + embedMode + "' is invalid." + allEmbeds);
      return;
    }

    embeddedViewLoader = embedLoaders.get(embedMode);

    embedContainer.setInfoText("Loading...");
    embeddedViewLoader.loadView(
        windowLocation,
        embedMode,
        new AsyncCallback<IsWidget>() {
          @Override
          public void onFailure(Throwable caught) {
            loggingErrorHandler.handleError(caught);
            embedContainer.setInfoText(caught.getMessage());
          }

          @Override
          public void onSuccess(IsWidget result) {
            embedContainer.setWidget(result.asWidget());
          }
        },
        new EmbedLoader() {
          @Override
          public void switchMode(String embedMode) {
            loadEmbed(embedMode);
          }
        });
  }
 public static String getEmbedViewCentralNodeUri() {
   return embeddedViewLoader.getCentralEntityUri();
 }
 protected void registerLoader(EmbeddedViewLoader loader) {
   assert loader != null;
   for (String embedMode : loader.getEmbedModes()) {
     embedLoaders.put(embedMode, loader);
   }
 }