package com.dd; import com.google.gson.Gson; import com.intellij.ide.util.PropertiesComponent; import com.intellij.openapi.project.Project; import org.jetbrains.annotations.NotNull; public class SettingsManager { private static final String KEY_SETTINGS = "KEY_COMPOSED_FOLDERS"; public static boolean isComposed(@NotNull String folder) { boolean isFoldingOn = false; Project currentProject = Utils.getCurrentProject(); if (currentProject != null) { Settings settings = getSettings(currentProject); isFoldingOn = settings.getComposedFolders().contains(folder); } return isFoldingOn; } public static void addComposedFolder(@NotNull String folder) { Project currentProject = Utils.getCurrentProject(); if (currentProject != null) { Gson gson = new Gson(); Settings settings = getSettings(currentProject); settings.getComposedFolders().add(folder); PropertiesComponent.getInstance(currentProject).setValue(KEY_SETTINGS, gson.toJson(settings)); } } public static void removeComposedFolder(@NotNull String folder) { Project currentProject = Utils.getCurrentProject(); if (currentProject != null) { Gson gson = new Gson(); Settings settings = getSettings(currentProject); settings.getComposedFolders().remove(folder); PropertiesComponent.getInstance(currentProject).setValue(KEY_SETTINGS, gson.toJson(settings)); } } @NotNull private static Settings getSettings(@NotNull Project currentProject) { Gson gson = new Gson(); String json = PropertiesComponent.getInstance(currentProject).getValue(KEY_SETTINGS); Settings settings; if (json == null) { settings = new Settings(); } else { settings = gson.fromJson(json, Settings.class); } return settings; } }