diff --git a/CHANGELOG.md b/CHANGELOG.md
index b934305..1b13087 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -10,6 +10,7 @@
- Key delimiters (namespace / section) can be configured
- Extract translation intention
- Full language support for Java, Kotlin, JavaScript / TypeScript, Vue and PHP
+- Expand already expanded nodes after data update
- Individual icon for tool-window and lookup items
- Dedicated configuration file (easy-i18n.xml) inside .idea folder
diff --git a/src/main/java/de/marhali/easyi18n/tabs/TreeView.java b/src/main/java/de/marhali/easyi18n/tabs/TreeView.java
index 049f516..7db7850 100644
--- a/src/main/java/de/marhali/easyi18n/tabs/TreeView.java
+++ b/src/main/java/de/marhali/easyi18n/tabs/TreeView.java
@@ -32,6 +32,8 @@ import org.jetbrains.annotations.Nullable;
import javax.swing.*;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.TreePath;
+import java.util.ArrayList;
+import java.util.List;
import java.util.ResourceBundle;
/**
@@ -84,7 +86,21 @@ public class TreeView implements BusListener {
@Override
public void onUpdateData(@NotNull TranslationData data) {
+ List expanded = getExpandedRows();
tree.setModel(this.currentMapper = new TreeModelMapper(data, ProjectSettingsService.get(project).getState()));
+ expanded.forEach(tree::expandRow);
+ }
+
+ private List getExpandedRows() {
+ List expanded = new ArrayList<>();
+
+ for(int i = 0; i < tree.getRowCount(); i++) {
+ if(tree.isExpanded(i)) {
+ expanded.add(i);
+ }
+ }
+
+ return expanded;
}
@Override