/*
* Copyright 2013-2014 Grzegorz Ligas <ligasgr@gmail.com> and other contributors
* (see the CONTRIBUTORS file).
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.intellij.xquery.runner.ui.datasources.details;
import org.intellij.xquery.runner.rt.XQueryDataSourceType;
import org.intellij.xquery.runner.state.datasources.XQueryDataSourceConfiguration;
import org.intellij.xquery.runner.ui.datasources.ConfigurationChangeListener;
import javax.swing.JPanel;
/**
* User: ligasgr
* Date: 02/10/13
* Time: 22:11
*/
public class DataSourceConfigurationAggregatingPanel {
private JPanel mainPanel;
private NameAndDefaultButtonPanel nameAndDefaultButtonPanel;
private ConfigurationFilePanel configurationFilePanel;
private ConnectionParametersPanel connectionParametersPanel;
private UserDefinedLibraryPanel userDefinedLibraryPanel;
private XQueryDataSourceType dataSourceType;
public DataSourceConfigurationAggregatingPanel(final XQueryDataSourceConfiguration dataSourceConfiguration,
ConfigurationChangeListener configurationChangeListener) {
dataSourceType = dataSourceConfiguration.TYPE;
initNameAndDefaultButtonPanel(dataSourceConfiguration, configurationChangeListener);
initConfigurationFilePanel(dataSourceConfiguration, configurationChangeListener);
initConnectionParametersPanel(dataSourceConfiguration, configurationChangeListener);
initUserDefinedLibraryPanel(dataSourceConfiguration, configurationChangeListener);
}
public JPanel getPanel() {
return mainPanel;
}
public XQueryDataSourceConfiguration getCurrentConfigurationState() {
XQueryDataSourceConfiguration currentConfiguration = new XQueryDataSourceConfiguration();
currentConfiguration.TYPE = dataSourceType;
nameAndDefaultButtonPanel.updateConfigurationWithChanges(currentConfiguration);
configurationFilePanel.updateConfigurationWithChanges(currentConfiguration);
connectionParametersPanel.updateConfigurationWithChanges(currentConfiguration);
userDefinedLibraryPanel.updateConfigurationWithChanges(currentConfiguration);
return currentConfiguration;
}
private void initNameAndDefaultButtonPanel(XQueryDataSourceConfiguration cfg,
ConfigurationChangeListener changeListener) {
nameAndDefaultButtonPanel.init(cfg, this, changeListener);
}
private void initConfigurationFilePanel(XQueryDataSourceConfiguration cfg,
ConfigurationChangeListener changeListener) {
configurationFilePanel.init(cfg, this, changeListener);
}
private void initConnectionParametersPanel(XQueryDataSourceConfiguration cfg,
ConfigurationChangeListener changeListener) {
connectionParametersPanel.init(cfg, this, changeListener);
}
private void initUserDefinedLibraryPanel(XQueryDataSourceConfiguration cfg,
ConfigurationChangeListener changeListener) {
userDefinedLibraryPanel.init(cfg, this, changeListener);
}
}