[tutti] branch feature/5997 updated (a5fd69d -> f95f58e)
This is an automated email from the git hooks/post-receive script. New change to branch feature/5997 in repository tutti. See http://git.codelutin.com/tutti.git from a5fd69d refs #5997 adapt import - export models new 501fc03 refs #5997 [IMPORT] Améliorer la gestion des référentiels temporaires add export existing data buttons (and replace button rows by combobox) new f95f58e refs #5997 [IMPORT] Améliorer la gestion des référentiels temporaires The 2 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "adds" were already present in the repository and have only been added to this reference. Detailed log of new commits: commit f95f58e1cb2a3e76e2bbb57d4295942b45860b15 Author: Kevin Morin <morin@codelutin.com> Date: Thu Oct 23 18:13:22 2014 +0200 refs #5997 [IMPORT] Améliorer la gestion des référentiels temporaires commit 501fc03614fcf25262ece047458d0603e19e394e Author: Kevin Morin <morin@codelutin.com> Date: Thu Oct 23 12:13:31 2014 +0200 refs #5997 [IMPORT] Améliorer la gestion des référentiels temporaires add export existing data buttons (and replace button rows by combobox) Summary of changes: .../filtered-resources/tutti-help-fr.properties | 29 +----- .../action/ExportExistingTemporaryGearAction.java | 1 + .../ExportExistingTemporaryPersonAction.java | 1 + .../ExportExistingTemporarySpeciesAction.java | 1 + .../ExportExistingTemporaryVesselAction.java | 1 + .../ui/swing/action/ImportTemporaryGearAction.java | 1 + .../swing/action/ImportTemporaryPersonAction.java | 1 + .../swing/action/ImportTemporarySpeciesAction.java | 1 + .../swing/action/ImportTemporaryVesselAction.java | 1 + .../action/OpenReplaceTemporaryGearUIAction.java | 5 + .../action/OpenReplaceTemporaryPersonUIAction.java | 6 +- .../OpenReplaceTemporarySpeciesUIAction.java | 5 + .../action/OpenReplaceTemporaryVesselUIAction.java | 5 + .../swing/content/home/SelectCruiseUIHandler.java | 11 +-- .../catches/benthos/BenthosBatchRowModel.java | 5 - .../catches/species/SpeciesBatchRowModel.java | 4 - .../referential/ManageTemporaryReferentialUI.css | 52 ++++++++++ .../referential/ManageTemporaryReferentialUI.jaxx | 54 +++++++---- .../ManageTemporaryReferentialUIHandler.java | 108 ++++++++++++++++++++- .../ifremer/tutti/ui/swing/util/TuttiUIUtil.java | 13 ++- .../resources/i18n/tutti-ui-swing_en_GB.properties | 13 +++ .../resources/i18n/tutti-ui-swing_fr_FR.properties | 22 ++++- 22 files changed, 270 insertions(+), 70 deletions(-) -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/5997 in repository tutti. See http://git.codelutin.com/tutti.git commit 501fc03614fcf25262ece047458d0603e19e394e Author: Kevin Morin <morin@codelutin.com> Date: Thu Oct 23 12:13:31 2014 +0200 refs #5997 [IMPORT] Améliorer la gestion des référentiels temporaires add export existing data buttons (and replace button rows by combobox) --- .../filtered-resources/tutti-help-fr.properties | 29 +----- .../action/ExportExistingTemporaryGearAction.java | 1 + .../ExportExistingTemporaryPersonAction.java | 1 + .../ExportExistingTemporarySpeciesAction.java | 1 + .../ExportExistingTemporaryVesselAction.java | 1 + .../ui/swing/action/ImportTemporaryGearAction.java | 1 + .../swing/action/ImportTemporaryPersonAction.java | 1 + .../swing/action/ImportTemporarySpeciesAction.java | 1 + .../swing/action/ImportTemporaryVesselAction.java | 1 + .../action/OpenReplaceTemporaryGearUIAction.java | 5 + .../action/OpenReplaceTemporaryPersonUIAction.java | 6 +- .../OpenReplaceTemporarySpeciesUIAction.java | 5 + .../action/OpenReplaceTemporaryVesselUIAction.java | 5 + .../swing/content/home/SelectCruiseUIHandler.java | 11 +-- .../catches/benthos/BenthosBatchRowModel.java | 5 - .../catches/species/SpeciesBatchRowModel.java | 4 - .../referential/ManageTemporaryReferentialUI.css | 52 ++++++++++ .../referential/ManageTemporaryReferentialUI.jaxx | 54 +++++++---- .../ManageTemporaryReferentialUIHandler.java | 108 ++++++++++++++++++++- .../ifremer/tutti/ui/swing/util/TuttiUIUtil.java | 13 ++- .../resources/i18n/tutti-ui-swing_en_GB.properties | 13 +++ .../resources/i18n/tutti-ui-swing_fr_FR.properties | 14 ++- 22 files changed, 266 insertions(+), 66 deletions(-) diff --git a/tutti-ui-swing/src/main/filtered-resources/tutti-help-fr.properties b/tutti-ui-swing/src/main/filtered-resources/tutti-help-fr.properties index 27f7d63..960983d 100644 --- a/tutti-ui-swing/src/main/filtered-resources/tutti-help-fr.properties +++ b/tutti-ui-swing/src/main/filtered-resources/tutti-help-fr.properties @@ -1,28 +1,5 @@ -### -# #%L -# Tutti :: UI -# $Id:$ -# $HeadURL:$ -# %% -# Copyright (C) 2012 - 2014 Ifremer -# %% -# 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% -### #Generated by org.nuiton.jaxx.plugin.GenerateHelpIdsMojo -#Tue Sep 02 15:54:43 CEST 2014 +#Thu Oct 23 12:12:24 CEST 2014 tutti.config.help=config.html tutti.createAccidentalBatch.action.cancel.help=editFishingOperation.html\#captureCapturesAccidentellesActions tutti.createAccidentalBatch.action.saveAndClose.help=editFishingOperation.html\#captureCapturesAccidentellesActions @@ -357,6 +334,10 @@ tutti.main.menu.action.updateReport.help=menu.html\#menu_fichier tutti.main.menu.action.validateCatches.help=menu.html\#menu_action tutti.main.status.ichtyometer.help=menu.html\#status tutti.main.status.validation.help=menu.html\#status +tutti.manageTemporaryReferential.action.exportExistingTemporaryGear.help= +tutti.manageTemporaryReferential.action.exportExistingTemporaryPerson.help= +tutti.manageTemporaryReferential.action.exportExistingTemporarySpecies.help= +tutti.manageTemporaryReferential.action.exportExistingTemporaryVessel.help= tutti.manageTemporaryReferential.action.exportTemporaryGearExample.help=menu.html\#menu_administration_referentiel tutti.manageTemporaryReferential.action.exportTemporaryPersonExample.help=menu.html\#menu_administration_referentiel tutti.manageTemporaryReferential.action.exportTemporarySpeciesExample.help=menu.html\#menu_administration_referentiel diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ExportExistingTemporaryGearAction.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ExportExistingTemporaryGearAction.java index 3f03f94..c29a55e 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ExportExistingTemporaryGearAction.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ExportExistingTemporaryGearAction.java @@ -89,6 +89,7 @@ public class ExportExistingTemporaryGearAction extends AbstractTuttiAction<Tutti ReferentialExportService service = getContext().getTuttiReferentialExportService(); service.exportExistingTemporaryGear(file); + getHandler().resetExportGearsAction(); } @Override diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ExportExistingTemporaryPersonAction.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ExportExistingTemporaryPersonAction.java index 40ff64f..c7b5419 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ExportExistingTemporaryPersonAction.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ExportExistingTemporaryPersonAction.java @@ -90,6 +90,7 @@ public class ExportExistingTemporaryPersonAction extends AbstractTuttiAction<Tut ReferentialExportService service = getContext().getTuttiReferentialExportService(); service.exportExistingTemporaryPerson(file); + getHandler().resetExportPersonAction(); } @Override diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ExportExistingTemporarySpeciesAction.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ExportExistingTemporarySpeciesAction.java index aed0f77..3a8fa82 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ExportExistingTemporarySpeciesAction.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ExportExistingTemporarySpeciesAction.java @@ -89,6 +89,7 @@ public class ExportExistingTemporarySpeciesAction extends AbstractTuttiAction<Tu ReferentialExportService service = getContext().getTuttiReferentialExportService(); service.exportExistingTemporarySpecies(file); + getHandler().resetExportSpeciesAction(); } @Override diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ExportExistingTemporaryVesselAction.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ExportExistingTemporaryVesselAction.java index 267d803..60acd90 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ExportExistingTemporaryVesselAction.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ExportExistingTemporaryVesselAction.java @@ -89,6 +89,7 @@ public class ExportExistingTemporaryVesselAction extends AbstractTuttiAction<Tut ReferentialExportService service = getContext().getTuttiReferentialExportService(); service.exportExistingTemporaryVessel(file); + getHandler().resetExportVesselsAction(); } @Override diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ImportTemporaryGearAction.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ImportTemporaryGearAction.java index 775c0ca..ffb2617 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ImportTemporaryGearAction.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ImportTemporaryGearAction.java @@ -90,6 +90,7 @@ public class ImportTemporaryGearAction extends AbstractTuttiAction<TuttiUIContex // reset ui cache getDataContext().resetGears(); + getHandler().resetExportGearsAction(); } @Override diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ImportTemporaryPersonAction.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ImportTemporaryPersonAction.java index 3ed7033..e04b90e 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ImportTemporaryPersonAction.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ImportTemporaryPersonAction.java @@ -92,6 +92,7 @@ public class ImportTemporaryPersonAction extends AbstractTuttiAction<TuttiUICont // reset ui cache getDataContext().resetPersons(); + getHandler().resetExportPersonAction(); } @Override diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ImportTemporarySpeciesAction.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ImportTemporarySpeciesAction.java index a3d9107..f46de21 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ImportTemporarySpeciesAction.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ImportTemporarySpeciesAction.java @@ -91,6 +91,7 @@ public class ImportTemporarySpeciesAction extends AbstractTuttiAction<TuttiUICon // reset ui cache getDataContext().resetSpecies(); + getHandler().resetExportSpeciesAction(); } @Override diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ImportTemporaryVesselAction.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ImportTemporaryVesselAction.java index 1c9aac0..1752611 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ImportTemporaryVesselAction.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ImportTemporaryVesselAction.java @@ -91,6 +91,7 @@ public class ImportTemporaryVesselAction extends AbstractTuttiAction<TuttiUICont // reset ui cache getDataContext().resetVessels(); + getHandler().resetExportVesselsAction(); } @Override diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/OpenReplaceTemporaryGearUIAction.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/OpenReplaceTemporaryGearUIAction.java index 4a6f2d9..f55b66d 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/OpenReplaceTemporaryGearUIAction.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/OpenReplaceTemporaryGearUIAction.java @@ -70,4 +70,9 @@ public class OpenReplaceTemporaryGearUIAction extends AbstractOpenReplaceTempora return targetList; } + @Override + public void doAction() throws Exception { + super.doAction(); + getHandler().resetExportGearsAction(); + } } \ No newline at end of file diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/OpenReplaceTemporaryPersonUIAction.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/OpenReplaceTemporaryPersonUIAction.java index b2f0a20..f594ed4 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/OpenReplaceTemporaryPersonUIAction.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/OpenReplaceTemporaryPersonUIAction.java @@ -69,5 +69,9 @@ public class OpenReplaceTemporaryPersonUIAction extends AbstractOpenReplaceTempo return targetList; } - + @Override + public void doAction() throws Exception { + super.doAction(); + getHandler().resetExportPersonAction(); + } } \ No newline at end of file diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/OpenReplaceTemporarySpeciesUIAction.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/OpenReplaceTemporarySpeciesUIAction.java index 0215077..ee8aa6f 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/OpenReplaceTemporarySpeciesUIAction.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/OpenReplaceTemporarySpeciesUIAction.java @@ -69,4 +69,9 @@ public class OpenReplaceTemporarySpeciesUIAction extends AbstractOpenReplaceTemp return targetList; } + @Override + public void doAction() throws Exception { + super.doAction(); + getHandler().resetExportSpeciesAction(); + } } \ No newline at end of file diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/OpenReplaceTemporaryVesselUIAction.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/OpenReplaceTemporaryVesselUIAction.java index 8d87ba7..b6e75af 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/OpenReplaceTemporaryVesselUIAction.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/OpenReplaceTemporaryVesselUIAction.java @@ -70,4 +70,9 @@ public class OpenReplaceTemporaryVesselUIAction extends AbstractOpenReplaceTempo return targetList; } + @Override + public void doAction() throws Exception { + super.doAction(); + getHandler().resetExportVesselsAction(); + } } \ No newline at end of file diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUIHandler.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUIHandler.java index 1545c9d..65c8bcc 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUIHandler.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUIHandler.java @@ -28,6 +28,7 @@ import fr.ifremer.tutti.persistence.entities.data.Program; import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol; import fr.ifremer.tutti.service.PersistenceService; import fr.ifremer.tutti.ui.swing.util.AbstractTuttiUIHandler; +import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil; import jaxx.runtime.swing.editor.bean.BeanFilterableComboBox; import jaxx.runtime.validator.swing.SwingValidator; import org.apache.commons.collections4.CollectionUtils; @@ -58,14 +59,6 @@ public class SelectCruiseUIHandler extends AbstractTuttiUIHandler<SelectCruiseUI private static final Log log = LogFactory.getLog(SelectCruiseUIHandler.class); - public static final MouseListener GRAB_FOCUS_ON_ENTER_LISTENER = new MouseAdapter() { - @Override - public void mouseEntered(MouseEvent e) { - JComponent source = (JComponent) e.getSource(); - source.grabFocus(); - } - }; - @Override public SwingValidator<SelectCruiseUIModel> getValidator() { return ui.getValidator(); @@ -350,6 +343,6 @@ public class SelectCruiseUIHandler extends AbstractTuttiUIHandler<SelectCruiseUI protected void initActionComboBox(JComboBox combo) { combo.putClientProperty("JComboBox.isTableCellEditor", Boolean.TRUE); - combo.addMouseListener(GRAB_FOCUS_ON_ENTER_LISTENER); + combo.addMouseListener(TuttiUIUtil.GRAB_FOCUS_ON_ENTER_LISTENER); } } diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchRowModel.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchRowModel.java index 4ab6c92..7b14901 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchRowModel.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchRowModel.java @@ -453,11 +453,6 @@ public class BenthosBatchRowModel extends AbstractTuttiBeanUIModel<BenthosBatch, editObject.setRankOrder(rankOrder); } - @Override - public void setParentBatch(SpeciesAbleBatch parentBatch) { - - } - //------------------------------------------------------------------------// //-- SampleCategoryAble --// //------------------------------------------------------------------------// diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchRowModel.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchRowModel.java index f634fd7..83abebf 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchRowModel.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchRowModel.java @@ -442,10 +442,6 @@ public class SpeciesBatchRowModel extends AbstractTuttiBeanUIModel<SpeciesBatch, editObject.setRankOrder(rankOrder); } - @Override - public void setParentBatch(SpeciesAbleBatch parentBatch) { - } - //------------------------------------------------------------------------// //-- SampleCategoryAble --// //------------------------------------------------------------------------// diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ManageTemporaryReferentialUI.css b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ManageTemporaryReferentialUI.css index 02691e9..e340a55 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ManageTemporaryReferentialUI.css +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ManageTemporaryReferentialUI.css @@ -35,6 +35,11 @@ icon: {SwingUtil.createImageIcon("action-species.gif")}; } +#speciesActionComboBox { + model: {SwingUtil.newComboModel(exportSpeciesExampleButton, exportExistingSpeciesButton, importSpeciesButton, replaceSpeciesButton)}; + renderer: {new ActionListCellRenderer()}; +} + #exportSpeciesExampleButton { actionIcon: export; text: "tutti.manageTemporaryReferential.action.exportTemporarySpeciesExample"; @@ -43,6 +48,14 @@ _help: {"tutti.manageTemporaryReferential.action.exportTemporarySpeciesExample.help"}; } +#exportExistingSpeciesButton { + actionIcon: export; + text: "tutti.manageTemporaryReferential.action.exportExistingTemporarySpecies"; + _applicationAction: {fr.ifremer.tutti.ui.swing.action.ExportExistingTemporarySpeciesAction.class}; + toolTipText: "tutti.manageTemporaryReferential.action.exportExistingTemporarySpecies.tip"; + _help: {"tutti.manageTemporaryReferential.action.exportExistingTemporarySpecies.help"}; +} + #importSpeciesButton { actionIcon: import; text: "tutti.manageTemporaryReferential.action.importTemporarySpecies"; @@ -65,6 +78,11 @@ actionIcon: vessel; } +#vesselActionComboBox { + model: {SwingUtil.newComboModel(exportVesselExampleButton, exportExistingVesselButton, importVesselButton, replaceVesselButton)}; + renderer: {new ActionListCellRenderer()}; +} + #exportVesselExampleButton { actionIcon: export; text: "tutti.manageTemporaryReferential.action.exportTemporaryVesselExample"; @@ -73,6 +91,14 @@ _help: {"tutti.manageTemporaryReferential.action.exportTemporaryVesselExample.help"}; } +#exportExistingVesselButton { + actionIcon: export; + text: "tutti.manageTemporaryReferential.action.exportExistingTemporaryVessel"; + _applicationAction: {fr.ifremer.tutti.ui.swing.action.ExportExistingTemporaryVesselAction.class}; + toolTipText: "tutti.manageTemporaryReferential.action.exportExistingTemporaryVessel.tip"; + _help: {"tutti.manageTemporaryReferential.action.exportExistingTemporaryVessel.help"}; +} + #importVesselButton { actionIcon: import; text: "tutti.manageTemporaryReferential.action.importTemporaryVessel"; @@ -95,6 +121,11 @@ actionIcon: gear; } +#gearActionComboBox { + model: {SwingUtil.newComboModel(exportGearExampleButton, exportExistingGearButton, importGearButton, replaceGearButton)}; + renderer: {new ActionListCellRenderer()}; +} + #exportGearExampleButton { actionIcon: export; text: "tutti.manageTemporaryReferential.action.exportTemporaryGearExample"; @@ -103,6 +134,14 @@ _help: {"tutti.manageTemporaryReferential.action.exportTemporaryGearExample.help"}; } +#exportExistingGearButton { + actionIcon: export; + text: "tutti.manageTemporaryReferential.action.exportExistingTemporaryGear"; + _applicationAction: {fr.ifremer.tutti.ui.swing.action.ExportExistingTemporaryGearAction.class}; + toolTipText: "tutti.manageTemporaryReferential.action.exportExistingTemporaryGear.tip"; + _help: {"tutti.manageTemporaryReferential.action.exportExistingTemporaryGear.help"}; +} + #importGearButton { actionIcon: import; text: "tutti.manageTemporaryReferential.action.importTemporaryGear"; @@ -125,6 +164,19 @@ actionIcon: person; } +#personActionComboBox { + model: {SwingUtil.newComboModel(exportPersonExampleButton, exportExistingPersonButton, importPersonButton, replacePersonButton)}; + renderer: {new ActionListCellRenderer()}; +} + +#exportExistingPersonButton { + actionIcon: export; + text: "tutti.manageTemporaryReferential.action.exportExistingTemporaryPerson"; + _applicationAction: {fr.ifremer.tutti.ui.swing.action.ExportExistingTemporaryPersonAction.class}; + toolTipText: "tutti.manageTemporaryReferential.action.exportExistingTemporaryPerson.tip"; + _help: {"tutti.manageTemporaryReferential.action.exportExistingTemporaryPerson.help"}; +} + #exportPersonExampleButton { actionIcon: export; text: "tutti.manageTemporaryReferential.action.exportTemporaryPersonExample"; diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ManageTemporaryReferentialUI.jaxx b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ManageTemporaryReferentialUI.jaxx index 4b1bfbb..d4a1164 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ManageTemporaryReferentialUI.jaxx +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ManageTemporaryReferentialUI.jaxx @@ -29,6 +29,7 @@ fr.ifremer.tutti.ui.swing.TuttiUIContext fr.ifremer.tutti.ui.swing.util.TuttiUI fr.ifremer.tutti.ui.swing.util.TuttiUIUtil + org.nuiton.jaxx.application.swing.util.ActionListCellRenderer static org.nuiton.i18n.I18n.t </import> @@ -46,17 +47,33 @@ <TuttiHelpBroker id='broker' constructorParams='"tutti.manageTemporaryReferential.help"'/> + <JButton id='exportSpeciesExampleButton'/> + <JButton id='exportExistingSpeciesButton'/> + <JButton id='importSpeciesButton'/> + <JButton id='replaceSpeciesButton'/> + <JButton id='exportVesselExampleButton'/> + <JButton id='exportExistingVesselButton'/> + <JButton id='importVesselButton'/> + <JButton id='replaceVesselButton'/> + <JButton id='exportGearExampleButton'/> + <JButton id='exportExistingGearButton'/> + <JButton id='importGearButton'/> + <JButton id='replaceGearButton'/> + <JButton id='exportPersonExampleButton'/> + <JButton id='exportExistingPersonButton'/> + <JButton id='importPersonButton'/> + <JButton id='replacePersonButton'/> + <Table constraints='BorderLayout.CENTER'> <row> <cell> <JLabel id='speciesLabel'/> </cell> <cell> - <JPanel layout='{new GridLayout(1,0)}'> - <JButton id='exportSpeciesExampleButton'/> - <JButton id='importSpeciesButton'/> - <JButton id='replaceSpeciesButton'/> - </JPanel> + <JComboBox id='speciesActionComboBox' + onMouseEntered='speciesActionComboBox.showPopup()' + onMouseClicked='handler.startExportSpeciesAction(event)' + onActionPerformed='handler.startExportSpeciesAction(event)'/> </cell> </row> @@ -71,11 +88,10 @@ <JLabel id='vesselLabel'/> </cell> <cell> - <JPanel layout='{new GridLayout(1,0)}'> - <JButton id='exportVesselExampleButton'/> - <JButton id='importVesselButton'/> - <JButton id='replaceVesselButton'/> - </JPanel> + <JComboBox id='vesselActionComboBox' + onMouseEntered='vesselActionComboBox.showPopup()' + onMouseClicked='handler.startExportVesselsAction(event)' + onActionPerformed='handler.startExportVesselsAction(event)'/> </cell> </row> @@ -90,11 +106,10 @@ <JLabel id='gearLabel'/> </cell> <cell> - <JPanel layout='{new GridLayout(1,0)}'> - <JButton id='exportGearExampleButton'/> - <JButton id='importGearButton'/> - <JButton id='replaceGearButton'/> - </JPanel> + <JComboBox id='gearActionComboBox' + onMouseEntered='gearActionComboBox.showPopup()' + onMouseClicked='handler.startExportGearsAction(event)' + onActionPerformed='handler.startExportGearsAction(event)'/> </cell> </row> @@ -109,11 +124,10 @@ <JLabel id='personLabel'/> </cell> <cell> - <JPanel layout='{new GridLayout(1,0)}'> - <JButton id='exportPersonExampleButton'/> - <JButton id='importPersonButton'/> - <JButton id='replacePersonButton'/> - </JPanel> + <JComboBox id='personActionComboBox' + onMouseEntered='personActionComboBox.showPopup()' + onMouseClicked='handler.startExportPersonsAction(event)' + onActionPerformed='handler.startExportPersonsAction(event)'/> </cell> </row> diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ManageTemporaryReferentialUIHandler.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ManageTemporaryReferentialUIHandler.java index db7edb9..d25f10c 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ManageTemporaryReferentialUIHandler.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ManageTemporaryReferentialUIHandler.java @@ -24,11 +24,14 @@ package fr.ifremer.tutti.ui.swing.content.referential; import fr.ifremer.tutti.ui.swing.TuttiUIContext; import fr.ifremer.tutti.ui.swing.util.AbstractTuttiUIHandler; +import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil; import jaxx.runtime.validator.swing.SwingValidator; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import javax.swing.JComponent; +import javax.swing.*; +import java.awt.event.ActionEvent; +import java.awt.event.MouseEvent; /** * @author tchemit <chemit@codelutin.com> @@ -55,6 +58,11 @@ public class ManageTemporaryReferentialUIHandler extends AbstractTuttiUIHandler< public void afterInit(ManageTemporaryReferentialUI ui) { initUI(ui); + + initActionComboBox(ui.getSpeciesActionComboBox()); + initActionComboBox(ui.getVesselActionComboBox()); + initActionComboBox(ui.getGearActionComboBox()); + initActionComboBox(ui.getPersonActionComboBox()); } @Override @@ -73,4 +81,102 @@ public class ManageTemporaryReferentialUIHandler extends AbstractTuttiUIHandler< public SwingValidator<TuttiUIContext> getValidator() { return null; } + + + protected boolean resetExportSpeciesAction; + protected boolean resetExportVesselsAction; + protected boolean resetExportGearsAction; + protected boolean resetExportPersonsAction; + + public void resetExportSpeciesAction() { + resetExportSpeciesAction = true; + try { + ui.getSpeciesActionComboBox().setSelectedIndex(0); + } finally { + resetExportSpeciesAction = false; + } + } + + public void resetExportVesselsAction() { + resetExportVesselsAction = true; + try { + ui.getVesselActionComboBox().setSelectedIndex(0); + } finally { + resetExportVesselsAction = false; + } + } + + public void resetExportGearsAction() { + resetExportGearsAction = true; + try { + ui.getGearActionComboBox().setSelectedIndex(0); + } finally { + resetExportGearsAction = false; + } + } + + public void resetExportPersonAction() { + resetExportSpeciesAction = true; + try { + ui.getPersonActionComboBox().setSelectedIndex(0); + } finally { + resetExportPersonsAction = false; + } + } + + public void startExportSpeciesAction(MouseEvent event) { + startComboFirstAction(event); + } + + public void startExportSpeciesAction(ActionEvent event) { + startEditAction(!resetExportSpeciesAction, event); + } + + public void startExportVesselsAction(MouseEvent event) { + startComboFirstAction(event); + } + + public void startExportVesselsAction(ActionEvent event) { + startEditAction(!resetExportVesselsAction, event); + } + + public void startExportGearsAction(MouseEvent event) { + startComboFirstAction(event); + } + + public void startExportGearsAction(ActionEvent event) { + startEditAction(!resetExportGearsAction, event); + } + + public void startExportPersonsAction(MouseEvent event) { + startComboFirstAction(event); + } + + public void startExportPersonsAction(ActionEvent event) { + startEditAction(!resetExportPersonsAction, event); + } + + protected void startComboFirstAction(MouseEvent event) { + JComboBox combo = (JComboBox) event.getSource(); + getContext().getActionEngine().runAction((AbstractButton) combo.getItemAt(0)); + } + + protected void startEditAction(boolean canEdit, ActionEvent event) { + if (canEdit) { + JComboBox existingCombo = (JComboBox) event.getSource(); + JButton selectedAction = (JButton) existingCombo.getSelectedItem(); + // hide popup before performing the action, otherwise, if the action + // opens a popup, the user must click a first time to hide the combobox + // popup to then interact with the popup opened by the action + // (see http://forge.codelutin.com/issues/2032) + existingCombo.setSelectedIndex(0); + existingCombo.hidePopup(); + getContext().getActionEngine().runAction(selectedAction); + } + } + + protected void initActionComboBox(JComboBox combo) { + combo.putClientProperty("JComboBox.isTableCellEditor", Boolean.TRUE); + combo.addMouseListener(TuttiUIUtil.GRAB_FOCUS_ON_ENTER_LISTENER); + } } diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/TuttiUIUtil.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/TuttiUIUtil.java index 503f2c8..4f2b2b5 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/TuttiUIUtil.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/TuttiUIUtil.java @@ -34,7 +34,10 @@ import org.apache.commons.io.IOUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import javax.swing.ImageIcon; +import javax.swing.*; +import java.awt.event.MouseAdapter; +import java.awt.event.MouseEvent; +import java.awt.event.MouseListener; import java.io.InputStream; import java.net.MalformedURLException; import java.net.URL; @@ -57,6 +60,14 @@ public final class TuttiUIUtil extends ApplicationUIUtil { // never instanciate util class } + public static final MouseListener GRAB_FOCUS_ON_ENTER_LISTENER = new MouseAdapter() { + @Override + public void mouseEntered(MouseEvent e) { + JComponent source = (JComponent) e.getSource(); + source.grabFocus(); + } + }; + public static TuttiUIContext getApplicationContext(JAXXObject ui) { return (TuttiUIContext) ApplicationUIUtil.getApplicationContext(ui); } diff --git a/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties b/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties index 7276739..79d4b9d 100644 --- a/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties +++ b/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties @@ -1421,6 +1421,14 @@ tutti.manageTemporaryReferential.action.chooseReferentialVesselFile.export= tutti.manageTemporaryReferential.action.chooseReferentialVesselFile.export.success= tutti.manageTemporaryReferential.action.chooseReferentialVesselFile.import= tutti.manageTemporaryReferential.action.chooseReferentialVesselFile.import.success= +tutti.manageTemporaryReferential.action.exportExistingTemporaryGear= +tutti.manageTemporaryReferential.action.exportExistingTemporaryGear.tip= +tutti.manageTemporaryReferential.action.exportExistingTemporaryPerson= +tutti.manageTemporaryReferential.action.exportExistingTemporaryPerson.tip= +tutti.manageTemporaryReferential.action.exportExistingTemporarySpecies= +tutti.manageTemporaryReferential.action.exportExistingTemporarySpecies.tip= +tutti.manageTemporaryReferential.action.exportExistingTemporaryVessel= +tutti.manageTemporaryReferential.action.exportExistingTemporaryVessel.tip= tutti.manageTemporaryReferential.action.exportTemporaryGearExample= tutti.manageTemporaryReferential.action.exportTemporaryGearExample.tip= tutti.manageTemporaryReferential.action.exportTemporaryPersonExample= @@ -1458,6 +1466,10 @@ tutti.manageTemporaryReferential.passwordDialog.error.title= tutti.manageTemporaryReferential.passwordDialog.message= tutti.manageTemporaryReferential.passwordDialog.title= tutti.manageTemporaryReferential.title= +tutti.manageTemporaryReferential.title.choose.exportExistingTemporaryGearFile= +tutti.manageTemporaryReferential.title.choose.exportExistingTemporaryPersonFile= +tutti.manageTemporaryReferential.title.choose.exportExistingTemporarySpeciesFile= +tutti.manageTemporaryReferential.title.choose.exportExistingTemporaryVesselFile= tutti.manageTemporaryReferential.title.choose.exportTemporaryGearExampleFile= tutti.manageTemporaryReferential.title.choose.exportTemporaryPersonExampleFile= tutti.manageTemporaryReferential.title.choose.exportTemporarySpeciesExampleFile= @@ -1521,6 +1533,7 @@ tutti.reinstallDb.step.backupDb= tutti.reinstallDb.step.closeDb= tutti.reinstallDb.step.reloadApplication= tutti.replaceTemporary.done= +tutti.replaceTemporaryAndDelete.done= tutti.replaceTemporaryGear.done= tutti.replaceTemporaryGear.title= tutti.replaceTemporaryPerson.done= diff --git a/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties b/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties index aaa6e71..bd390b9 100644 --- a/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties +++ b/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties @@ -1378,6 +1378,14 @@ tutti.manageTemporaryReferential.action.chooseReferentialVesselFile.export=Expor tutti.manageTemporaryReferential.action.chooseReferentialVesselFile.export.success=Exemple de référentiel temporaire de navires exporté dans le fichier %s tutti.manageTemporaryReferential.action.chooseReferentialVesselFile.import=Importer tutti.manageTemporaryReferential.action.chooseReferentialVesselFile.import.success=Référentiel temporaire de navires importé depuis le fichier %s +tutti.manageTemporaryReferential.action.exportExistingTemporaryGear= +tutti.manageTemporaryReferential.action.exportExistingTemporaryGear.tip= +tutti.manageTemporaryReferential.action.exportExistingTemporaryPerson= +tutti.manageTemporaryReferential.action.exportExistingTemporaryPerson.tip= +tutti.manageTemporaryReferential.action.exportExistingTemporarySpecies= +tutti.manageTemporaryReferential.action.exportExistingTemporarySpecies.tip= +tutti.manageTemporaryReferential.action.exportExistingTemporaryVessel= +tutti.manageTemporaryReferential.action.exportExistingTemporaryVessel.tip= tutti.manageTemporaryReferential.action.exportTemporaryGearExample=Exporter tutti.manageTemporaryReferential.action.exportTemporaryGearExample.tip=Exporter un exemple de référentiel Engin tutti.manageTemporaryReferential.action.exportTemporaryPersonExample=Exporter @@ -1415,6 +1423,10 @@ tutti.manageTemporaryReferential.passwordDialog.error.title=Mot de passe incorre tutti.manageTemporaryReferential.passwordDialog.message=Vous souhaitez entrer dans une partie sensible de l'application tutti.manageTemporaryReferential.passwordDialog.title=Zone sensible tutti.manageTemporaryReferential.title=importer des référentiels temporaires +tutti.manageTemporaryReferential.title.choose.exportExistingTemporaryGearFile= +tutti.manageTemporaryReferential.title.choose.exportExistingTemporaryPersonFile= +tutti.manageTemporaryReferential.title.choose.exportExistingTemporarySpeciesFile= +tutti.manageTemporaryReferential.title.choose.exportExistingTemporaryVesselFile= tutti.manageTemporaryReferential.title.choose.exportTemporaryGearExampleFile=Exporter un exemple de référentiel Engin tutti.manageTemporaryReferential.title.choose.exportTemporaryPersonExampleFile=Exporter un exemple de référentiel Personne tutti.manageTemporaryReferential.title.choose.exportTemporarySpeciesExampleFile=Exporter un exemple de référentiel Espèce @@ -1457,8 +1469,8 @@ tutti.reimport.step.reloadApplication=Redémarrage de l'application... tutti.reinstallDb.step.backupDb=Sauvegarde de la base dans l'archive %s tutti.reinstallDb.step.closeDb=Fermeture de la base <strong>%s</strong> tutti.reinstallDb.step.reloadApplication=Redémarrage de l'application... -tutti.replaceTemporaryAndDelete.done=<html><body>Le référentiel temporaire de type %s <strong>%s</strong> a été remplacée par <strong>%s</strong> puis supprimé. tutti.replaceTemporary.done=<html><body>Le référentiel temporaire de type %s <strong>%s</strong> a été remplacée par <strong>%s</strong> +tutti.replaceTemporaryAndDelete.done=<html><body>Le référentiel temporaire de type %s <strong>%s</strong> a été remplacée par <strong>%s</strong> puis supprimé. tutti.replaceTemporaryGear.title=Remplacer un engin temporaire tutti.replaceTemporaryPerson.title=Remplacer un utilisateur temporaire tutti.replaceTemporaryReferential.action.cancel=Annuler -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/5997 in repository tutti. See http://git.codelutin.com/tutti.git commit f95f58e1cb2a3e76e2bbb57d4295942b45860b15 Author: Kevin Morin <morin@codelutin.com> Date: Thu Oct 23 18:13:22 2014 +0200 refs #5997 [IMPORT] Améliorer la gestion des référentiels temporaires --- .../resources/i18n/tutti-ui-swing_fr_FR.properties | 32 +++++++++++----------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties b/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties index bd390b9..280d5a9 100644 --- a/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties +++ b/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties @@ -1378,21 +1378,21 @@ tutti.manageTemporaryReferential.action.chooseReferentialVesselFile.export=Expor tutti.manageTemporaryReferential.action.chooseReferentialVesselFile.export.success=Exemple de référentiel temporaire de navires exporté dans le fichier %s tutti.manageTemporaryReferential.action.chooseReferentialVesselFile.import=Importer tutti.manageTemporaryReferential.action.chooseReferentialVesselFile.import.success=Référentiel temporaire de navires importé depuis le fichier %s -tutti.manageTemporaryReferential.action.exportExistingTemporaryGear= -tutti.manageTemporaryReferential.action.exportExistingTemporaryGear.tip= -tutti.manageTemporaryReferential.action.exportExistingTemporaryPerson= -tutti.manageTemporaryReferential.action.exportExistingTemporaryPerson.tip= -tutti.manageTemporaryReferential.action.exportExistingTemporarySpecies= -tutti.manageTemporaryReferential.action.exportExistingTemporarySpecies.tip= -tutti.manageTemporaryReferential.action.exportExistingTemporaryVessel= -tutti.manageTemporaryReferential.action.exportExistingTemporaryVessel.tip= -tutti.manageTemporaryReferential.action.exportTemporaryGearExample=Exporter +tutti.manageTemporaryReferential.action.exportExistingTemporaryGear=Exporter l'existant +tutti.manageTemporaryReferential.action.exportExistingTemporaryGear.tip=Exporter le référentiel Engin existant +tutti.manageTemporaryReferential.action.exportExistingTemporaryPerson=Exporter l'existant +tutti.manageTemporaryReferential.action.exportExistingTemporaryPerson.tip=Exporter le référentiel Personne existant +tutti.manageTemporaryReferential.action.exportExistingTemporarySpecies=Exporter l'existant +tutti.manageTemporaryReferential.action.exportExistingTemporarySpecies.tip=Exporter le référentiel Espèces existant +tutti.manageTemporaryReferential.action.exportExistingTemporaryVessel=Exporter l'existant +tutti.manageTemporaryReferential.action.exportExistingTemporaryVessel.tip=Exporter le référentiel Navire existant +tutti.manageTemporaryReferential.action.exportTemporaryGearExample=Exporter un exemple tutti.manageTemporaryReferential.action.exportTemporaryGearExample.tip=Exporter un exemple de référentiel Engin -tutti.manageTemporaryReferential.action.exportTemporaryPersonExample=Exporter +tutti.manageTemporaryReferential.action.exportTemporaryPersonExample=Exporter un exemple tutti.manageTemporaryReferential.action.exportTemporaryPersonExample.tip=Exporter un exemple de référentiel Personne -tutti.manageTemporaryReferential.action.exportTemporarySpeciesExample=Exporter +tutti.manageTemporaryReferential.action.exportTemporarySpeciesExample=Exporter un exemple tutti.manageTemporaryReferential.action.exportTemporarySpeciesExample.tip=Exporter un exemple de référentiel Espèces -tutti.manageTemporaryReferential.action.exportTemporaryVesselExample=Exporter +tutti.manageTemporaryReferential.action.exportTemporaryVesselExample=Exporter un exemple tutti.manageTemporaryReferential.action.exportTemporaryVesselExample.tip=Exporter un exemple de référentiel Navire tutti.manageTemporaryReferential.action.importTemporaryGear=Importer tutti.manageTemporaryReferential.action.importTemporaryGear.tip=Importer un référentiel temporaire d'engins @@ -1423,10 +1423,10 @@ tutti.manageTemporaryReferential.passwordDialog.error.title=Mot de passe incorre tutti.manageTemporaryReferential.passwordDialog.message=Vous souhaitez entrer dans une partie sensible de l'application tutti.manageTemporaryReferential.passwordDialog.title=Zone sensible tutti.manageTemporaryReferential.title=importer des référentiels temporaires -tutti.manageTemporaryReferential.title.choose.exportExistingTemporaryGearFile= -tutti.manageTemporaryReferential.title.choose.exportExistingTemporaryPersonFile= -tutti.manageTemporaryReferential.title.choose.exportExistingTemporarySpeciesFile= -tutti.manageTemporaryReferential.title.choose.exportExistingTemporaryVesselFile= +tutti.manageTemporaryReferential.title.choose.exportExistingTemporaryGearFile=Exporter le référentiel Engin existant +tutti.manageTemporaryReferential.title.choose.exportExistingTemporaryPersonFile=Exporter le référentiel Personne existant +tutti.manageTemporaryReferential.title.choose.exportExistingTemporarySpeciesFile=Exporter le référentiel Espèce existant +tutti.manageTemporaryReferential.title.choose.exportExistingTemporaryVesselFile=Exporter le référentiel Navire existant tutti.manageTemporaryReferential.title.choose.exportTemporaryGearExampleFile=Exporter un exemple de référentiel Engin tutti.manageTemporaryReferential.title.choose.exportTemporaryPersonExampleFile=Exporter un exemple de référentiel Personne tutti.manageTemporaryReferential.title.choose.exportTemporarySpeciesExampleFile=Exporter un exemple de référentiel Espèce -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
participants (1)
-
codelutin.com scm