From 6a2d78291dbffd893da43af28395de8810648f89 Mon Sep 17 00:00:00 2001 From: "Vassiliy.Kudryashov" Date: Mon, 20 May 2019 19:07:19 +0300 Subject: [PATCH] IDEA-208525 Changes to my Environment Variables in Configurations aren't saving GitOrigin-RevId: 04a1b196ede7a6a90ac87721f1e5735bf3fee3b6 --- .../intellij/execution/util/EnvVariablesTable.java | 1 + ...nvironmentVariablesTextFieldWithBrowseButton.java | 12 ++++++++++++ 2 files changed, 13 insertions(+) diff --git a/platform/lang-api/src/com/intellij/execution/util/EnvVariablesTable.java b/platform/lang-api/src/com/intellij/execution/util/EnvVariablesTable.java index 95ca22c93363..1b0f92c0835d 100644 --- a/platform/lang-api/src/com/intellij/execution/util/EnvVariablesTable.java +++ b/platform/lang-api/src/com/intellij/execution/util/EnvVariablesTable.java @@ -293,6 +293,7 @@ public class EnvVariablesTable extends ListTableWithButtons return new AnActionButton[]{copyButton, pasteButton}; } + @NotNull public static Map parseEnvsFromText(String content) { Map result = new LinkedHashMap<>(); if (content != null && content.contains("=")) { diff --git a/platform/lang-impl/src/com/intellij/execution/configuration/EnvironmentVariablesTextFieldWithBrowseButton.java b/platform/lang-impl/src/com/intellij/execution/configuration/EnvironmentVariablesTextFieldWithBrowseButton.java index 2138bca13ea9..e587428bbf16 100644 --- a/platform/lang-impl/src/com/intellij/execution/configuration/EnvironmentVariablesTextFieldWithBrowseButton.java +++ b/platform/lang-impl/src/com/intellij/execution/configuration/EnvironmentVariablesTextFieldWithBrowseButton.java @@ -17,6 +17,7 @@ import com.intellij.openapi.util.Comparing; import com.intellij.openapi.util.text.StringUtil; import com.intellij.ui.AnActionButton; import com.intellij.ui.AnActionButtonRunnable; +import com.intellij.ui.DocumentAdapter; import com.intellij.ui.UserActivityProviderComponent; import com.intellij.ui.table.JBTable; import com.intellij.ui.table.TableView; @@ -32,6 +33,7 @@ import org.jetbrains.annotations.Nullable; import javax.swing.*; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; +import javax.swing.event.DocumentEvent; import javax.swing.table.DefaultTableCellRenderer; import javax.swing.table.TableCellRenderer; import java.awt.*; @@ -55,6 +57,16 @@ public class EnvironmentVariablesTextFieldWithBrowseButton extends TextFieldWith new MyEnvironmentVariablesDialog().show(); } }); + getTextField().getDocument().addDocumentListener(new DocumentAdapter() { + @Override + protected void textChanged(@NotNull DocumentEvent e) { + if (!StringUtil.equals(stringifyEnvs(myData.getEnvs()), getText())) { + Map textEnvs = EnvVariablesTable.parseEnvsFromText(getText()); + myData = EnvironmentVariablesData.create(textEnvs, myData.isPassParentEnvs()); + fireStateChanged(); + } + } + }); } /**