package krasa.visualvm;
import com.intellij.openapi.options.Configurable;
import com.intellij.openapi.options.ConfigurationException;
import com.intellij.openapi.options.ShowSettingsUtil;
import com.intellij.openapi.project.Project;
import org.jetbrains.annotations.Nls;
import org.jetbrains.annotations.NonNls;
import org.jetbrains.annotations.Nullable;
import javax.swing.*;
public class MyConfigurable implements Configurable {
private SettingsDialog form;
public static boolean openSettingsIfNotConfigured(Project project) {
ApplicationSettingsComponent instance = ApplicationSettingsComponent.getInstance();
PluginSettings state = instance.getState();
boolean ok = true;
if (!PluginSettings.isValid(state)) {
ok = ShowSettingsUtil.getInstance().editConfigurable(project, new MyConfigurable());
}
return ok;
}
@Nls
public String getDisplayName() {
return "VisualVM Launcher";
}
@Nullable
public Icon getIcon() {
return null;
}
@Nullable
@NonNls
public String getHelpTopic() {
return null;
}
public JComponent createComponent() {
if (form == null) {
form = new SettingsDialog();
}
return form.getRootComponent();
}
public boolean isModified() {
return form.isModified(ApplicationSettingsComponent.getInstance().getState());
}
public void apply() throws ConfigurationException {
PluginSettings settings = ApplicationSettingsComponent.getInstance().getState();
if (form != null) {
form.getData(settings);
LogHelper.debug = settings.getDebug();
}
}
public void reset() {
PluginSettings settings = ApplicationSettingsComponent.getInstance().getState();
if (form != null) {
form.setDataCustom(settings);
}
}
public void disposeUIResources() {
form = null;
}
}