package krasa.visualvm; import javax.swing.*; import com.intellij.openapi.project.Project; import org.jetbrains.annotations.Nls; import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.components.ApplicationComponent; import com.intellij.openapi.components.PersistentStateComponent; import com.intellij.openapi.components.State; import com.intellij.openapi.components.Storage; import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.options.Configurable; import com.intellij.openapi.options.ConfigurationException; import com.intellij.openapi.options.ShowSettingsUtil; @State(name = "VisualVMLauncher", storages = {@Storage(id = "VisualVMLauncher", file = "$APP_CONFIG$/VisualVMLauncher.xml")}) public class ApplicationSettingsComponent implements ApplicationComponent, PersistentStateComponent<PluginSettings> { private static final Logger log = Logger.getInstance(ApplicationSettingsComponent.class.getName()); private PluginSettings settings = new PluginSettings(); public static ApplicationSettingsComponent getInstance() { return ApplicationManager.getApplication().getComponent(ApplicationSettingsComponent.class); } public String getVisualVmHome() { return settings.getVisualVmExecutable(); } // ApplicationComponent @NotNull public String getComponentName() { return "VisualVMLauncher"; } @Override public void initComponent() { } public void disposeComponent() { } @NotNull public PluginSettings getState() { if (settings == null) { settings = new PluginSettings(); } return settings; } public void loadState(PluginSettings state) { this.settings = state; LogHelper.debug = settings.getDebug(); } }