diff --git a/python/pluginSrc/com/jetbrains/python/run/PyPluginCommonOptionsForm.form b/python/pluginSrc/com/jetbrains/python/run/PyPluginCommonOptionsForm.form index 61eee424c21d..0ab940aa09cf 100644 --- a/python/pluginSrc/com/jetbrains/python/run/PyPluginCommonOptionsForm.form +++ b/python/pluginSrc/com/jetbrains/python/run/PyPluginCommonOptionsForm.form @@ -1,104 +1,114 @@
- + - + - + + - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/python/pluginSrc/com/jetbrains/python/run/PyPluginCommonOptionsForm.java b/python/pluginSrc/com/jetbrains/python/run/PyPluginCommonOptionsForm.java index bb8580cf8a5e..55f62734aa76 100644 --- a/python/pluginSrc/com/jetbrains/python/run/PyPluginCommonOptionsForm.java +++ b/python/pluginSrc/com/jetbrains/python/run/PyPluginCommonOptionsForm.java @@ -1,6 +1,7 @@ package com.jetbrains.python.run; import com.intellij.execution.configuration.EnvironmentVariablesComponent; +import com.intellij.ide.util.PropertiesComponent; import com.intellij.openapi.fileChooser.FileChooserDescriptorFactory; import com.intellij.openapi.module.Module; import com.intellij.openapi.projectRoots.Sdk; @@ -9,10 +10,12 @@ import com.intellij.openapi.roots.ui.configuration.ModulesAlphaComparator; import com.intellij.openapi.ui.TextFieldWithBrowseButton; import com.intellij.openapi.util.io.FileUtil; import com.intellij.ui.CollectionComboBoxModel; +import com.intellij.ui.HideableDecorator; import com.intellij.ui.RawCommandLineEditor; import com.intellij.ui.components.JBLabel; import com.intellij.util.PathMappingSettings; import com.jetbrains.python.sdk.PythonSdkType; +import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.Nullable; import javax.swing.*; @@ -38,7 +41,9 @@ public class PyPluginCommonOptionsForm implements AbstractPyCommonOptionsForm { private JBLabel myPythonInterpreterJBLabel; private JBLabel myInterpreterOptionsJBLabel; private JBLabel myWorkingDirectoryJBLabel; + private JPanel myHideablePanel; private JComponent labelAnchor; + private final HideableDecorator myDecorator; public PyPluginCommonOptionsForm(PyCommonOptionsFormData data) { // setting modules @@ -61,6 +66,26 @@ public class PyPluginCommonOptionsForm implements AbstractPyCommonOptionsForm { myUseModuleSdkRadioButton.addActionListener(listener); setAnchor(myEnvsComponent.getLabel()); + + + myDecorator = new HideableDecorator(myHideablePanel, "Environment", false) { + @Override + protected void on() { + super.on(); + storeState(); + } + + @Override + protected void off() { + super.off(); + storeState(); + } + private void storeState() { + PropertiesComponent.getInstance().setValue(EXPAND_PROPERTY_KEY, String.valueOf(isExpanded())); + } + }; + myDecorator.setOn(PropertiesComponent.getInstance().getBoolean(EXPAND_PROPERTY_KEY, true)); + myDecorator.setContentComponent(myMainPanel); } private void updateControls() { @@ -69,7 +94,7 @@ public class PyPluginCommonOptionsForm implements AbstractPyCommonOptionsForm { } public JPanel getMainPanel() { - return myMainPanel; + return myHideablePanel; } @Override diff --git a/python/src/com/jetbrains/python/console/PyConsoleSpecificOptionsPanel.form b/python/src/com/jetbrains/python/console/PyConsoleSpecificOptionsPanel.form index 8848b2ce9345..bb054c5fc2f9 100644 --- a/python/src/com/jetbrains/python/console/PyConsoleSpecificOptionsPanel.form +++ b/python/src/com/jetbrains/python/console/PyConsoleSpecificOptionsPanel.form @@ -39,7 +39,7 @@ - + diff --git a/python/src/com/jetbrains/python/run/AbstractPyCommonOptionsForm.java b/python/src/com/jetbrains/python/run/AbstractPyCommonOptionsForm.java index b65146ba3dc3..da05e7791951 100644 --- a/python/src/com/jetbrains/python/run/AbstractPyCommonOptionsForm.java +++ b/python/src/com/jetbrains/python/run/AbstractPyCommonOptionsForm.java @@ -1,6 +1,7 @@ package com.jetbrains.python.run; import com.intellij.ui.PanelWithAnchor; +import org.jetbrains.annotations.NonNls; import javax.swing.*; import java.awt.event.ActionListener; @@ -9,6 +10,8 @@ import java.awt.event.ActionListener; * @author yole */ public interface AbstractPyCommonOptionsForm extends AbstractPythonRunConfigurationParams, PanelWithAnchor { + @NonNls String EXPAND_PROPERTY_KEY = "ExpandEnvironmentPanel"; + JComponent getMainPanel(); void subscribe(); diff --git a/python/src/com/jetbrains/python/testing/PythonTestRunConfigurationForm.form b/python/src/com/jetbrains/python/testing/PythonTestRunConfigurationForm.form index d20b7f56b4fd..a27c89f9422e 100644 --- a/python/src/com/jetbrains/python/testing/PythonTestRunConfigurationForm.form +++ b/python/src/com/jetbrains/python/testing/PythonTestRunConfigurationForm.form @@ -2,7 +2,7 @@ - + @@ -219,7 +219,7 @@ - + diff --git a/python/src/com/jetbrains/python/testing/pytest/PyTestConfigurationEditor.form b/python/src/com/jetbrains/python/testing/pytest/PyTestConfigurationEditor.form index e25ccd475148..6f6924ab2a6d 100644 --- a/python/src/com/jetbrains/python/testing/pytest/PyTestConfigurationEditor.form +++ b/python/src/com/jetbrains/python/testing/pytest/PyTestConfigurationEditor.form @@ -2,7 +2,7 @@ - + @@ -101,7 +101,7 @@ - +