Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe Commits: 2e099e71 by Tony Chemit at 2022-03-19T16:49:35+01:00 Fix save adapters - - - - - 52c61fc7 by Tony Chemit at 2022-03-19T16:49:35+01:00 Improve delete adapters and begin of update statistics - - - - - 15 changed files: - client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/content/actions/delete/DeleteExecutor.java - + client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/content/actions/delete/DeleteRootTreeAdapter.java - client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/content/actions/delete/DeleteTreeAdapter.java - client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/content/data/edit/actions/SaveContentEditUIAdapter.java - client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/content/data/open/actions/SaveContentOpenableUIAdapter.java - client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/content/data/ropen/actions/SaveContentRootOpenableUIAdapter.java - client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/navigation/NavigationUIHandler.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 - client/datasource/editor/spi/src/main/java/fr/ird/observe/client/datasource/editor/spi/content/data/edit/GenerateContentEditUIDeleteTreeAdapter.java - client/datasource/editor/spi/src/main/java/fr/ird/observe/client/datasource/editor/spi/content/data/openable/GenerateContentOpenableUIDeleteTreeAdapter.java - client/datasource/editor/spi/src/main/java/fr/ird/observe/client/datasource/editor/spi/content/data/rlist/GenerateContentRootListUINavigationNode.java - client/datasource/editor/spi/src/main/java/fr/ird/observe/client/datasource/editor/spi/content/data/ropen/GenerateContentRootOpenableUIDeleteTreeAdapter.java Changes: ===================================== client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/content/actions/delete/DeleteExecutor.java ===================================== @@ -24,6 +24,7 @@ package fr.ird.observe.client.datasource.editor.api.content.actions.delete; import fr.ird.observe.client.datasource.editor.api.DataSourceEditor; import fr.ird.observe.client.datasource.editor.api.navigation.NavigationTree; +import fr.ird.observe.client.datasource.editor.api.navigation.NavigationUI; import fr.ird.observe.client.util.ObserveSwingTechnicalException; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -73,13 +74,14 @@ public class DeleteExecutor { if (optionalRequest.isPresent()) { DeleteRequest request = optionalRequest.get(); String label = t("observe.ui.choice.confirm.delete"); - actionExecutor.addAction(label, () -> consume(request, dataSourceEditor.getNavigationUI().getTree())); + actionExecutor.addAction(label, () -> consume(request, dataSourceEditor.getNavigationUI())); return; } log.warn("User cancel action."); } - protected void consume(DeleteRequest request, NavigationTree tree) { + protected void consume(DeleteRequest request, NavigationUI navigationUI) { + NavigationTree tree = navigationUI.getTree(); Set<String> ids = request.getIds(); log.info(String.format("Delete adapt tree [start] %s", ids)); Consumer<String> idConsumer = consumer.apply(request); @@ -88,7 +90,7 @@ public class DeleteExecutor { } DeleteTreeAdapter<?> treeAdapter = this.treeAdapter.apply(request); try { - SwingUtilities.invokeAndWait(() -> treeAdapter.adaptTree(request, tree)); + SwingUtilities.invokeAndWait(() -> treeAdapter.adaptTree(request, navigationUI, tree)); } catch (Exception e) { throw new ObserveSwingTechnicalException(e); } ===================================== client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/content/actions/delete/DeleteRootTreeAdapter.java ===================================== @@ -0,0 +1,55 @@ +package fr.ird.observe.client.datasource.editor.api.content.actions.delete; + +/*- + * #%L + * ObServe Client :: DataSource :: Editor :: API + * %% + * Copyright (C) 2008 - 2022 IRD, Code Lutin, Ultreia.io + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ + +import fr.ird.observe.client.datasource.editor.api.navigation.NavigationUI; +import fr.ird.observe.client.datasource.editor.api.navigation.NavigationUIHandler; +import fr.ird.observe.client.datasource.editor.api.navigation.tree.NavigationNode; +import fr.ird.observe.client.datasource.editor.api.navigation.tree.root.RootNavigationInitializer; + +import java.util.Set; +import java.util.function.Function; + +/** + * Created on 19/03/2022. + * + * @author Tony Chemit - dev@tchemit.fr + * @since 9.0.0 + */ +public abstract class DeleteRootTreeAdapter<OldParent extends NavigationNode> extends DeleteTreeAdapter<OldParent> { + + public DeleteRootTreeAdapter(NavigationNode incomingNode, Function<NavigationNode, OldParent> parentSupplier) { + super(incomingNode, parentSupplier); + } + + @Override + public void removeChildren(NavigationUI navigationUI, OldParent parentNode, Set<String> ids) { + super.removeChildren(navigationUI, parentNode, ids); + RootNavigationInitializer initializer = (RootNavigationInitializer) parentNode.getRoot().getInitializer(); + boolean removeGroupBy = parentNode.getChildCount() == 0 && !initializer.getRequest().isLoadEmptyGroupBy(); + if (removeGroupBy) { + parentNode.removeFromParent(); + } + NavigationUIHandler.updateStatistics(navigationUI, removeGroupBy ? -1 : 0, -ids.size()); + } +} ===================================== client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/content/actions/delete/DeleteTreeAdapter.java ===================================== @@ -23,6 +23,7 @@ package fr.ird.observe.client.datasource.editor.api.content.actions.delete; */ import fr.ird.observe.client.datasource.editor.api.navigation.NavigationTree; +import fr.ird.observe.client.datasource.editor.api.navigation.NavigationUI; import fr.ird.observe.client.datasource.editor.api.navigation.tree.NavigationNode; import java.util.Objects; @@ -52,12 +53,14 @@ public abstract class DeleteTreeAdapter<OldParent extends NavigationNode> { this.parentSupplier = Objects.requireNonNull(parentSupplier); } - public abstract void removeChildren(OldParent parentNode, Set<String> ids); + public void removeChildren(NavigationUI navigationUI, OldParent parentNode, Set<String> ids) { + parentNode.removeChildren(ids); + } - public final void adaptTree(DeleteRequest request, NavigationTree tree) { + public final void adaptTree(DeleteRequest request, NavigationUI navigationUI, NavigationTree tree) { OldParent parentNode = getOldParentNode(getIncomingNode()); Set<String> ids = request.getIds(); - adaptParentNode(parentNode, ids); + adaptParentNode(navigationUI, parentNode, ids); doFinalSelect(tree, parentNode); } @@ -65,11 +68,11 @@ public abstract class DeleteTreeAdapter<OldParent extends NavigationNode> { return parentSupplier.apply(incomingNode); } - public final void adaptParentNode(OldParent parentNode, Set<String> ids) { + public final void adaptParentNode(NavigationUI navigationUI, OldParent parentNode, Set<String> ids) { // reload node data parentNode.reloadNodeData(); // remove obsolete nodes - removeChildren(parentNode, ids); + removeChildren(navigationUI, parentNode, ids); } public final void doFinalSelect(NavigationTree tree, OldParent parentNode) { ===================================== client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/content/data/edit/actions/SaveContentEditUIAdapter.java ===================================== @@ -53,5 +53,9 @@ public class SaveContentEditUIAdapter<D extends EditableDto, U extends ContentEd // apply extra actions from previous opened content (go back to correct tab if any, ...) U newUi = dataSourceEditor.getModel().getTypedContent(); newUi.resetFromPreviousUi(ui); + + if (notPersisted) { + dataSourceEditor.getNavigationUI().getTree().expandPath(dataSourceEditor.getNavigationUI().getTree().getSelectionPath()); + } } } ===================================== client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/content/data/open/actions/SaveContentOpenableUIAdapter.java ===================================== @@ -27,6 +27,7 @@ import fr.ird.observe.client.datasource.editor.api.content.actions.save.SaveUIAd import fr.ird.observe.client.datasource.editor.api.content.data.open.ContentOpenableUI; import fr.ird.observe.client.datasource.editor.api.content.data.open.ContentOpenableUIModel; import fr.ird.observe.client.datasource.editor.api.content.data.open.ContentOpenableUINavigationNode; +import fr.ird.observe.client.datasource.editor.api.navigation.NavigationTree; import fr.ird.observe.dto.data.OpenableDto; import javax.swing.AbstractButton; @@ -68,23 +69,28 @@ public class SaveContentOpenableUIAdapter<D extends OpenableDto, U extends Conte // As I prefer to use a unique code (for persisted or not, keep it like this) node.updateReference(bean.getId()); - afterNodeUpdated(dataSourceEditor, ui, node, notPersisted, bean); + NavigationTree tree = dataSourceEditor.getNavigationUI().getTree(); + afterNodeUpdated(dataSourceEditor, ui, tree, node, notPersisted, bean); } - protected void afterNodeUpdated(DataSourceEditor dataSourceEditor, U ui, ContentOpenableUINavigationNode node, boolean notPersisted, D bean) { + protected void afterNodeUpdated(DataSourceEditor dataSourceEditor, U ui, NavigationTree tree, ContentOpenableUINavigationNode node, boolean notPersisted, D bean) { //FIXME A startEdit should do the math? - dataSourceEditor.getNavigationUI().getTree().reSelectSafeNode(node); + tree.reSelectSafeNode(node); U newUi = dataSourceEditor.getModel().getTypedContent(); if (notPersisted && predicate.test(bean)) { // reload ui and do click -// U content = dataSourceEditor.getModel().getTypedContent(); SwingUtilities.invokeLater(() -> Objects.requireNonNull(buttonGetter).apply(newUi).doClick()); + return; } else { // apply extra actions from previous opened content (go back to correct tab if any, ...) newUi.resetFromPreviousUi(ui); } + + if (notPersisted) { + tree.expandPath(tree.getSelectionPath()); + } } } ===================================== client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/content/data/ropen/actions/SaveContentRootOpenableUIAdapter.java ===================================== @@ -27,14 +27,10 @@ import fr.ird.observe.client.datasource.editor.api.content.actions.save.SaveUIAd import fr.ird.observe.client.datasource.editor.api.content.data.ropen.ContentRootOpenableUI; import fr.ird.observe.client.datasource.editor.api.content.data.ropen.ContentRootOpenableUIModel; import fr.ird.observe.client.datasource.editor.api.content.data.ropen.ContentRootOpenableUINavigationNode; +import fr.ird.observe.client.datasource.editor.api.navigation.NavigationTree; +import fr.ird.observe.client.datasource.editor.api.navigation.NavigationUIHandler; import fr.ird.observe.dto.data.RootOpenableDto; -import javax.swing.AbstractButton; -import javax.swing.SwingUtilities; -import java.util.Objects; -import java.util.function.Function; -import java.util.function.Predicate; - /** * Created on 16/10/2020. * @@ -43,48 +39,28 @@ import java.util.function.Predicate; */ public class SaveContentRootOpenableUIAdapter<D extends RootOpenableDto, U extends ContentRootOpenableUI<D, U>> implements SaveUIAdapter<D, U> { - private final Predicate<D> predicate; - private final Function<U, AbstractButton> buttonGetter; - - public SaveContentRootOpenableUIAdapter() { - this.predicate = t -> false; - this.buttonGetter = null; - } - - public SaveContentRootOpenableUIAdapter(Predicate<D> predicate, Function<U, AbstractButton> buttonGetter) { - this.predicate = Objects.requireNonNull(predicate); - this.buttonGetter = Objects.requireNonNull(buttonGetter); - } - @Override public final void adaptUi(DataSourceEditor dataSourceEditor, U ui, boolean notPersisted, D bean) { ContentRootOpenableUIModel<?> model = ui.getModel(); ui.stopEdit(); - ContentRootOpenableUINavigationNode node = model.getSource(); //??? .upToReferenceNode(model.getSource().getScope().getMainReferenceType()); -// IdDto bean = request.getBean(); + ContentRootOpenableUINavigationNode node = model.getSource(); // We need to inject ot node the new reference (it could does not know the id if not persisted) // As I prefer to use a unique code (for persisted or not, keep it like this) node.updateReference(bean.getId()); - afterNodeUpdated(dataSourceEditor, ui, node, notPersisted, bean); - } - - protected void afterNodeUpdated(DataSourceEditor dataSourceEditor, U ui, ContentRootOpenableUINavigationNode node, boolean notPersisted, D bean) { - - //FIXME A startEdit should do the math? - dataSourceEditor.getNavigationUI().getTree().reSelectSafeNode(node); + NavigationTree tree = dataSourceEditor.getNavigationUI().getTree(); + tree.reSelectSafeNode(node); U newUi = dataSourceEditor.getModel().getTypedContent(); - if (notPersisted && predicate.test(bean)) { - // reload ui and do click -// U content = dataSourceEditor.getModel().getTypedContent(); - SwingUtilities.invokeLater(() -> Objects.requireNonNull(buttonGetter).apply(newUi).doClick()); - } else { - // apply extra actions from previous opened content (go back to correct tab if any, ...) - newUi.resetFromPreviousUi(ui); + // apply extra actions from previous opened content (go back to correct tab if any, ...) + newUi.resetFromPreviousUi(ui); + + if (notPersisted) { + tree.expandPath(tree.getSelectionPath()); } + NavigationUIHandler.updateStatistics(dataSourceEditor.getNavigationUI(), 0, 1); } } ===================================== client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/navigation/NavigationUIHandler.java ===================================== @@ -50,6 +50,18 @@ public class NavigationUIHandler implements UIHandler<NavigationUI>, WithClientU private Set<ReloadAction> actionsToReload; private NavigationUIInitializer initializer; + public static void updateStatistics(NavigationUI ui, int groupByCountDiff, int dataCountDiff) { + NavigationResult navigationResult = ui.getTree().getRootNode().getInitializer().getNavigationResult(); + TreeConfigUIHandler.updateStatistics(navigationResult.getRequest(), + ui.getTree().getModel().getGroupByHelper(), + () -> navigationResult.getGroupByCount() + groupByCountDiff, + () -> navigationResult.getGroupByDataCount() + dataCountDiff, + () -> navigationResult.getDataCount() + dataCountDiff, + ui::setStatisticsText, + ui::setStatisticsTip, + ui.getStatisticsLabel()::setIcon); + } + public static void updateStatistics(NavigationUI ui) { NavigationResult navigationResult = ui.getTree().getRootNode().getInitializer().getNavigationResult(); TreeConfigUIHandler.updateStatistics(navigationResult.getRequest(), ===================================== client/datasource/editor/ll/src/main/java/fr/ird/observe/client/datasource/editor/ll/data/logbook/ActivityUIHandler.java ===================================== @@ -27,6 +27,7 @@ import fr.ird.observe.client.datasource.editor.api.content.actions.save.NodeChil import fr.ird.observe.client.datasource.editor.api.content.actions.save.SaveAction; import fr.ird.observe.client.datasource.editor.api.content.data.open.ContentOpenableUINavigationNode; import fr.ird.observe.client.datasource.editor.api.content.data.open.actions.SaveContentOpenableUIAdapter; +import fr.ird.observe.client.datasource.editor.api.navigation.NavigationTree; import fr.ird.observe.dto.data.ll.logbook.ActivityDto; /** @@ -44,9 +45,9 @@ class ActivityUIHandler extends GeneratedActivityUIHandler { .call((r, d) -> getOpenableService().save(r.getParentId(), d)) .then(new SaveContentOpenableUIAdapter<>(ActivityDto::isSetEnabled, ActivityUI::getAddSet) { @Override - protected void afterNodeUpdated(DataSourceEditor dataSourceEditor, ActivityUI ui, ContentOpenableUINavigationNode node, boolean notPersisted, ActivityDto bean) { + protected void afterNodeUpdated(DataSourceEditor dataSourceEditor, ActivityUI ui, NavigationTree tree, ContentOpenableUINavigationNode node, boolean notPersisted, ActivityDto bean) { ActivityUINavigationCapability.fillBuilder(NodeChildrenUpdate.afterUpdate(node, bean)).update(); - super.afterNodeUpdated(dataSourceEditor, ui, node, notPersisted, bean); + super.afterNodeUpdated(dataSourceEditor, ui, tree, node, notPersisted, bean); } }) .install(ui.getSave()); ===================================== client/datasource/editor/ll/src/main/java/fr/ird/observe/client/datasource/editor/ll/data/observation/ActivityUIHandler.java ===================================== @@ -27,6 +27,7 @@ import fr.ird.observe.client.datasource.editor.api.content.actions.save.NodeChil import fr.ird.observe.client.datasource.editor.api.content.actions.save.SaveAction; import fr.ird.observe.client.datasource.editor.api.content.data.open.ContentOpenableUINavigationNode; import fr.ird.observe.client.datasource.editor.api.content.data.open.actions.SaveContentOpenableUIAdapter; +import fr.ird.observe.client.datasource.editor.api.navigation.NavigationTree; import fr.ird.observe.dto.data.ll.observation.ActivityDto; /** @@ -45,9 +46,9 @@ class ActivityUIHandler extends GeneratedActivityUIHandler { .call((r, d) -> getOpenableService().save(r.getParentId(), d)) .then(new SaveContentOpenableUIAdapter<>(ActivityDto::isSetEnabled, ActivityUI::getAddSet) { @Override - protected void afterNodeUpdated(DataSourceEditor dataSourceEditor, ActivityUI ui, ContentOpenableUINavigationNode node, boolean notPersisted, ActivityDto bean) { + protected void afterNodeUpdated(DataSourceEditor dataSourceEditor, ActivityUI ui, NavigationTree tree, ContentOpenableUINavigationNode node, boolean notPersisted, ActivityDto bean) { ActivityUINavigationCapability.fillBuilder(NodeChildrenUpdate.afterUpdate(node, bean)).update(); - super.afterNodeUpdated(dataSourceEditor, ui, node, notPersisted, bean); + super.afterNodeUpdated(dataSourceEditor, ui, tree, node, notPersisted, bean); } }) .install(ui.getSave()); ===================================== client/datasource/editor/ps/src/main/java/fr/ird/observe/client/datasource/editor/ps/data/logbook/ActivityUIHandler.java ===================================== @@ -26,6 +26,7 @@ import fr.ird.observe.client.datasource.editor.api.content.actions.save.NodeChil import fr.ird.observe.client.datasource.editor.api.content.actions.save.SaveAction; import fr.ird.observe.client.datasource.editor.api.content.data.open.ContentOpenableUINavigationNode; import fr.ird.observe.client.datasource.editor.api.content.data.open.actions.SaveContentOpenableUIAdapter; +import fr.ird.observe.client.datasource.editor.api.navigation.NavigationTree; import fr.ird.observe.dto.data.ps.logbook.ActivityDto; import fr.ird.observe.dto.referential.ps.common.VesselActivityReference; @@ -52,9 +53,9 @@ class ActivityUIHandler extends GeneratedActivityUIHandler { .then(new SaveContentOpenableUIAdapter<>(ActivityDto::isSetEnabled, ActivityUI::getAddSet) { @Override - protected void afterNodeUpdated(DataSourceEditor dataSourceEditor, ActivityUI ui, ContentOpenableUINavigationNode node, boolean notPersisted, ActivityDto bean) { + protected void afterNodeUpdated(DataSourceEditor dataSourceEditor, ActivityUI ui, NavigationTree tree, ContentOpenableUINavigationNode node, boolean notPersisted, ActivityDto bean) { ActivityUINavigationCapability.fillBuilder(NodeChildrenUpdate.afterUpdate(node, bean)).update(); - super.afterNodeUpdated(dataSourceEditor, ui, node, notPersisted, bean); + super.afterNodeUpdated(dataSourceEditor, ui, tree, node, notPersisted, bean); } }) .install(ui.getSave()); ===================================== client/datasource/editor/ps/src/main/java/fr/ird/observe/client/datasource/editor/ps/data/observation/ActivityUIHandler.java ===================================== @@ -26,6 +26,7 @@ import fr.ird.observe.client.datasource.editor.api.content.actions.save.NodeChil import fr.ird.observe.client.datasource.editor.api.content.actions.save.SaveAction; import fr.ird.observe.client.datasource.editor.api.content.data.open.ContentOpenableUINavigationNode; import fr.ird.observe.client.datasource.editor.api.content.data.open.actions.SaveContentOpenableUIAdapter; +import fr.ird.observe.client.datasource.editor.api.navigation.NavigationTree; import fr.ird.observe.dto.ProtectedIdsPs; import fr.ird.observe.dto.data.ps.observation.ActivityDto; import fr.ird.observe.dto.referential.ps.common.VesselActivityReference; @@ -81,10 +82,9 @@ public class ActivityUIHandler extends GeneratedActivityUIHandler { .call((r, d) -> getOpenableService().save(r.getParentId(), d)) .then(new SaveContentOpenableUIAdapter<>(ActivityDto::isStrongSetOperation, ActivityUI::getAddSet) { @Override - protected void afterNodeUpdated(DataSourceEditor dataSourceEditor, ActivityUI ui, ContentOpenableUINavigationNode node, boolean notPersisted, ActivityDto bean) { - ActivityUINavigationCapability.fillBuilder(NodeChildrenUpdate.afterUpdate(node, bean)) - .update(); - super.afterNodeUpdated(dataSourceEditor, ui, node, notPersisted, bean); + protected void afterNodeUpdated(DataSourceEditor dataSourceEditor, ActivityUI ui, NavigationTree tree, ContentOpenableUINavigationNode node, boolean notPersisted, ActivityDto bean) { + ActivityUINavigationCapability.fillBuilder(NodeChildrenUpdate.afterUpdate(node, bean)).update(); + super.afterNodeUpdated(dataSourceEditor, ui, tree, node, notPersisted, bean); } }) .install(ui.getSave()); ===================================== client/datasource/editor/spi/src/main/java/fr/ird/observe/client/datasource/editor/spi/content/data/edit/GenerateContentEditUIDeleteTreeAdapter.java ===================================== @@ -47,10 +47,6 @@ public class GenerateContentEditUIDeleteTreeAdapter extends GenerateContentEditU " public Generated%1$sUIDeleteTreeAdapter(%1$sUINavigationNode incomingNode) {\n" + " super(incomingNode, e -> incomingNode.getParent());\n" + " }\n\n" + - " @Override\n" + - " public void removeChildren(%2$sUINavigationNode oldParentNode, Set<String> ids) {\n" + - " oldParentNode.removeChildren(ids);\n" + - " }\n" + "}\n"; public static final String CONTENT = "" + "public class %1$sUIDeleteTreeAdapter extends Generated%1$sUIDeleteTreeAdapter {\n\n" + @@ -62,10 +58,10 @@ public class GenerateContentEditUIDeleteTreeAdapter extends GenerateContentEditU @Override protected String generateAbstractContent0(Path sourceDirectory, Path targetDirectory, Path path, String packageName, String namePrefix) { List<String> imports = new LinkedList<>(); - imports.add(Set.class.getName()); - imports.add(DeleteTreeAdapter.class.getName()); imports.add(DeleteRequest.class.getName()); + imports.add(DeleteTreeAdapter.class.getName()); imports.add(Function.class.getName()); + imports.add(Set.class.getName()); imports.add(scopeBuilder.editNode.getType().getName()); return generate(GENERATED_CONTENT, imports, dtoNamePrefix, scopeBuilder.editNode.getType().getSimpleName().replace("Dto", "")); } ===================================== client/datasource/editor/spi/src/main/java/fr/ird/observe/client/datasource/editor/spi/content/data/openable/GenerateContentOpenableUIDeleteTreeAdapter.java ===================================== @@ -55,10 +55,6 @@ public class GenerateContentOpenableUIDeleteTreeAdapter extends GenerateContentO " public Generated%1$sUIDeleteTreeAdapter(%1$sUINavigationNode incomingNode) {\n" + " super(incomingNode, e -> incomingNode.getParent());\n" + " }\n\n" + - " @Override\n" + - " public void removeChildren(%1$sListUINavigationNode oldParentNode, Set<String> ids) {\n" + - " oldParentNode.removeChildren(ids);\n" + - " }\n" + "}\n"; public static final String CONTENT = "" + "public class %1$sUIDeleteTreeAdapter extends Generated%1$sUIDeleteTreeAdapter {\n\n" + @@ -73,10 +69,10 @@ public class GenerateContentOpenableUIDeleteTreeAdapter extends GenerateContentO @Override protected String generateAbstractContent0(Path sourceDirectory, Path targetDirectory, Path path, String packageName, String namePrefix) { List<String> imports = new LinkedList<>(); - imports.add(Set.class.getName()); - imports.add(DeleteTreeAdapter.class.getName()); imports.add(DeleteRequest.class.getName()); + imports.add(DeleteTreeAdapter.class.getName()); imports.add(Function.class.getName()); + imports.add(Set.class.getName()); String siblingMethod = "findParentSibling"; if (scopeBuilder.selectNode.getParent()==null) { siblingMethod = "findSibling"; ===================================== client/datasource/editor/spi/src/main/java/fr/ird/observe/client/datasource/editor/spi/content/data/rlist/GenerateContentRootListUINavigationNode.java ===================================== @@ -40,17 +40,6 @@ import java.util.Set; */ public class GenerateContentRootListUINavigationNode extends GenerateContentRootListUISupport { - public static final String REMOVE_CHILDREN = "" + - " @Override\n" + - " public void removeChildren(Set<String> ids) {\n" + - " if (getChildCount() == ids.size() && !getParent().getInitializer().getRequest().isLoadEmptyGroupBy()) {\n" + - " // limit case : node will be empty, must remove it\n" + - " removeFromParent();\n" + - " return;\n" + - " }\n" + - " super.removeChildren(ids);\n" + - " }\n\n"; - @Override protected String generateConcreteContent(Path path, String packageName, String namePrefix) { List<String> imports = new LinkedList<>(); @@ -67,8 +56,6 @@ public class GenerateContentRootListUINavigationNode extends GenerateContentRoot context += ContentUINavigationContextHelper.generateGetParentSibling(cleanClassName); imports.add(Set.class.getName()); context += ContentUINavigationContextHelper.generateAddChildren(dtoNamePrefix); - context += REMOVE_CHILDREN; return uiNavigationNodeHelper.generateContent(imports, context); } - } ===================================== client/datasource/editor/spi/src/main/java/fr/ird/observe/client/datasource/editor/spi/content/data/ropen/GenerateContentRootOpenableUIDeleteTreeAdapter.java ===================================== @@ -23,7 +23,7 @@ package fr.ird.observe.client.datasource.editor.spi.content.data.ropen; */ import fr.ird.observe.client.datasource.editor.api.content.actions.delete.DeleteRequest; -import fr.ird.observe.client.datasource.editor.api.content.actions.delete.DeleteTreeAdapter; +import fr.ird.observe.client.datasource.editor.api.content.actions.delete.DeleteRootTreeAdapter; import java.nio.file.Path; import java.util.LinkedList; @@ -40,7 +40,7 @@ import java.util.function.Function; public class GenerateContentRootOpenableUIDeleteTreeAdapter extends GenerateContentRootOpenableUISupport { public static final String GENERATED_CONTENT = "" + - "public abstract class Generated%1$sUIDeleteTreeAdapter extends DeleteTreeAdapter<%1$sListUINavigationNode> {\n" + + "public abstract class Generated%1$sUIDeleteTreeAdapter extends DeleteRootTreeAdapter<%1$sListUINavigationNode> {\n" + "\n" + " public static Function<DeleteRequest, %1$sUIDeleteTreeAdapter> create(%1$sListUI ui) {\n" + " return r -> new %1$sUIDeleteTreeAdapter(ui.getModel().getSource());\n" + @@ -55,10 +55,6 @@ public class GenerateContentRootOpenableUIDeleteTreeAdapter extends GenerateCont " public Generated%1$sUIDeleteTreeAdapter(%1$sUINavigationNode incomingNode) {\n" + " super(incomingNode, e -> incomingNode.getParent());\n" + " }\n\n" + - " @Override\n" + - " public void removeChildren(%1$sListUINavigationNode oldParentNode, Set<String> ids) {\n" + - " oldParentNode.removeChildren(ids);\n" + - " }\n" + "}\n"; public static final String CONTENT = "" + "public class %1$sUIDeleteTreeAdapter extends Generated%1$sUIDeleteTreeAdapter {\n\n" + @@ -73,10 +69,10 @@ public class GenerateContentRootOpenableUIDeleteTreeAdapter extends GenerateCont @Override protected String generateAbstractContent0(Path sourceDirectory, Path targetDirectory, Path path, String packageName, String namePrefix) { List<String> imports = new LinkedList<>(); - imports.add(Set.class.getName()); - imports.add(DeleteTreeAdapter.class.getName()); imports.add(DeleteRequest.class.getName()); + imports.add(DeleteRootTreeAdapter.class.getName()); imports.add(Function.class.getName()); + imports.add(Set.class.getName()); String siblingMethod = "findParentSibling"; if (scopeBuilder.selectNode.getParent() == null) { siblingMethod = "findSibling"; View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/4af4a51fc0e3a05c07c45d558... -- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/4af4a51fc0e3a05c07c45d558... You're receiving this email because of your account on gitlab.com.