public @NotNull Map<SdkType, NewSdkAction> createAddActions(@Nullable Predicate<? super SdkTypeId> filter) {
    Map<SdkType, NewSdkAction> result = new LinkedHashMap<>();
    for (final SdkType type : getAddableSdkTypes(filter)) {
      String sdkPresentableName = type.getPresentableName(), text, title, subText;

      boolean isForce = forceAddActionToSelectFromDisk(type);
      if (isForce) {
        text = ProjectBundle.message("sdk.configure.addFromDisk.sdkType.action", sdkPresentableName);
        title = ProjectBundle.message("sdk.configure.addFromDisk.sdkType.actionTitle", sdkPresentableName);
        subText = ProjectBundle.message("sdk.configure.addFromDisk.sdkType.subAction", sdkPresentableName);
      } else {
        text = ProjectBundle.message("sdk.configure.add.sdkType.action", sdkPresentableName);
        title = ProjectBundle.message("sdk.configure.add.sdkType.actionTitle", sdkPresentableName);
        subText = ProjectBundle.message("sdk.configure.add.sdkType.subAction", sdkPresentableName);
      }

      NewSdkAction addAction = new NewSdkAction(type, title, text, subText, type.getIcon()) {
        @Override
        public void actionPerformed(@Nullable Sdk selectedSdk,
                                    @NotNull JComponent parent,
                                    @NotNull java.util.function.Consumer<? super Sdk> callback) {
          if (!isForce && type.supportsCustomCreateUI()) {
            type.showCustomCreateUI(ProjectSdksModel.this, parent, selectedSdk, sdk -> setupSdk(sdk, callback));
          }
          else {
            SdkConfigurationUtil.selectSdkHome(type, home -> addSdk(type, home, sdk -> callback.accept(sdk)));
          }
        }
      };
      result.put(type, addAction);
    }
    return result;
  }
public @NotNull Map<SdkType, NewSdkAction> createAddActions(@Nullable Predicate<? super SdkTypeId> filter)