boolean (@NotNull Map<String, Object> backgroundProps, @NotNull @NonNls String bgImageProperty, @NotNull @NonNls String path) { try { Path tmpImage = FileUtil.createTempFile("ijBackgroundImage", path.substring(path.lastIndexOf(".")), true).toPath(); InputStream stream = getResourceAsStream(path); if (stream == null) { throw new IllegalArgumentException("Can't load background: " + path); } try (stream) { Files.copy(stream, tmpImage, StandardCopyOption.REPLACE_EXISTING); } Object transparency = backgroundProps.get("transparency"); String alpha = String.valueOf(transparency instanceof Integer ? (int)transparency : 15); String fill = parseEnumValue(backgroundProps.get("fill"), IdeBackgroundUtil.Fill.SCALE); String anchor = parseEnumValue(backgroundProps.get("anchor"), IdeBackgroundUtil.Anchor.CENTER); String spec = String.join(",", tmpImage.toString(), alpha, fill, anchor); PropertiesComponent propertyComponent = PropertiesComponent.getInstance(); String currentSpec = propertyComponent.getValue(bgImageProperty); propertyComponent.setValue("old." + bgImageProperty, currentSpec); propertyComponent.setValue(bgImageProperty, spec); return true; } catch (IOException e) { Logger.getInstance(getClass()).error(e); return false; } }