Tutti-commits
Threads by month
- ----- 2026 -----
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
April 2013
- 5 participants
- 210 discussions
r885 - trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches
by kmorin@users.forge.codelutin.com 29 Apr '13
by kmorin@users.forge.codelutin.com 29 Apr '13
29 Apr '13
Author: kmorin
Date: 2013-04-29 19:11:09 +0200 (Mon, 29 Apr 2013)
New Revision: 885
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/885
Log:
make test succeed
Modified:
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/ValidateCruiseOperationsService.java
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/ValidateCruiseOperationsService.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/ValidateCruiseOperationsService.java 2013-04-29 16:47:02 UTC (rev 884)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/ValidateCruiseOperationsService.java 2013-04-29 17:11:09 UTC (rev 885)
@@ -204,8 +204,8 @@
BatchContainer<MarineLitterBatch> rootMarineLitterBatch;
try {
- rootMarineLitterBatch = tuttiWeightComputingService.getComputedMarineLitterBatches(fishingOperation,
- catchBatch.getMarineLitterTotalWeight());
+ Float weight = catchBatch == null ? null : catchBatch.getMarineLitterTotalWeight();
+ rootMarineLitterBatch = tuttiWeightComputingService.getComputedMarineLitterBatches(fishingOperation, weight);
} catch (TuttiBusinessException e) {
errors.add(e.getMessage());
1
0
r884 - in trunk: tutti-service/src/main/java/fr/ifremer/tutti/service/catches tutti-service/src/main/resources/fr/ifremer/tutti/persistence/entities/data tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches
by kmorin@users.forge.codelutin.com 29 Apr '13
by kmorin@users.forge.codelutin.com 29 Apr '13
29 Apr '13
Author: kmorin
Date: 2013-04-29 18:47:02 +0200 (Mon, 29 Apr 2013)
New Revision: 884
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/884
Log:
fixes #2378 [Captures] - Macro-d?\195?\169chets - Erreur ?\195?\160 l'?\195?\169l?\195?\169vation des poids
Removed:
trunk/tutti-service/src/main/resources/fr/ifremer/tutti/persistence/entities/data/MarineLitterBatch-warning-validation.xml
Modified:
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/TuttiWeightComputingService.java
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/ValidateCruiseOperationsService.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/ComputeWeightsAction.java
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/TuttiWeightComputingService.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/TuttiWeightComputingService.java 2013-04-29 16:22:40 UTC (rev 883)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/TuttiWeightComputingService.java 2013-04-29 16:47:02 UTC (rev 884)
@@ -121,7 +121,8 @@
BatchContainer<MarineLitterBatch> rootMarineLitterBatch;
try {
- rootMarineLitterBatch = getComputedMarineLitterBatches(fishingOperation);
+ rootMarineLitterBatch = getComputedMarineLitterBatches(fishingOperation,
+ catchBatch.getMarineLitterTotalWeight());
} catch (TuttiBusinessException e) {
result.put(fishingOperationId, e.getMessage());
@@ -590,19 +591,22 @@
return result;
}
- public BatchContainer<MarineLitterBatch> getComputedMarineLitterBatches(FishingOperation operation) {
+ public BatchContainer<MarineLitterBatch> getComputedMarineLitterBatches(FishingOperation operation,
+ Float marineLitterweight) {
+ String fishingOperationId = operation.getId();
BatchContainer<MarineLitterBatch> rootMarineLitterBatch =
- persistenceService.getRootMarineLitterBatch(operation.getId());
+ persistenceService.getRootMarineLitterBatch(fishingOperationId);
if (rootMarineLitterBatch != null) {
+ boolean checkWeight = marineLitterweight == null;
+
List<MarineLitterBatch> children = rootMarineLitterBatch.getChildren();
for (int i = 0; i < children.size(); i++) {
MarineLitterBatch batch = children.get(i);
- NuitonValidatorResult validator = validationService.validateMarineLitterBatch(batch);
- if (validator.hasWarningMessages()) {
+ if (checkWeight && batch.getWeight() == null) {
throw new TuttiWeightComputingException(
- _(validator.getMessagesForScope(NuitonValidatorScope.WARNING).get(0)),
+ _("tutti.validator.warning.marineLitter.weight.required"),
TuttiWeightComputingException.CatchType.MARINE_LITTER,
i);
}
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/ValidateCruiseOperationsService.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/ValidateCruiseOperationsService.java 2013-04-29 16:22:40 UTC (rev 883)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/ValidateCruiseOperationsService.java 2013-04-29 16:47:02 UTC (rev 884)
@@ -204,7 +204,8 @@
BatchContainer<MarineLitterBatch> rootMarineLitterBatch;
try {
- rootMarineLitterBatch = tuttiWeightComputingService.getComputedMarineLitterBatches(fishingOperation);
+ rootMarineLitterBatch = tuttiWeightComputingService.getComputedMarineLitterBatches(fishingOperation,
+ catchBatch.getMarineLitterTotalWeight());
} catch (TuttiBusinessException e) {
errors.add(e.getMessage());
Deleted: trunk/tutti-service/src/main/resources/fr/ifremer/tutti/persistence/entities/data/MarineLitterBatch-warning-validation.xml
===================================================================
--- trunk/tutti-service/src/main/resources/fr/ifremer/tutti/persistence/entities/data/MarineLitterBatch-warning-validation.xml 2013-04-29 16:22:40 UTC (rev 883)
+++ trunk/tutti-service/src/main/resources/fr/ifremer/tutti/persistence/entities/data/MarineLitterBatch-warning-validation.xml 2013-04-29 16:47:02 UTC (rev 884)
@@ -1,38 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- #%L
- Tutti :: Service
- $Id$
- $HeadURL$
- %%
- Copyright (C) 2012 - 2013 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%
- -->
-
-
-<!DOCTYPE validators PUBLIC
- "-//Apache Struts//XWork Validator 1.0.3//EN"
- "http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd">
-<validators>
-
- <field name="weight">
- <field-validator type="required" short-circuit="true">
- <message>tutti.validator.warning.marineLitter.weight.required</message>
- </field-validator>
- </field>
-
-</validators>
\ No newline at end of file
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/ComputeWeightsAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/ComputeWeightsAction.java 2013-04-29 16:22:40 UTC (rev 883)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/ComputeWeightsAction.java 2013-04-29 16:47:02 UTC (rev 884)
@@ -91,7 +91,8 @@
BatchContainer<MarineLitterBatch> computedMarineLitterBatches;
try {
computedMarineLitterBatches =
- tuttiWeightComputingService.getComputedMarineLitterBatches(model.getFishingOperation());
+ tuttiWeightComputingService.getComputedMarineLitterBatches(model.getFishingOperation(),
+ model.getMarineLitterTotalWeight());
} catch (TuttiWeightComputingException e) {
getUI().getTabPane().setSelectedIndex(3);
1
0
r883 - in trunk: tutti-service/src/main/java/fr/ifremer/tutti/service/protocol tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/action
by kmorin@users.forge.codelutin.com 29 Apr '13
by kmorin@users.forge.codelutin.com 29 Apr '13
29 Apr '13
Author: kmorin
Date: 2013-04-29 18:22:40 +0200 (Mon, 29 Apr 2013)
New Revision: 883
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/883
Log:
fixes #2375 [Observation individuelles] R?\195?\169utiliser les donn?\195?\169es d?\195?\169j?\195?\160 pr?\195?\169sentes lors de la cr?\195?\169ation
Modified:
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/protocol/SpeciesRowModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUIModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/CreateIndividualObservationBatchUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/TuttiUIUtil.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/action/TuttiActionHelper.java
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/protocol/SpeciesRowModel.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/protocol/SpeciesRowModel.java 2013-04-29 12:31:29 UTC (rev 882)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/protocol/SpeciesRowModel.java 2013-04-29 16:22:40 UTC (rev 883)
@@ -25,6 +25,7 @@
*/
import com.google.common.collect.Sets;
+import fr.ifremer.tutti.TuttiTechnicalException;
import fr.ifremer.tutti.persistence.entities.referential.Caracteristic;
import fr.ifremer.tutti.persistence.entities.referential.Species;
import fr.ifremer.tutti.service.TuttiCsvUtil;
@@ -34,6 +35,8 @@
import java.util.Map;
import java.util.Set;
+import static org.nuiton.i18n.I18n._;
+
/**
* Model to import / export {@link SpeciesRow}.
*
@@ -63,8 +66,7 @@
if (taxonIds.contains(referenceTaxonId)) {
// duplicate reference taxon id used
- throw new RuntimeException(
- "Reference taxon Id [" + referenceTaxonId + "] already used before.");
+ throw new TuttiTechnicalException(_("tutti.service.protocol.import.taxonUsed.error"));
}
taxonIds.add(referenceTaxonId);
return species;
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUIModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUIModel.java 2013-04-29 12:31:29 UTC (rev 882)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUIModel.java 2013-04-29 16:22:40 UTC (rev 883)
@@ -22,6 +22,7 @@
* #L%
*/
+import fr.ifremer.tutti.persistence.entities.referential.Caracteristic;
import fr.ifremer.tutti.persistence.entities.referential.Species;
import fr.ifremer.tutti.ui.swing.content.operation.AbstractTuttiBatchUIModel;
import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUIModel;
@@ -66,6 +67,14 @@
return result;
}
+ public Caracteristic getLastLengthStepCaracteristicUsed() {
+ Caracteristic result = null;
+ if (!rows.isEmpty()) {
+ result = rows.get(rows.size() - 1).getLengthStepCaracteristic();
+ }
+ return result;
+ }
+
//------------------------------------------------------------------------//
//-- TabContentModel --//
//------------------------------------------------------------------------//
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/CreateIndividualObservationBatchUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/CreateIndividualObservationBatchUIHandler.java 2013-04-29 12:31:29 UTC (rev 882)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/CreateIndividualObservationBatchUIHandler.java 2013-04-29 16:22:40 UTC (rev 883)
@@ -179,6 +179,8 @@
model.setSpecies(batchModel.getLastSpeciesUsed());
+ model.setLengthStepCaracteristic(batchModel.getLastLengthStepCaracteristicUsed());
+
model.setAvailableSpecies(getDataContext().getReferentSpeciesWithSurveyCode());
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/TuttiUIUtil.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/TuttiUIUtil.java 2013-04-29 12:31:29 UTC (rev 882)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/TuttiUIUtil.java 2013-04-29 16:22:40 UTC (rev 883)
@@ -196,12 +196,12 @@
Float endLatitude,
Float endLongitude) {
- double sLat = startLatitude * Math.PI / 180;
- double sLong = startLongitude * Math.PI / 180;
- double eLat = endLatitude * Math.PI / 180;
- double eLong = endLongitude * Math.PI / 180;
+ double sLat = startLatitude * Math.PI / 180.0;
+ double sLong = startLongitude * Math.PI / 180.0;
+ double eLat = endLatitude * Math.PI / 180.0;
+ double eLong = endLongitude * Math.PI / 180.0;
- Double d = 6378288 *
+ Double d = 6378288.0 *
(Math.PI / 2 - Math.asin(Math.sin(eLat) * Math.sin(sLat)
+ Math.cos(eLong - sLong) * Math.cos(eLat) * Math.cos(sLat)));
return d.intValue();
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/action/TuttiActionHelper.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/action/TuttiActionHelper.java 2013-04-29 12:31:29 UTC (rev 882)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/action/TuttiActionHelper.java 2013-04-29 16:22:40 UTC (rev 883)
@@ -105,7 +105,6 @@
return result;
} catch (Exception e) {
throw new TuttiTechnicalException(_("tutti.action.create.error", actionName), e);
- //"Could not instanciate action " + actionName, e);
}
}
1
0
r882 - in trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content: . operation/catches
by tchemit@users.forge.codelutin.com 29 Apr '13
by tchemit@users.forge.codelutin.com 29 Apr '13
29 Apr '13
Author: tchemit
Date: 2013-04-29 14:31:29 +0200 (Mon, 29 Apr 2013)
New Revision: 882
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/882
Log:
fixes Evolution #2374: Mettre l'onglet Captures accidentelles en dernier
Modified:
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/ImportTemporaryReferentialAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/MainUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIHandler.java
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/ImportTemporaryReferentialAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/ImportTemporaryReferentialAction.java 2013-04-29 10:22:47 UTC (rev 881)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/ImportTemporaryReferentialAction.java 2013-04-29 12:31:29 UTC (rev 882)
@@ -49,7 +49,7 @@
protected boolean prepareAction() throws Exception {
boolean result = super.prepareAction();
if (result) {
- String answer = null;
+ String answer;
do {
answer = JOptionPane.showInputDialog(getContext().getActionUI(),
_("tutti.manageTemporaryReferential.passwordDialog.message"),
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/MainUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/MainUIHandler.java 2013-04-29 10:22:47 UTC (rev 881)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/MainUIHandler.java 2013-04-29 12:31:29 UTC (rev 882)
@@ -315,7 +315,7 @@
public boolean quitCurrentScreen() {
boolean canClose;
- if (context.getScreen() == null) {
+ if (context.getScreen() == null || currentBody==null) {
// no screen, surely can quit
canClose = true;
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIHandler.java 2013-04-29 10:22:47 UTC (rev 881)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIHandler.java 2013-04-29 12:31:29 UTC (rev 882)
@@ -121,8 +121,8 @@
setCustomTab(1, ui.getSpeciesTabContent().getModel());
setCustomTab(2, ui.getBenthosTabContent().getModel());
setCustomTab(3, ui.getMarineLitterTabContent().getModel());
- setCustomTab(4, ui.getAccidentalTabContent().getModel());
- setCustomTab(5, ui.getIndividualObservationTabContent().getModel());
+ setCustomTab(4, ui.getIndividualObservationTabContent().getModel());
+ setCustomTab(5, ui.getAccidentalTabContent().getModel());
getTabPanel().setSelectedIndex(1);
}
1
0
r881 - in trunk/tutti-ui-swing/src/main: java/fr/ifremer/tutti/ui/swing java/fr/ifremer/tutti/ui/swing/config java/fr/ifremer/tutti/ui/swing/content/config java/fr/ifremer/tutti/ui/swing/util java/fr/ifremer/tutti/ui/swing/util/action java/fr/ifremer/tutti/ui/swing/util/attachment resources/i18n
by kmorin@users.forge.codelutin.com 29 Apr '13
by kmorin@users.forge.codelutin.com 29 Apr '13
29 Apr '13
Author: kmorin
Date: 2013-04-29 12:22:47 +0200 (Mon, 29 Apr 2013)
New Revision: 881
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/881
Log:
fixes #2000 [TECH] Mettre en place les messages d'erreur m?\195?\169tier
Modified:
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiApplicationUpdaterCallBack.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiUIContext.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/config/TuttiApplicationConfig.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/config/SampleOrderIdsTableCell.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/TuttiUIUtil.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/action/TuttiActionHelper.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/attachment/AttachmentEditorUIHandler.java
trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties
trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiApplicationUpdaterCallBack.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiApplicationUpdaterCallBack.java 2013-04-29 10:03:25 UTC (rev 880)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiApplicationUpdaterCallBack.java 2013-04-29 10:22:47 UTC (rev 881)
@@ -438,13 +438,13 @@
service.prepare(dbDirectory, result);
if (!result.isSuccess()) {
- throw new TuttiTechnicalException("Could not prepare synchro", result.getError());
+ throw new TuttiTechnicalException(_("tutti.applicationUpdater.synchroDB.prepare.error"), result.getError());
}
service.synchronize(dbDirectory, result);
if (!result.isSuccess()) {
- throw new TuttiTechnicalException("Could not synchro db", result.getError());
+ throw new TuttiTechnicalException(_("tutti.applicationUpdater.synchroDB.synchro.error"), result.getError());
}
// reset cache
@@ -463,7 +463,7 @@
try {
ApplicationUpdater.storeVersionFile(target, info.newVersion);
} catch (IOException e) {
- throw new TuttiTechnicalException("Could not write back new db version to file " + versionFile);
+ throw new TuttiTechnicalException(_("tutti.applicationUpdater.synchroDB.writeVersion.error", versionFile));
}
}
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiUIContext.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiUIContext.java 2013-04-29 10:03:25 UTC (rev 880)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiUIContext.java 2013-04-29 10:22:47 UTC (rev 881)
@@ -74,6 +74,8 @@
import java.util.Properties;
import java.util.Set;
+import static org.nuiton.i18n.I18n._;
+
/**
* UI application context.
*
@@ -552,7 +554,7 @@
try {
serviceContext.close();
} catch (IOException e) {
- throw new TuttiTechnicalException("Could not close services", e);
+ throw new TuttiTechnicalException(_("tutti.context.service.close.error"), e);
}
dataContext.close();
@@ -770,8 +772,7 @@
String value = (String) helpMapping.get(helpId);
if (value == null) {
- throw new TuttiTechnicalException(
- "Could not find help page for " + helpId);
+ throw new TuttiTechnicalException(_("tutti.context.helpPage.notFound", helpId));
}
File helpDirectory = getConfig().getHelpDirectoryWithLocale();
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/config/TuttiApplicationConfig.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/config/TuttiApplicationConfig.java 2013-04-29 10:03:25 UTC (rev 880)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/config/TuttiApplicationConfig.java 2013-04-29 10:22:47 UTC (rev 881)
@@ -168,8 +168,7 @@
try {
applicationConfig.save(file, false, optionKeyToNotSave);
} catch (IOException e) {
- throw new TuttiTechnicalException(
- "Could not save configuration at " + file, e);
+ throw new TuttiTechnicalException(_("tutti.config.save.error", file), e);
}
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/config/SampleOrderIdsTableCell.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/config/SampleOrderIdsTableCell.java 2013-04-29 10:03:25 UTC (rev 880)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/config/SampleOrderIdsTableCell.java 2013-04-29 10:22:47 UTC (rev 881)
@@ -49,6 +49,8 @@
import java.util.List;
import java.util.Map;
+import static org.nuiton.i18n.I18n._;
+
/**
* To edit sampling oder ids in a table cell.
*
@@ -158,7 +160,7 @@
for (Integer id : ids) {
SampleCategoryEnum sampleCategoryEnum = mapping.get(id);
if (sampleCategoryEnum == null) {
- throw new TuttiTechnicalException("caracteristic with id '" + id + "' is not designed form sampling.");
+ throw new TuttiTechnicalException(_("tutti.sampleOrder.caracteristicNotFound", id));
}
Caracteristic caracteristic = caracteristicMap.get(id);
result.add(caracteristic);
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/TuttiUIUtil.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/TuttiUIUtil.java 2013-04-29 10:03:25 UTC (rev 880)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/TuttiUIUtil.java 2013-04-29 10:22:47 UTC (rev 881)
@@ -169,7 +169,7 @@
try {
PropertyUtils.setSimpleProperty(bean, property, value);
} catch (Exception e) {
- throw new TuttiTechnicalException("Could not set property '" + property + "' on object of type '" + bean.getClass().getName() + "'", e);
+ throw new TuttiTechnicalException(_("tutti.property.set.error", property, bean.getClass().getName()), e);
}
}
@@ -179,7 +179,7 @@
try {
return PropertyUtils.getSimpleProperty(bean, property);
} catch (Exception e) {
- throw new TuttiTechnicalException("Could not get property '" + property + "' on object of type '" + bean.getClass().getName() + "'", e);
+ throw new TuttiTechnicalException(_("tutti.property.get.error", property, bean.getClass().getName()), e);
}
}
@@ -259,7 +259,7 @@
try {
openLink(url.toURI());
} catch (URISyntaxException e) {
- throw new TuttiTechnicalException("Could not open link: " + url, e);
+ throw new TuttiTechnicalException(_("swing.error.cannot.open.link", url), e);
}
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/action/TuttiActionHelper.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/action/TuttiActionHelper.java 2013-04-29 10:03:25 UTC (rev 880)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/action/TuttiActionHelper.java 2013-04-29 10:22:47 UTC (rev 881)
@@ -33,6 +33,8 @@
import javax.swing.AbstractButton;
import javax.swing.Action;
+import static org.nuiton.i18n.I18n._;
+
/**
* Useful method around TuttiUIAction.
*
@@ -102,8 +104,8 @@
TuttiUIAction<A> result = createUIAction(abstractButton, logicAction);
return result;
} catch (Exception e) {
- throw new TuttiTechnicalException(
- "Could not instanciate action " + actionName, e);
+ throw new TuttiTechnicalException(_("tutti.action.create.error", actionName), e);
+ //"Could not instanciate action " + actionName, e);
}
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/attachment/AttachmentEditorUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/attachment/AttachmentEditorUIHandler.java 2013-04-29 10:03:25 UTC (rev 880)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/attachment/AttachmentEditorUIHandler.java 2013-04-29 10:22:47 UTC (rev 881)
@@ -259,7 +259,7 @@
File file = persistenceService.getAttachmentFile(attachment.getId());
if (!file.exists()) {
- throw new TuttiTechnicalException("File " + file.getAbsolutePath() + " does not exists.");
+ throw new TuttiTechnicalException(_("tutti.attachmentEditor.fileNotFound", file.getAbsolutePath()));
}
Desktop desktop = TuttiUIUtil.getDesktopForBrowse();
Modified: trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties
===================================================================
--- trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties 2013-04-29 10:03:25 UTC (rev 880)
+++ trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties 2013-04-29 10:22:47 UTC (rev 881)
@@ -15,6 +15,10 @@
tutti.about.update.app.up.detail=
tutti.about.update.content=
tutti.about.update.title=
+tutti.action.create.error=
+tutti.applicationUpdater.synchroDB.prepare.error=
+tutti.applicationUpdater.synchroDB.synchro.error=
+tutti.applicationUpdater.synchroDB.writeVersion.error=
tutti.attachmentEditor.action.add.mnemonic=
tutti.attachmentEditor.action.add.tip=
tutti.attachmentEditor.action.closeAttachment.tip=
@@ -30,6 +34,7 @@
tutti.attachmentEditor.field.file=
tutti.attachmentEditor.field.fileComment=
tutti.attachmentEditor.field.fileName=
+tutti.attachmentEditor.fileNotFound=
tutti.attachmentEditor.none.tip=
tutti.attachmentEditor.saveAttachment.button=
tutti.attachmentEditor.saveAttachment.fail.message=
@@ -101,7 +106,10 @@
tutti.config.option.weights.rate.difference.totalAndSorted.description=
tutti.config.parse.error=
tutti.config.sampleOrder.title=
+tutti.config.save.error=
tutti.config.title=
+tutti.context.helpPage.notFound=
+tutti.context.service.close.error=
tutti.createAccidentalBatch.action.cancel=
tutti.createAccidentalBatch.action.cancel.mnemonic=
tutti.createAccidentalBatch.action.cancel.tip=
@@ -1014,6 +1022,8 @@
tutti.manageTemporaryReferential.title.choose.importTemporarySpeciesFile=
tutti.manageTemporaryReferential.title.choose.importTemporaryVesselFile=
tutti.message.action.running=
+tutti.property.get.error=
+tutti.sampleOrder.caracteristicNotFound=
tutti.selectBenthos.title=
tutti.selectCruise.action.chooseCruiseExportFile=
tutti.selectCruise.action.chooseProgramExportFile=
Modified: trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties
===================================================================
--- trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2013-04-29 10:03:25 UTC (rev 880)
+++ trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2013-04-29 10:22:47 UTC (rev 881)
@@ -13,6 +13,10 @@
tutti.about.update.app.up.detail=<tr><td>%1$s</td><td>%2$s</td><td><strong>%3$s</strong></td><td><a href\="%4$s">Mettre à jour</a><td></tr>
tutti.about.update.content=<h2>Mise à jour de Tutti</h2><p>Fichier des mises à jour \: <a href\="%1$s">%1$s</a></p><br/><hr/><br/><table><CAPTION><EM>Mises à jour des modules</EM></CAPTION><tr><th>Module</th><th>Version installée</th><th>Dernière version</th><th></th></tr>%2$s</table>
tutti.about.update.title=Mise à jour Tutti
+tutti.action.create.error=Erreur à l'instanciation de l'action %s
+tutti.applicationUpdater.synchroDB.prepare.error=Erreur lors de la préparation de la synchronisation de la base
+tutti.applicationUpdater.synchroDB.synchro.error=Erreur lors de la synchronisation de la base
+tutti.applicationUpdater.synchroDB.writeVersion.error=Erreur lors de l'écriture de la nouvelle version de la base de données dans le fichier %s
tutti.attachmentEditor.action.add.mnemonic=A
tutti.attachmentEditor.action.add.tip=Ajouter une pièce jointe
tutti.attachmentEditor.action.closeAttachment.tip=Fermer la fenêtre des pièces-jointes
@@ -28,6 +32,7 @@
tutti.attachmentEditor.field.file=Fichier
tutti.attachmentEditor.field.fileComment=Commentaire
tutti.attachmentEditor.field.fileName=Nom
+tutti.attachmentEditor.fileNotFound=Le fichier %s de la pièce jointe n'a pas été trouvé
tutti.attachmentEditor.none.tip=Pas de pièce-jointes
tutti.attachmentEditor.saveAttachment.button=Enregistrer
tutti.attachmentEditor.saveAttachment.fail.message=Une erreur est survenue lors de la sauvegarde du fichier.
@@ -95,9 +100,12 @@
tutti.config.option.ui.showNumberEditorButton.description=Afficher le pavé numérique de saisie
tutti.config.option.update.url.description=URL de mise à jour
tutti.config.option.weights.rate.difference.totalAndSorted.description=Pourcentage de différence entre les Poids totaux VRAC triés et les poids totaux VRAC en dessous duquel on demande confirmation sur la saisie.
-tutti.config.parse.error=
+tutti.config.parse.error=Erreur de parsing du fichier de configuration
tutti.config.sampleOrder.title=Catégorie d'échantillonnage
+tutti.config.save.error=Erreur lors de la sauvegarde de la configuration dans le fichier %s
tutti.config.title=Configuration
+tutti.context.helpPage.notFound=La page d'aide %s n'a pas été trouvée
+tutti.context.service.close.error=Erreur lors de la fermeture du service %s
tutti.createAccidentalBatch.action.cancel=Annuler
tutti.createAccidentalBatch.action.cancel.mnemonic=A
tutti.createAccidentalBatch.action.cancel.tip=Annuler la création de la capture accidentelle
@@ -999,6 +1007,9 @@
tutti.manageTemporaryReferential.title.choose.importTemporarySpeciesFile=Importer un réferentiel Espèce
tutti.manageTemporaryReferential.title.choose.importTemporaryVesselFile=Importer un réferentiel Navire
tutti.message.action.running=<html>Action <strong>%s</strong> en cours d'execution...<hr/></html>
+tutti.property.get.error=Propriété %1s non trouvée sur l'objet de type %2s
+tutti.property.set.error=Propriété %1s non trouvée sur l'objet de type %2s
+tutti.sampleOrder.caracteristicNotFound=La caractéristique d'id %s n'est pas prévue pour l'échantillonage
tutti.selectBenthos.title=Choisissez un benthos
tutti.selectCruise.action.chooseCruiseExportFile=Exporter
tutti.selectCruise.action.chooseProgramExportFile=Exporter
1
0
r880 - in trunk: tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/config tutti-persistence/src/main/resources/i18n tutti-service/src/main/java/fr/ifremer/tutti/service/catches tutti-service/src/main/resources/i18n
by kmorin@users.forge.codelutin.com 29 Apr '13
by kmorin@users.forge.codelutin.com 29 Apr '13
29 Apr '13
Author: kmorin
Date: 2013-04-29 12:03:25 +0200 (Mon, 29 Apr 2013)
New Revision: 880
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/880
Log:
refs #2000 [TECH] Mettre en place les messages d'erreur m?\195?\169tier
Modified:
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/config/TuttiPersistenceConfig.java
trunk/tutti-persistence/src/main/resources/i18n/tutti-persistence_en_GB.properties
trunk/tutti-persistence/src/main/resources/i18n/tutti-persistence_fr_FR.properties
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/ValidateCruiseOperationsService.java
trunk/tutti-service/src/main/resources/i18n/tutti-service_en_GB.properties
trunk/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/config/TuttiPersistenceConfig.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/config/TuttiPersistenceConfig.java 2013-04-29 09:54:29 UTC (rev 879)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/config/TuttiPersistenceConfig.java 2013-04-29 10:03:25 UTC (rev 880)
@@ -44,6 +44,8 @@
import java.util.Properties;
import java.util.Set;
+import static org.nuiton.i18n.I18n._;
+
/**
* Configuration for the persistence driver.
*
@@ -188,14 +190,14 @@
generateDbConfiguration(true);
} catch (IOException e) {
- throw new TuttiTechnicalException("Could not generate db configuration file");
+ throw new TuttiTechnicalException(_("tutti.persistence.config.generateFile.error"));
}
try {
generateDbEnumerationConfiguration(force);
} catch (IOException e) {
- throw new TuttiTechnicalException("Could not generate db enumeration file");
+ throw new TuttiTechnicalException(_("tutti.persistence.config.generateEnumFile.error"));
}
}
Modified: trunk/tutti-persistence/src/main/resources/i18n/tutti-persistence_en_GB.properties
===================================================================
--- trunk/tutti-persistence/src/main/resources/i18n/tutti-persistence_en_GB.properties 2013-04-29 09:54:29 UTC (rev 879)
+++ trunk/tutti-persistence/src/main/resources/i18n/tutti-persistence_en_GB.properties 2013-04-29 10:03:25 UTC (rev 880)
@@ -27,6 +27,8 @@
tutti.persistence.batch.validation.vracSpeciesInertNotFound=
tutti.persistence.batch.validation.vracSpeciesLifeNotFound=
tutti.persistence.batch.validation.vracSpeciesNotFound=
+tutti.persistence.config.generateEnumFile.error=
+tutti.persistence.config.generateFile.error=
tutti.persistence.protocol.fromFile.error=
tutti.sampleCategoryType.age=
tutti.sampleCategoryType.maturity=
Modified: trunk/tutti-persistence/src/main/resources/i18n/tutti-persistence_fr_FR.properties
===================================================================
--- trunk/tutti-persistence/src/main/resources/i18n/tutti-persistence_fr_FR.properties 2013-04-29 09:54:29 UTC (rev 879)
+++ trunk/tutti-persistence/src/main/resources/i18n/tutti-persistence_fr_FR.properties 2013-04-29 10:03:25 UTC (rev 880)
@@ -27,6 +27,8 @@
tutti.persistence.batch.validation.vracSpeciesInertNotFound=Lot 'Vrac > Espèces > Inerte' non trouvé, ou configuré avec d'autres critères de classement.
tutti.persistence.batch.validation.vracSpeciesLifeNotFound=Lot 'Vrac > Espèces > Vivant' non trouvé, ou configuré avec d'autres critères de classement.
tutti.persistence.batch.validation.vracSpeciesNotFound=Lot 'Vrac > Espèces' non trouvé, ou configuré avec d'autres critères de classement.
+tutti.persistence.config.generateEnumFile.error=Erreur lors de la génération du fichier d'énumération de la configuration de la base de données
+tutti.persistence.config.generateFile.error=Erreur lors de la génération du fichier de configuration de la base de données
tutti.persistence.protocol.fromFile.error=Erreur lors de l'import du protocol du fichier %s
tutti.sampleCategoryType.age=Age
tutti.sampleCategoryType.maturity=Maturité
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/ValidateCruiseOperationsService.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/ValidateCruiseOperationsService.java 2013-04-29 09:54:29 UTC (rev 879)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/ValidateCruiseOperationsService.java 2013-04-29 10:03:25 UTC (rev 880)
@@ -130,7 +130,7 @@
FileUtils.writeLines(file, lines);
} catch (IOException e) {
- throw new TuttiTechnicalException("error");
+ throw new TuttiTechnicalException(_("tutti.service.validateCruise.exportResult.error", file));
}
}
@@ -147,7 +147,7 @@
FileUtils.writeLines(file, lines);
} catch (IOException e) {
- throw new TuttiTechnicalException("error");
+ throw new TuttiTechnicalException(_("tutti.service.validateCruise.exportResult.error", file));
}
}
Modified: trunk/tutti-service/src/main/resources/i18n/tutti-service_en_GB.properties
===================================================================
--- trunk/tutti-service/src/main/resources/i18n/tutti-service_en_GB.properties 2013-04-29 09:54:29 UTC (rev 879)
+++ trunk/tutti-service/src/main/resources/i18n/tutti-service_en_GB.properties 2013-04-29 10:03:25 UTC (rev 880)
@@ -127,6 +127,7 @@
tutti.service.referential.export.species.error=
tutti.service.referential.export.vessel.error=
tutti.service.sumatra.export.error=
+tutti.service.validateCruise.exportResult.error=
tutti.validator.error.accidental.species.required=
tutti.validator.error.benthosBatch.species.required=
tutti.validator.error.comment.too.long=
Modified: trunk/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties
===================================================================
--- trunk/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties 2013-04-29 09:54:29 UTC (rev 879)
+++ trunk/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties 2013-04-29 10:03:25 UTC (rev 880)
@@ -102,6 +102,7 @@
tutti.service.referential.export.species.error=Erreur lors de l'export des espèces dans le fichier %s
tutti.service.referential.export.vessel.error=Erreur lors de l'export des navires dans le fichier %s
tutti.service.sumatra.export.error=Erreur lors de l'export Sumatra dans le fichier %s
+tutti.service.validateCruise.exportResult.error=Erreur lors de l'export des résultats de validation de la campagne dans le fichier %s
tutti.validator.error.accidental.species.required=L'espèce est obligatoire
tutti.validator.error.benthosBatch.species.required=L'espèce est obligatoire
tutti.validator.error.comment.too.long=Taille de commentaire trop longue (limitée à %s caractères)
1
0
29 Apr '13
Author: kmorin
Date: 2013-04-29 11:54:29 +0200 (Mon, 29 Apr 2013)
New Revision: 879
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/879
Log:
refs #2000 [TECH] Mettre en place les messages d'erreur m?\195?\169tier
Modified:
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/AbstractTuttiService.java
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiCsvUtil.java
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiServiceContext.java
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/ExportCatchesReportService.java
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/TuttiExportService.java
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/protocol/TuttiProtocolImportExportService.java
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/pupitri/TuttiPupitriImportExportService.java
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/TuttiReferentialImportExportService.java
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/sumatra/TuttiCatchesSumatraExportService.java
trunk/tutti-service/src/main/resources/i18n/tutti-service_en_GB.properties
trunk/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/config/TuttiApplicationConfig.java
trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties
trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/AbstractTuttiService.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/AbstractTuttiService.java 2013-04-29 09:32:57 UTC (rev 878)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/AbstractTuttiService.java 2013-04-29 09:54:29 UTC (rev 879)
@@ -31,6 +31,8 @@
import java.io.File;
import java.io.IOException;
+import static org.nuiton.i18n.I18n._;
+
/**
* Sammoa service support.
* <p/>
@@ -73,7 +75,7 @@
}
} catch (IOException e) {
- throw new TuttiTechnicalException("Could not compress directory", e);
+ throw new TuttiTechnicalException(_("tutti.service.compressZipFile.error", directory, zipFile), e);
}
}
}
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiCsvUtil.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiCsvUtil.java 2013-04-29 09:32:57 UTC (rev 878)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiCsvUtil.java 2013-04-29 09:54:29 UTC (rev 879)
@@ -52,6 +52,8 @@
import java.util.Map;
import java.util.Set;
+import static org.nuiton.i18n.I18n._;
+
/**
* Helper around csv import / export in Tutti.
*
@@ -71,7 +73,7 @@
}
public <T> ExportableColumn<M, T> newColumnForExportByDecorator(String headerName, String propertyName, Decorator<T> decorator, String defaultNullValue) {
- DecoatorPropertyFormatter<T> valueFormatter = newDecoratorFormatter(decorator, defaultNullValue);
+ DecoratorPropertyFormatter<T> valueFormatter = newDecoratorFormatter(decorator, defaultNullValue);
return modelBuilder.newColumnForExport(headerName, propertyName, valueFormatter);
}
@@ -116,7 +118,7 @@
}
public <T> ExportableColumn<M, T> newColumnForExportByDecorator(String headerName, String propertyName, Decorator<T> decorator, String defaultNullValue) {
- DecoatorPropertyFormatter<T> valueFormatter = newDecoratorFormatter(decorator, defaultNullValue);
+ DecoratorPropertyFormatter<T> valueFormatter = newDecoratorFormatter(decorator, defaultNullValue);
return modelBuilder.newColumnForExport(headerName, propertyName, valueFormatter);
}
@@ -278,23 +280,23 @@
try {
return (String) BeanUtilsBean.getInstance().getPropertyUtils().getNestedProperty(value, propertyName);
} catch (Exception e) {
- throw new TuttiTechnicalException("Could not format value", e);
+ throw new TuttiTechnicalException(_("tutti.service.cvs.format.error"), e);//"Could not format value"
}
}
}
- public static <E> DecoatorPropertyFormatter<E> newDecoratorFormatter(Decorator<E> decorator,
+ public static <E> DecoratorPropertyFormatter<E> newDecoratorFormatter(Decorator<E> decorator,
String defaultNullValue) {
- return new DecoatorPropertyFormatter<E>(decorator, defaultNullValue);
+ return new DecoratorPropertyFormatter<E>(decorator, defaultNullValue);
}
- public static class DecoatorPropertyFormatter<E> implements ValueFormatter<E> {
+ public static class DecoratorPropertyFormatter<E> implements ValueFormatter<E> {
protected final String defaultNullValue;
protected Decorator<E> decorator;
- DecoatorPropertyFormatter(Decorator<E> decorator, String defaultNullValue) {
+ DecoratorPropertyFormatter(Decorator<E> decorator, String defaultNullValue) {
this.decorator = decorator;
this.defaultNullValue = defaultNullValue;
}
@@ -307,7 +309,7 @@
try {
return decorator.toString(value);
} catch (Exception e) {
- throw new TuttiTechnicalException("Could not format value", e);
+ throw new TuttiTechnicalException(_("tutti.service.cvs.format.error", value), e);
}
}
}
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiServiceContext.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiServiceContext.java 2013-04-29 09:32:57 UTC (rev 878)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiServiceContext.java 2013-04-29 09:54:29 UTC (rev 879)
@@ -43,6 +43,8 @@
import java.util.Date;
import java.util.concurrent.ExecutionException;
+import static org.nuiton.i18n.I18n._;
+
/**
* Tutti application context.
* <p/>
@@ -119,8 +121,7 @@
S s = (S) services.get(serviceType);
return s;
} catch (ExecutionException e) {
- throw new TuttiTechnicalException(
- "Could not instanciate service " + serviceType, e);
+ throw new TuttiTechnicalException(_("tutti.service.context.serviceInstanciation.error", serviceType), e);
}
}
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/ExportCatchesReportService.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/ExportCatchesReportService.java 2013-04-29 09:32:57 UTC (rev 878)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/ExportCatchesReportService.java 2013-04-29 09:54:29 UTC (rev 879)
@@ -28,6 +28,7 @@
import com.google.common.collect.Maps;
import com.itextpdf.text.DocumentException;
import fr.ifremer.tutti.TuttiBusinessException;
+import fr.ifremer.tutti.TuttiTechnicalException;
import fr.ifremer.tutti.persistence.entities.data.*;
import fr.ifremer.tutti.persistence.entities.referential.Species;
import fr.ifremer.tutti.service.AbstractTuttiService;
@@ -174,7 +175,7 @@
os.close();
} catch (Exception ex) {
- throw new TuttiBusinessException(_("tutti.service.operations.exportCatchesReport.error"), ex);
+ throw new TuttiTechnicalException(_("tutti.service.operations.exportCatchesReport.error"), ex);
} finally {
IOUtils.closeQuietly(os);
}
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/TuttiExportService.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/TuttiExportService.java 2013-04-29 09:32:57 UTC (rev 878)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/TuttiExportService.java 2013-04-29 09:54:29 UTC (rev 879)
@@ -293,8 +293,7 @@
exportContext.surveyExport.write(rows, exportContext.surveyWriter);
} catch (Exception e) {
- throw new TuttiTechnicalException(
- "Could not export survey.", e);
+ throw new TuttiTechnicalException(_("tutti.service.export.survey.error"), e);
}
}
@@ -308,8 +307,7 @@
exportContext.operationModel.prepareRows(rows, cruise, operations);
exportContext.operationExport.write(rows, exportContext.operationWriter);
} catch (Exception e) {
- throw new TuttiTechnicalException(
- "Could not export operations.", e);
+ throw new TuttiTechnicalException(_("tutti.service.export.operations.error"), e);
}
}
@@ -326,8 +324,7 @@
}
} catch (Exception e) {
- throw new TuttiTechnicalException(
- "Could not export parameters.", e);
+ throw new TuttiTechnicalException(_("tutti.service.export.parameters.error"), e);
}
}
@@ -371,8 +368,7 @@
}
} catch (Exception e) {
- throw new TuttiTechnicalException(
- "Could not export catches.", e);
+ throw new TuttiTechnicalException(_("tutti.service.export.catches.error"), e);
}
}
@@ -435,8 +431,7 @@
} catch (FileNotFoundException e) {
// should never happen
- throw new TuttiTechnicalException(
- "Could not create writer for export", e);
+ throw new TuttiTechnicalException(_("tutti.service.export.context.error"), e);
}
surveyModel = new SurveyExportModel(csvSeparator);
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/protocol/TuttiProtocolImportExportService.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/protocol/TuttiProtocolImportExportService.java 2013-04-29 09:32:57 UTC (rev 878)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/protocol/TuttiProtocolImportExportService.java 2013-04-29 09:54:29 UTC (rev 879)
@@ -57,6 +57,8 @@
import java.util.List;
import java.util.Map;
+import static org.nuiton.i18n.I18n._;
+
/**
* To import / export {@link TuttiProtocol} to {@code Yaml} file formats.
*
@@ -156,7 +158,7 @@
export.write(writer);
writer.close();
} catch (Exception e) {
- throw new TuttiTechnicalException("Could not export all caracteristics to file " + file, e);
+ throw new TuttiTechnicalException(_("tutti.service.protocol.export.caracteristics.all.error", file), e);
} finally {
IOUtils.closeQuietly(writer);
}
@@ -200,7 +202,7 @@
export.write(writer);
writer.close();
} catch (Exception e) {
- throw new TuttiTechnicalException("Could not export protocol [" + protocol.getName() + "] caracteristic to file " + file, e);
+ throw new TuttiTechnicalException(_("tutti.service.protocol.export.caracteristics.protocol.error", protocol.getName(), file), e);
} finally {
IOUtils.closeQuietly(writer);
}
@@ -264,7 +266,7 @@
}
reader.close();
} catch (Exception e) {
- throw new TuttiTechnicalException("Could not import protocol [" + protocol.getName() + "] caracteristic from file " + file, e);
+ throw new TuttiTechnicalException(_("tutti.service.protocol.import.species.error", protocol.getName(), file), e);
} finally {
IOUtils.closeQuietly(reader);
}
@@ -331,7 +333,7 @@
}
reader.close();
} catch (Exception e) {
- throw new TuttiTechnicalException("Could not import protocol [" + protocol.getName() + "] caracteristic from file " + file, e);
+ throw new TuttiTechnicalException(_("tutti.service.protocol.import.benthos.error", protocol.getName(), file), e);
} finally {
IOUtils.closeQuietly(reader);
}
@@ -368,7 +370,7 @@
export.write(writer);
writer.close();
} catch (Exception e) {
- throw new TuttiTechnicalException("Could not export species protocol to file " + file, e);
+ throw new TuttiTechnicalException(_("tutti.service.protocol.export.species.error", file), e);
} finally {
IOUtils.closeQuietly(writer);
}
@@ -402,7 +404,7 @@
export.write(writer);
writer.close();
} catch (Exception e) {
- throw new TuttiTechnicalException("Could not export species protocol to file " + file, e);
+ throw new TuttiTechnicalException(_("tutti.service.protocol.export.benthos.error", file), e);
} finally {
IOUtils.closeQuietly(writer);
}
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/pupitri/TuttiPupitriImportExportService.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/pupitri/TuttiPupitriImportExportService.java 2013-04-29 09:32:57 UTC (rev 878)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/pupitri/TuttiPupitriImportExportService.java 2013-04-29 09:54:29 UTC (rev 879)
@@ -69,6 +69,8 @@
import java.util.List;
import java.util.Set;
+import static org.nuiton.i18n.I18n._;
+
/**
* @author kmorin <kmorin(a)codelutin.com>
* @since 1.2
@@ -214,7 +216,7 @@
reader.close();
} catch (Exception e) {
- throw new TuttiTechnicalException("Could not import protocol [" + operation.toString() + "] caracteristic from file " + file, e);
+ throw new TuttiTechnicalException(_("tutti.service.pupitri.import.trunk.error", operation.toString(), file), e);
} finally {
IOUtils.closeQuietly(importer);
@@ -396,7 +398,7 @@
reader.close();
} catch (Exception e) {
- throw new TuttiTechnicalException("Could not import carrousel data [" + operation.toString() + "] from file " + carrouselFile, e);
+ throw new TuttiTechnicalException(_("tutti.service.pupitri.import.carrousel.error", operation.toString(), carrouselFile), e);//"Could not import carrousel data [" + operation.toString() + "] from file " + carrouselFile
} finally {
IOUtils.closeQuietly(carrouselImporter);
@@ -433,7 +435,7 @@
Export.exportToFile(speciesCsvModel, rows, target, Charsets.UTF_8, false);
} catch (Exception e) {
- throw new TuttiTechnicalException("Could not export all species to file " + target, e);
+ throw new TuttiTechnicalException(_("tutti.service.pupitri.export.species.error", target), e);
}
}
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/TuttiReferentialImportExportService.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/TuttiReferentialImportExportService.java 2013-04-29 09:32:57 UTC (rev 878)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/TuttiReferentialImportExportService.java 2013-04-29 09:54:29 UTC (rev 879)
@@ -52,6 +52,8 @@
import java.util.List;
import java.util.Set;
+import static org.nuiton.i18n.I18n._;
+
/**
* Service to import or export referential.
*
@@ -271,7 +273,7 @@
} catch (IOException e) {
throw e;
} catch (Exception e) {
- throw new TuttiTechnicalException("Could not export species to file: " + file, e);
+ throw new TuttiTechnicalException(_("tutti.service.referential.export.species.error", file), e);
} finally {
IOUtils.closeQuietly(writer);
}
@@ -317,7 +319,7 @@
} catch (IOException e) {
throw e;
} catch (Exception e) {
- throw new TuttiTechnicalException("Could not export species to file: " + file, e);
+ throw new TuttiTechnicalException(_("tutti.service.referential.export.vessel.error", file), e);
} finally {
IOUtils.closeQuietly(writer);
}
@@ -354,7 +356,7 @@
} catch (IOException e) {
throw e;
} catch (Exception e) {
- throw new TuttiTechnicalException("Could not export species to file: " + file, e);
+ throw new TuttiTechnicalException(_("tutti.service.referential.export.person.error", file), e);
} finally {
IOUtils.closeQuietly(writer);
}
@@ -397,7 +399,7 @@
} catch (IOException e) {
throw e;
} catch (Exception e) {
- throw new TuttiTechnicalException("Could not export species to file: " + file, e);
+ throw new TuttiTechnicalException(_("tutti.service.referential.export.gear.error", file), e);
} finally {
IOUtils.closeQuietly(writer);
}
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/sumatra/TuttiCatchesSumatraExportService.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/sumatra/TuttiCatchesSumatraExportService.java 2013-04-29 09:32:57 UTC (rev 878)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/sumatra/TuttiCatchesSumatraExportService.java 2013-04-29 09:54:29 UTC (rev 879)
@@ -46,6 +46,8 @@
import java.util.List;
import java.util.Map;
+import static org.nuiton.i18n.I18n._;
+
/**
* @author kmorin <kmorin(a)codelutin.com>
* @since 2.0
@@ -178,7 +180,7 @@
writer.close();
} catch (Exception e) {
- throw new TuttiTechnicalException("Could not export all caracteristics to file " + file, e);
+ throw new TuttiTechnicalException(_("tutti.service.sumatra.export.error", file), e);
} finally {
IOUtils.closeQuietly(writer);
}
Modified: trunk/tutti-service/src/main/resources/i18n/tutti-service_en_GB.properties
===================================================================
--- trunk/tutti-service/src/main/resources/i18n/tutti-service_en_GB.properties 2013-04-29 09:32:57 UTC (rev 878)
+++ trunk/tutti-service/src/main/resources/i18n/tutti-service_en_GB.properties 2013-04-29 09:54:29 UTC (rev 879)
@@ -48,8 +48,16 @@
tutti.service.catches.computeWeights.benthos.error.incoherentSampleWeight=
tutti.service.catches.computeWeights.error.incoherentRowWeightCategory=
tutti.service.catches.computeWeights.species.error.incoherentSampleWeight=
+tutti.service.compressZipFile.error=
+tutti.service.context.serviceInstanciation.error=
+tutti.service.cvs.format.error=
+tutti.service.export.catches.error=
+tutti.service.export.context.error=
tutti.service.export.invalid.cruise=
tutti.service.export.invalid.fishingOperation=
+tutti.service.export.operations.error=
+tutti.service.export.parameters.error=
+tutti.service.export.survey.error=
tutti.service.exportCruise.buildZip=
tutti.service.exportCruise.checkCruise=
tutti.service.exportCruise.exportCatches=
@@ -105,6 +113,20 @@
tutti.service.operations.validate.marineLitter.error.marineLitterSizeCategory.required=
tutti.service.operations.validate.marineLitter.error.number.required=
tutti.service.operations.validate.marineLitter.warning.weight.required=
+tutti.service.protocol.export.benthos.error=
+tutti.service.protocol.export.caracteristics.all.error=
+tutti.service.protocol.export.caracteristics.protocol.error=
+tutti.service.protocol.export.species.error=
+tutti.service.protocol.import.benthos.error=
+tutti.service.protocol.import.species.error=
+tutti.service.pupitri.export.species.error=
+tutti.service.pupitri.import.carrousel.error=
+tutti.service.pupitri.import.trunk.error=
+tutti.service.referential.export.gear.error=
+tutti.service.referential.export.person.error=
+tutti.service.referential.export.species.error=
+tutti.service.referential.export.vessel.error=
+tutti.service.sumatra.export.error=
tutti.validator.error.accidental.species.required=
tutti.validator.error.benthosBatch.species.required=
tutti.validator.error.comment.too.long=
Modified: trunk/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties
===================================================================
--- trunk/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties 2013-04-29 09:32:57 UTC (rev 878)
+++ trunk/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties 2013-04-29 09:54:29 UTC (rev 879)
@@ -48,8 +48,16 @@
tutti.service.catches.computeWeights.benthos.error.incoherentSampleWeight=Le poids de sous-échantillon est supérieur au poids du lot.
tutti.service.catches.computeWeights.error.incoherentRowWeightCategory=Le poids de sous-échantillon est renseigné alors que le lot n'a pas de poids.
tutti.service.catches.computeWeights.species.error.incoherentSampleWeight=Le poids de sous-échantillon est supérieur au poids du lot.
+tutti.service.compressZipFile.error=Erreur lors de la compression du dossier %1s dans le fichier %2s
+tutti.service.context.serviceInstanciation.error=Erreur lors de l'instanciation du service %s
+tutti.service.cvs.format.error=Erreur lors du formattage de la valeur %s
+tutti.service.export.catches.error=Erreur lors de l'export des captures
+tutti.service.export.context.error=Erreur lors de la création des fichiers pour l'export
tutti.service.export.invalid.cruise=L'export de la campagne %s ne peut pas être réalisé suite aux erreurs rencontrées sur ses traits lors de l'élévation des poids \:\n%s
tutti.service.export.invalid.fishingOperation=L'élévation des poids ne peut pas être réalisé sur le trait %s, pour la raison suivante %s
+tutti.service.export.operations.error=Erreur lors de l'export des traits
+tutti.service.export.parameters.error=Erreur lors de l'export des paramètres
+tutti.service.export.survey.error=Erreur lors de l'export de la campagne
tutti.service.exportCruise.buildZip=Création de l'archive de l'export (fichier %s)
tutti.service.exportCruise.checkCruise=Vérification de la campagne %s
tutti.service.exportCruise.exportCatches=Export du fichier <strong>catch.csv</strong> pour la campagne %s
@@ -80,6 +88,20 @@
tutti.service.operations.computeWeights.error.species.incoherentTotalSorted=Le poids total Vrac des espèces est inférieur à la somme des poids Vrac triés, inerte trié et vivant non détaillé trié
tutti.service.operations.computeWeights.error.species.noWeight=Un lot des espèces n'a pas de poids
tutti.service.operations.exportCatchesReport.error=Erreur lors de la génération du rapport des captures
+tutti.service.protocol.export.benthos.error=Erreur lors de l'export du benthos dans le fichier %s
+tutti.service.protocol.export.caracteristics.all.error=Erreur lors de l'export des caractéristiques dans le fichier %s
+tutti.service.protocol.export.caracteristics.protocol.error=Erreur lors de l'export des caractéristiques du protocole dans le fichier %s
+tutti.service.protocol.export.species.error=Erreur lors de l'export des espèces dans le fichier %s
+tutti.service.protocol.import.benthos.error=Erreur lors de l'import du benthos du protocole %1s du fichier %2s
+tutti.service.protocol.import.species.error=Erreur lors de l'import des espèces du protocole %1s du fichier %2s
+tutti.service.pupitri.export.species.error=Erreur lors de l'export des espèces pour Pupitri dans le fichier %s
+tutti.service.pupitri.import.carrousel.error=Erreur lors de l'import du fichier de carrousel %2s pour le trait %1s
+tutti.service.pupitri.import.trunk.error=Erreur lors de l'import du fichier de trèmis %2s pour le trait %1s
+tutti.service.referential.export.gear.error=Erreur lors de l'export des engins dans le fichier %s
+tutti.service.referential.export.person.error=Erreur lors de l'export des personnes dans le fichier %s
+tutti.service.referential.export.species.error=Erreur lors de l'export des espèces dans le fichier %s
+tutti.service.referential.export.vessel.error=Erreur lors de l'export des navires dans le fichier %s
+tutti.service.sumatra.export.error=Erreur lors de l'export Sumatra dans le fichier %s
tutti.validator.error.accidental.species.required=L'espèce est obligatoire
tutti.validator.error.benthosBatch.species.required=L'espèce est obligatoire
tutti.validator.error.comment.too.long=Taille de commentaire trop longue (limitée à %s caractères)
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/config/TuttiApplicationConfig.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/config/TuttiApplicationConfig.java 2013-04-29 09:32:57 UTC (rev 878)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/config/TuttiApplicationConfig.java 2013-04-29 09:54:29 UTC (rev 879)
@@ -48,6 +48,8 @@
import java.util.Locale;
import java.util.Set;
+import static org.nuiton.i18n.I18n._;
+
/**
* Tutti application config.
*
@@ -107,8 +109,7 @@
applicationConfig.parse(args);
} catch (ArgumentsParserException e) {
- throw new TuttiTechnicalException(
- "Could not parse configuration", e);
+ throw new TuttiTechnicalException(_("tutti.config.parse.error"), e);
}
//TODO Review this, this is very dirty to do this...
Modified: trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties
===================================================================
--- trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties 2013-04-29 09:32:57 UTC (rev 878)
+++ trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties 2013-04-29 09:54:29 UTC (rev 879)
@@ -99,6 +99,7 @@
tutti.config.option.ui.showNumberEditorButton.description=
tutti.config.option.update.url.description=
tutti.config.option.weights.rate.difference.totalAndSorted.description=
+tutti.config.parse.error=
tutti.config.sampleOrder.title=
tutti.config.title=
tutti.createAccidentalBatch.action.cancel=
Modified: trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties
===================================================================
--- trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2013-04-29 09:32:57 UTC (rev 878)
+++ trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2013-04-29 09:54:29 UTC (rev 879)
@@ -95,6 +95,7 @@
tutti.config.option.ui.showNumberEditorButton.description=Afficher le pavé numérique de saisie
tutti.config.option.update.url.description=URL de mise à jour
tutti.config.option.weights.rate.difference.totalAndSorted.description=Pourcentage de différence entre les Poids totaux VRAC triés et les poids totaux VRAC en dessous duquel on demande confirmation sur la saisie.
+tutti.config.parse.error=
tutti.config.sampleOrder.title=Catégorie d'échantillonnage
tutti.config.title=Configuration
tutti.createAccidentalBatch.action.cancel=Annuler
1
0
r878 - in trunk/tutti-persistence/src/main: java/fr/ifremer/tutti/persistence/entities/protocol resources/i18n
by kmorin@users.forge.codelutin.com 29 Apr '13
by kmorin@users.forge.codelutin.com 29 Apr '13
29 Apr '13
Author: kmorin
Date: 2013-04-29 11:32:57 +0200 (Mon, 29 Apr 2013)
New Revision: 878
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/878
Log:
refs #2000 [TECH] Mettre en place les messages d'erreur m?\195?\169tier
Modified:
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/protocol/TuttiProtocols.java
trunk/tutti-persistence/src/main/resources/i18n/tutti-persistence_en_GB.properties
trunk/tutti-persistence/src/main/resources/i18n/tutti-persistence_fr_FR.properties
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/protocol/TuttiProtocols.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/protocol/TuttiProtocols.java 2013-04-28 21:08:36 UTC (rev 877)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/protocol/TuttiProtocols.java 2013-04-29 09:32:57 UTC (rev 878)
@@ -42,6 +42,8 @@
import java.io.Reader;
import java.util.List;
+import static org.nuiton.i18n.I18n._;
+
/**
* Helper classaround {@link TuttiProtocol}.
*
@@ -62,7 +64,7 @@
writer.close();
fileWriter.close();
} catch (Exception e) {
- throw new TuttiTechnicalException("Could not transform protocol " + id + " to file " + file, e);
+ throw new TuttiTechnicalException(_("tutti.persistence.protocol.fromFile.error", id, file), e);//"Could not transform protocol " + to file
} finally {
IOUtils.closeQuietly(fileWriter);
}
@@ -79,7 +81,7 @@
fileReader.close();
return result;
} catch (Exception e) {
- throw new TuttiTechnicalException("Could not import protocol from file " + file, e);
+ throw new TuttiTechnicalException(_("tutti.persistence.protocol.fromFile.error", file), e);
} finally {
IOUtils.closeQuietly(fileReader);
}
Modified: trunk/tutti-persistence/src/main/resources/i18n/tutti-persistence_en_GB.properties
===================================================================
--- trunk/tutti-persistence/src/main/resources/i18n/tutti-persistence_en_GB.properties 2013-04-28 21:08:36 UTC (rev 877)
+++ trunk/tutti-persistence/src/main/resources/i18n/tutti-persistence_en_GB.properties 2013-04-29 09:32:57 UTC (rev 878)
@@ -27,6 +27,7 @@
tutti.persistence.batch.validation.vracSpeciesInertNotFound=
tutti.persistence.batch.validation.vracSpeciesLifeNotFound=
tutti.persistence.batch.validation.vracSpeciesNotFound=
+tutti.persistence.protocol.fromFile.error=
tutti.sampleCategoryType.age=
tutti.sampleCategoryType.maturity=
tutti.sampleCategoryType.sex=
Modified: trunk/tutti-persistence/src/main/resources/i18n/tutti-persistence_fr_FR.properties
===================================================================
--- trunk/tutti-persistence/src/main/resources/i18n/tutti-persistence_fr_FR.properties 2013-04-28 21:08:36 UTC (rev 877)
+++ trunk/tutti-persistence/src/main/resources/i18n/tutti-persistence_fr_FR.properties 2013-04-29 09:32:57 UTC (rev 878)
@@ -27,6 +27,7 @@
tutti.persistence.batch.validation.vracSpeciesInertNotFound=Lot 'Vrac > Espèces > Inerte' non trouvé, ou configuré avec d'autres critères de classement.
tutti.persistence.batch.validation.vracSpeciesLifeNotFound=Lot 'Vrac > Espèces > Vivant' non trouvé, ou configuré avec d'autres critères de classement.
tutti.persistence.batch.validation.vracSpeciesNotFound=Lot 'Vrac > Espèces' non trouvé, ou configuré avec d'autres critères de classement.
+tutti.persistence.protocol.fromFile.error=Erreur lors de l'import du protocol du fichier %s
tutti.sampleCategoryType.age=Age
tutti.sampleCategoryType.maturity=Maturité
tutti.sampleCategoryType.sex=Sexe
1
0
Author: tchemit
Date: 2013-04-28 23:08:36 +0200 (Sun, 28 Apr 2013)
New Revision: 877
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/877
Log:
updates mavenpom to 3.4.10
Modified:
trunk/pom.xml
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2013-04-26 17:21:26 UTC (rev 876)
+++ trunk/pom.xml 2013-04-28 21:08:36 UTC (rev 877)
@@ -28,7 +28,7 @@
<parent>
<groupId>org.nuiton</groupId>
<artifactId>mavenpom4redmine</artifactId>
- <version>3.4.9</version>
+ <version>3.4.10</version>
</parent>
<groupId>fr.ifremer</groupId>
1
0
26 Apr '13
Author: kmorin
Date: 2013-04-26 19:21:26 +0200 (Fri, 26 Apr 2013)
New Revision: 876
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/876
Log:
fixes #2079 [CONTROLE] - Contr?\195?\180le / Validation apr?\195?\168s la saisie
fixes #1883 [RAPPORT] - Rapport de contr?\195?\180le apr?\195?\168s saisie
Added:
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/ExportCruiseValidationMessagesAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/ExportOperationValidationMessagesAction.java
Modified:
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/DecoratorService.java
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/ValidateCruiseOperationsService.java
trunk/tutti-service/src/main/resources/i18n/tutti-service_en_GB.properties
trunk/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties
trunk/tutti-ui-swing/src/main/filtered-resources/tutti-help-en.properties
trunk/tutti-ui-swing/src/main/filtered-resources/tutti-help-fr.properties
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/MainUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseFishingOperationAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/ValidateCruiseUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/ValidateCruiseUI.jaxx
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/ValidateCruiseUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/ExportCruiseForSumatraAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/ComputeWeightsAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIModel.java
trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties
trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/DecoratorService.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/DecoratorService.java 2013-04-25 17:22:52 UTC (rev 875)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/DecoratorService.java 2013-04-26 17:21:26 UTC (rev 876)
@@ -63,6 +63,8 @@
public static final String ONLY_NAME = "onlyName";
+ public static final String FILE_NAME_COMPATIBLE = "fileNameCompatible";
+
public static final String SEPARATOR = "#";
/** Delegate decorator provider. */
@@ -96,6 +98,7 @@
registerTuttiDecorator(Cruise.class, "${name}$s", SEPARATOR, " - ");
registerTuttiDecorator(TuttiProtocol.class, "${name}$s", SEPARATOR, " - ");
registerTuttiDecorator(FishingOperation.class, "${stationNumber}$s#${fishingOperationNumber}$s#${multirigAggregation}$s#${gearShootingStartDate}$td/%4$tm/%4$tY", SEPARATOR, " - ");
+ registerTuttiDecorator(FishingOperation.class, FILE_NAME_COMPATIBLE, "${stationNumber}$s#${fishingOperationNumber}$s#${multirigAggregation}$s#${gearShootingStartDate}$td%4$tm%4$tY", SEPARATOR, "-");
registerTuttiDecorator(Gear.class, "${label}$s#${name}$s", SEPARATOR, " - ");
registerTuttiDecorator(Person.class, "${firstName}$s#${lastName}$s#${department}$s", SEPARATOR, " ");
registerTuttiDecorator(Caracteristic.class, "${parameterName}$s#${matrixName}$s#${fractionName}$s#${methodName}$s", SEPARATOR, " - ");
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/ValidateCruiseOperationsService.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/ValidateCruiseOperationsService.java 2013-04-25 17:22:52 UTC (rev 875)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/ValidateCruiseOperationsService.java 2013-04-26 17:21:26 UTC (rev 876)
@@ -27,19 +27,20 @@
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import fr.ifremer.tutti.TuttiBusinessException;
+import fr.ifremer.tutti.TuttiTechnicalException;
import fr.ifremer.tutti.persistence.entities.data.*;
import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol;
import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocols;
-import fr.ifremer.tutti.service.AbstractTuttiService;
-import fr.ifremer.tutti.service.PersistenceService;
-import fr.ifremer.tutti.service.TuttiDataContext;
-import fr.ifremer.tutti.service.TuttiServiceContext;
-import fr.ifremer.tutti.service.ValidationService;
+import fr.ifremer.tutti.service.*;
+import org.apache.commons.io.FileUtils;
+import org.apache.commons.io.IOUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.nuiton.validator.NuitonValidatorResult;
import org.nuiton.validator.NuitonValidatorScope;
+import java.io.File;
+import java.io.IOException;
import java.util.List;
import java.util.Map;
@@ -61,12 +62,15 @@
protected TuttiWeightComputingService tuttiWeightComputingService;
+ protected DecoratorService decoratorService;
+
@Override
public void setServiceContext(TuttiServiceContext context) {
super.setServiceContext(context);
persistenceService = getService(PersistenceService.class);
validationService = getService(ValidationService.class);
tuttiWeightComputingService = getService(TuttiWeightComputingService.class);
+ decoratorService = getService(DecoratorService.class);
}
/**
@@ -100,19 +104,85 @@
}
/**
+ * Validates the operation of the currently selected cruise whose id is the given id.
+ * @return the validation results
+ */
+ public NuitonValidatorResult validateCruiseOperation(CatchBatch catches) {
+ FishingOperation operation = persistenceService.getFishingOperation(catches.getFishingOperation().getId());
+ NuitonValidatorResult validator = validationService.validateFishingOperation(operation, ValidationService.VALIDATION_CONTEXT_VALIDATE);
+
+ checkOperation(operation, catches, validator);
+ return validator;
+ }
+
+ /**
+ *
+ * @param file
+ * @param validationResults
+ */
+ public void exportValidationResults(File file, Map<FishingOperation, NuitonValidatorResult> validationResults) {
+ try {
+ List<String> lines = Lists.newArrayList();
+ for (FishingOperation operation : validationResults.keySet()) {
+ lines.addAll(getExportLines(operation, validationResults.get(operation)));
+ lines.add("");
+ }
+ FileUtils.writeLines(file, lines);
+
+ } catch (IOException e) {
+ throw new TuttiTechnicalException("error");
+ }
+ }
+
+ /**
+ *
+ * @param file
+ * @param operation
+ * @param validationResult
+ */
+ public void exportValidationResult(File file, FishingOperation operation, NuitonValidatorResult validationResult) {
+ try {
+ List<String> lines = getExportLines(operation, validationResult);
+
+ FileUtils.writeLines(file, lines);
+
+ } catch (IOException e) {
+ throw new TuttiTechnicalException("error");
+ }
+ }
+
+ /*
+ * Internal methods
+ */
+
+ /**
* Adds additional messages to the validation results
* @param fishingOperation the operation to validate
* @param validator the validatpr containing the messages.
*/
protected void checkOperation(FishingOperation fishingOperation,
NuitonValidatorResult validator) {
+
+ String fishingOperationId = fishingOperation.getId();
+ CatchBatch catchBatch = persistenceService.getCatchBatchFromFishingOperation(fishingOperationId);
+ checkOperation(fishingOperation, catchBatch, validator);
+ }
+
+ /**
+ * Adds additional messages to the validation results
+ * @param fishingOperation the operation to validate
+ * @param fishingOperation the catchBatch to validate
+ * @param validator the validatpr containing the messages.
+ */
+ protected void checkOperation(FishingOperation fishingOperation,
+ CatchBatch catchBatch,
+ NuitonValidatorResult validator) {
if (log.isDebugEnabled()) {
log.debug("Will check fishingOperation: " + fishingOperation);
}
List<String> errors = Lists.newArrayList();
String fishingOperationId = fishingOperation.getId();
- CatchBatch catchBatch = persistenceService.getCatchBatchFromFishingOperation(fishingOperationId);
BatchContainer<SpeciesBatch> rootSpeciesBatch;
try {
@@ -222,4 +292,28 @@
}
return false;
}
+
+ /**
+ *
+ * @param operation
+ * @param validationResult
+ */
+ protected List<String> getExportLines(FishingOperation operation, NuitonValidatorResult validationResult) {
+ List<String> lines = Lists.newArrayList();
+
+ lines.add(_("tutti.validator.export.operation",
+ decoratorService.getDecoratorByType(FishingOperation.class).toString(operation)));
+
+ List<String> messages = validationResult.getMessagesForScope(NuitonValidatorScope.ERROR);
+ for (String message : messages) {
+ lines.add(_("tutti.validator.export.message.error", _(message)));
+ }
+ messages = validationResult.getMessagesForScope(NuitonValidatorScope.WARNING);
+ for (String message : messages) {
+ lines.add(_("tutti.validator.export.message.warning", _(message)));
+ }
+
+ return lines;
+ }
+
}
Modified: trunk/tutti-service/src/main/resources/i18n/tutti-service_en_GB.properties
===================================================================
--- trunk/tutti-service/src/main/resources/i18n/tutti-service_en_GB.properties 2013-04-25 17:22:52 UTC (rev 875)
+++ trunk/tutti-service/src/main/resources/i18n/tutti-service_en_GB.properties 2013-04-26 17:21:26 UTC (rev 876)
@@ -158,6 +158,9 @@
tutti.validator.error.protocol.name.alreadyUsed=
tutti.validator.error.protocol.name.required=
tutti.validator.error.speciesBatch.species.required=
+tutti.validator.export.message.error=
+tutti.validator.export.message.warning=
+tutti.validator.export.operation=
tutti.validator.warning.benthos.protocolNotRespected=
tutti.validator.warning.latitude.outOfBounds=
tutti.validator.warning.longitude.outOfBounds=
Modified: trunk/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties
===================================================================
--- trunk/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties 2013-04-25 17:22:52 UTC (rev 875)
+++ trunk/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties 2013-04-26 17:21:26 UTC (rev 876)
@@ -132,7 +132,10 @@
tutti.validator.error.program.zone.required=La zone de la série est obligatoire
tutti.validator.error.protocol.name.alreadyUsed=Le nom du protocole est déjà utilisé
tutti.validator.error.protocol.name.required=Le nom du protocole est obligatoire
-tutti.validator.error.speciesBatch.species.required=
+tutti.validator.error.speciesBatch.species.required=L'espèce est obligatoire
+tutti.validator.export.message.error=\t- [ERREUR] %s
+tutti.validator.export.message.warning=\t- [WARNING] %s
+tutti.validator.export.operation=* %s \:
tutti.validator.warning.benthos.protocolNotRespected=Un lot du benthos ne suit pas les recommandations du protocole
tutti.validator.warning.latitude.outOfBounds=La Latitude doit être comprise entre -90.0 et 90.0
tutti.validator.warning.longitude.outOfBounds=La longitude doit être comprise entre -180.0 et 180.0
Modified: trunk/tutti-ui-swing/src/main/filtered-resources/tutti-help-en.properties
===================================================================
--- trunk/tutti-ui-swing/src/main/filtered-resources/tutti-help-en.properties 2013-04-25 17:22:52 UTC (rev 875)
+++ trunk/tutti-ui-swing/src/main/filtered-resources/tutti-help-en.properties 2013-04-26 17:21:26 UTC (rev 876)
@@ -1,28 +1,5 @@
-###
-# #%L
-# Tutti :: UI
-# $Id$
-# $HeadURL$
-# %%
-# Copyright (C) 2012 - 2013 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
-#Mon Apr 22 10:46:45 CEST 2013
+#Fri Apr 26 18:46:10 CEST 2013
tutti.config.help=config.html
tutti.createAccidentalBatch.action.cancel.help=createAccidentalBatch.html\#actions
tutti.createAccidentalBatch.action.save.help=createAccidentalBatch.html\#actions
@@ -314,6 +291,10 @@
tutti.splitSpeciesBatch.field.sampleWeightField.help=splitSpeciesBatch.html\#fields
tutti.splitSpeciesBatch.field.speciesField.help=splitSpeciesBatch.html\#fields
tutti.splitSpeciesBatch.help=splitSpeciesBatch.html
+tutti.validateCruise.navigation.action.export.all.help=
+tutti.validateCruise.navigation.action.export.help=
+tutti.validateCruise.navigation.action.export.operation.help=
+tutti.validateCruise.navigation.action.refresh.all.help=
tuttihelp.config.help=
tuttihelp.editAccidentalBatch.help=
tuttihelp.editIndividualObservationBatch.help=
Modified: trunk/tutti-ui-swing/src/main/filtered-resources/tutti-help-fr.properties
===================================================================
--- trunk/tutti-ui-swing/src/main/filtered-resources/tutti-help-fr.properties 2013-04-25 17:22:52 UTC (rev 875)
+++ trunk/tutti-ui-swing/src/main/filtered-resources/tutti-help-fr.properties 2013-04-26 17:21:26 UTC (rev 876)
@@ -1,28 +1,5 @@
-###
-# #%L
-# Tutti :: UI
-# $Id$
-# $HeadURL$
-# %%
-# Copyright (C) 2012 - 2013 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
-#Mon Apr 22 10:46:45 CEST 2013
+#Fri Apr 26 18:46:10 CEST 2013
tutti.config.help=config.html
tutti.createAccidentalBatch.action.cancel.help=createAccidentalBatch.html\#actions
tutti.createAccidentalBatch.action.save.help=createAccidentalBatch.html\#actions
@@ -314,6 +291,10 @@
tutti.splitSpeciesBatch.field.sampleWeightField.help=splitSpeciesBatch.html\#fields
tutti.splitSpeciesBatch.field.speciesField.help=splitSpeciesBatch.html\#fields
tutti.splitSpeciesBatch.help=splitSpeciesBatch.html
+tutti.validateCruise.navigation.action.export.all.help=
+tutti.validateCruise.navigation.action.export.help=
+tutti.validateCruise.navigation.action.export.operation.help=
+tutti.validateCruise.navigation.action.refresh.all.help=
tuttihelp.config.help=
tuttihelp.editAccidentalBatch.help=
tuttihelp.editIndividualObservationBatch.help=
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/MainUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/MainUIHandler.java 2013-04-25 17:22:52 UTC (rev 875)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/MainUIHandler.java 2013-04-26 17:21:26 UTC (rev 876)
@@ -445,19 +445,9 @@
case EDIT_FISHING_OPERATION:
- String validationContext = context.getValidationContext();
-
- if (ValidationService.VALIDATION_CONTEXT_EDIT.equals(validationContext)) {
-
- // edit operations
- screenTitle = _("tutti.fishingOperations.title.edit.operations", getSelectedCruiseTitle());
- icon = ui.getMenuActionEditCatches().getIcon();
- } else {
-
- // validate operations
- screenTitle = _("tutti.fishingOperations.title.validate.operations", getSelectedCruiseTitle());
- icon = ui.getMenuActionValidateCatches().getIcon();
- }
+ // edit operations
+ screenTitle = _("tutti.fishingOperations.title.edit.operations", getSelectedCruiseTitle());
+ icon = ui.getMenuActionEditCatches().getIcon();
screenUI = new FishingOperationsUI(ui);
break;
@@ -469,12 +459,9 @@
break;
case VALIDATE_CRUISE:
- screenTitle = EditCruiseUIHandler.getTitle(
- context.isCruiseFilled());
-
screenUI = new ValidateCruiseUI(ui);
-// rightDecoration = ((ValidateCruiseUI) screenUI).getTopToolBar();
- icon = ui.getMenuActionEditCruise().getIcon();
+ screenTitle = _("tutti.fishingOperations.title.validate.operations", getSelectedCruiseTitle());
+ icon = ui.getMenuActionValidateCatches().getIcon();
break;
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseFishingOperationAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseFishingOperationAction.java 2013-04-25 17:22:52 UTC (rev 875)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseFishingOperationAction.java 2013-04-26 17:21:26 UTC (rev 876)
@@ -24,11 +24,23 @@
* #L%
*/
+import com.google.common.collect.Lists;
+import fr.ifremer.tutti.persistence.entities.data.CatchBatch;
import fr.ifremer.tutti.persistence.entities.data.FishingOperation;
+import fr.ifremer.tutti.service.catches.ValidateCruiseOperationsService;
+import fr.ifremer.tutti.ui.swing.content.operation.EditFishingOperationUIModel;
+import fr.ifremer.tutti.ui.swing.content.operation.FishingOperationsUI;
+import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUIModel;
import fr.ifremer.tutti.ui.swing.util.action.AbstractTuttiAction;
+import fr.ifremer.tutti.ui.swing.util.editor.CoordinateEditorType;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.nuiton.validator.NuitonValidatorResult;
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
+import java.util.List;
+
import static org.nuiton.i18n.I18n._;
/**
@@ -39,10 +51,12 @@
*/
public class EditCruiseFishingOperationAction extends AbstractTuttiAction<ValidateCruiseUIModel, ValidateCruiseUI, ValidateCruiseUIHandler> {
- /** Logger. */
private static final Log log =
LogFactory.getLog(EditCruiseFishingOperationAction.class);
+ /** Validation service. */
+ private final ValidateCruiseOperationsService validationService = getContext().getValidateCruiseOperationsService();
+
/**
* The incoming fishing operation to edit.
* <p/>
@@ -52,6 +66,79 @@
*/
protected FishingOperation fishingOperation;
+ protected final PropertyChangeListener editFishingOperationModelListener = new PropertyChangeListener() {
+ @Override
+ public void propertyChange(PropertyChangeEvent evt) {
+
+ List<String> propertiesToIgnore = Lists.newArrayList(
+ EditFishingOperationUIModel.PROPERTY_MODIFY,
+ EditFishingOperationUIModel.PROPERTY_VALID,
+ EditFishingOperationUIModel.PROPERTY_PERSISTED
+ );
+ EditFishingOperationUIModel model = (EditFishingOperationUIModel) evt.getSource();
+
+ if (!model.isLoadingData()
+ && model.getFishingOperation() != null
+ && !propertiesToIgnore.contains(evt.getPropertyName())) {
+
+ if (model.getCoordinateEditorType() != CoordinateEditorType.DD) {
+ model.convertGearShootingCoordinatesDMSToDD();
+ }
+
+ FishingOperation operation = model.toBean();
+ NuitonValidatorResult validationResult = validationService.validateCruiseOperation(operation);
+
+ ValidateCruiseUIModel uiModel = getModel();
+ uiModel.getValidator().put(uiModel.getSelectedFishingOperation(), validationResult);
+
+ getHandler().updateCurrentOperatonNode(validationResult);
+
+ }
+ }
+ };
+
+ protected final PropertyChangeListener editCatchesModelListener = new PropertyChangeListener() {
+ @Override
+ public void propertyChange(PropertyChangeEvent evt) {
+
+ List<String> propertiesToIgnore = Lists.newArrayList(
+ EditCatchesUIModel.PROPERTY_MODIFY,
+ EditCatchesUIModel.PROPERTY_VALID,
+ EditCatchesUIModel.PROPERTY_CATCH_TOTAL_COMPUTED_WEIGHT,
+ EditCatchesUIModel.PROPERTY_CATCH_TOTAL_SORTED_COMPUTED_WEIGHT,
+ EditCatchesUIModel.PROPERTY_CATCH_TOTAL_UNSORTED_COMPUTED_WEIGHT,
+ EditCatchesUIModel.PROPERTY_CATCH_TOTAL_REJECTED_COMPUTED_WEIGHT,
+ EditCatchesUIModel.PROPERTY_SPECIES_TOTAL_COMPUTED_WEIGHT,
+ EditCatchesUIModel.PROPERTY_SPECIES_TOTAL_SORTED_COMPUTED_WEIGHT,
+ EditCatchesUIModel.PROPERTY_SPECIES_TOTAL_UNSORTED_COMPUTED_WEIGHT,
+ EditCatchesUIModel.PROPERTY_SPECIES_TOTAL_SAMPLE_SORTED_COMPUTED_WEIGHT,
+ EditCatchesUIModel.PROPERTY_SPECIES_TOTAL_INERT_COMPUTED_WEIGHT,
+ EditCatchesUIModel.PROPERTY_SPECIES_TOTAL_LIVING_NOT_ITEMIZED_COMPUTED_WEIGHT,
+ EditCatchesUIModel.PROPERTY_BENTHOS_TOTAL_COMPUTED_WEIGHT,
+ EditCatchesUIModel.PROPERTY_BENTHOS_TOTAL_SORTED_COMPUTED_WEIGHT,
+ EditCatchesUIModel.PROPERTY_BENTHOS_TOTAL_UNSORTED_COMPUTED_WEIGHT,
+ EditCatchesUIModel.PROPERTY_BENTHOS_TOTAL_SAMPLE_SORTED_COMPUTED_WEIGHT,
+ EditCatchesUIModel.PROPERTY_BENTHOS_TOTAL_INERT_COMPUTED_WEIGHT,
+ EditCatchesUIModel.PROPERTY_BENTHOS_TOTAL_LIVING_NOT_ITEMIZED_COMPUTED_WEIGHT
+ );
+ EditCatchesUIModel model = (EditCatchesUIModel) evt.getSource();
+
+ if (!model.isLoadingData()
+ && model.getFishingOperation() != null
+ && !propertiesToIgnore.contains(evt.getPropertyName())) {
+
+ CatchBatch catchBatch = model.toBean();
+ NuitonValidatorResult validationResult = validationService.validateCruiseOperation(catchBatch);
+
+ ValidateCruiseUIModel uiModel = getModel();
+ uiModel.getValidator().put(uiModel.getSelectedFishingOperation(), validationResult);
+
+ getHandler().updateCurrentOperatonNode(validationResult);
+
+ }
+ }
+ };
+
public EditCruiseFishingOperationAction(ValidateCruiseUIHandler handler) {
super(handler, false);
setActionDescription(_("tutti.editFishingOperation.action.editFishingOperation.tip"));
@@ -62,11 +149,31 @@
}
@Override
+ protected boolean prepareAction() throws Exception {
+ FishingOperationsUI operationPanel = getUI().getOperationPanel();
+ operationPanel.getFishingOperationTabContent().getModel().
+ removePropertyChangeListener(editFishingOperationModelListener);
+ operationPanel.getCatchesTabContent().getModel().
+ removePropertyChangeListener(editCatchesModelListener);
+
+ return super.prepareAction();
+ }
+
+ @Override
protected void doAction() throws Exception {
getUI().getOperationPanel().getModel().setSelectedFishingOperation(fishingOperation);
}
@Override
+ public void postSuccessAction() {
+ super.postSuccessAction();
+
+ FishingOperationsUI operationPanel = getUI().getOperationPanel();
+ operationPanel.getFishingOperationTabContent().getModel().addPropertyChangeListener(editFishingOperationModelListener);
+ operationPanel.getCatchesTabContent().getModel().addPropertyChangeListener(editCatchesModelListener);
+ }
+
+ @Override
protected void releaseAction() {
super.releaseAction();
fishingOperation = null;
Added: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/ExportCruiseValidationMessagesAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/ExportCruiseValidationMessagesAction.java (rev 0)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/ExportCruiseValidationMessagesAction.java 2013-04-26 17:21:26 UTC (rev 876)
@@ -0,0 +1,64 @@
+package fr.ifremer.tutti.ui.swing.content.cruise;
+
+import fr.ifremer.tutti.TuttiIOUtil;
+import fr.ifremer.tutti.service.catches.ValidateCruiseOperationsService;
+import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil;
+import fr.ifremer.tutti.ui.swing.util.action.AbstractTuttiAction;
+
+import java.io.File;
+
+import static org.nuiton.i18n.I18n._;
+
+/**
+ * @author kmorin <kmorin(a)codelutin.com>
+ * @since 2.0.1
+ */
+public class ExportCruiseValidationMessagesAction extends AbstractTuttiAction <ValidateCruiseUIModel, ValidateCruiseUI, ValidateCruiseUIHandler> {
+
+ protected File file;
+
+ /** Validation service. */
+ protected ValidateCruiseOperationsService validationService = getContext().getValidateCruiseOperationsService();
+
+ public ExportCruiseValidationMessagesAction(ValidateCruiseUIHandler handler) {
+ super(handler, false);
+ setActionDescription(_("tutti.validateCruise.action.export.all.tip"));
+ }
+
+ @Override
+ protected boolean prepareAction() throws Exception {
+ boolean doAction = super.prepareAction();
+
+ // choose file to export
+ file = TuttiUIUtil.saveFile(
+ _("tutti.validateCruise.action.export.all.chooseFile.defaultFile", getDataContext().getCruise().getName()),
+ getContext().getMainUI(),
+ _("tutti.validateCruise.action.export.all.chooseFile.title"),
+ _("tutti.validateCruise.action.export.all.chooseFile.label")
+ );
+ doAction = file != null;
+ if (doAction) {
+ // ask user to confirm overwrite.
+ doAction = getHandler().askOverwriteFile(file);
+ }
+ return doAction;
+ }
+
+ @Override
+ protected void doAction() throws Exception {
+ ValidateCruiseUIModel uiModel = getModel();
+ validationService.exportValidationResults(file, uiModel.getValidator());
+ }
+
+ @Override
+ protected void releaseAction() {
+ super.releaseAction();
+ file = null;
+ }
+
+ @Override
+ public void postSuccessAction() {
+ super.postSuccessAction();
+ sendMessage(_("tutti.validateCruise.action.export.all.success", file));
+ }
+}
Added: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/ExportOperationValidationMessagesAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/ExportOperationValidationMessagesAction.java (rev 0)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/ExportOperationValidationMessagesAction.java 2013-04-26 17:21:26 UTC (rev 876)
@@ -0,0 +1,67 @@
+package fr.ifremer.tutti.ui.swing.content.cruise;
+
+import fr.ifremer.tutti.persistence.entities.data.FishingOperation;
+import fr.ifremer.tutti.service.DecoratorService;
+import fr.ifremer.tutti.service.catches.ValidateCruiseOperationsService;
+import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil;
+import fr.ifremer.tutti.ui.swing.util.action.AbstractTuttiAction;
+
+import java.io.File;
+
+import static org.nuiton.i18n.I18n._;
+
+/**
+ * @author kmorin <kmorin(a)codelutin.com>
+ * @since 2.0.1
+ */
+public class ExportOperationValidationMessagesAction extends AbstractTuttiAction <ValidateCruiseUIModel, ValidateCruiseUI, ValidateCruiseUIHandler> {
+
+ protected File file;
+
+ /** Validation service. */
+ protected ValidateCruiseOperationsService validationService = getContext().getValidateCruiseOperationsService();
+
+ public ExportOperationValidationMessagesAction(ValidateCruiseUIHandler handler) {
+ super(handler, false);
+ setActionDescription(_("tutti.validateCruise.action.export.operation.tip"));
+ }
+
+ @Override
+ protected boolean prepareAction() throws Exception {
+ boolean doAction = super.prepareAction();
+
+ // choose file to export
+ file = TuttiUIUtil.saveFile(
+ _("tutti.validateCruise.action.export.operation.chooseFile.defaultFile",
+ decorate(getModel().getSelectedFishingOperation(), DecoratorService.FILE_NAME_COMPATIBLE)),
+ getContext().getMainUI(),
+ _("tutti.validateCruise.action.export.operation.chooseFile.title"),
+ _("tutti.validateCruise.action.export.operation.chooseFile.label")
+ );
+ doAction = file != null;
+ if (doAction) {
+ // ask user to confirm overwrite.
+ doAction = getHandler().askOverwriteFile(file);
+ }
+ return doAction;
+ }
+
+ @Override
+ protected void doAction() throws Exception {
+ ValidateCruiseUIModel uiModel = getModel();
+ FishingOperation operation = getModel().getSelectedFishingOperation();
+ validationService.exportValidationResult(file, operation, uiModel.getValidator().get(operation));
+ }
+
+ @Override
+ protected void releaseAction() {
+ super.releaseAction();
+ file = null;
+ }
+
+ @Override
+ public void postSuccessAction() {
+ super.postSuccessAction();
+ sendMessage(_("tutti.validateCruise.action.export.operation.success", file));
+ }
+}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/ValidateCruiseUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/ValidateCruiseUI.css 2013-04-25 17:22:52 UTC (rev 875)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/ValidateCruiseUI.css 2013-04-26 17:21:26 UTC (rev 876)
@@ -21,6 +21,40 @@
* <http://www.gnu.org/licenses/gpl-3.0.html>.
* #L%
*/
+
+#navigationTitledPanel {
+ rightDecoration: {topToolBar};
+ border: {null};
+ title: "tutti.validateCruise.navigation.title";
+}
+
+#topToolBar {
+ floatable: false;
+ opaque: false;
+ borderPainted: false;
+}
+
+#exportButton {
+ actionIcon: export;
+ toolTipText: "tutti.validateCruise.navigation.action.export.all.tip";
+ _tuttiAction: {ExportCruiseValidationMessagesAction.class};
+ _help: {"tutti.validateCruise.navigation.action.export.all.help"};
+}
+
+#menuPopup {
+ label: "tutti.editAccidentalBatch.title.batchActions";
+}
+
+#exportOperationMessagesItem {
+ actionIcon: export;
+ text: "tutti.validateCruise.navigation.action.export.operation";
+ toolTipText: "tutti.validateCruise.navigation.action.export.operation.tip";
+ i18nMnemonic: "tutti.validateCruise.navigation.action.export.operation.mnemonic";
+ _tuttiAction: {ExportOperationValidationMessagesAction.class};
+ enabled: {model.getSelectedFishingOperation() != null};
+ _help: {"tutti.validateCruise.navigation.action.export.operation.help"};
+}
+
#navigation {
rootVisible: false;
}
\ No newline at end of file
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/ValidateCruiseUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/ValidateCruiseUI.jaxx 2013-04-25 17:22:52 UTC (rev 875)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/ValidateCruiseUI.jaxx 2013-04-26 17:21:26 UTC (rev 876)
@@ -30,6 +30,8 @@
fr.ifremer.tutti.ui.swing.content.operation.FishingOperationsUI
fr.ifremer.tutti.ui.swing.util.TuttiUI
+ org.jdesktop.swingx.JXTitledPanel
+
</import>
<script><![CDATA[
@@ -54,10 +56,24 @@
<TuttiHelpBroker id='broker'
constructorParams='"tutti.validateCruise.help"'/>
- <JScrollPane id='navigationPanel'>
- <JTree id='navigation'/>
- </JScrollPane>
+ <JXTitledPanel id='navigationTitledPanel'>
+ <JToolBar id='topToolBar'>
+ <JButton id='exportButton'/>
+ </JToolBar>
+
+ <JPopupMenu id='menuPopup'>
+ <JMenuItem id='exportOperationMessagesItem'/>
+ </JPopupMenu>
+
+ <JScrollPane id='navigationPanel'>
+ <JTree id='navigation'
+ onMouseClicked='handler.autoSelectNode(event, menuPopup)'
+ onKeyPressed='handler.openNodeMenu(event, menuPopup)'/>
+ </JScrollPane>
+
+ </JXTitledPanel>
+
<FishingOperationsUI id='operationPanel'
constructorParams='this'>
</FishingOperationsUI>
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/ValidateCruiseUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/ValidateCruiseUIHandler.java 2013-04-25 17:22:52 UTC (rev 875)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/ValidateCruiseUIHandler.java 2013-04-26 17:21:26 UTC (rev 876)
@@ -25,17 +25,9 @@
*/
import com.google.common.base.Preconditions;
-import com.google.common.collect.LinkedListMultimap;
import com.google.common.collect.Lists;
-import com.google.common.collect.Multimap;
import fr.ifremer.tutti.persistence.entities.data.FishingOperation;
-import fr.ifremer.tutti.service.PersistenceService;
-import fr.ifremer.tutti.service.ValidationService;
import fr.ifremer.tutti.service.catches.ValidateCruiseOperationsService;
-import fr.ifremer.tutti.ui.swing.TuttiUIContext;
-import fr.ifremer.tutti.ui.swing.content.MainUI;
-import fr.ifremer.tutti.ui.swing.content.MainUIHandler;
-import fr.ifremer.tutti.ui.swing.content.operation.EditFishingOperationUIModel;
import fr.ifremer.tutti.ui.swing.content.operation.FishingOperationsUI;
import fr.ifremer.tutti.ui.swing.util.AbstractTuttiUIHandler;
import fr.ifremer.tutti.ui.swing.util.CloseableUI;
@@ -43,33 +35,23 @@
import fr.ifremer.tutti.ui.swing.util.TuttiUI;
import fr.ifremer.tutti.ui.swing.util.action.AbstractTuttiAction;
import fr.ifremer.tutti.ui.swing.util.action.TuttiActionHelper;
-import fr.ifremer.tutti.ui.swing.util.action.TuttiUIAction;
-import fr.ifremer.tutti.ui.swing.util.editor.CoordinateEditorType;
import jaxx.runtime.SwingUtil;
import jaxx.runtime.validator.swing.SwingValidator;
-import jaxx.runtime.validator.swing.SwingValidatorMessage;
-import jaxx.runtime.validator.swing.SwingValidatorMessageTableModel;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.nuiton.validator.NuitonValidatorResult;
import org.nuiton.validator.NuitonValidatorScope;
-import javax.swing.JComponent;
-import javax.swing.JLabel;
-import javax.swing.JTree;
-import javax.swing.event.TableModelEvent;
-import javax.swing.event.TableModelListener;
+import javax.swing.*;
import javax.swing.tree.*;
-import java.awt.Component;
-import java.awt.event.MouseAdapter;
+import java.awt.*;
+import java.awt.event.KeyEvent;
import java.awt.event.MouseEvent;
import java.beans.PropertyChangeEvent;
-import java.beans.PropertyChangeListener;
import java.util.List;
import java.util.Map;
import static org.nuiton.i18n.I18n._;
-import static org.nuiton.i18n.I18n.n_;
/**
* @author kmorin <kmorin(a)codelutin.com>
@@ -84,34 +66,6 @@
protected EditCruiseFishingOperationAction editFishingOperationAction;
- protected final PropertyChangeListener editFishingOperationModelListener = new PropertyChangeListener() {
- @Override
- public void propertyChange(PropertyChangeEvent evt) {
-
- List<String> propertiesToIgnore = Lists.newArrayList(
- EditFishingOperationUIModel.PROPERTY_MODIFY,
- EditFishingOperationUIModel.PROPERTY_VALID,
- EditFishingOperationUIModel.PROPERTY_PERSISTED
- );
- EditFishingOperationUIModel model = (EditFishingOperationUIModel) evt.getSource();
-
- if (!getUI().getOperationPanel().getModel().isEditionAdjusting()
- && model.getFishingOperation() != null
- &&!propertiesToIgnore.contains(evt.getPropertyName())) {
-
- if (model.getCoordinateEditorType() != CoordinateEditorType.DD) {
- model.convertGearShootingCoordinatesDMSToDD();
- }
-
- FishingOperation operation = model.toBean();
- NuitonValidatorResult validationResult = validationService.validateCruiseOperation(operation);
-
- updateCurrentOperatonNode(validationResult);
-
- }
- }
- };
-
public ValidateCruiseUIHandler(TuttiUI parentUi, ValidateCruiseUI ui) {
super(parentUi.getHandler().getContext(), ui);
validationService = context.getValidateCruiseOperationsService();
@@ -130,9 +84,6 @@
public void propertyChange(PropertyChangeEvent evt) {
FishingOperation operation = (FishingOperation) evt.getNewValue();
- ui.getOperationPanel().getFishingOperationTabContent().getModel().
- removePropertyChangeListener(editFishingOperationModelListener);
-
editFishingOperationAction.setFishingOperation(null);
AbstractTuttiAction.runAction(editFishingOperationAction);
@@ -164,42 +115,14 @@
}
TreeModel model = new DefaultTreeModel(root);
- final JTree navigation = ui.getNavigation();
+ JTree navigation = ui.getNavigation();
navigation.setModel(model);
navigation.setCellRenderer(new ValidationTreeCellRenderer());
- navigation.addMouseListener(new MouseAdapter() {
- @Override
- public void mouseClicked(MouseEvent e) {
- TreePath selectionPath = navigation.getSelectionPath();
- Preconditions.checkArgument(selectionPath.getPathCount() > 1);
-
- Object o = selectionPath.getPathComponent(1);
- FishingOperation operation = null;
-
- if (o != null) {
- operation = (FishingOperation) ((OperationTreeNode) o).getUserObject();
- }
- getModel().setSelectedFishingOperation(operation);
- }
- });
SwingUtil.expandTree(navigation);
SwingUtil.addExpandOnClickListener(navigation);
FishingOperationsUI operationPanel = ui.getOperationPanel();
operationPanel.getTopPanel().setVisible(false);
-
- operationPanel.getFishingOperationTabContent().getModel().addPropertyChangeListener(
- EditFishingOperationUIModel.PROPERTY_PERSISTED, new PropertyChangeListener() {
- @Override
- public void propertyChange(PropertyChangeEvent evt) {
- EditFishingOperationUIModel model = (EditFishingOperationUIModel) evt.getSource();
- if (Boolean.TRUE.equals(evt.getNewValue())) {
- model.addPropertyChangeListener(editFishingOperationModelListener);
- } else {
- model.removePropertyChangeListener(editFishingOperationModelListener);
- }
- }
- });
}
@Override
@@ -225,6 +148,61 @@
return true;
}
+ public void autoSelectNode(MouseEvent e, JPopupMenu popup) {
+ JTree navigation = (JTree) e.getSource();
+
+ boolean rightClick = SwingUtilities.isRightMouseButton(e);
+
+ if (rightClick) {
+
+ // get the path at this point
+ TreePath path = navigation.getPathForLocation(e.getX(), e.getY());
+
+ // select row (could empty selection)
+ if (path == null) {
+ navigation.clearSelection();
+
+ } else {
+ navigation.setSelectionPath(path);
+ }
+
+ // on right click show popup
+ popup.show(navigation, e.getX(), e.getY());
+
+ }
+
+ TreePath selectionPath = navigation.getSelectionPath();
+ FishingOperation operation = null;
+
+ if (selectionPath != null && selectionPath.getPathCount() > 1) {
+ Object o = selectionPath.getPathComponent(1);
+
+ if (o != null) {
+ operation = (FishingOperation) ((OperationTreeNode) o).getUserObject();
+ }
+ }
+ getModel().setSelectedFishingOperation(operation);
+ }
+
+ public void openNodeMenu(KeyEvent e, JPopupMenu popup) {
+
+ if (e.getKeyCode() == KeyEvent.VK_CONTEXT_MENU) {
+
+ JTree navigation = (JTree) e.getSource();
+
+ TreePath path = navigation.getSelectionPath();
+
+ if (path != null) {
+ Rectangle r = navigation.getPathBounds(path);
+
+ // get the point in the middle lower of the node
+ Point p = new Point(r.x + r.width / 2, r.y + r.height);
+
+ popup.show(navigation, p.x, p.y);
+ }
+ }
+ }
+
protected void updateCurrentOperatonNode(NuitonValidatorResult validationResult) {
JTree navigation = ui.getNavigation();
TreePath selectionPath = navigation.getSelectionPath();
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/ExportCruiseForSumatraAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/ExportCruiseForSumatraAction.java 2013-04-25 17:22:52 UTC (rev 875)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/ExportCruiseForSumatraAction.java 2013-04-26 17:21:26 UTC (rev 876)
@@ -53,7 +53,7 @@
protected File file;
public ExportCruiseForSumatraAction(SelectCruiseUIHandler handler) {
- super(handler, true);
+ super(handler, false);
}
@Override
@@ -64,7 +64,8 @@
if (doAction) {
// choose file to export
- file = TuttiUIUtil.chooseFile(
+ file = TuttiUIUtil.saveFile(
+ _("tutti.exportCruiseForSumatra.choose.exportFile.default"),
getContext().getMainUI(),
_("tutti.exportCruiseForSumatra.title.choose.exportFile"),
_("tutti.exportCruiseForSumatra.action.chooseFile"),
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationAction.java 2013-04-25 17:22:52 UTC (rev 875)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationAction.java 2013-04-26 17:21:26 UTC (rev 876)
@@ -382,6 +382,8 @@
EditFishingOperationUIModel editFishingOperationUIModel = ui.getModel();
+ editFishingOperationUIModel.setLoadingData(true);
+
editFishingOperationUIModel.removeAllAttachment(editFishingOperationUIModel.getAttachment());
handler.uninstallStartDateListener();
@@ -461,6 +463,8 @@
handler.registerValidator();
}
+ editFishingOperationUIModel.setLoadingData(false);
+
ui.getTraitGeneralTabPane().setTitle(fishingOperationText);
ui.getVesselUseFeatureTabPane().setTitle(fishingOperationText);
ui.getGearUseFeatureTabPane().setTitle(fishingOperationText);
@@ -498,6 +502,9 @@
ui.getHandler().getCatchBatchMonitor();
EditCatchesUIModel catchesUIModel = ui.getModel();
+
+ catchesUIModel.setLoadingData(true);
+
catchesUIModel.reset();
CatchBatch batch;
@@ -577,6 +584,7 @@
// ui.getPlanktonTabContent().getHandler().selectFishingOperation(bean);
}
+ catchesUIModel.setLoadingData(false);
}
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel.java 2013-04-25 17:22:52 UTC (rev 875)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel.java 2013-04-26 17:21:26 UTC (rev 876)
@@ -127,6 +127,8 @@
protected CoordinateEditorType coordinateEditorType;
+ protected boolean loadingData;
+
protected static Binder<EditFishingOperationUIModel, FishingOperation> toBeanBinder =
BinderFactory.newBinder(EditFishingOperationUIModel.class,
FishingOperation.class);
@@ -142,6 +144,14 @@
gearShootingEndLongitudeAsSexagecimal = SexagecimalPosition.valueOf(getGearShootingEndLongitude());
}
+ public boolean isLoadingData() {
+ return loadingData;
+ }
+
+ public void setLoadingData(boolean loadingData) {
+ this.loadingData = loadingData;
+ }
+
@Override
public String getTitle() {
return TITLE;
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/ComputeWeightsAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/ComputeWeightsAction.java 2013-04-25 17:22:52 UTC (rev 875)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/ComputeWeightsAction.java 2013-04-26 17:21:26 UTC (rev 876)
@@ -60,6 +60,7 @@
TuttiWeightComputingService tuttiWeightComputingService = getContext().getTuttiWeightComputingService();
EditCatchesUIModel model = getModel();
+ model.setLoadingData(true);
BatchContainer<SpeciesBatch> computedSpeciesBatches;
Float totalSpeciesSortedWeight;
@@ -158,6 +159,8 @@
computedMarineLitterBatches);
model.setCatchBatch(catchBatch);
model.fromBean(catchBatch);
+ model.setLoadingData(false);
+
model.setModify(modified);
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIHandler.java 2013-04-25 17:22:52 UTC (rev 875)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIHandler.java 2013-04-26 17:21:26 UTC (rev 876)
@@ -124,6 +124,7 @@
setCustomTab(4, ui.getAccidentalTabContent().getModel());
setCustomTab(5, ui.getIndividualObservationTabContent().getModel());
+ getTabPanel().setSelectedIndex(1);
}
@Override
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIModel.java 2013-04-25 17:22:52 UTC (rev 875)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIModel.java 2013-04-26 17:21:26 UTC (rev 876)
@@ -126,6 +126,8 @@
protected final Multimap<CaracteristicQualitativeValue, CaracteristicQualitativeValue>
marineLitterCategoriesUsed = ArrayListMultimap.create();
+ protected boolean loadingData;
+
public EditCatchesUIModel() {
super(CatchBatch.class, fromBeanBinder, toBeanBinder);
speciesTotalSortedComputedOrNotWeight.addPropagateListener(
@@ -151,6 +153,14 @@
PROPERTY_CATCH_TOTAL_REJECTED_WEIGHT, this);
}
+ public boolean isLoadingData() {
+ return loadingData;
+ }
+
+ public void setLoadingData(boolean loadingData) {
+ this.loadingData = loadingData;
+ }
+
@Override
public String getTitle() {
return _("tutti.label.tab.catchesCaracteristics");
Modified: trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties
===================================================================
--- trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties 2013-04-25 17:22:52 UTC (rev 875)
+++ trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties 2013-04-26 17:21:26 UTC (rev 876)
@@ -1,3 +1,4 @@
+export=
swing.error.cannot.mail=
swing.error.cannot.open.file=
swing.error.cannot.open.link=
@@ -4,6 +5,7 @@
swing.error.desktop.browse.not.supported=
swing.error.desktop.mail.not.supported=
swing.error.desktop.not.supported=
+traits=
tutti.about.bottomText=
tutti.about.message=
tutti.about.title=
@@ -820,6 +822,7 @@
tutti.exportCruise.action.success=
tutti.exportCruiseForSumatra.action.chooseFile=
tutti.exportCruiseForSumatra.action.success=
+tutti.exportCruiseForSumatra.choose.exportFile.default=
tutti.exportCruiseForSumatra.title.choose.exportFile=
tutti.exportProgram.action.success=
tutti.exportProtocol.action.success=
@@ -1119,6 +1122,29 @@
tutti.updateApplication.message.success=
tutti.updateApplication.noUpdate=
tutti.updateApplication.title.success=
+tutti.validateCruise.action.export.all.chooseFile.defaultFile=
+tutti.validateCruise.action.export.all.chooseFile.label=
+tutti.validateCruise.action.export.all.chooseFile.title=
+tutti.validateCruise.action.export.all.success=
+tutti.validateCruise.action.export.all.tip=
+tutti.validateCruise.action.export.chooseFile.defaultFile=
+tutti.validateCruise.action.export.chooseFile.label=
+tutti.validateCruise.action.export.chooseFile.title=
+tutti.validateCruise.action.export.operation.chooseFile.defaultFile=
+tutti.validateCruise.action.export.operation.chooseFile.label=
+tutti.validateCruise.action.export.operation.chooseFile.title=
+tutti.validateCruise.action.export.operation.success=
+tutti.validateCruise.action.export.operation.tip=
+tutti.validateCruise.action.export.tip=
+tutti.validateCruise.action.refresh.all.tip=
+tutti.validateCruise.navigation.action.export=
+tutti.validateCruise.navigation.action.export.all.tip=
+tutti.validateCruise.navigation.action.export.operation=
+tutti.validateCruise.navigation.action.export.operation.mnemonic=
+tutti.validateCruise.navigation.action.export.operation.tip=
+tutti.validateCruise.navigation.action.export.tip=
+tutti.validateCruise.navigation.action.refresh.all.tip=
+tutti.validateCruise.navigation.title=
tutti.validator.error.createAccidentalBatch.species.required=
tutti.validator.error.createIndividualObservationBatch.lengthStepCaracteristic.required=
tutti.validator.error.createIndividualObservationBatch.size.required=
Modified: trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties
===================================================================
--- trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2013-04-25 17:22:52 UTC (rev 875)
+++ trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2013-04-26 17:21:26 UTC (rev 876)
@@ -807,6 +807,7 @@
tutti.exportCruise.action.success=La campagne <strong>%s</strong> a été exportée dans le fichier <strong>%s</strong>.
tutti.exportCruiseForSumatra.action.chooseFile=Choisir le fichier d'export
tutti.exportCruiseForSumatra.action.success=Les captures ont correctement été exporté dans le fichier %s
+tutti.exportCruiseForSumatra.choose.exportFile.default=import_sumatra
tutti.exportCruiseForSumatra.title.choose.exportFile=Exporter les captures de la campagne
tutti.exportProgram.action.success=La série de campagne <strong>%s</strong> a été exportée dans le fichier <strong>%s</strong>.
tutti.exportProtocol.action.success=Protocole [%1s] exporté dans le fichier <strong>%2s</strong>.
@@ -1105,6 +1106,22 @@
tutti.updateApplication.message.success=La mise à jour nécessite le redémarrage du Tutti.\nL'application va se fermer puis se ré-ouvrir automatiquement.
tutti.updateApplication.noUpdate=Aucune mise à jour de l'application détectée.
tutti.updateApplication.title.success=Redémarrage de Tutti nécessaire...
+tutti.validateCruise.action.export.all.chooseFile.defaultFile=validation_%s
+tutti.validateCruise.action.export.all.chooseFile.label=Choisir le fichier d'export
+tutti.validateCruise.action.export.all.chooseFile.title=Exporter les messages de validation de la campagne
+tutti.validateCruise.action.export.all.success=Les messages de validation des captures ont correctement été exporté dans le fichier %s
+tutti.validateCruise.action.export.all.tip=Exporter les messages de validation de la campagne
+tutti.validateCruise.action.export.operation.chooseFile.defaultFile=validation_%s
+tutti.validateCruise.action.export.operation.chooseFile.label=Choisir le fichier d'export
+tutti.validateCruise.action.export.operation.chooseFile.title=Exporter les messages de validation de l'opération
+tutti.validateCruise.action.export.operation.success=Les messages de validation de l'opération ont correctement été exporté dans le fichier %s
+tutti.validateCruise.action.export.operation.tip=Exporter les messages de validation de l'opération
+tutti.validateCruise.navigation.action.export.all.tip=Exporter les messages de validation de la campagne
+tutti.validateCruise.navigation.action.export.operation=Exporter
+tutti.validateCruise.navigation.action.export.operation.mnemonic=x
+tutti.validateCruise.navigation.action.export.operation.tip=Exporter les messages de validation de l'opération
+tutti.validateCruise.navigation.action.refresh.all.tip=Rafraîchir les messages de validation de la campagne
+tutti.validateCruise.navigation.title=Traits
tutti.validator.error.createAccidentalBatch.species.required=L'espèce est obligatoire
tutti.validator.error.createIndividualObservationBatch.lengthStepCaracteristic.required=La classe de taille est obligatoire
tutti.validator.error.createIndividualObservationBatch.size.required=La taille est obligatoire
1
0