package krasa.mavenrun;
import com.intellij.openapi.options.Configurable;
import com.intellij.openapi.options.ConfigurableProvider;
import com.intellij.openapi.options.ConfigurationException;
import krasa.mavenrun.gui.ApplicationSettingsForm;
import krasa.mavenrun.model.ApplicationSettings;
import org.jetbrains.annotations.Nls;
import org.jetbrains.annotations.Nullable;
import javax.swing.*;
public class MyConfigurable implements Configurable {
private ApplicationSettingsForm form;
public ApplicationSettings state;
private ApplicationComponent applicationComponent;
public MyConfigurable(ApplicationComponent applicationComponent) {
this.applicationComponent = applicationComponent;
this.state = applicationComponent.getState();
}
@Nls
public String getDisplayName() {
return "Maven Helper";
}
@Nullable
public String getHelpTopic() {
return null;
}
@Nullable
public JComponent createComponent() {
form = new ApplicationSettingsForm(state);
return form.getRootComponent();
}
public boolean isModified() {
return form.isSettingsModified(state);
}
public void apply() throws ConfigurationException {
applicationComponent.unRegisterActions();
state = form.getSettings().clone();
applicationComponent.loadState(state);
applicationComponent.registerActions();
}
public void reset() {
if (form != null) {
form.importFrom(state);
}
}
public void disposeUIResources() {
form = null;
}
}