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