/* * Copyright 2013-2017 consulo.io * * 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 consulo.csharp.ide.codeStyle; import javax.swing.JCheckBox; import javax.swing.JComponent; import javax.swing.JPanel; import javax.swing.JTextField; import org.jetbrains.annotations.Nls; import org.jetbrains.annotations.Nullable; import consulo.annotations.RequiredDispatchThread; import com.intellij.openapi.application.ApplicationBundle; import com.intellij.openapi.options.Configurable; import com.intellij.openapi.options.ConfigurationException; import com.intellij.psi.codeStyle.CodeStyleSettings; import consulo.csharp.ide.codeStyle.CSharpCodeGenerationSettings; /** * @author VISTALL * @since 28.07.2015 */ public class CSharpCodeGenerationSettingsConfigurable implements Configurable { private CSharpCodeGenerationSettings mySettings; private JTextField myFieldPrefixField; private JTextField myStaticFieldPrefixField; private JTextField myPropertyPrefixField; private JTextField myStaticPropertyPrefixField; private JTextField myFieldSuffixField; private JTextField myStaticFieldSuffixField; private JTextField myPropertySuffixField; private JTextField myStaticPropertySuffixField; private JCheckBox myUseLanguageKeywordsCheckBox; private JPanel myRoot; public CSharpCodeGenerationSettingsConfigurable(CodeStyleSettings settings) { mySettings = settings.getCustomSettings(CSharpCodeGenerationSettings.class); } @Nls @Override public String getDisplayName() { return ApplicationBundle.message("title.code.generation"); } @Nullable @Override public String getHelpTopic() { return null; } @RequiredDispatchThread @Nullable @Override public JComponent createComponent() { return myRoot; } @RequiredDispatchThread @Override public boolean isModified() { boolean isModified = isModified(myFieldPrefixField, mySettings.FIELD_PREFIX); isModified |= isModified(myStaticFieldPrefixField, mySettings.STATIC_FIELD_PREFIX); isModified |= isModified(myPropertyPrefixField, mySettings.PROPERTY_PREFIX); isModified |= isModified(myStaticPropertyPrefixField, mySettings.STATIC_PROPERTY_PREFIX); isModified |= isModified(myFieldSuffixField, mySettings.FIELD_SUFFIX); isModified |= isModified(myStaticFieldSuffixField, mySettings.STATIC_FIELD_SUFFIX); isModified |= isModified(myPropertySuffixField, mySettings.PROPERTY_SUFFIX); isModified |= isModified(myStaticPropertySuffixField, mySettings.STATIC_PROPERTY_SUFFIX); isModified |= myUseLanguageKeywordsCheckBox.isSelected() != mySettings.USE_LANGUAGE_DATA_TYPES; return isModified; } private static boolean isModified(JTextField textField, String value) { return !textField.getText().trim().equals(value); } @RequiredDispatchThread @Override public void apply() throws ConfigurationException { mySettings.FIELD_PREFIX = myFieldPrefixField.getText().trim(); mySettings.STATIC_FIELD_PREFIX = myStaticFieldPrefixField.getText().trim(); mySettings.PROPERTY_PREFIX = myPropertyPrefixField.getText().trim(); mySettings.STATIC_PROPERTY_PREFIX = myStaticPropertyPrefixField.getText().trim(); mySettings.FIELD_SUFFIX = myFieldSuffixField.getText().trim(); mySettings.STATIC_FIELD_SUFFIX = myStaticFieldSuffixField.getText().trim(); mySettings.PROPERTY_SUFFIX = myPropertySuffixField.getText().trim(); mySettings.STATIC_PROPERTY_SUFFIX = myStaticPropertySuffixField.getText().trim(); mySettings.USE_LANGUAGE_DATA_TYPES = myUseLanguageKeywordsCheckBox.isSelected(); } @RequiredDispatchThread @Override public void reset() { myFieldPrefixField.setText(mySettings.FIELD_PREFIX); myStaticFieldPrefixField.setText(mySettings.STATIC_FIELD_PREFIX); myPropertyPrefixField.setText(mySettings.PROPERTY_PREFIX); myStaticPropertyPrefixField.setText(mySettings.STATIC_PROPERTY_PREFIX); myFieldSuffixField.setText(mySettings.FIELD_SUFFIX); myStaticFieldSuffixField.setText(mySettings.STATIC_FIELD_SUFFIX); myPropertySuffixField.setText(mySettings.PROPERTY_SUFFIX); myStaticPropertySuffixField.setText(mySettings.STATIC_PROPERTY_SUFFIX); myUseLanguageKeywordsCheckBox.setSelected(mySettings.USE_LANGUAGE_DATA_TYPES); } @RequiredDispatchThread @Override public void disposeUIResources() { } }