@NotNull
  public static Callback create(@NotNull Project project,
                                @NotNull InvokeAfterUpdateMode mode,
                                @NotNull Runnable afterUpdate,
                                @Nullable @Nls String title) {
    if (mode.isSilent()) {
      return new SilentCallback(project, afterUpdate, mode.isCallbackOnAwt());
    }
    else {
      return new ProgressCallback(project, afterUpdate, mode.isSynchronous(), mode.isCancellable(), title);
    }
  }
@NotNull
  public static Callback create(@NotNull Project project,
                                @NotNull InvokeAfterUpdateMode mode,
                                @NotNull Runnable afterUpdate,
                                @Nullable @Nls String title)