package sk.sorien.pimpleplugin; import com.intellij.openapi.components.*; import com.intellij.openapi.project.Project; import com.intellij.util.xmlb.XmlSerializerUtil; import org.jetbrains.annotations.Nullable; import java.io.File; /** * @author Stanislav Turza */ @State( name = "SilexPluginSettings", storages = { @Storage(id = "default", file = StoragePathMacros.PROJECT_FILE), @Storage(id = "dir", file = StoragePathMacros.PROJECT_CONFIG_DIR + "/silex-plugin.xml", scheme = StorageScheme.DIRECTORY_BASED) } ) public class Configuration implements PersistentStateComponent<Configuration> { private static final String CONTAINER_JSON_DUMP = "pimple.json"; public boolean pluginEnabled = true; public String containerDefinitionFileName = ""; public static Configuration getInstance(Project project) { Configuration config = ServiceManager.getService(project, Configuration.class); if (config.containerDefinitionFileName.equals("")) { config.containerDefinitionFileName = project.getBasePath() + File.separator + CONTAINER_JSON_DUMP; } return config; } @Nullable @Override public Configuration getState() { return this; } @Override public void loadState(Configuration configuration) { XmlSerializerUtil.copyBean(configuration, this); } }