fix(gui): restore tree state after renaming (PR #2486)

fix(gui): restore tree state after renaming
This commit is contained in:
Yaroslav
2025-05-15 22:54:50 +03:00
committed by GitHub
parent c0d721bea1
commit aee1e86398
4 changed files with 11 additions and 4 deletions
@@ -254,8 +254,7 @@ public class JClass extends JLoadableNode implements JRenameNode {
@Override
public void reload(MainWindow mainWindow) {
// TODO: rebuild packages only if class package has been changed
mainWindow.rebuildPackagesTree();
mainWindow.reloadTree();
mainWindow.reloadTreePreservingState();
}
@Override
@@ -104,7 +104,7 @@ public class JField extends JNode implements JRenameNode {
@Override
public void reload(MainWindow mainWindow) {
mainWindow.reloadTree();
mainWindow.reloadTreePreservingState();
}
@Override
@@ -202,7 +202,7 @@ public class JMethod extends JNode implements JRenameNode {
@Override
public void reload(MainWindow mainWindow) {
mainWindow.reloadTree();
mainWindow.reloadTreePreservingState();
}
@Override
@@ -852,6 +852,14 @@ public class MainWindow extends JFrame {
treeRoot.update();
}
// simple save and restore tree state after renaming
// maybe need improve for find and update only changed node
public void reloadTreePreservingState() {
List<String> treePath = treeExpansionService.save();
reloadTree();
treeExpansionService.load(treePath);
}
private void toggleFlattenPackage() {
setFlattenPackage(!isFlattenPackage);
}