package net.bitpot.railways.gui;

import com.intellij.openapi.module.Module;
import com.intellij.openapi.ui.DialogWrapper;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;

import javax.swing.*;

/**
 * @author Basil Gren
 *         on 28.10.14.
 */
public class RailwaysSettingsDialog extends DialogWrapper {

    private final RailwaysSettingsForm myPanel;

    protected RailwaysSettingsDialog(@NotNull Module module) {
        super(module.getProject());

        setTitle("Configure Railways - module '" + module.getName() + "'");

        // Create panel and reset components
        myPanel = new RailwaysSettingsForm(module);
        myPanel.reset();

        // Important to call inherited init() method.
        init();
    }


    /**
     * Factory method. It creates panel with dialog options. Options panel is located at the
     * center of the dialog's content pane. The implementation can return <code>null</code>
     * value. In this case there will be no options panel.
     *
     * @return center panel
     */
    @Nullable
    @Override
    protected JComponent createCenterPanel() {
        return myPanel.rootPanel();
    }


    public static void configure(Module module) {
        RailwaysSettingsDialog dlg = new RailwaysSettingsDialog(module);
        dlg.show();

        if (!dlg.isOK())
            return;

        dlg.myPanel.apply();

        dlg.dispose();
    }
}