Package com.dci.intellij.dbn.browser.options.ui

Source Code of com.dci.intellij.dbn.browser.options.ui.DatabaseBrowserGeneralSettingsForm

package com.dci.intellij.dbn.browser.options.ui;

import com.dci.intellij.dbn.browser.options.BrowserDisplayMode;
import com.dci.intellij.dbn.browser.options.DatabaseBrowserGeneralSettings;
import com.dci.intellij.dbn.browser.options.ObjectDisplaySettingsListener;
import com.dci.intellij.dbn.common.event.EventManager;
import com.dci.intellij.dbn.common.options.ui.ConfigurationEditorForm;
import com.dci.intellij.dbn.common.options.ui.ConfigurationEditorUtil;
import com.intellij.openapi.options.ConfigurationException;
import com.intellij.openapi.project.Project;

import javax.swing.JCheckBox;
import javax.swing.JComponent;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JTextField;

public class DatabaseBrowserGeneralSettingsForm extends ConfigurationEditorForm<DatabaseBrowserGeneralSettings> {
    private JPanel mainPanel;
    private JRadioButton simpleRadioButton;
    private JRadioButton tabbedRadioButton;
    private JTextField navigationHistorySizeTextField;
    private JCheckBox showObjectDetailsCheckBox;


    public DatabaseBrowserGeneralSettingsForm(DatabaseBrowserGeneralSettings configuration) {
        super(configuration);
        updateBorderTitleForeground(mainPanel);
        resetChanges();

        registerComponent(simpleRadioButton);
        registerComponent(tabbedRadioButton);
        registerComponent(showObjectDetailsCheckBox);
    }

    public JComponent getComponent() {
        return mainPanel;
    }

    public void applyChanges() throws ConfigurationException {
        DatabaseBrowserGeneralSettings configuration = getConfiguration();
        boolean repaintTree = configuration.isModified();
       
        BrowserDisplayMode displayMode =
                simpleRadioButton.isSelected() ? BrowserDisplayMode.SIMPLE :
                tabbedRadioButton.isSelected() ? BrowserDisplayMode.TABBED :
                BrowserDisplayMode.SIMPLE;
        configuration.setDisplayMode(displayMode);

        ConfigurationEditorUtil.validateIntegerInputValue(navigationHistorySizeTextField, "Navigation history size", 0, 1000, "");
        configuration.getNavigationHistorySize().applyChanges(navigationHistorySizeTextField);
        configuration.getShowObjectDetails().applyChanges(showObjectDetailsCheckBox);
       
        if (repaintTree) {
            Project project = configuration.getProject();
            ObjectDisplaySettingsListener listener = EventManager.notify(project, ObjectDisplaySettingsListener.TOPIC);
            listener.displayDetailsChanged();
        }
       
    }

    public void resetChanges() {
        DatabaseBrowserGeneralSettings configuration = getConfiguration();
        BrowserDisplayMode displayMode = configuration.getDisplayMode();
        if (displayMode == BrowserDisplayMode.SIMPLE) simpleRadioButton.setSelected(true); else
        if (displayMode == BrowserDisplayMode.TABBED) tabbedRadioButton.setSelected(true);

        configuration.getNavigationHistorySize().resetChanges(navigationHistorySizeTextField);
        configuration.getShowObjectDetails().resetChanges(showObjectDetailsCheckBox);
    }
}
TOP

Related Classes of com.dci.intellij.dbn.browser.options.ui.DatabaseBrowserGeneralSettingsForm

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.