/* * Copyright 2013-2016 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.settings; import com.intellij.openapi.ui.LabeledComponent; import com.intellij.ui.SortedComboBoxModel; import net.miginfocom.swing.MigLayout; import javax.swing.*; import java.util.List; public class DefaultFileExtensionsPanel extends SettingsPanel { public static final String MAIN_MODULE_FILE_EXTENSION = "mainModuleFileExtension"; public static final String LIBRARY_MODULE_FILE_EXTENSION = "libraryModuleFileExtension"; private final LabeledComponent<JComboBox<String>> mainModuleFileExtension; private final LabeledComponent<JComboBox<String>> libraryModuleFileExtension; private final SortedComboBoxModel<String> mainModuleFileExtensionModel = UIUtils.<String>comboBoxModel(); private final SortedComboBoxModel<String> libraryModuleFileExtensionModel = UIUtils.<String>comboBoxModel(); private final String defaultMainModuleExtension; private final String defaultLibraryModuleExtension; public DefaultFileExtensionsPanel(String defaultMainModuleExtension, String defaultLibraryModuleExtension, List<String> allExtensions) { this.defaultMainModuleExtension = defaultMainModuleExtension; this.defaultLibraryModuleExtension = defaultLibraryModuleExtension; setLayout(new MigLayout("ins 0, gap 5, fill, flowy")); mainModuleFileExtension = UIUtils.<String>comboBox("&Main module", MAIN_MODULE_FILE_EXTENSION, mainModuleFileExtensionModel); libraryModuleFileExtension = UIUtils.<String>comboBox("&Library module", LIBRARY_MODULE_FILE_EXTENSION, libraryModuleFileExtensionModel); add(mainModuleFileExtension); add(libraryModuleFileExtension); setBorder(BorderFactory.createTitledBorder("Default new file extensions")); populateExtensionsList(mainModuleFileExtensionModel, defaultMainModuleExtension, allExtensions); populateExtensionsList(libraryModuleFileExtensionModel, defaultLibraryModuleExtension, allExtensions); } @Override public XQuerySettings updateSettings(XQuerySettings settings) { settings.setDefaultMainModuleExtension((String) mainModuleFileExtension.getComponent().getSelectedItem()); settings.setDefaultLibraryModuleExtension((String) libraryModuleFileExtension.getComponent().getSelectedItem()); return settings; } @Override public void updatePanel(XQuerySettings settings) { String mainFileExtension = settings.getDefaultMainModuleExtension() != null ? settings.getDefaultMainModuleExtension() : defaultMainModuleExtension; String libraryFileExtension = settings.getDefaultLibraryModuleExtension() != null ? settings.getDefaultLibraryModuleExtension() : defaultLibraryModuleExtension; mainModuleFileExtension.getComponent().setSelectedItem(mainFileExtension); libraryModuleFileExtension.getComponent().setSelectedItem(libraryFileExtension); } private void populateExtensionsList(SortedComboBoxModel<String> model, Object defaultItem, List<String> allItems) { for (String type : allItems) { model.add(type); } model.setSelectedItem(defaultItem); } }