blob: a1f20779f9791681c50ffe71513620e0d9ea806a [file] [log] [blame]
/*
* Copyright 2000-2013 JetBrains s.r.o.
*
* 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.jetbrains.plugins.terminal;
import com.intellij.openapi.fileChooser.FileChooserDescriptor;
import com.intellij.openapi.ui.TextComponentAccessor;
import com.intellij.openapi.ui.TextFieldWithBrowseButton;
import com.intellij.openapi.util.Comparing;
import com.intellij.ui.components.JBCheckBox;
import org.jetbrains.annotations.NotNull;
import javax.swing.*;
/**
* @author traff
*/
public class TerminalSettingsPanel {
private JPanel myWholePanel;
private TextFieldWithBrowseButton myShellPathField;
private JBCheckBox mySoundBellCheckBox;
private JBCheckBox myCloseSessionCheckBox;
private JBCheckBox myMouseReportCheckBox;
private JTextField myTabNameTextField;
private JBCheckBox myPasteOnMiddleButtonCheckBox;
private JBCheckBox myCopyOnSelectionCheckBox;
private JBCheckBox myOverrideIdeShortcuts;
private TerminalOptionsProvider myOptionsProvider;
public JComponent createPanel(@NotNull TerminalOptionsProvider provider) {
myOptionsProvider = provider;
FileChooserDescriptor fileChooserDescriptor = new FileChooserDescriptor(true, false, false, false, false, false);
myShellPathField.addBrowseFolderListener(
"",
"Shell Executable Path",
null,
fileChooserDescriptor,
TextComponentAccessor.TEXT_FIELD_WHOLE_TEXT,
false
);
return myWholePanel;
}
public boolean isModified() {
return !Comparing.equal(myShellPathField.getText(), myOptionsProvider.getShellPath())
|| !Comparing.equal(myTabNameTextField.getText(), myOptionsProvider.getTabName())
|| (myCloseSessionCheckBox.isSelected() != myOptionsProvider.closeSessionOnLogout())
|| (myMouseReportCheckBox.isSelected() != myOptionsProvider.enableMouseReporting())
|| (mySoundBellCheckBox.isSelected() != myOptionsProvider.audibleBell())
|| (myCopyOnSelectionCheckBox.isSelected() != myOptionsProvider.copyOnSelection())
|| (myPasteOnMiddleButtonCheckBox.isSelected() != myOptionsProvider.pasteOnMiddleMouseButton())
|| (myOverrideIdeShortcuts.isSelected() != myOptionsProvider.overrideIdeShortcuts())
;
}
public void apply() {
myOptionsProvider.setShellPath(myShellPathField.getText());
myOptionsProvider.setTabName(myTabNameTextField.getText());
myOptionsProvider.setCloseSessionOnLogout(myCloseSessionCheckBox.isSelected());
myOptionsProvider.setReportMouse(myMouseReportCheckBox.isSelected());
myOptionsProvider.setSoundBell(mySoundBellCheckBox.isSelected());
myOptionsProvider.setCopyOnSelection(myCopyOnSelectionCheckBox.isSelected());
myOptionsProvider.setPasteOnMiddleMouseButton(myPasteOnMiddleButtonCheckBox.isSelected());
myOptionsProvider.setOverrideIdeShortcuts(myOverrideIdeShortcuts.isSelected());
}
public void reset() {
myShellPathField.setText(myOptionsProvider.getShellPath());
myTabNameTextField.setText(myOptionsProvider.getTabName());
myCloseSessionCheckBox.setSelected(myOptionsProvider.closeSessionOnLogout());
myMouseReportCheckBox.setSelected(myOptionsProvider.enableMouseReporting());
mySoundBellCheckBox.setSelected(myOptionsProvider.audibleBell());
myCopyOnSelectionCheckBox.setSelected(myOptionsProvider.copyOnSelection());
myPasteOnMiddleButtonCheckBox.setSelected(myOptionsProvider.pasteOnMiddleMouseButton());
myOverrideIdeShortcuts.setSelected(myOptionsProvider.overrideIdeShortcuts());
}
}