Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe Commits: cf893a62 by Tony CHEMIT at 2017-06-20T12:09:14+02:00 Ajout des actions de recopie (See #577) - - - - - 14 changed files: - application-swing-decoration/src/main/resources/i18n/application-swing-decoration_es_ES.properties - application-swing-decoration/src/main/resources/i18n/application-swing-decoration_fr_FR.properties - application-swing/src/main/java/fr/ird/observe/application/swing/ui/ObserveKeyStrokes.java - + application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/CopyFloatingObjectPartToLeftAction.java - + application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/CopyFloatingObjectPartToRightAction.java - application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/menu/navigation/GotoActionSupport.java - application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ObserveActionMap.java - application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/seine/FloatingObjectPartsTreeNode.java - application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/seine/FloatingObjectUI.jaxx - application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/seine/FloatingObjectUI.jcss - application-swing/src/main/resources/i18n/application-swing_en_GB.properties - application-swing/src/main/resources/i18n/application-swing_es_ES.properties - application-swing/src/main/resources/i18n/application-swing_fr_FR.properties - services-topia/src/main/java/fr/ird/observe/services/topia/service/data/seine/FloatingObjectServiceTopia.java Changes: ===================================== application-swing-decoration/src/main/resources/i18n/application-swing-decoration_es_ES.properties ===================================== --- a/application-swing-decoration/src/main/resources/i18n/application-swing-decoration_es_ES.properties +++ b/application-swing-decoration/src/main/resources/i18n/application-swing-decoration_es_ES.properties @@ -139,7 +139,7 @@ observe.type.maturityStatuses=Maturidades observe.type.mitigationType=Tipo de medida de atenuación observe.type.mitigationTypes=Tipos de medida de atenuación observe.type.nonTargetCatch=Fauna accesoria conservada o descartada -observe.type.nonTargetCatchRelease=Faune accessoire libérée \#TODO +observe.type.nonTargetCatchRelease=Faune accessoire sensible libérée \#TODO observe.type.nonTargetCatchReleaseStatus=État d'une faune accessoire libérée \#TODO observe.type.nonTargetCatchReleaseStatuses=États d'une faune accessoire libérée \#TODO observe.type.nonTargetCatchReleases=Faunes accessoires libérées \#TODO @@ -203,7 +203,7 @@ observe.type.setLonglineTdrs=Registradores observe.type.setLonglines=Operaciones de pesca observe.type.setSeine=Lance observe.type.setSeineNonTargetCatch=Captura de fauna accesoria -observe.type.setSeineNonTargetCatchRelease=Faune accessoire libérée \#TODO +observe.type.setSeineNonTargetCatchRelease=Faune accessoire sensible libérée \#TODO observe.type.setSeineNonTargetCatchReleases=Faunes accessoires libérées \#TODO observe.type.setSeineNonTargetCatches=Capturas de fauna accesoria observe.type.setSeineSchoolEstimate=Estimación de banco ===================================== application-swing-decoration/src/main/resources/i18n/application-swing-decoration_fr_FR.properties ===================================== --- a/application-swing-decoration/src/main/resources/i18n/application-swing-decoration_fr_FR.properties +++ b/application-swing-decoration/src/main/resources/i18n/application-swing-decoration_fr_FR.properties @@ -139,7 +139,7 @@ observe.type.maturityStatuses=Maturités observe.type.mitigationType=Type de mesure d'atténuation observe.type.mitigationTypes=Types de mesure d'atténuation observe.type.nonTargetCatch=Faune accessoire conservée ou rejetée -observe.type.nonTargetCatchRelease=Faune accessoire libérée +observe.type.nonTargetCatchRelease=Faune accessoire sensible libérée observe.type.nonTargetCatchReleaseStatus=État d'une faune accessoire libérée observe.type.nonTargetCatchReleaseStatuses=États d'une faune accessoire libérée observe.type.nonTargetCatchReleases=Faunes accessoires libérées @@ -203,7 +203,7 @@ observe.type.setLonglineTdrs=Enregistreurs observe.type.setLonglines=Opérations de pêche observe.type.setSeine=Calée observe.type.setSeineNonTargetCatch=Capture de faune accessoire -observe.type.setSeineNonTargetCatchRelease=Faune accessoire libérée +observe.type.setSeineNonTargetCatchRelease=Faune accessoire sensible libérée observe.type.setSeineNonTargetCatchReleases=Faunes accessoires libérées observe.type.setSeineNonTargetCatches=Captures de faune accessoire observe.type.setSeineSchoolEstimate=Estimation de banc ===================================== application-swing/src/main/java/fr/ird/observe/application/swing/ui/ObserveKeyStrokes.java ===================================== --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/ObserveKeyStrokes.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/ObserveKeyStrokes.java @@ -94,6 +94,8 @@ public abstract class ObserveKeyStrokes { public static final KeyStroke KEY_STROKE_GO_TAB_4 = KeyStroke.getKeyStroke("ctrl pressed F8"); public static final KeyStroke KEY_STROKE_GO_TAB_5 = KeyStroke.getKeyStroke("ctrl pressed F9"); public static final KeyStroke KEY_STROKE_GO_TAB_6 = KeyStroke.getKeyStroke("ctrl pressed F10"); + public static final KeyStroke KEY_STROKE_COPY_FLOATING_OBJECT_PART_TO_RIGHT = KeyStroke.getKeyStroke("ctrl R"); + public static final KeyStroke KEY_STROKE_COPY_FLOATING_OBJECT_PART_TO_LEFT = KeyStroke.getKeyStroke("ctrl L"); public static final KeyStroke KEY_STROKE_GO_SUB_TAB_1 = KeyStroke.getKeyStroke("shift ctrl pressed F5"); public static final KeyStroke KEY_STROKE_GO_SUB_TAB_2 = KeyStroke.getKeyStroke("shift ctrl pressed F6"); ===================================== application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/CopyFloatingObjectPartToLeftAction.java ===================================== --- /dev/null +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/CopyFloatingObjectPartToLeftAction.java @@ -0,0 +1,62 @@ +package fr.ird.observe.application.swing.ui.actions.content; + +import fr.ird.observe.application.swing.ui.ObserveKeyStrokes; +import fr.ird.observe.application.swing.ui.ObserveMainUI; +import fr.ird.observe.application.swing.ui.content.ContentUI; +import fr.ird.observe.application.swing.ui.content.impl.seine.FloatingObjectPartsTreeNode; +import fr.ird.observe.application.swing.ui.content.impl.seine.FloatingObjectUI; +import java.util.Enumeration; +import javax.swing.SwingUtilities; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.jdesktop.swingx.JXTreeTable; +import org.jdesktop.swingx.treetable.DefaultMutableTreeTableNode; +import org.jdesktop.swingx.treetable.DefaultTreeTableModel; +import org.jdesktop.swingx.treetable.MutableTreeTableNode; + + +import static org.nuiton.i18n.I18n.t; + +/** + * Created by tchemit on 20/06/17. + * + * @author Tony Chemit - dev@tchemit.fr + */ +public class CopyFloatingObjectPartToLeftAction extends AbstractContentUIAction { + + public static final String ACTION_NAME = CopyFloatingObjectPartToLeftAction.class.getSimpleName(); + + /** Logger. */ + private static final Log log = LogFactory.getLog(CopyFloatingObjectPartToLeftAction.class); + + public CopyFloatingObjectPartToLeftAction(ObserveMainUI mainUI) { + super(mainUI, ACTION_NAME, t("observe.action.copyFloatingObjectPartToLeft"), + t("observe.action.copyFloatingObjectPartToLeft.tip"), "copyToLeft", ObserveKeyStrokes.KEY_STROKE_COPY_FLOATING_OBJECT_PART_TO_LEFT); + } + + @Override + protected void actionPerformed(ContentUI<?, ?> contentUI) { + + FloatingObjectUI ui = (FloatingObjectUI) contentUI; + JXTreeTable table = ui.getSubTabbedPane().getModel().getSelectedIndex() == 0 ? ui.getSimpleTable() : ui.getDetailedTable(); + log.info("Start action from " + table); + DefaultTreeTableModel treeTableModel = (DefaultTreeTableModel) table.getTreeTableModel(); + DefaultMutableTreeTableNode root = (DefaultMutableTreeTableNode) treeTableModel.getRoot(); + Enumeration<? extends MutableTreeTableNode> children = root.children(); + while (children.hasMoreElements()) { + FloatingObjectPartsTreeNode mutableTreeTableNode = (FloatingObjectPartsTreeNode) children.nextElement(); + move(treeTableModel, mutableTreeTableNode); + } + } + + private void move(DefaultTreeTableModel treeTableModel, FloatingObjectPartsTreeNode node) { + + boolean newValue = (boolean) node.getValueAt(2); + treeTableModel.setValueAt(newValue, node, 1); + + for (FloatingObjectPartsTreeNode childNode : node) { + move(treeTableModel, childNode); + } + + } +} ===================================== application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/CopyFloatingObjectPartToRightAction.java ===================================== --- /dev/null +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/CopyFloatingObjectPartToRightAction.java @@ -0,0 +1,63 @@ +package fr.ird.observe.application.swing.ui.actions.content; + +import fr.ird.observe.application.swing.ui.ObserveKeyStrokes; +import fr.ird.observe.application.swing.ui.ObserveMainUI; +import fr.ird.observe.application.swing.ui.content.ContentUI; +import fr.ird.observe.application.swing.ui.content.impl.seine.FloatingObjectPartsTreeNode; +import fr.ird.observe.application.swing.ui.content.impl.seine.FloatingObjectUI; +import java.util.Enumeration; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.jdesktop.swingx.JXTreeTable; +import org.jdesktop.swingx.treetable.DefaultMutableTreeTableNode; +import org.jdesktop.swingx.treetable.DefaultTreeTableModel; +import org.jdesktop.swingx.treetable.MutableTreeTableNode; + + +import static org.nuiton.i18n.I18n.t; + +/** + * Created by tchemit on 20/06/17. + * + * @author Tony Chemit - dev@tchemit.fr + */ +public class CopyFloatingObjectPartToRightAction extends AbstractContentUIAction { + + public static final String ACTION_NAME = CopyFloatingObjectPartToRightAction.class.getSimpleName(); + + /** Logger. */ + private static final Log log = LogFactory.getLog(CopyFloatingObjectPartToRightAction.class); + + public CopyFloatingObjectPartToRightAction(ObserveMainUI mainUI) { + super(mainUI, ACTION_NAME, t("observe.action.copyFloatingObjectPartToRight"), + t("observe.action.copyFloatingObjectPartToRight.tip"), "copyToRight", ObserveKeyStrokes.KEY_STROKE_COPY_FLOATING_OBJECT_PART_TO_RIGHT); + } + + @Override + protected void actionPerformed(ContentUI<?, ?> contentUI) { + + FloatingObjectUI ui = (FloatingObjectUI) contentUI; + JXTreeTable table = ui.getSubTabbedPane().getModel().getSelectedIndex() == 0 ? ui.getSimpleTable() : ui.getDetailedTable(); + log.info("Start action from " + table); + + DefaultTreeTableModel treeTableModel = (DefaultTreeTableModel) table.getTreeTableModel(); + DefaultMutableTreeTableNode root = (DefaultMutableTreeTableNode) treeTableModel.getRoot(); + Enumeration<? extends MutableTreeTableNode> children = root.children(); + while (children.hasMoreElements()) { + FloatingObjectPartsTreeNode mutableTreeTableNode = (FloatingObjectPartsTreeNode) children.nextElement(); + move(treeTableModel, mutableTreeTableNode); + } + table.revalidate(); + } + + private void move(DefaultTreeTableModel treeTableModel, FloatingObjectPartsTreeNode node) { + + boolean newValue = (boolean) node.getValueAt(1); + treeTableModel.setValueAt(newValue, node, 2); + + for (FloatingObjectPartsTreeNode childNode : node) { + move(treeTableModel, childNode); + } + + } +} ===================================== application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/menu/navigation/GotoActionSupport.java ===================================== --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/menu/navigation/GotoActionSupport.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/menu/navigation/GotoActionSupport.java @@ -76,9 +76,7 @@ public abstract class GotoActionSupport extends AbstractUIAction { DataContext dataContext = ObserveSwingApplicationContext.get().getDataContext(); boolean open = computeIsOpen(dataContext); - if (log.isInfoEnabled()) { - log.info("Action [" + getValue(ACTION_COMMAND_KEY) + "] - open? " + open); - } + log.debug("Action [" + getValue(ACTION_COMMAND_KEY) + "] - open? " + open); setEnabled(open); } ===================================== application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ObserveActionMap.java ===================================== --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ObserveActionMap.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ObserveActionMap.java @@ -88,7 +88,7 @@ public class ObserveActionMap extends ActionMap { // action globale Class<AbstractGlobalUIAction> globalActionType = (Class) actionType; if (log.isInfoEnabled()) { - log.info("Register global action: " + actionId + " - type: " + globalActionType.getName()); + log.debug("Register global action: " + actionId + " - type: " + globalActionType.getName()); } Optional<AbstractGlobalUIAction> globalUIAction = newAction(actionId, globalActionType); if (globalUIAction.isPresent()) { @@ -101,7 +101,7 @@ public class ObserveActionMap extends ActionMap { // action simple if (log.isInfoEnabled()) { - log.info("Register action: " + actionId + " - type: " + actionType.getName()); + log.debug("Register simple action: " + actionId + " - type: " + actionType.getName()); } mappingBuilder.put(actionId, actionType); @@ -112,6 +112,8 @@ public class ObserveActionMap extends ActionMap { mapping = mappingBuilder.build(); globalActions = globalActionsBuilder.build(); + log.info(String.format("Load %d simple action(s).", mapping.size())); + log.info(String.format("Load %d global action(s).", globalActions.size())); } ===================================== application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/seine/FloatingObjectPartsTreeNode.java ===================================== --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/seine/FloatingObjectPartsTreeNode.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/seine/FloatingObjectPartsTreeNode.java @@ -24,6 +24,7 @@ package fr.ird.observe.application.swing.ui.content.impl.seine; import fr.ird.observe.services.dto.referential.seine.ObjectMaterialDto; import fr.ird.observe.services.dto.seine.ObjectMaterialHierarchyDto; +import java.util.Iterator; import org.jdesktop.swingx.treetable.AbstractMutableTreeTableNode; import org.nuiton.decorator.Decorator; @@ -32,7 +33,7 @@ import org.nuiton.decorator.Decorator; * * @author Tony Chemit - dev@tchemit.fr */ -public class FloatingObjectPartsTreeNode extends AbstractMutableTreeTableNode { +public class FloatingObjectPartsTreeNode extends AbstractMutableTreeTableNode implements Iterable<FloatingObjectPartsTreeNode> { private final FloatingObjectUIModel model; private final Decorator<ObjectMaterialDto> decorator; @@ -85,4 +86,9 @@ public class FloatingObjectPartsTreeNode extends AbstractMutableTreeTableNode { public int getColumnCount() { return 3; } + + @Override + public Iterator<FloatingObjectPartsTreeNode> iterator() { + return (Iterator) children.iterator(); + } } ===================================== application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/seine/FloatingObjectUI.jaxx ===================================== --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/seine/FloatingObjectUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/seine/FloatingObjectUI.jaxx @@ -28,6 +28,8 @@ fr.ird.observe.services.dto.reference.ReferentialReference fr.ird.observe.services.dto.referential.seine.ObjectOperationDto fr.ird.observe.services.dto.referential.seine.ObjectTypeDto + fr.ird.observe.application.swing.ui.actions.content.CopyFloatingObjectPartToLeftAction + fr.ird.observe.application.swing.ui.actions.content.CopyFloatingObjectPartToRightAction fr.ird.observe.application.swing.ui.actions.content.DeleteDataUIAction fr.ird.observe.application.swing.ui.actions.content.ResetEditUIAction fr.ird.observe.application.swing.ui.actions.content.SaveEditUIAction @@ -62,60 +64,69 @@ <!-- formulaire --> <JPanel id="body" layout='{new BorderLayout()}'> <Table insets="0" fill="both" constraints='BorderLayout.CENTER'> - <row> - <cell anchor="north" weightx="1" weighty="1"> - <JTabbedPane id='mainTabbedPane'> - <tab id='generalTab'> - <Table fill='both'> - <row> - <cell anchor='west'> - <JLabel id='objectOperationLabel'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <BeanComboBox id='objectOperation' constructorParams='this' _entityClass='ObjectOperationDto.class' - genericType='ReferentialReference<ObjectOperationDto>'/> - </cell> - </row> - <row> - <cell anchor='west'> - <JLabel id='objectTypeLabel'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <BeanComboBox id='objectType' constructorParams='this' genericType='ReferentialReference<ObjectTypeDto>' - _entityClass='ObjectTypeDto.class'/> - </cell> - </row> - <row> - <cell columns='2' fill="both" weighty="0.7"> - <JComment id="comment"/> - </cell> - </row> - </Table> - </tab> - <tab id='materialsTab'> - <Table insets="0" fill="both"> - <row> - <cell anchor="north" weightx="1" weighty="1"> - <JTabbedPane id='subTabbedPane'> - <tab id='simpleFormTab'> - <JScrollPane id='simpleTableScroll'> - <JXTreeTable id='simpleTable'/> - </JScrollPane> - </tab> - <tab id='detailedFormTab'> - <JScrollPane id='detailedTableScroll'> - <JXTreeTable id='detailedTable'/> - </JScrollPane> - </tab> - </JTabbedPane> - </cell> - </row> - </Table> - </tab> - </JTabbedPane> - </cell> - </row> - </Table> + <row> + <cell anchor="north" weightx="1" weighty="1"> + <JTabbedPane id='mainTabbedPane'> + <tab id='generalTab'> + <Table fill='both'> + <row> + <cell anchor='west'> + <JLabel id='objectOperationLabel'/> + </cell> + <cell anchor='east' weightx="1" fill="both"> + <BeanComboBox id='objectOperation' constructorParams='this' _entityClass='ObjectOperationDto.class' + genericType='ReferentialReference<ObjectOperationDto>'/> + </cell> + </row> + <row> + <cell anchor='west'> + <JLabel id='objectTypeLabel'/> + </cell> + <cell anchor='east' weightx="1" fill="both"> + <BeanComboBox id='objectType' constructorParams='this' + genericType='ReferentialReference<ObjectTypeDto>' + _entityClass='ObjectTypeDto.class'/> + </cell> + </row> + <row> + <cell columns='2' fill="both" weighty="0.7"> + <JComment id="comment"/> + </cell> + </row> + </Table> + </tab> + <tab id='materialsTab'> + <Table insets="0" fill="both"> + <row> + <cell anchor="north" weightx="1" weighty="1"> + <JTabbedPane id='subTabbedPane'> + <tab id='simpleFormTab'> + <JScrollPane id='simpleTableScroll'> + <JXTreeTable id='simpleTable'/> + </JScrollPane> + </tab> + <tab id='detailedFormTab'> + <JScrollPane id='detailedTableScroll'> + <JXTreeTable id='detailedTable'/> + </JScrollPane> + </tab> + </JTabbedPane> + </cell> + </row> + <row> + <cell> + <JPanel layout="{new GridLayout(1,0)}"> + <JButton id="fromLeftToRight"/> + <JButton id="fromRightToLeft"/> + </JPanel> + </cell> + </row> + </Table> + </tab> + </JTabbedPane> + </cell> + </row> + </Table> </JPanel> <!-- actions --> ===================================== application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/seine/FloatingObjectUI.jcss ===================================== --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/seine/FloatingObjectUI.jcss +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/seine/FloatingObjectUI.jcss @@ -47,6 +47,16 @@ BeanComboBox { icon:{getHandler().getErrorIconIfFalse(model.isSimpleFormTabValid())}; } +#fromLeftToRight { + _observeAction:{CopyFloatingObjectPartToRightAction.ACTION_NAME}; + focusable:false; +} + +#fromRightToLeft { + _observeAction:{CopyFloatingObjectPartToLeftAction.ACTION_NAME}; + focusable:false; +} + #detailedFormTab { title:{t("observe.content.floatingObject.tab.detailedForm")}; icon:{getHandler().getErrorIconIfFalse(model.isDetailedFormTabValid())}; ===================================== application-swing/src/main/resources/i18n/application-swing_en_GB.properties ===================================== --- a/application-swing/src/main/resources/i18n/application-swing_en_GB.properties +++ b/application-swing/src/main/resources/i18n/application-swing_en_GB.properties @@ -60,6 +60,10 @@ observe.action.copy.column.headers.tip=Add in result column headers observe.action.copy.row.headers=Copy row header observe.action.copy.row.headers.tip=Add in result row headers observe.action.copy.to.clipBoard=Copy in clipboard +observe.action.copyFloatingObjectPartToLeft=Copy values from leaving to arriving +observe.action.copyFloatingObjectPartToLeft.tip=Copy values from leaving to arriving +observe.action.copyFloatingObjectPartToRight=Copy values from arriving to leaving +observe.action.copyFloatingObjectPartToRight.tip=Copy values from arriving to leaving observe.action.create=Create observe.action.delete=Delete observe.action.delete.activity.tip=Delete activity ===================================== application-swing/src/main/resources/i18n/application-swing_es_ES.properties ===================================== --- a/application-swing/src/main/resources/i18n/application-swing_es_ES.properties +++ b/application-swing/src/main/resources/i18n/application-swing_es_ES.properties @@ -60,6 +60,10 @@ observe.action.copy.column.headers.tip=Añadir al resultado las cabeceras de col observe.action.copy.row.headers=Copiar las cabeceras de linea observe.action.copy.row.headers.tip=Añadir al resultado las cabeceras de linea (ej. la primera columna) observe.action.copy.to.clipBoard=Copiar el contenido en el portapapeles +observe.action.copyFloatingObjectPartToLeft=Copy values from leaving to arriving \#TODO +observe.action.copyFloatingObjectPartToLeft.tip=Copy values from leaving to arriving \#TODO +observe.action.copyFloatingObjectPartToRight=Copy values from arriving to leaving \#TODO +observe.action.copyFloatingObjectPartToRight.tip=Copy values from arriving to leaving \#TODO observe.action.create=Crear observe.action.delete=Eliminar observe.action.delete.activity.tip=Eliminar la actividad ===================================== application-swing/src/main/resources/i18n/application-swing_fr_FR.properties ===================================== --- a/application-swing/src/main/resources/i18n/application-swing_fr_FR.properties +++ b/application-swing/src/main/resources/i18n/application-swing_fr_FR.properties @@ -61,6 +61,10 @@ observe.action.copy.column.headers.tip=Ajoute dans le résultat les entêtes de observe.action.copy.row.headers=Copier les entêtes de ligne observe.action.copy.row.headers.tip=Ajoute dans le résultat les entêtes de ligne (i.e la première colonne) observe.action.copy.to.clipBoard=Copier le contenu dans le presse-papier +observe.action.copyFloatingObjectPartToLeft=Recopier les valeurs du départ vers l'arrivée +observe.action.copyFloatingObjectPartToLeft.tip=Recopier les valeurs du départ vers l'arrivée +observe.action.copyFloatingObjectPartToRight=Recopier les valeurs de l'arrivée vers de départ +observe.action.copyFloatingObjectPartToRight.tip=Recopier les valeurs de l'arrivée vers de départ observe.action.create=Créer observe.action.db.locale.es.tip=Changer la langue du référentiel en espagnol observe.action.db.locale.fr.tip=Changer la langue du référentiel en français @@ -474,7 +478,7 @@ observe.common.nextFpaZone=Zone FPA pénétrée observe.common.no.balise=Aucune balise lue observe.common.nonCoupSenne=Non coup de senne observe.common.nonTargetCatch=Faune accessoire conservée ou rejetée -observe.common.nonTargetCatchRelease=Faune accessoire libérée +observe.common.nonTargetCatchRelease=Faune accessoire sensible libérée observe.common.nonTargetObservation=Faune associée observe.common.nonTargetSample=Echantillon faune accessoire observe.common.objectFate=Devenir de l'objet ===================================== services-topia/src/main/java/fr/ird/observe/services/topia/service/data/seine/FloatingObjectServiceTopia.java ===================================== --- a/services-topia/src/main/java/fr/ird/observe/services/topia/service/data/seine/FloatingObjectServiceTopia.java +++ b/services-topia/src/main/java/fr/ird/observe/services/topia/service/data/seine/FloatingObjectServiceTopia.java @@ -246,7 +246,7 @@ public class FloatingObjectServiceTopia extends ObserveServiceTopia implements F private ObjectMaterialHierarchyDto fillHierarchyDtos(Multimap<String, ObjectMaterial> childrenByParent, ReferentialLocale referentialLocale, ReferentialBinderSupport<ObserveReferentialEntity, ObjectMaterialDto> referentialBinder, ObjectMaterialDto topLevelMaterial, Set<String> idsDone) { - Collection<ObjectMaterial> childrenEntities = childrenByParent.get(topLevelMaterial.getCode()); + Collection<ObjectMaterial> childrenEntities = childrenByParent.get(topLevelMaterial.getId()); List<ObjectMaterialDto> children = childrenEntities.stream().map(d -> referentialBinder.toDto(referentialLocale, d)).collect(Collectors.toList()); View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/commit/cf893a629493ab0feb78311f8ab8... --- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/commit/cf893a629493ab0feb78311f8ab8... You're receiving this email because of your account on gitlab.com.