Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe Commits: df4ec157 by Tony CHEMIT at 2017-12-21T17:36:01+01:00 use jaxx snapshot - - - - - f1f12485 by Tony CHEMIT at 2017-12-21T17:36:32+01:00 lets add createdate and version to any IdDto - - - - - d70a4053 by Tony CHEMIT at 2017-12-21T17:36:45+01:00 fix test - - - - - 6c858fe2 by Tony CHEMIT at 2017-12-21T17:46:17+01:00 continue ui storm - - - - - 30 changed files: - client/src/main/java/fr/ird/observe/client/ObserveClientImplementationFactory.java - client/src/main/java/fr/ird/observe/client/ds/editor/form/open/CommonOpenDataFormUI.jcss - − client/src/main/java/fr/ird/observe/client/ds/editor/form/open/OpenDataFormUIMoveTripActionSupport.java - client/src/main/java/fr/ird/observe/client/ds/editor/form/open/longline/ActivityLonglineObsUI.jaxx - client/src/main/java/fr/ird/observe/client/ds/editor/form/open/longline/ActivityLonglineObsUI.jcss - client/src/main/java/fr/ird/observe/client/ds/editor/form/open/longline/ActivityLonglineObsUIModel.java - client/src/main/java/fr/ird/observe/client/ds/editor/form/open/longline/TripLonglineUI.jaxx - client/src/main/java/fr/ird/observe/client/ds/editor/form/open/longline/TripLonglineUI.jcss - client/src/main/java/fr/ird/observe/client/ds/editor/form/open/longline/TripLonglineUIModel.java - client/src/main/java/fr/ird/observe/client/ds/editor/form/open/longline/actions/OpenDataFormUIAddSetLonglineObs.java → client/src/main/java/fr/ird/observe/client/ds/editor/form/open/longline/actions/AddSetLonglineObs.java - − client/src/main/java/fr/ird/observe/client/ds/editor/form/open/longline/actions/OpenDataFormUIMoveActivityLongline.java - − client/src/main/java/fr/ird/observe/client/ds/editor/form/open/longline/actions/OpenDataFormUIMoveTripLongline.java - client/src/main/java/fr/ird/observe/client/ds/editor/form/open/seine/ActivitySeineUI.jaxx - client/src/main/java/fr/ird/observe/client/ds/editor/form/open/seine/ActivitySeineUI.jcss - client/src/main/java/fr/ird/observe/client/ds/editor/form/open/seine/ActivitySeineUIModel.java - client/src/main/java/fr/ird/observe/client/ds/editor/form/open/seine/RouteUI.jaxx - client/src/main/java/fr/ird/observe/client/ds/editor/form/open/seine/RouteUI.jcss - client/src/main/java/fr/ird/observe/client/ds/editor/form/open/seine/RouteUIModel.java - client/src/main/java/fr/ird/observe/client/ds/editor/form/open/seine/TripSeineUI.jaxx - client/src/main/java/fr/ird/observe/client/ds/editor/form/open/seine/TripSeineUI.jcss - client/src/main/java/fr/ird/observe/client/ds/editor/form/open/seine/TripSeineUIModel.java - client/src/main/java/fr/ird/observe/client/ds/editor/form/open/seine/actions/OpenDataFormUIAddFloatingObject.java → client/src/main/java/fr/ird/observe/client/ds/editor/form/open/seine/actions/AddFloatingObject.java - client/src/main/java/fr/ird/observe/client/ds/editor/form/open/seine/actions/OpenDataFormUIAddSetSeine.java → client/src/main/java/fr/ird/observe/client/ds/editor/form/open/seine/actions/AddSetSeine.java - − client/src/main/java/fr/ird/observe/client/ds/editor/form/open/seine/actions/OpenDataFormUIMoveActivitySeine.java - − client/src/main/java/fr/ird/observe/client/ds/editor/form/open/seine/actions/OpenDataFormUIMoveRoute.java - − client/src/main/java/fr/ird/observe/client/ds/editor/form/open/seine/actions/OpenDataFormUIMoveTripSeine.java - − client/src/main/java/fr/ird/observe/client/ds/editor/tree/ObserveNavigationTreeShowPopupAction.java - dto/src/main/models/Observe.model - pom.xml - services-local/src/test/java/fr/ird/observe/spi/persistence/PersistenceModuleHelperTest.java Changes: ===================================== client/src/main/java/fr/ird/observe/client/ObserveClientImplementationFactory.java ===================================== --- a/client/src/main/java/fr/ird/observe/client/ObserveClientImplementationFactory.java +++ b/client/src/main/java/fr/ird/observe/client/ObserveClientImplementationFactory.java @@ -24,8 +24,6 @@ package fr.ird.observe.client; import fr.ird.observe.client.ds.ObserveClientDataSource; import fr.ird.observe.client.ds.ObserveDataSourceServicesProvider; -import fr.ird.observe.client.ds.editor.DataSourceUI; -import fr.ird.observe.client.ds.editor.tree.ObserveNavigationTreeShowPopupAction; import fr.ird.observe.client.ds.editor.tree.navigation.ObserveNavigationTree; import fr.ird.observe.client.ds.editor.tree.selection.ObserveSelectionTree; import fr.ird.observe.client.main.ObserveMainUI; @@ -148,9 +146,6 @@ public class ObserveClientImplementationFactory implements ClientImplementationF // set fullscreen property on main ui ui.getGraphicsConfiguration().getDevice().setFullScreenWindow(config.isFullScreen() ? ui : null); - DataSourceUI dataSourceEditor = ui.getDataSourceEditor(); - new ObserveNavigationTreeShowPopupAction(dataSourceEditor.getTree(), dataSourceEditor.getNavigationTree(), dataSourceEditor.getNavigationPopup()); - return ui; } ===================================== client/src/main/java/fr/ird/observe/client/ds/editor/form/open/CommonOpenDataFormUI.jcss ===================================== --- a/client/src/main/java/fr/ird/observe/client/ds/editor/form/open/CommonOpenDataFormUI.jcss +++ b/client/src/main/java/fr/ird/observe/client/ds/editor/form/open/CommonOpenDataFormUI.jcss @@ -63,9 +63,3 @@ BigTextBeanEditor { model:{bean}; } -#model { - editable:true; - modified:{validator.isChanged()}; - valid:{validator.isValid()}; -} - ===================================== client/src/main/java/fr/ird/observe/client/ds/editor/form/open/OpenDataFormUIMoveTripActionSupport.java deleted ===================================== --- a/client/src/main/java/fr/ird/observe/client/ds/editor/form/open/OpenDataFormUIMoveTripActionSupport.java +++ /dev/null @@ -1,58 +0,0 @@ -/* - * #%L - * ObServe :: Client - * %% - * Copyright (C) 2008 - 2017 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% - */ -package fr.ird.observe.client.ds.editor.form.open; - -import fr.ird.observe.client.ds.editor.form.MoveDataHelper; -import fr.ird.observe.client.ds.editor.form.open.actions.OpenDataFormUIMoveSingleDataActionSupport; -import fr.ird.observe.client.ds.editor.tree.navigation.nodes.NavigationTreeNodeSupport; -import fr.ird.observe.dto.data.OpenableDto; -import fr.ird.observe.dto.reference.DataDtoReference; -import fr.ird.observe.dto.referential.GearType; - -import java.util.Optional; - -/** - * Action pour changer le programme d'une ou plusieurs marée dans la liste. - * - * @author Tony Chemit - dev@tchemit.fr - * @since 5.0 - */ -public abstract class OpenDataFormUIMoveTripActionSupport<D extends OpenableDto, R extends DataDtoReference<D, R>> extends OpenDataFormUIMoveSingleDataActionSupport<D,R> { - - private final GearType gearType; - - protected OpenDataFormUIMoveTripActionSupport(String label, String tip, GearType gearType) { - super(label, tip, "move-trips"); - this.gearType = gearType; - } - - @Override - public Optional<String> getNewParentId() { - return MoveDataHelper.chooseNewProgram(getMainUI(), gearType, getOldParentNode().getId()); - } - - @Override - public NavigationTreeNodeSupport getNewParentNode(String newParentId) { - return getDataSourceEditor().getTree().getChild(getOldParentNode().getParent(), newParentId); - } - -} ===================================== client/src/main/java/fr/ird/observe/client/ds/editor/form/open/longline/ActivityLonglineObsUI.jaxx ===================================== --- a/client/src/main/java/fr/ird/observe/client/ds/editor/form/open/longline/ActivityLonglineObsUI.jaxx +++ b/client/src/main/java/fr/ird/observe/client/ds/editor/form/open/longline/ActivityLonglineObsUI.jaxx @@ -131,6 +131,7 @@ <JButton id='delete'/> <JButton id='openData'/> <JButton id='closeData'/> + <JButton id='moveData'/> <JButton id='create'/> </fr.ird.observe.client.ds.editor.form.open.OpenDataFormUI> ===================================== client/src/main/java/fr/ird/observe/client/ds/editor/form/open/longline/ActivityLonglineObsUI.jcss ===================================== --- a/client/src/main/java/fr/ird/observe/client/ds/editor/form/open/longline/ActivityLonglineObsUI.jcss +++ b/client/src/main/java/fr/ird/observe/client/ds/editor/form/open/longline/ActivityLonglineObsUI.jcss @@ -49,10 +49,16 @@ toolTipText:"observe.common.ActivityDto.action.closeAndCreate.tip"; } +#moveData { + text:"observe.menu.navigation.action.move.activityLongline"; + toolTipText:"observe.menu.navigation.action.move.activityLongline"; + actionIcon:move-activities; +} + #delete { toolTipText:"observe.common.ActivityDto.action.delete.tip"; } #addSet { - actionType:"fr.ird.observe.client.ds.editor.form.open.longline.actions.OpenDataFormUIAddSetLonglineObs.class"; + actionType:"fr.ird.observe.client.ds.editor.form.open.longline.actions.AddSetLonglineObs.class"; } ===================================== client/src/main/java/fr/ird/observe/client/ds/editor/form/open/longline/ActivityLonglineObsUIModel.java ===================================== --- a/client/src/main/java/fr/ird/observe/client/ds/editor/form/open/longline/ActivityLonglineObsUIModel.java +++ b/client/src/main/java/fr/ird/observe/client/ds/editor/form/open/longline/ActivityLonglineObsUIModel.java @@ -29,10 +29,17 @@ import fr.ird.observe.client.ds.editor.form.open.OpenDataFormUI; import fr.ird.observe.client.ds.editor.form.open.OpenDataFormUILayoutFocusTraversalPolicy; import fr.ird.observe.client.ds.editor.form.open.OpenDataFormUIModel; import fr.ird.observe.client.ds.editor.form.spi.FormUIValidationMessageManager; +import fr.ird.observe.client.ds.editor.tree.navigation.NavigationTree; +import fr.ird.observe.client.ds.editor.tree.navigation.nodes.NavigationTreeNodeSupport; +import fr.ird.observe.client.ds.editor.tree.navigation.nodes.longline.TripLonglineNavigationTreeNode; +import fr.ird.observe.client.util.DecoratedNodeEntity; import fr.ird.observe.dto.data.longline.ActivityLonglineObsDto; import fr.ird.observe.dto.data.longline.ActivityLonglineObsHelper; import fr.ird.observe.dto.data.longline.ActivityLonglineObsReference; import fr.ird.observe.dto.data.longline.TripLonglineDto; +import fr.ird.observe.dto.data.longline.TripLonglineReference; +import fr.ird.observe.dto.decoration.ObserveI18nDecoratorHelper; +import fr.ird.observe.dto.decoration.decorators.DataReferenceDecorator; import fr.ird.observe.dto.reference.DataDtoReference; import fr.ird.observe.dto.referential.longline.VesselActivityLonglineHelper; import fr.ird.observe.dto.referential.longline.VesselActivityLonglineReference; @@ -146,7 +153,8 @@ public class ActivityLonglineObsUIModel extends OpenDataFormUIModel<ActivityLong } } - public void afterOpen(OpenDataFormUI<ActivityLonglineObsDto, ActivityLonglineObsReference> ui) { + @Override + public void afterOpenData(OpenDataFormUI<ActivityLonglineObsDto, ActivityLonglineObsReference> ui) { String setLonglineId = Optional.ofNullable(getBean().getSetLonglineObs()).map(DataDtoReference::getId).orElse(null); ObserveFormHelper.getApplicationDataSourceContext(ui).setOpenSetLonglineObsId(setLonglineId); } @@ -170,4 +178,46 @@ public class ActivityLonglineObsUIModel extends OpenDataFormUIModel<ActivityLong }; } + + @Override + public DecoratedNodeEntity[] getParentCandidates(OpenDataFormUI<ActivityLonglineObsDto, ActivityLonglineObsReference> ui) { + NavigationTreeNodeSupport oldParentNode = getOldParentNode(ui); + NavigationTreeNodeSupport programNode = oldParentNode.getParent(); + String oldTripLonglineId = oldParentNode.getId(); + int tripLonglineNb = programNode.getChildCount(); + + ObserveClientApplicationContext applicationContext = ObserveClientApplicationContext.get(); + DataReferenceDecorator<TripLonglineReference> decorator = applicationContext.getDataReferenceDecorator(TripLonglineReference.class, null); + + //on crée un tableau avec une marée en moins car on ne propose pas la marée actuelle + DecoratedNodeEntity[] decoratedTripLonglines = new DecoratedNodeEntity[tripLonglineNb - 1]; + + int j = 0; + for (int i = 0; i < tripLonglineNb; i++) { + TripLonglineNavigationTreeNode tripLonglineNode = (TripLonglineNavigationTreeNode) programNode.getChildAt(i); + String tripLonglineId = tripLonglineNode.getId(); + if (!oldTripLonglineId.equals(tripLonglineId)) { + decoratedTripLonglines[j++] = DecoratedNodeEntity.newDecoratedNodeEntity(tripLonglineNode, decorator); + } + } + return decoratedTripLonglines; + } + + @Override + public String getMoveTitle() { + return t("observe.action.choose.tripLongline.title"); + } + + @Override + public String getMoveMessage() { + return t("observe.action.choose.tripLongline.message"); + } + + + @Override + public NavigationTreeNodeSupport getNewParentNode(NavigationTree tree, NavigationTreeNodeSupport oldParentNode, String newParentId) { + NavigationTreeNodeSupport tripLonglineNode = tree.getChild(oldParentNode.getParent(), newParentId); + String activitiesNodeId = ObserveI18nDecoratorHelper.getTypePluralI18nKey(ActivityLonglineObsDto.class); + return tree.getChild(tripLonglineNode, activitiesNodeId); + } } ===================================== client/src/main/java/fr/ird/observe/client/ds/editor/form/open/longline/TripLonglineUI.jaxx ===================================== --- a/client/src/main/java/fr/ird/observe/client/ds/editor/form/open/longline/TripLonglineUI.jaxx +++ b/client/src/main/java/fr/ird/observe/client/ds/editor/form/open/longline/TripLonglineUI.jaxx @@ -30,7 +30,6 @@ <import> fr.ird.observe.dto.data.longline.TripLonglineDto fr.ird.observe.dto.data.longline.TripLonglineReference - fr.ird.observe.dto.data.longline.TripLonglineActivityObsDto fr.ird.observe.dto.referential.HarbourReference fr.ird.observe.dto.referential.VesselReference fr.ird.observe.dto.referential.PersonReference @@ -202,11 +201,12 @@ </tab> </JTabbedPane> </JPanel> + <JButton id='create'/> <JButton id='reset'/> <JButton id='save'/> <JButton id='delete'/> <JButton id='openData'/> <JButton id='closeData'/> - <JButton id='create'/> + <JButton id='moveData'/> </fr.ird.observe.client.ds.editor.form.open.OpenDataFormUI> ===================================== client/src/main/java/fr/ird/observe/client/ds/editor/form/open/longline/TripLonglineUI.jcss ===================================== --- a/client/src/main/java/fr/ird/observe/client/ds/editor/form/open/longline/TripLonglineUI.jcss +++ b/client/src/main/java/fr/ird/observe/client/ds/editor/form/open/longline/TripLonglineUI.jcss @@ -44,3 +44,10 @@ #delete { toolTipText:"observe.common.TripDto.action.delete.tip"; } + + +#moveData { + text:"observe.menu.navigation.action.move.tripLongline"; + toolTipText:"observe.menu.navigation.action.move.tripLongline"; + actionIcon:move-trips; +} ===================================== client/src/main/java/fr/ird/observe/client/ds/editor/form/open/longline/TripLonglineUIModel.java ===================================== --- a/client/src/main/java/fr/ird/observe/client/ds/editor/form/open/longline/TripLonglineUIModel.java +++ b/client/src/main/java/fr/ird/observe/client/ds/editor/form/open/longline/TripLonglineUIModel.java @@ -32,19 +32,27 @@ import fr.ird.observe.client.ds.editor.form.open.OpenDataFormUI; import fr.ird.observe.client.ds.editor.form.open.OpenDataFormUILayoutFocusTraversalPolicy; import fr.ird.observe.client.ds.editor.form.open.OpenDataFormUIModel; import fr.ird.observe.client.ds.editor.form.spi.FormUIValidationMessageManager; +import fr.ird.observe.client.ds.editor.tree.navigation.NavigationTree; import fr.ird.observe.client.ds.editor.tree.navigation.ObserveNavigationTree; +import fr.ird.observe.client.ds.editor.tree.navigation.nodes.NavigationTreeNodeSupport; +import fr.ird.observe.client.ds.editor.tree.navigation.nodes.longline.TripLonglineListNavigationTreeNode; +import fr.ird.observe.client.util.DecoratedNodeEntity; +import fr.ird.observe.dto.IdHelper; import fr.ird.observe.dto.data.longline.TripLonglineDto; import fr.ird.observe.dto.data.longline.TripLonglineReference; +import fr.ird.observe.dto.decoration.decorators.ReferentialReferenceDecorator; import fr.ird.observe.dto.reference.DtoReferenceCollection; import fr.ird.observe.dto.reference.ReferentialReferencesFilter; import fr.ird.observe.dto.referential.PersonHelper; import fr.ird.observe.dto.referential.PersonReference; +import fr.ird.observe.dto.referential.ProgramReference; import fr.ird.observe.dto.referential.VesselHelper; import fr.ird.observe.dto.referential.VesselReference; import fr.ird.observe.services.service.data.longline.TripLonglineService; import java.awt.Component; import java.awt.Container; +import java.util.ArrayList; import java.util.List; import java.util.Set; @@ -94,7 +102,7 @@ public class TripLonglineUIModel extends OpenDataFormUIModel<TripLonglineDto, Tr @Override public int moveData(String newParentId) { -// FIXME!!! +// FIXME!!! Ce n'est pas l'endroit pour gérer cet état (à faire dans l'action) // Close old program and open new program // if (getOpenDataManager().isOpen(dataId)) { // getOpenDataManager().closeProgram(oldParentId); @@ -170,4 +178,51 @@ public class TripLonglineUIModel extends OpenDataFormUIModel<TripLonglineDto, Tr ObserveFormHelper.getApplicationDataSourceContext(this).closeProgram(); super.closeData(); } + + @Override + public DecoratedNodeEntity[] getParentCandidates(OpenDataFormUI<TripLonglineDto, TripLonglineReference> ui) { + + NavigationTree treeHelper = ui.getDataSourceUI().getTree(); + + // racine + NavigationTreeNodeSupport rootNode = treeHelper.getRootNode(); + + //on crée un tableau avec un programme en moins car on ne propose pas le programme actuel + List<DecoratedNodeEntity> decoratedProgramList = new ArrayList<>(); + + ReferentialReferenceDecorator<ProgramReference> programDecorator = ui.getMainUI().getApplicationContext().getDecoratorService().getReferentialReferenceDecorator(ProgramReference.class); + + String parentId = getParentId(); + for (int i = 0, n = rootNode.getChildCount(); i < n; i++) { + + NavigationTreeNodeSupport programNode = (NavigationTreeNodeSupport) rootNode.getChildAt(i); + String programId = programNode.getId(); + + // si le noeud programme n'est pas le même que le parent actuel + // si le noeud est bien un noeud de programme + if (programId != null && IdHelper.isProgramId(programId) && !parentId.equals(programId)) { + if (programNode instanceof TripLonglineListNavigationTreeNode) { + TripLonglineListNavigationTreeNode node = (TripLonglineListNavigationTreeNode) programNode; + decoratedProgramList.add(DecoratedNodeEntity.newDecoratedNodeEntity(node, programDecorator)); + } + } + } + return decoratedProgramList.toArray(new DecoratedNodeEntity[decoratedProgramList.size()]); + } + + + @Override + public String getMoveTitle() { + return t("observe.action.choose.program.title"); + } + + @Override + public String getMoveMessage() { + return t("observe.action.choose.program.message"); + } + + @Override + protected NavigationTreeNodeSupport getNewParentNode(NavigationTree tree, NavigationTreeNodeSupport oldParentNode, String newParentId) { + return tree.getChild(oldParentNode.getParent(), newParentId); + } } ===================================== client/src/main/java/fr/ird/observe/client/ds/editor/form/open/longline/actions/OpenDataFormUIAddSetLonglineObs.java → client/src/main/java/fr/ird/observe/client/ds/editor/form/open/longline/actions/AddSetLonglineObs.java ===================================== --- a/client/src/main/java/fr/ird/observe/client/ds/editor/form/open/longline/actions/OpenDataFormUIAddSetLonglineObs.java +++ b/client/src/main/java/fr/ird/observe/client/ds/editor/form/open/longline/actions/AddSetLonglineObs.java @@ -41,9 +41,9 @@ import static org.nuiton.i18n.I18n.t; * @author Tony Chemit - dev@tchemit.fr * @since 6.0 */ -public class OpenDataFormUIAddSetLonglineObs extends OpenDataFormUIActionSupport<ActivityLonglineObsDto, ActivityLonglineObsReference> { +public class AddSetLonglineObs extends OpenDataFormUIActionSupport<ActivityLonglineObsDto, ActivityLonglineObsReference> { - public OpenDataFormUIAddSetLonglineObs() { + public AddSetLonglineObs() { super(t("observe.common.ActivityLonglineObsDto.action.addSet"), t("observe.common.ActivityLonglineObsDto.action.addSet.tip"), "add", ObserveKeyStrokes.KEY_STROKE_ADD_SET_LONGLINE); ===================================== client/src/main/java/fr/ird/observe/client/ds/editor/form/open/longline/actions/OpenDataFormUIMoveActivityLongline.java deleted ===================================== --- a/client/src/main/java/fr/ird/observe/client/ds/editor/form/open/longline/actions/OpenDataFormUIMoveActivityLongline.java +++ /dev/null @@ -1,63 +0,0 @@ -/* - * #%L - * ObServe :: Client - * %% - * Copyright (C) 2008 - 2017 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% - */ -package fr.ird.observe.client.ds.editor.form.open.longline.actions; - -import fr.ird.observe.client.ds.editor.form.MoveDataHelper; -import fr.ird.observe.client.ds.editor.form.open.actions.OpenDataFormUIMoveSingleDataActionSupport; -import fr.ird.observe.client.ds.editor.tree.navigation.NavigationTree; -import fr.ird.observe.client.ds.editor.tree.navigation.nodes.NavigationTreeNodeSupport; -import fr.ird.observe.dto.data.longline.ActivityLonglineObsDto; -import fr.ird.observe.dto.data.longline.ActivityLonglineObsReference; -import fr.ird.observe.dto.decoration.ObserveI18nDecoratorHelper; - -import java.util.Optional; - -import static org.nuiton.i18n.I18n.n; - -/** - * Action pour changer le programme d'une ou plusieurs marée dans la liste. - * - * @author Tony Chemit - dev@ultreia.io - * @since 5.0 - */ -public class OpenDataFormUIMoveActivityLongline extends OpenDataFormUIMoveSingleDataActionSupport<ActivityLonglineObsDto,ActivityLonglineObsReference> { - - public OpenDataFormUIMoveActivityLongline() { - super(n("observe.menu.navigation.action.move.activityLongline"), - n("observe.menu.navigation.action.move.activityLongline"), - "move-activities"); - } - - @Override - public Optional<String> getNewParentId() { - return MoveDataHelper.chooseNewTripLongline(getMainUI(), getOldParentNode()); - } - - @Override - public NavigationTreeNodeSupport getNewParentNode(String newParentId) { - NavigationTree tree = getDataSourceEditor().getTree(); - NavigationTreeNodeSupport tripLonglineNode = tree.getChild(getOldParentNode().getParent(), newParentId); - String activitiesNodeId = ObserveI18nDecoratorHelper.getTypePluralI18nKey(ActivityLonglineObsDto.class); - return tree.getChild(tripLonglineNode, activitiesNodeId); - } - -} ===================================== client/src/main/java/fr/ird/observe/client/ds/editor/form/open/longline/actions/OpenDataFormUIMoveTripLongline.java deleted ===================================== --- a/client/src/main/java/fr/ird/observe/client/ds/editor/form/open/longline/actions/OpenDataFormUIMoveTripLongline.java +++ /dev/null @@ -1,44 +0,0 @@ -package fr.ird.observe.client.ds.editor.form.open.longline.actions; - -/*- - * #%L - * ObServe :: Client - * %% - * Copyright (C) 2008 - 2017 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.ds.editor.form.open.OpenDataFormUIMoveTripActionSupport; -import fr.ird.observe.dto.data.longline.TripLonglineDto; -import fr.ird.observe.dto.data.longline.TripLonglineReference; -import fr.ird.observe.dto.referential.GearType; - -import static org.nuiton.i18n.I18n.n; - -/** - * @author Tony Chemit - dev@tchemit.fr - * @since 5.0 - */ -public class OpenDataFormUIMoveTripLongline extends OpenDataFormUIMoveTripActionSupport<TripLonglineDto, TripLonglineReference> { - - public OpenDataFormUIMoveTripLongline() { - super(n("observe.menu.navigation.action.move.tripLongline"), - n("observe.menu.navigation.action.move.tripLongline"), - GearType.longline); - } - -} ===================================== client/src/main/java/fr/ird/observe/client/ds/editor/form/open/seine/ActivitySeineUI.jaxx ===================================== --- a/client/src/main/java/fr/ird/observe/client/ds/editor/form/open/seine/ActivitySeineUI.jaxx +++ b/client/src/main/java/fr/ird/observe/client/ds/editor/form/open/seine/ActivitySeineUI.jaxx @@ -272,11 +272,12 @@ </cell> </row> </Table> + <JButton id='create'/> <JButton id='reset'/> <JButton id='save'/> <JButton id='delete'/> <JButton id='openData'/> <JButton id='closeData'/> - <JButton id='create'/> + <JButton id='moveData'/> </fr.ird.observe.client.ds.editor.form.open.OpenDataFormUI> ===================================== client/src/main/java/fr/ird/observe/client/ds/editor/form/open/seine/ActivitySeineUI.jcss ===================================== --- a/client/src/main/java/fr/ird/observe/client/ds/editor/form/open/seine/ActivitySeineUI.jcss +++ b/client/src/main/java/fr/ird/observe/client/ds/editor/form/open/seine/ActivitySeineUI.jcss @@ -91,9 +91,15 @@ } #addSet { - actionType:"fr.ird.observe.client.ds.editor.form.open.seine.actions.OpenDataFormUIAddSetSeine.class"; + actionType:"fr.ird.observe.client.ds.editor.form.open.seine.actions.AddSetSeine.class"; } #addDCP { - actionType:"fr.ird.observe.client.ds.editor.form.open.seine.actions.OpenDataFormUIAddFloatingObject.class"; + actionType:"fr.ird.observe.client.ds.editor.form.open.seine.actions.AddFloatingObject.class"; +} + +#moveData { + text:"observe.menu.navigation.action.move.activitySeine"; + toolTipText:"observe.menu.navigation.action.move.activitySeine"; + actionIcon:move-activities; } ===================================== client/src/main/java/fr/ird/observe/client/ds/editor/form/open/seine/ActivitySeineUIModel.java ===================================== --- a/client/src/main/java/fr/ird/observe/client/ds/editor/form/open/seine/ActivitySeineUIModel.java +++ b/client/src/main/java/fr/ird/observe/client/ds/editor/form/open/seine/ActivitySeineUIModel.java @@ -31,16 +31,21 @@ import fr.ird.observe.client.ds.editor.form.open.OpenDataFormUI; import fr.ird.observe.client.ds.editor.form.open.OpenDataFormUILayoutFocusTraversalPolicy; import fr.ird.observe.client.ds.editor.form.open.OpenDataFormUIModel; import fr.ird.observe.client.ds.editor.form.spi.FormUIValidationMessageManager; +import fr.ird.observe.client.ds.editor.tree.navigation.NavigationTree; +import fr.ird.observe.client.ds.editor.tree.navigation.nodes.NavigationTreeNodeSupport; +import fr.ird.observe.client.ds.editor.tree.navigation.nodes.seine.RouteSeineNavigationTreeNode; +import fr.ird.observe.client.util.DecoratedNodeEntity; import fr.ird.observe.dto.data.seine.ActivitySeineDto; import fr.ird.observe.dto.data.seine.ActivitySeineReference; import fr.ird.observe.dto.data.seine.RouteDto; +import fr.ird.observe.dto.data.seine.RouteReference; import fr.ird.observe.dto.data.seine.TripSeineDto; +import fr.ird.observe.dto.decoration.ObserveI18nDecoratorHelper; +import fr.ird.observe.dto.decoration.decorators.DataReferenceDecorator; import fr.ird.observe.dto.reference.DataDtoReference; import fr.ird.observe.dto.referential.seine.VesselActivitySeineHelper; import fr.ird.observe.dto.referential.seine.VesselActivitySeineReference; import fr.ird.observe.services.service.data.seine.ActivitySeineService; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; import javax.swing.JComponent; import javax.swing.JSpinner; @@ -85,14 +90,11 @@ public class ActivitySeineUIModel extends OpenDataFormUIModel<ActivitySeineDto, ActivitySeineDto.PROPERTY_DETECTION_MODE, ActivitySeineDto.PROPERTY_REASON_FOR_NO_FISHING).build(); - private static final Log log = LogFactory.getLog(ActivitySeineUIModel.class); private static final String PROPERTY_SET_OPERATION = "setOperation"; private static final String PROPERTY_DCP_OPERATION = "dcpOperation"; private static final String PROPERTY_CHANGED_ZONE_OPERATION = "changedZoneOperation"; - private String activity6Label; public ActivitySeineUIModel() { - super(); bean.addPropertyChangeListener(ActivitySeineDto.PROPERTY_VESSEL_ACTIVITY_SEINE, evt -> { VesselActivitySeineReference oldActivitySeine = (VesselActivitySeineReference) evt.getOldValue(); VesselActivitySeineReference newActivitySeine = (VesselActivitySeineReference) evt.getNewValue(); @@ -121,7 +123,8 @@ public class ActivitySeineUIModel extends OpenDataFormUIModel<ActivitySeineDto, } } - public void afterOpen(OpenDataFormUI<ActivitySeineDto, ActivitySeineReference> ui) { + @Override + public void afterOpenData(OpenDataFormUI<ActivitySeineDto, ActivitySeineReference> ui) { String setSeineId = Optional.ofNullable(getBean().getSetSeine()).map(DataDtoReference::getId).orElse(null); ObserveFormHelper.getApplicationDataSourceContext(ui).setOpenSetSeineId(setSeineId); } @@ -179,15 +182,15 @@ public class ActivitySeineUIModel extends OpenDataFormUIModel<ActivitySeineDto, ui1.getAddDCP().setVisible(bean.isDcpOperation()); ui.getExtraActions().setVisible(isUpdatingMode()); - VesselActivitySeineReference activity6 = getActivity6Label(); - String activity6Label = ClientApplicationContext.get().getDecoratorService().getReferentialReferenceDecorator(VesselActivitySeineReference.class).toString(activity6); + VesselActivitySeineReference fishingOperationActivity = getFishingOperationActivity(); + String activity6Label = ClientApplicationContext.get().getDecoratorService().getReferentialReferenceDecorator(VesselActivitySeineReference.class).toString(fishingOperationActivity); String text = t("observe.common.ActivitySeineDto.vesselActivitySeine.comment", activity6Label); ui1.vesselActivityInformation.setText(text); ui1.vesselActivityInformation.setToolTipText(text); } - private VesselActivitySeineReference getActivity6Label() { + private VesselActivitySeineReference getFishingOperationActivity() { List<VesselActivitySeineReference> activities = getReferentialReferences(ActivitySeineDto.PROPERTY_VESSEL_ACTIVITY_SEINE); for (VesselActivitySeineReference vesselActivity : activities) { @@ -239,4 +242,46 @@ public class ActivitySeineUIModel extends OpenDataFormUIModel<ActivitySeineDto, } }; } + + @Override + public DecoratedNodeEntity[] getParentCandidates(OpenDataFormUI<ActivitySeineDto, ActivitySeineReference> ui) { + NavigationTreeNodeSupport oldParentNode = getOldParentNode(ui); + NavigationTreeNodeSupport routesNode = oldParentNode.getParent(); + String oldRouteId = oldParentNode.getId(); + int routeNb = routesNode.getChildCount(); + + ObserveClientApplicationContext applicationContext = ObserveClientApplicationContext.get(); + DataReferenceDecorator<RouteReference> decorator = applicationContext.getDecoratorService().getDataReferenceDecorator(RouteReference.class); + + //on crée un tableau avec une route en moins car on ne propose pas la route actuel + DecoratedNodeEntity[] decoratedRoutes = new DecoratedNodeEntity[routeNb - 1]; + + int j = 0; + for (int i = 0; i < routeNb; i++) { + RouteSeineNavigationTreeNode routeNode = (RouteSeineNavigationTreeNode) routesNode.getChildAt(i); + String routeId = routeNode.getId(); + if (!oldRouteId.equals(routeId)) { + decoratedRoutes[j++] = DecoratedNodeEntity.newDecoratedNodeEntity(routeNode, decorator); + } + } + return decoratedRoutes; + } + + + @Override + public String getMoveTitle() { + return t("observe.action.choose.route.title"); + } + + @Override + public String getMoveMessage() { + return t("observe.action.choose.route.message"); + } + + @Override + protected NavigationTreeNodeSupport getNewParentNode(NavigationTree tree, NavigationTreeNodeSupport oldParentNode, String newParentId) { + NavigationTreeNodeSupport routeNode = tree.getChild(oldParentNode.getParent(), newParentId); + String activitiesNodeId = ObserveI18nDecoratorHelper.getTypePluralI18nKey(ActivitySeineDto.class); + return tree.getChild(routeNode, activitiesNodeId); + } } ===================================== client/src/main/java/fr/ird/observe/client/ds/editor/form/open/seine/RouteUI.jaxx ===================================== --- a/client/src/main/java/fr/ird/observe/client/ds/editor/form/open/seine/RouteUI.jaxx +++ b/client/src/main/java/fr/ird/observe/client/ds/editor/form/open/seine/RouteUI.jaxx @@ -88,10 +88,12 @@ </Table> </JPanel> - <!-- surcharge des actions (pour appliquer la css specifique) --> + <JButton id='create'/> + <JButton id='reset'/> + <JButton id='save'/> <JButton id='delete'/> <JButton id='openData'/> <JButton id='closeData'/> - <JButton id='create'/> + <JButton id='moveData'/> </fr.ird.observe.client.ds.editor.form.open.OpenDataFormUI> ===================================== client/src/main/java/fr/ird/observe/client/ds/editor/form/open/seine/RouteUI.jcss ===================================== --- a/client/src/main/java/fr/ird/observe/client/ds/editor/form/open/seine/RouteUI.jcss +++ b/client/src/main/java/fr/ird/observe/client/ds/editor/form/open/seine/RouteUI.jcss @@ -40,3 +40,9 @@ #delete { toolTipText:"observe.common.RouteDto.action.delete.tip"; } + +#moveData { + text:"observe.menu.navigation.action.move.route"; + toolTipText:"observe.menu.navigation.action.move.route"; + actionIcon:move-routes; +} ===================================== client/src/main/java/fr/ird/observe/client/ds/editor/form/open/seine/RouteUIModel.java ===================================== --- a/client/src/main/java/fr/ird/observe/client/ds/editor/form/open/seine/RouteUIModel.java +++ b/client/src/main/java/fr/ird/observe/client/ds/editor/form/open/seine/RouteUIModel.java @@ -30,13 +30,18 @@ import fr.ird.observe.client.ds.editor.form.open.OpenDataFormUI; import fr.ird.observe.client.ds.editor.form.open.OpenDataFormUILayoutFocusTraversalPolicy; import fr.ird.observe.client.ds.editor.form.open.OpenDataFormUIModel; import fr.ird.observe.client.ds.editor.form.spi.FormUIValidationMessageManager; +import fr.ird.observe.client.ds.editor.tree.navigation.NavigationTree; import fr.ird.observe.client.ds.editor.tree.navigation.ObserveNavigationTree; import fr.ird.observe.client.ds.editor.tree.navigation.nodes.NavigationTreeNodeSupport; +import fr.ird.observe.client.ds.editor.tree.navigation.nodes.seine.TripSeineNavigationTreeNode; +import fr.ird.observe.client.util.DecoratedNodeEntity; import fr.ird.observe.dto.data.seine.ActivitySeineDto; import fr.ird.observe.dto.data.seine.RouteDto; import fr.ird.observe.dto.data.seine.RouteReference; import fr.ird.observe.dto.data.seine.TripSeineDto; +import fr.ird.observe.dto.data.seine.TripSeineReference; import fr.ird.observe.dto.decoration.ObserveI18nDecoratorHelper; +import fr.ird.observe.dto.decoration.decorators.DataReferenceDecorator; import fr.ird.observe.dto.referential.seine.VesselActivitySeineHelper; import fr.ird.observe.dto.referential.seine.VesselActivitySeineReference; import fr.ird.observe.services.service.data.seine.RouteService; @@ -241,4 +246,50 @@ public class RouteUIModel extends OpenDataFormUIModel<RouteDto, RouteReference, } } + @Override + public DecoratedNodeEntity[] getParentCandidates(OpenDataFormUI<RouteDto, RouteReference> ui) { + + NavigationTreeNodeSupport oldTripSeineNode = getOldParentNode(ui); + + NavigationTreeNodeSupport programNode = oldTripSeineNode.getParent(); + String oldTripSeineId = oldTripSeineNode.getId(); + int tripSeineNb = programNode.getChildCount(); + + ClientApplicationContext applicationContext = ClientApplicationContext.get(); + DataReferenceDecorator decorator = applicationContext.getDecoratorService().getDataReferenceDecorator(TripSeineReference.class); + + //on crée un tableau avec une marée en moins car on ne propose pas la marée actuel + DecoratedNodeEntity[] decoratedTripSeines = new DecoratedNodeEntity[tripSeineNb - 1]; + + int j = 0; + for (int i = 0; i < tripSeineNb; i++) { + + TripSeineNavigationTreeNode tripSeineNode = (TripSeineNavigationTreeNode) programNode.getChildAt(i); + + String tripSeineId = tripSeineNode.getId(); + + if (!oldTripSeineId.equals(tripSeineId)) { + decoratedTripSeines[j++] = DecoratedNodeEntity.newDecoratedNodeEntity(tripSeineNode, decorator); + } + } + return decoratedTripSeines; + } + + + @Override + public String getMoveTitle() { + return t("observe.action.choose.tripSeine.title"); + } + + @Override + public String getMoveMessage() { + return t("observe.action.choose.tripSeine.message"); + } + + @Override + protected NavigationTreeNodeSupport getNewParentNode(NavigationTree tree, NavigationTreeNodeSupport oldParentNode, String newParentId) { + NavigationTreeNodeSupport tripNode = tree.getChild(oldParentNode.getParent(), newParentId); + String routesNodeId = ObserveI18nDecoratorHelper.getTypePluralI18nKey(RouteDto.class); + return tree.getChild(tripNode, routesNodeId); + } } ===================================== client/src/main/java/fr/ird/observe/client/ds/editor/form/open/seine/TripSeineUI.jaxx ===================================== --- a/client/src/main/java/fr/ird/observe/client/ds/editor/form/open/seine/TripSeineUI.jaxx +++ b/client/src/main/java/fr/ird/observe/client/ds/editor/form/open/seine/TripSeineUI.jaxx @@ -209,11 +209,12 @@ </tab> </JTabbedPane> </JPanel> + <JButton id='create'/> <JButton id='reset'/> <JButton id='save'/> <JButton id='delete'/> <JButton id='openData'/> <JButton id='closeData'/> - <JButton id='create'/> + <JButton id='moveData'/> </fr.ird.observe.client.ds.editor.form.open.OpenDataFormUI> ===================================== client/src/main/java/fr/ird/observe/client/ds/editor/form/open/seine/TripSeineUI.jcss ===================================== --- a/client/src/main/java/fr/ird/observe/client/ds/editor/form/open/seine/TripSeineUI.jcss +++ b/client/src/main/java/fr/ird/observe/client/ds/editor/form/open/seine/TripSeineUI.jcss @@ -54,3 +54,9 @@ #delete { toolTipText:"observe.common.TripDto.action.delete.tip"; } + +#moveData { + text:"observe.menu.navigation.action.move.tripSeine"; + toolTipText:"observe.menu.navigation.action.move.tripSeine"; + actionIcon:move-trips; +} ===================================== client/src/main/java/fr/ird/observe/client/ds/editor/form/open/seine/TripSeineUIModel.java ===================================== --- a/client/src/main/java/fr/ird/observe/client/ds/editor/form/open/seine/TripSeineUIModel.java +++ b/client/src/main/java/fr/ird/observe/client/ds/editor/form/open/seine/TripSeineUIModel.java @@ -32,19 +32,27 @@ import fr.ird.observe.client.ds.editor.form.open.OpenDataFormUI; import fr.ird.observe.client.ds.editor.form.open.OpenDataFormUILayoutFocusTraversalPolicy; import fr.ird.observe.client.ds.editor.form.open.OpenDataFormUIModel; import fr.ird.observe.client.ds.editor.form.spi.FormUIValidationMessageManager; +import fr.ird.observe.client.ds.editor.tree.navigation.NavigationTree; import fr.ird.observe.client.ds.editor.tree.navigation.ObserveNavigationTree; +import fr.ird.observe.client.ds.editor.tree.navigation.nodes.NavigationTreeNodeSupport; +import fr.ird.observe.client.ds.editor.tree.navigation.nodes.seine.TripSeineListNavigationTreeNode; +import fr.ird.observe.client.util.DecoratedNodeEntity; +import fr.ird.observe.dto.IdHelper; import fr.ird.observe.dto.data.seine.TripSeineDto; import fr.ird.observe.dto.data.seine.TripSeineReference; +import fr.ird.observe.dto.decoration.decorators.ReferentialReferenceDecorator; import fr.ird.observe.dto.reference.DtoReferenceCollection; import fr.ird.observe.dto.reference.ReferentialReferencesFilter; import fr.ird.observe.dto.referential.PersonHelper; import fr.ird.observe.dto.referential.PersonReference; +import fr.ird.observe.dto.referential.ProgramReference; import fr.ird.observe.dto.referential.VesselHelper; import fr.ird.observe.dto.referential.VesselReference; import fr.ird.observe.services.service.data.seine.TripSeineService; import java.awt.Component; import java.awt.Container; +import java.util.ArrayList; import java.util.List; import java.util.Set; @@ -177,4 +185,50 @@ public class TripSeineUIModel extends OpenDataFormUIModel<TripSeineDto, TripSein ObserveFormHelper.getApplicationDataSourceContext(this).closeProgram(); super.closeData(); } + + @Override + public DecoratedNodeEntity[] getParentCandidates(OpenDataFormUI<TripSeineDto, TripSeineReference> ui) { + + NavigationTree treeHelper = ui.getDataSourceUI().getTree(); + + // racine + NavigationTreeNodeSupport rootNode = treeHelper.getRootNode(); + + //on crée un tableau avec un programme en moins car on ne propose pas le programme actuel + List<DecoratedNodeEntity> decoratedProgramList = new ArrayList<>(); + + ReferentialReferenceDecorator<ProgramReference> programDecorator = ui.getMainUI().getApplicationContext().getDecoratorService().getReferentialReferenceDecorator(ProgramReference.class); + + String parentId = getParentId(); + for (int i = 0, n = rootNode.getChildCount(); i < n; i++) { + + NavigationTreeNodeSupport programNode = (NavigationTreeNodeSupport) rootNode.getChildAt(i); + String programId = programNode.getId(); + + // si le noeud programme n'est pas le même que le parent actuel + // si le noeud est bien un noeud de programme + if (programId != null && IdHelper.isProgramId(programId) && !parentId.equals(programId)) { + if (programNode instanceof TripSeineListNavigationTreeNode) { + TripSeineListNavigationTreeNode node = (TripSeineListNavigationTreeNode) programNode; + decoratedProgramList.add(DecoratedNodeEntity.newDecoratedNodeEntity(node, programDecorator)); + } + } + } + return decoratedProgramList.toArray(new DecoratedNodeEntity[decoratedProgramList.size()]); + } + + @Override + public String getMoveTitle() { + return t("observe.action.choose.program.title"); + } + + @Override + public String getMoveMessage() { + return t("observe.action.choose.program.message"); + } + + @Override + protected NavigationTreeNodeSupport getNewParentNode(NavigationTree tree, NavigationTreeNodeSupport oldParentNode, String newParentId) { + return tree.getChild(oldParentNode.getParent(), newParentId); + } } ===================================== client/src/main/java/fr/ird/observe/client/ds/editor/form/open/seine/actions/OpenDataFormUIAddFloatingObject.java → client/src/main/java/fr/ird/observe/client/ds/editor/form/open/seine/actions/AddFloatingObject.java ===================================== --- a/client/src/main/java/fr/ird/observe/client/ds/editor/form/open/seine/actions/OpenDataFormUIAddFloatingObject.java +++ b/client/src/main/java/fr/ird/observe/client/ds/editor/form/open/seine/actions/AddFloatingObject.java @@ -49,11 +49,11 @@ import static org.nuiton.i18n.I18n.t; * @author Tony Chemit - dev@tchemit.fr * @since 6.0 */ -public class OpenDataFormUIAddFloatingObject extends OpenDataFormUIActionSupport<ActivitySeineDto, ActivitySeineReference> { +public class AddFloatingObject extends OpenDataFormUIActionSupport<ActivitySeineDto, ActivitySeineReference> { - private static final Log log = LogFactory.getLog(OpenDataFormUIAddFloatingObject.class); + private static final Log log = LogFactory.getLog(AddFloatingObject.class); - public OpenDataFormUIAddFloatingObject() { + public AddFloatingObject() { super(t("observe.common.ActivitySeineDto.action.addFloatingObject"), t("observe.common.ActivitySeineDto.action.addFloatingObject.tip"), "add", ObserveKeyStrokes.KEY_STROKE_ADD_DCP); } ===================================== client/src/main/java/fr/ird/observe/client/ds/editor/form/open/seine/actions/OpenDataFormUIAddSetSeine.java → client/src/main/java/fr/ird/observe/client/ds/editor/form/open/seine/actions/AddSetSeine.java ===================================== --- a/client/src/main/java/fr/ird/observe/client/ds/editor/form/open/seine/actions/OpenDataFormUIAddSetSeine.java +++ b/client/src/main/java/fr/ird/observe/client/ds/editor/form/open/seine/actions/AddSetSeine.java @@ -41,9 +41,9 @@ import static org.nuiton.i18n.I18n.t; * @author Tony Chemit - dev@tchemit.fr * @since 6.0 */ -public class OpenDataFormUIAddSetSeine extends OpenDataFormUIActionSupport<ActivitySeineDto, ActivitySeineReference> { +public class AddSetSeine extends OpenDataFormUIActionSupport<ActivitySeineDto, ActivitySeineReference> { - public OpenDataFormUIAddSetSeine() { + public AddSetSeine() { super(t("observe.common.ActivitySeineDto.action.addSet"), t("observe.common.ActivitySeineDto.action.addSet.tip"), "add", ObserveKeyStrokes.KEY_STROKE_ADD_SET_SEINE); } ===================================== client/src/main/java/fr/ird/observe/client/ds/editor/form/open/seine/actions/OpenDataFormUIMoveActivitySeine.java deleted ===================================== --- a/client/src/main/java/fr/ird/observe/client/ds/editor/form/open/seine/actions/OpenDataFormUIMoveActivitySeine.java +++ /dev/null @@ -1,63 +0,0 @@ -/* - * #%L - * ObServe :: Client - * %% - * Copyright (C) 2008 - 2017 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% - */ -package fr.ird.observe.client.ds.editor.form.open.seine.actions; - -import fr.ird.observe.client.ds.editor.form.MoveDataHelper; -import fr.ird.observe.client.ds.editor.form.open.actions.OpenDataFormUIMoveSingleDataActionSupport; -import fr.ird.observe.client.ds.editor.tree.navigation.NavigationTree; -import fr.ird.observe.client.ds.editor.tree.navigation.nodes.NavigationTreeNodeSupport; -import fr.ird.observe.dto.data.seine.ActivitySeineDto; -import fr.ird.observe.dto.data.seine.ActivitySeineReference; -import fr.ird.observe.dto.decoration.ObserveI18nDecoratorHelper; - -import java.util.Optional; - -import static org.nuiton.i18n.I18n.n; - -/** - * Action pour changer le programme d'une ou plusieurs marée dans la liste. - * - * @author Tony Chemit - dev@ultreia.io - * @since 5.0 - */ -public class OpenDataFormUIMoveActivitySeine extends OpenDataFormUIMoveSingleDataActionSupport<ActivitySeineDto, ActivitySeineReference> { - - public OpenDataFormUIMoveActivitySeine() { - super(n("observe.menu.navigation.action.move.activitySeine"), - n("observe.menu.navigation.action.move.activitySeine"), - "move-activities"); - } - - @Override - public Optional<String> getNewParentId() { - return MoveDataHelper.chooseNewRoute(getMainUI(), getOldParentNode()); - } - - @Override - public NavigationTreeNodeSupport getNewParentNode(String newParentId) { - NavigationTree tree = getDataSourceEditor().getTree(); - NavigationTreeNodeSupport routeNode = tree.getChild(getOldParentNode().getParent(), newParentId); - String activitiesNodeId = ObserveI18nDecoratorHelper.getTypePluralI18nKey(ActivitySeineDto.class); - return tree.getChild(routeNode, activitiesNodeId); - } - -} ===================================== client/src/main/java/fr/ird/observe/client/ds/editor/form/open/seine/actions/OpenDataFormUIMoveRoute.java deleted ===================================== --- a/client/src/main/java/fr/ird/observe/client/ds/editor/form/open/seine/actions/OpenDataFormUIMoveRoute.java +++ /dev/null @@ -1,63 +0,0 @@ -/* - * #%L - * ObServe :: Client - * %% - * Copyright (C) 2008 - 2017 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% - */ -package fr.ird.observe.client.ds.editor.form.open.seine.actions; - -import fr.ird.observe.client.ds.editor.form.MoveDataHelper; -import fr.ird.observe.client.ds.editor.form.open.actions.OpenDataFormUIMoveSingleDataActionSupport; -import fr.ird.observe.client.ds.editor.tree.navigation.NavigationTree; -import fr.ird.observe.client.ds.editor.tree.navigation.nodes.NavigationTreeNodeSupport; -import fr.ird.observe.dto.data.seine.RouteDto; -import fr.ird.observe.dto.data.seine.RouteReference; -import fr.ird.observe.dto.decoration.ObserveI18nDecoratorHelper; - -import java.util.Optional; - -import static org.nuiton.i18n.I18n.n; - -/** - * Action pour changer le programme d'une ou plusieurs marée dans la liste. - * - * @author Tony Chemit - dev@ultreia.io - * @since 5.0 - */ -public class OpenDataFormUIMoveRoute extends OpenDataFormUIMoveSingleDataActionSupport<RouteDto, RouteReference> { - - public OpenDataFormUIMoveRoute() { - super(n("observe.menu.navigation.action.move.route"), - n("observe.menu.navigation.action.move.route"), - "move-routes"); - } - - @Override - public Optional<String> getNewParentId() { - return MoveDataHelper.chooseNewTripSeine(getMainUI(), getOldParentNode()); - } - - @Override - public NavigationTreeNodeSupport getNewParentNode(String newParentId) { - NavigationTree tree = getDataSourceEditor().getTree(); - NavigationTreeNodeSupport tripNode = tree.getChild(getOldParentNode().getParent(), newParentId); - String routesNodeId = ObserveI18nDecoratorHelper.getTypePluralI18nKey(RouteDto.class); - return tree.getChild(tripNode, routesNodeId); - } - -} ===================================== client/src/main/java/fr/ird/observe/client/ds/editor/form/open/seine/actions/OpenDataFormUIMoveTripSeine.java deleted ===================================== --- a/client/src/main/java/fr/ird/observe/client/ds/editor/form/open/seine/actions/OpenDataFormUIMoveTripSeine.java +++ /dev/null @@ -1,44 +0,0 @@ -package fr.ird.observe.client.ds.editor.form.open.seine.actions; - -/*- - * #%L - * ObServe :: Client - * %% - * Copyright (C) 2008 - 2017 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.ds.editor.form.open.OpenDataFormUIMoveTripActionSupport; -import fr.ird.observe.dto.data.seine.TripSeineDto; -import fr.ird.observe.dto.data.seine.TripSeineReference; -import fr.ird.observe.dto.referential.GearType; - -import static org.nuiton.i18n.I18n.n; - -/** - * @author Tony Chemit - dev@tchemit.fr - * @since 5.0 - */ -public class OpenDataFormUIMoveTripSeine extends OpenDataFormUIMoveTripActionSupport<TripSeineDto, TripSeineReference> { - - public OpenDataFormUIMoveTripSeine() { - super(n("observe.menu.navigation.action.move.tripSeine"), - n("observe.menu.navigation.action.move.tripSeine"), - GearType.seine); - } - -} ===================================== client/src/main/java/fr/ird/observe/client/ds/editor/tree/ObserveNavigationTreeShowPopupAction.java deleted ===================================== --- a/client/src/main/java/fr/ird/observe/client/ds/editor/tree/ObserveNavigationTreeShowPopupAction.java +++ /dev/null @@ -1,357 +0,0 @@ -package fr.ird.observe.client.ds.editor.tree; - -/* - * #%L - * ObServe :: Client - * %% - * Copyright (C) 2008 - 2017 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 com.google.common.base.Preconditions; -import fr.ird.observe.client.ObserveClientApplicationContext; -import fr.ird.observe.client.ds.editor.form.FormUI; -import fr.ird.observe.client.ds.editor.form.open.OpenDataFormUI; -import fr.ird.observe.client.ds.editor.form.open.longline.actions.OpenDataFormUIMoveActivityLongline; -import fr.ird.observe.client.ds.editor.form.open.longline.actions.OpenDataFormUIMoveTripLongline; -import fr.ird.observe.client.ds.editor.form.open.seine.actions.OpenDataFormUIMoveActivitySeine; -import fr.ird.observe.client.ds.editor.form.open.seine.actions.OpenDataFormUIMoveRoute; -import fr.ird.observe.client.ds.editor.form.open.seine.actions.OpenDataFormUIMoveTripSeine; -import fr.ird.observe.client.ds.editor.tree.navigation.NavigationTree; -import fr.ird.observe.client.ds.editor.tree.navigation.nodes.NavigationTreeNodeSupport; -import fr.ird.observe.client.ds.editor.tree.navigation.nodes.ReferenceNavigationTreeNodeSupport; -import fr.ird.observe.dto.data.longline.ActivityLonglineObsDto; -import fr.ird.observe.dto.data.longline.TripLonglineDto; -import fr.ird.observe.dto.data.seine.ActivitySeineDto; -import fr.ird.observe.dto.data.seine.RouteDto; -import fr.ird.observe.dto.data.seine.TripSeineDto; -import fr.ird.observe.spi.application.ObserveApplicationDataContext; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -import javax.swing.JButton; -import javax.swing.JMenuItem; -import javax.swing.JPopupMenu; -import javax.swing.JScrollPane; -import javax.swing.MenuElement; -import javax.swing.SwingUtilities; -import javax.swing.tree.TreePath; -import java.awt.Point; -import java.awt.Rectangle; -import java.awt.event.KeyAdapter; -import java.awt.event.KeyEvent; -import java.awt.event.MouseAdapter; -import java.awt.event.MouseEvent; - -/** - * Created on 1/8/15. - * - * @author Tony Chemit - dev@tchemit.fr - * @since 3.11 - */ -public class ObserveNavigationTreeShowPopupAction { - - private static final Log log = LogFactory.getLog(ObserveNavigationTreeShowPopupAction.class); - - private static final String TRIP_SEINE_MENU_ITEMS = "tripSeine"; - private static final String TRIP_LONGLINE_MENU_ITEMS = "tripLongline"; - private static final String ROUTE_MENU_ITEMS = "route"; - private static final String ACTIVITY_SEINE_MENU_ITEMS = "activitySeine"; - private static final String ACTIVITY_LONGLINE_MENU_ITEMS = "activityLongline"; - - private final JPopupMenu popup; - - private final NavigationTree tree; - - private final JMenuItem noAction; - private final JMenuItem openAction; - private final JMenuItem closeAction; - private final JMenuItem moveAction; - private final JMenuItem deleteAction; - - public ObserveNavigationTreeShowPopupAction(NavigationTree tree, JScrollPane pane, JPopupMenu popup) { - - this.popup = popup; - this.tree = tree; - - JMenuItem noActionComponent = null; - // trip menus - JMenuItem moveComponent = null; - JMenuItem openActionComponent = null; - JMenuItem closeActionComponent = null; - JMenuItem deleteActionComponent = null; - - for (MenuElement menuElement : popup.getSubElements()) { - - if (menuElement.getComponent().getName().equals("navigationNoAction")) { - noActionComponent = (JMenuItem) menuElement.getComponent(); - } - if (menuElement.getComponent().getName().equals("navigationMoveAction")) { - moveComponent = (JMenuItem) menuElement.getComponent(); - } - if (menuElement.getComponent().getName().equals("navigationOpenAction")) { - openActionComponent = (JMenuItem) menuElement.getComponent(); - } - if (menuElement.getComponent().getName().equals("navigationCloseAction")) { - closeActionComponent = (JMenuItem) menuElement.getComponent(); - } - if (menuElement.getComponent().getName().equals("navigationDeleteAction")) { - deleteActionComponent = (JMenuItem) menuElement.getComponent(); - } - } - - this.noAction = noActionComponent; - this.openAction = openActionComponent; - this.closeAction = closeActionComponent; - this.moveAction = moveComponent; - this.deleteAction = deleteActionComponent; - - KeyAdapter keyAdapter = new KeyAdapter() { - @Override - public void keyPressed(KeyEvent e) { - if (tree.isEnabled()) { - openNodeMenu(e); - } - } - }; - tree.addKeyListener(keyAdapter); - pane.addKeyListener(keyAdapter); - - MouseAdapter mouseAdapter = new MouseAdapter() { - @Override - public void mouseClicked(MouseEvent e) { - if (tree.isEnabled()) { - autoSelectNodeInTree(e); - } - } - }; - tree.addMouseListener(mouseAdapter); - pane.addMouseListener(mouseAdapter); - } - - private void autoSelectNodeInTree(MouseEvent e) { - - boolean rightClick = SwingUtilities.isRightMouseButton(e); - - if (rightClick) { - - // get the coordinates of the mouse click - Point p = e.getPoint(); - - int closestRowForLocation = tree.getClosestRowForLocation(e.getX(), e.getY()); - - int rowToSelect = -1; - - if (isRowSelected(closestRowForLocation)) { - - rowToSelect = closestRowForLocation; - } - - if (rowToSelect == -1) { - - // try to change selection - - TreePath pathForRow = tree.getPathForRow(closestRowForLocation); - tree.setSelectionPath(pathForRow); - - if (isRowSelected(closestRowForLocation)) { - - rowToSelect = closestRowForLocation; - } - - } - - if (rowToSelect != -1) { - - showPopup(rowToSelect, p); - - } - - } - } - - private void openNodeMenu(KeyEvent e) { - - if (e.getKeyCode() == KeyEvent.VK_CONTEXT_MENU && !tree.isSelectionEmpty()) { - - // get the lowest selected row - int lowestRow = getLowestSelectedRowCount(); - - // get the selected column - Rectangle r = tree.getRowBounds(lowestRow); - - // get the point in the middle lower of the cell - Point p = new Point(r.x + r.width / 2, r.y + r.height); - - if (log.isDebugEnabled()) { - log.debug("Row " + lowestRow + " found t point [" + p + "]"); - } - - showPopup(lowestRow, p); - - } - } - - private void showPopup(int row, Point p) { - - if (log.isInfoEnabled()) { - log.info("Will show popup from row: " + row); - } - - NavigationTreeNodeSupport selectedNode = (NavigationTreeNodeSupport) tree.getPathForRow(row).getLastPathComponent(); - - if (log.isInfoEnabled()) { - log.info("Found selected node: " + selectedNode); - } - - beforeOpenPopup(selectedNode); - - popup.show(tree, p.x, p.y); - - } - - private void beforeOpenPopup(NavigationTreeNodeSupport selectedNode) { - - // clean popup - popup.removeAll(); - - FormUI selectedContentUI = tree.getFormUIManager().getSelectedContentUI(); - ObserveApplicationDataContext openDataManager = ObserveClientApplicationContext.applicationDataContext(); - - boolean closeActionEnabled = false; - - if (selectedContentUI instanceof OpenDataFormUI) { - JButton closeButton = ((OpenDataFormUI) selectedContentUI).getCloseData(); - closeActionEnabled = closeButton.isEnabled(); - } - - Class dataType = selectedNode.getDataType(); - if (TripSeineDto.class.equals(dataType)) { - - beforeOpenMenu((ReferenceNavigationTreeNodeSupport) selectedNode, TRIP_SEINE_MENU_ITEMS); - - openAction.setEnabled(!openDataManager.isOpenTripSeine()); - closeAction.setEnabled(closeActionEnabled); - - } else if (TripLonglineDto.class.equals(dataType)) { - - beforeOpenMenu((ReferenceNavigationTreeNodeSupport) selectedNode, TRIP_LONGLINE_MENU_ITEMS); - - openAction.setEnabled(!openDataManager.isOpenTripLongline()); - closeAction.setEnabled(closeActionEnabled); - - } else if (RouteDto.class.equals(dataType)) { - - beforeOpenMenu((ReferenceNavigationTreeNodeSupport) selectedNode, ROUTE_MENU_ITEMS); - - openAction.setEnabled(!openDataManager.canOpenRoute()); - closeAction.setEnabled(closeActionEnabled); - - } else if (ActivitySeineDto.class.equals(dataType)) { - - beforeOpenMenu((ReferenceNavigationTreeNodeSupport) selectedNode, ACTIVITY_SEINE_MENU_ITEMS); - - openAction.setEnabled(openDataManager.canOpenActivitySeine()); - closeAction.setEnabled(closeActionEnabled); - - } else if (ActivityLonglineObsDto.class.equals(dataType)) { - - beforeOpenMenu((ReferenceNavigationTreeNodeSupport) selectedNode, ACTIVITY_LONGLINE_MENU_ITEMS); - - openAction.setEnabled(openDataManager.canOpenActivityLonglineObs()); - closeAction.setEnabled(closeActionEnabled); - - } else { - - popup.add(noAction); - } - } - - private void beforeOpenMenu(ReferenceNavigationTreeNodeSupport selectedNode, String nodeType) { - if (log.isInfoEnabled()) { - log.info("Will load popup for " + nodeType + " node."); - } - - if (selectedNode.isOpen()) { - - closeAction.putClientProperty("ui", tree.getFormUIManager().getSelectedContentUI()); - popup.add(closeAction); - - - } else { - - openAction.putClientProperty("ui", tree.getFormUIManager().getSelectedContentUI()); - popup.add(openAction); - - } - - Class dataType = selectedNode.getDataType(); - - if (TripSeineDto.class.equals(dataType)) { - moveAction.setAction(new OpenDataFormUIMoveTripSeine()); - } else if (TripLonglineDto.class.equals(dataType)) { - moveAction.setAction(new OpenDataFormUIMoveTripLongline()); - } else if (RouteDto.class.equals(dataType)) { - moveAction.setAction(new OpenDataFormUIMoveRoute()); - } else if (ActivitySeineDto.class.equals(dataType)) { - moveAction.setAction(new OpenDataFormUIMoveActivitySeine()); - } else if (ActivityLonglineObsDto.class.equals(dataType)) { - moveAction.setAction(new OpenDataFormUIMoveActivityLongline()); - } - popup.add(moveAction); - - deleteAction.putClientProperty("ui", tree.getFormUIManager().getSelectedContentUI()); - deleteAction.setEnabled(selectedNode.isOpen()); - popup.add(deleteAction); - } - - private boolean isRowSelected(int requiredRow) { - - boolean result = false; - - int[] selectedRows = tree.getSelectionRows(); - if (selectedRows != null) { - for (int selectedRow : selectedRows) { - if (requiredRow == selectedRow) { - - // match - result = true; - break; - } - } - } - - return result; - - } - - private int getLowestSelectedRowCount() { - - Preconditions.checkState(!tree.isSelectionEmpty()); - - int[] selectedRows = tree.getSelectionRows(); - int lowestRow = -1; - if (selectedRows != null) { - for (int row : selectedRows) { - lowestRow = Math.max(lowestRow, row); - } - } - return lowestRow; - - } - -} ===================================== dto/src/main/models/Observe.model ===================================== --- a/dto/src/main/models/Observe.model +++ b/dto/src/main/models/Observe.model @@ -41,6 +41,8 @@ interface reference.ReferentialReference > fr.ird.observe.dto.ObserveDto abstract Id >> ObserveDto | skip id + {*:1} String lastUpdateDate + {*:1} Date +version + {*:1} long +createDate + {*:1} Date abstract data.Data > Id | skip @@ -55,8 +57,6 @@ code + {*:1} String status + {*:1} !fr.ird.observe.dto.referential.ReferenceStatus uri + {*:1} String needComment + {*:1} boolean -version + {*:1} long -createDate + {*:1} Date abstract referential.I18nReferential > referential.Referential | skip label1 + {*:1} String ===================================== pom.xml ===================================== --- a/pom.xml +++ b/pom.xml @@ -145,6 +145,7 @@ <!--persistence model version--> <observe.model.version>6.904</observe.model.version> <lib.version.java4all.toolkit>2.0-alpha-2-SNAPSHOT</lib.version.java4all.toolkit> + <lib.version.java4all.jaxx>3.0-alpha-23-SNAPSHOT</lib.version.java4all.jaxx> <!-- license header configuration --> <license.licenseName>gpl_v3</license.licenseName> ===================================== services-local/src/test/java/fr/ird/observe/spi/persistence/PersistenceModuleHelperTest.java ===================================== --- a/services-local/src/test/java/fr/ird/observe/spi/persistence/PersistenceModuleHelperTest.java +++ b/services-local/src/test/java/fr/ird/observe/spi/persistence/PersistenceModuleHelperTest.java @@ -10,12 +10,12 @@ package fr.ird.observe.spi.persistence; * 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>. @@ -37,13 +37,14 @@ import fr.ird.observe.services.test.ServiceTestSupport; import fr.ird.observe.services.test.spi.DatabaseNameConfiguration; import fr.ird.observe.spi.dto.DtoModelClasses; import fr.ird.observe.test.ObserveFixtures; -import java.util.List; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.junit.Assert; import org.junit.Test; import org.nuiton.topia.persistence.TopiaDao; +import java.util.List; + /** * Created on 26/11/15. * @@ -66,7 +67,7 @@ public class PersistenceModuleHelperTest extends ServiceTestSupport { } @Test - public void testTransformEntityToReferentialDto() throws Exception { + public void testTransformEntityToReferentialDto() { for (Class<? extends ReferentialDto> dtoType : DtoModelClasses.REFERENTIAL_TYPES) { transformReferentialEntityToDto(dtoType); @@ -74,7 +75,7 @@ public class PersistenceModuleHelperTest extends ServiceTestSupport { } @Test - public void testTransformEntityToDataDtoForSeine() throws Exception { + public void testTransformEntityToDataDtoForSeine() { for (Class<? extends DataDto> dataType : DtoModelClasses.ALL_DATA_TYPES) { transformDataEntityToDto(dataType); } @@ -82,7 +83,7 @@ public class PersistenceModuleHelperTest extends ServiceTestSupport { @DatabaseNameConfiguration(DatabaseName.dataForTestLongline) @Test - public void testTransformEntityToDataDtoForLongline() throws Exception { + public void testTransformEntityToDataDtoForLongline() { transformDataEntityToDto(SetLonglineObsCatchDto.class); // for (Class<? extends DataDto> dataType : DtoModelClasses.ALL_DATA_TYPES) { // transformDataEntityToDto(dataType); @@ -107,12 +108,12 @@ public class PersistenceModuleHelperTest extends ServiceTestSupport { for (E entity : Iterables.limit(entities, ObserveFixtures.ENTITIES_LIMIT_SIZE)) { log.debug("transform " + entity.getTopiaId() + " to " + dtoType.getName()); - D dto = typeContext.toDto(ReferentialLocale.FR, dtoType, entity); + D dto = typeContext.toDto(ReferentialLocale.FR, entity); Assert.assertNotNull(dto); Assert.assertEquals(entity.getTopiaId(), dto.getId()); -// Assert.assertEquals(entity.getTopiaCreateDate(), dto.getCreateDate()); -// Assert.assertEquals(entity.getTopiaVersion(), dto.getTestPropertyAsVersion()); + Assert.assertEquals(entity.getTopiaCreateDate(), dto.getCreateDate()); + Assert.assertEquals(entity.getTopiaVersion(), dto.getVersion()); E entity2 = dao.forTopiaIdEquals(entity.getTopiaId()).findUnique(); typeContext.copyToEntity(ReferentialLocale.FR, dto, entity2); View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/compare/6587ac5e3549fd2254b709f6989... --- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/compare/6587ac5e3549fd2254b709f6989... You're receiving this email because of your account on gitlab.com.
participants (1)
-
Tony CHEMIT