package com.lightd.ideap.maven.settings; import com.intellij.openapi.options.ConfigurationException; import com.intellij.openapi.options.SearchableConfigurable; import com.intellij.openapi.options.UnnamedConfigurable; import com.intellij.openapi.project.Project; import com.lightd.ideap.maven.MvnBundle; import org.jetbrains.annotations.Nls; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.idea.maven.project.AdditionalMavenImportingSettings; import javax.swing.*; public class MvnRunConfigurable implements AdditionalMavenImportingSettings, SearchableConfigurable { private static MvnRunConfigurable instance; private MvnRunConfigurationSettings settings = new MvnRunConfigurationSettings(); private MvnRunConfigurationSettingsPanel settingsPanel; public static MvnRunConfigurable getInstance() { if (instance == null) { instance = new MvnRunConfigurable(); } return instance; } @Nls @Override public String getDisplayName() { return MvnBundle.message("configurable.display.name"); } @Nullable @Override public String getHelpTopic() { return getId(); } @Nullable @Override public JComponent createComponent() { settings.readSettings(); settingsPanel = new MvnRunConfigurationSettingsPanel(settings); return settingsPanel; } @Override public boolean isModified() { return settingsPanel != null && settingsPanel.isModified(); } @Override public void apply() throws ConfigurationException { if (settingsPanel != null) { settingsPanel.apply(); settings.saveSettings(); } } @Override public void reset() { if (settingsPanel != null) { settingsPanel.reset(); } } @Override public void disposeUIResources() { settingsPanel = null; } @Nullable @Override public Runnable enableSearch(String s) { return null; } @NotNull @Override public String getId() { return MvnBundle.message("configurable.id"); } @Override public UnnamedConfigurable createConfigurable(Project project) { return this; } }