private void loadImageAsync(@Nullable String propertyValue) {
      String[] parts = (propertyValue == null ? propertyName + ".png" : propertyValue).split(",");
      float newAlpha = Math.abs(Math.min(StringUtil.parseInt(parts.length > 1 ? parts[1] : "", 10) / 100f, 1f));
      IdeBackgroundUtil.Fill newFillType = StringUtil.parseEnum(parts.length > 2 ? Strings.toUpperCase(parts[2]) : "", IdeBackgroundUtil.Fill.SCALE, IdeBackgroundUtil.Fill.class);
      IdeBackgroundUtil.Anchor newAnchor = StringUtil.parseEnum(parts.length > 3 ? Strings.toUpperCase(parts[3]) : "", IdeBackgroundUtil.Anchor.CENTER, IdeBackgroundUtil.Anchor.class);
      String flip = parts.length > 4 ? parts[4] : "none";
      String filePath = parts[0];
      boolean flipH = "flipHV".equals(flip) || "flipH".equals(flip);
      boolean flipV = "flipHV".equals(flip) || "flipV".equals(flip);
      ImageLoadSettings newLoadSettings = new ImageLoadSettings(filePath, flipH, flipV);

      if (Strings.isEmpty(filePath)) {
        resetImage(propertyValue, newLoadSettings, null, newAlpha, newFillType, newAnchor);
        return;
      }

      if (Objects.equals(imageLoadSettings, newLoadSettings)) {
        resetImage(propertyValue, newLoadSettings, image, newAlpha, newFillType, newAnchor);
        return;
      }

      Image cachedImage = ourImageCache.get(newLoadSettings);
      if (cachedImage != null) {
        resetImage(propertyValue, newLoadSettings, cachedImage, newAlpha, newFillType, newAnchor);
        return;
      }

      ModalityState modalityState = ModalityState.stateForComponent(rootComponent);
      ApplicationManager.getApplication().executeOnPooledThread(() -> {
        Image newImage = filterImage(loadImage(newLoadSettings), newLoadSettings);
        ourImageCache.put(newLoadSettings, newImage);
        ApplicationManager.getApplication().invokeLater(() -> {
          resetImage(propertyValue, newLoadSettings, newImage, newAlpha, newFillType, newAnchor);
        }, modalityState);
      });
    }
private void loadImageAsync(@Nullable String propertyValue)