Tony CHEMIT pushed to branch develop-9.0.x at ultreiaio / ird-observe Commits: c9e2bc87 by Tony Chemit at 2022-12-12T19:29:30+01:00 UI Navigation - Improve when open children nodes need to be rebuild - - - - - 5 changed files: - client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/content/actions/save/NodeChildrenUpdate.java - client/datasource/editor/ll/src/main/java/fr/ird/observe/client/datasource/editor/ll/data/logbook/ActivityUIHandler.java - client/datasource/editor/ll/src/main/java/fr/ird/observe/client/datasource/editor/ll/data/observation/ActivityUIHandler.java - client/datasource/editor/ps/src/main/java/fr/ird/observe/client/datasource/editor/ps/data/logbook/ActivityUIHandler.java - client/datasource/editor/ps/src/main/java/fr/ird/observe/client/datasource/editor/ps/data/observation/ActivityUIHandler.java Changes: ===================================== client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/content/actions/save/NodeChildrenUpdate.java ===================================== @@ -24,11 +24,13 @@ package fr.ird.observe.client.datasource.editor.api.content.actions.save; import fr.ird.observe.client.datasource.editor.api.content.data.edit.ContentEditUINavigationNode; import fr.ird.observe.client.datasource.editor.api.content.data.table.ContentTableUINavigationNode; +import fr.ird.observe.client.datasource.editor.api.navigation.NavigationTree; import fr.ird.observe.client.datasource.editor.api.navigation.tree.NavigationNode; import fr.ird.observe.dto.BusinessDto; import io.ultreia.java4all.i18n.I18n; import javax.swing.tree.TreeNode; +import javax.swing.tree.TreePath; import java.util.Enumeration; import java.util.LinkedHashSet; import java.util.LinkedList; @@ -133,16 +135,20 @@ public class NodeChildrenUpdate { this.nodeTypesToAdd = nodeTypesToAdd; } - public void update() { + public void update(NavigationTree tree) { if (isEmpty()) { // nothing to update return; } if (!nodeTypesToAdd.isEmpty()) { - //FIXME improve this + TreePath path = new TreePath(node.getPath()); + boolean expanded = tree.isExpanded(path); // if a node has to be added, let's rebuild the hole children node.removeAllChildren(); node.getHandler().buildChildren(); + if (expanded) { + tree.expandPath(path); + } return; } // only remove ===================================== client/datasource/editor/ll/src/main/java/fr/ird/observe/client/datasource/editor/ll/data/logbook/ActivityUIHandler.java ===================================== @@ -49,7 +49,7 @@ class ActivityUIHandler extends GeneratedActivityUIHandler { protected void afterNodeUpdated(DataSourceEditor dataSourceEditor, ActivityUI ui, NavigationTree tree, ContentOpenableUINavigationNode node, boolean notPersisted, ActivityDto bean) { ActivityReference reference = (ActivityReference) node.getReference(); bean.setStatistics(reference.statistics()); - ActivityUINavigationCapability.fillAfterBuilder(NodeChildrenUpdate.afterUpdate(node, bean)).update(); + ActivityUINavigationCapability.fillAfterBuilder(NodeChildrenUpdate.afterUpdate(node, bean)).update(tree); super.afterNodeUpdated(dataSourceEditor, ui, tree, node, notPersisted, bean); } }) ===================================== client/datasource/editor/ll/src/main/java/fr/ird/observe/client/datasource/editor/ll/data/observation/ActivityUIHandler.java ===================================== @@ -50,7 +50,7 @@ class ActivityUIHandler extends GeneratedActivityUIHandler { protected void afterNodeUpdated(DataSourceEditor dataSourceEditor, ActivityUI ui, NavigationTree tree, ContentOpenableUINavigationNode node, boolean notPersisted, ActivityDto bean) { ActivityReference reference = (ActivityReference) node.getReference(); bean.setStatistics(reference.statistics()); - ActivityUINavigationCapability.fillAfterBuilder(NodeChildrenUpdate.afterUpdate(node, bean)).update(); + ActivityUINavigationCapability.fillAfterBuilder(NodeChildrenUpdate.afterUpdate(node, bean)).update(tree); super.afterNodeUpdated(dataSourceEditor, ui, tree, node, notPersisted, bean); } }) ===================================== client/datasource/editor/ps/src/main/java/fr/ird/observe/client/datasource/editor/ps/data/logbook/ActivityUIHandler.java ===================================== @@ -60,7 +60,7 @@ class ActivityUIHandler extends GeneratedActivityUIHandler { protected void afterNodeUpdated(DataSourceEditor dataSourceEditor, ActivityUI ui, NavigationTree tree, ContentOpenableUINavigationNode node, boolean notPersisted, ActivityDto bean) { ActivityReference reference = (ActivityReference) node.getReference(); bean.setStatistics(reference.statistics()); - ActivityUINavigationCapability.fillAfterBuilder(NodeChildrenUpdate.afterUpdate(node, bean)).update(); + ActivityUINavigationCapability.fillAfterBuilder(NodeChildrenUpdate.afterUpdate(node, bean)).update(tree); super.afterNodeUpdated(dataSourceEditor, ui, tree, node, notPersisted, bean); } }) ===================================== client/datasource/editor/ps/src/main/java/fr/ird/observe/client/datasource/editor/ps/data/observation/ActivityUIHandler.java ===================================== @@ -86,7 +86,7 @@ public class ActivityUIHandler extends GeneratedActivityUIHandler { protected void afterNodeUpdated(DataSourceEditor dataSourceEditor, ActivityUI ui, NavigationTree tree, ContentOpenableUINavigationNode node, boolean notPersisted, ActivityDto bean) { ActivityReference reference = (ActivityReference) node.getReference(); bean.setStatistics(reference.statistics()); - ActivityUINavigationCapability.fillAfterBuilder(NodeChildrenUpdate.afterUpdate(node, bean)).update(); + ActivityUINavigationCapability.fillAfterBuilder(NodeChildrenUpdate.afterUpdate(node, bean)).update(tree); super.afterNodeUpdated(dataSourceEditor, ui, tree, node, notPersisted, bean); } }) View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/c9e2bc87a08b6d52d74341f49e... -- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/c9e2bc87a08b6d52d74341f49e... You're receiving this email because of your account on gitlab.com.