Package org.infernus.idea.checkstyle

Source Code of org.infernus.idea.checkstyle.CheckStyleModuleConfigurable

package org.infernus.idea.checkstyle;

import com.intellij.openapi.module.Module;
import com.intellij.openapi.module.ModuleServiceManager;
import com.intellij.openapi.options.Configurable;
import com.intellij.openapi.options.ConfigurationException;
import org.infernus.idea.checkstyle.ui.CheckStyleModuleConfigPanel;
import org.infernus.idea.checkstyle.util.IDEAUtilities;
import org.jetbrains.annotations.NotNull;

import javax.swing.*;

public class CheckStyleModuleConfigurable implements Configurable {

    private final Module module;

    public CheckStyleModuleConfigurable(@NotNull final Module module) {
        this.module = module;
    }

    private CheckStyleModuleConfigPanel configPanel;

    public String getDisplayName() {
        return IDEAUtilities.getResource("plugin.configuration-name", "CheckStyle Plugin");
    }

    public String getHelpTopic() {
        return null;
    }

    public JComponent createComponent() {
        if (configPanel == null) {
            configPanel = new CheckStyleModuleConfigPanel();
        }

        reset();

        return configPanel;
    }

    public boolean isModified() {
        return configPanel != null && configPanel.isModified();
    }

    public void apply() throws ConfigurationException {
        if (configPanel == null) {
            return;
        }

        final CheckStyleModuleConfiguration configuration = getConfiguration();
        configuration.setActiveConfiguration(configPanel.getActiveLocation());
        configuration.setExcluded(configPanel.isExcluded());

        reset();
    }

    private CheckStyleModuleConfiguration getConfiguration() {
        return ModuleServiceManager.getService(module, CheckStyleModuleConfiguration.class);
    }

    public void reset() {
        if (configPanel == null) {
            return;
        }

        final CheckStyleModuleConfiguration configuration = getConfiguration();

        configPanel.setConfigurationLocations(configuration.getConfigurationLocations());

        if (configuration.isExcluded()) {
            configPanel.setExcluded(true);
        } else if (configuration.isUsingModuleConfiguration()) {
            configPanel.setActiveLocation(configuration.getActiveConfiguration());
        } else {
            configPanel.setActiveLocation(null);
        }
    }

    public void disposeUIResources() {
        configPanel = null;
    }
}
TOP

Related Classes of org.infernus.idea.checkstyle.CheckStyleModuleConfigurable

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.