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
- 4058 discussions
r933 - in trunk: tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species
by tchemit@users.forge.codelutin.com 08 May '13
by tchemit@users.forge.codelutin.com 08 May '13
08 May '13
Author: tchemit
Date: 2013-05-08 18:06:49 +0200 (Wed, 08 May 2013)
New Revision: 933
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/933
Log:
add missing svn properties + license header
Modified:
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/CatchFrequencyRow.java
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/CatchFrequencyRowModel.java
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/CatchRow.java
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/CatchRowModel.java
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/TuttiMultiPostImportExportService.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/ExportMultiPostAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/ImportMultiPostAction.java
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/CatchFrequencyRow.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/CatchFrequencyRow.java 2013-05-08 15:54:29 UTC (rev 932)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/CatchFrequencyRow.java 2013-05-08 16:06:49 UTC (rev 933)
@@ -1,5 +1,29 @@
package fr.ifremer.tutti.service.catches.multipost;
+/*
+ * #%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%
+ */
+
import fr.ifremer.tutti.persistence.entities.referential.Caracteristic;
import java.io.Serializable;
Property changes on: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/CatchFrequencyRow.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/CatchFrequencyRowModel.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/CatchFrequencyRowModel.java 2013-05-08 15:54:29 UTC (rev 932)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/CatchFrequencyRowModel.java 2013-05-08 16:06:49 UTC (rev 933)
@@ -1,5 +1,29 @@
package fr.ifremer.tutti.service.catches.multipost;
+/*
+ * #%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%
+ */
+
import fr.ifremer.tutti.persistence.entities.referential.Caracteristic;
import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValue;
import fr.ifremer.tutti.persistence.entities.referential.Species;
Property changes on: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/CatchFrequencyRowModel.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/CatchRow.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/CatchRow.java 2013-05-08 15:54:29 UTC (rev 932)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/CatchRow.java 2013-05-08 16:06:49 UTC (rev 933)
@@ -1,5 +1,29 @@
package fr.ifremer.tutti.service.catches.multipost;
+/*
+ * #%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%
+ */
+
import com.google.common.collect.Maps;
import fr.ifremer.tutti.persistence.entities.data.*;
import fr.ifremer.tutti.persistence.entities.referential.Caracteristic;
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/CatchRowModel.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/CatchRowModel.java 2013-05-08 15:54:29 UTC (rev 932)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/CatchRowModel.java 2013-05-08 16:06:49 UTC (rev 933)
@@ -1,5 +1,29 @@
package fr.ifremer.tutti.service.catches.multipost;
+/*
+ * #%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%
+ */
+
import fr.ifremer.tutti.persistence.entities.data.*;
import fr.ifremer.tutti.persistence.entities.referential.*;
import fr.ifremer.tutti.service.PersistenceService;
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/TuttiMultiPostImportExportService.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/TuttiMultiPostImportExportService.java 2013-05-08 15:54:29 UTC (rev 932)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/TuttiMultiPostImportExportService.java 2013-05-08 16:06:49 UTC (rev 933)
@@ -1,5 +1,29 @@
package fr.ifremer.tutti.service.catches.multipost;
+/*
+ * #%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%
+ */
+
import com.google.common.base.Charsets;
import com.google.common.collect.Lists;
import com.google.common.io.Files;
Property changes on: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/TuttiMultiPostImportExportService.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/ExportMultiPostAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/ExportMultiPostAction.java 2013-05-08 15:54:29 UTC (rev 932)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/ExportMultiPostAction.java 2013-05-08 16:06:49 UTC (rev 933)
@@ -1,5 +1,29 @@
package fr.ifremer.tutti.ui.swing.content.operation.catches.species;
+/*
+ * #%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%
+ */
+
import fr.ifremer.tutti.persistence.entities.data.FishingOperation;
import fr.ifremer.tutti.service.DecoratorService;
import fr.ifremer.tutti.service.catches.multipost.TuttiMultiPostImportExportService;
Property changes on: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/ExportMultiPostAction.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/ImportMultiPostAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/ImportMultiPostAction.java 2013-05-08 15:54:29 UTC (rev 932)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/ImportMultiPostAction.java 2013-05-08 16:06:49 UTC (rev 933)
@@ -1,5 +1,29 @@
package fr.ifremer.tutti.ui.swing.content.operation.catches.species;
+/*
+ * #%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%
+ */
+
import fr.ifremer.tutti.persistence.entities.data.CatchBatch;
import fr.ifremer.tutti.persistence.entities.data.FishingOperation;
import fr.ifremer.tutti.ui.swing.content.operation.EditFishingOperationAction;
Property changes on: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/ImportMultiPostAction.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
1
0
08 May '13
Author: tchemit
Date: 2013-05-08 17:54:29 +0200 (Wed, 08 May 2013)
New Revision: 932
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/932
Log:
optimize dependencies
Modified:
trunk/tutti-service/pom.xml
trunk/tutti-ui-swing/pom.xml
Modified: trunk/tutti-service/pom.xml
===================================================================
--- trunk/tutti-service/pom.xml 2013-05-08 15:45:54 UTC (rev 931)
+++ trunk/tutti-service/pom.xml 2013-05-08 15:54:29 UTC (rev 932)
@@ -125,6 +125,11 @@
<artifactId>xwork-core</artifactId>
</dependency>
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-tx</artifactId>
+ </dependency>
+
<!-- Logging -->
<dependency>
Modified: trunk/tutti-ui-swing/pom.xml
===================================================================
--- trunk/tutti-ui-swing/pom.xml 2013-05-08 15:45:54 UTC (rev 931)
+++ trunk/tutti-ui-swing/pom.xml 2013-05-08 15:54:29 UTC (rev 932)
@@ -371,6 +371,11 @@
</dependency>
<dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-tx</artifactId>
+ </dependency>
+
+ <dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</dependency>
1
0
r931 - in trunk/tutti-ui-swing/src/main: java/fr/ifremer/tutti/ui/swing java/fr/ifremer/tutti/ui/swing/content java/fr/ifremer/tutti/ui/swing/content/db java/fr/ifremer/tutti/ui/swing/util resources/i18n
by tchemit@users.forge.codelutin.com 08 May '13
by tchemit@users.forge.codelutin.com 08 May '13
08 May '13
Author: tchemit
Date: 2013-05-08 17:45:54 +0200 (Wed, 08 May 2013)
New Revision: 931
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/931
Log:
fixes #2313: [GENERAL] erreur au red?\195?\169marage de tutti si l abase est d?\195?\169j?\195?\160 utilis?\195?\169e par une autre instance de tutti
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/content/AbstractChangeScreenAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/DbManagerUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/OpenDbAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/TuttiExceptionHandler.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/TuttiUIContext.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiUIContext.java 2013-05-08 14:41:35 UTC (rev 930)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiUIContext.java 2013-05-08 15:45:54 UTC (rev 931)
@@ -814,4 +814,12 @@
Object newValue) {
firePropertyChange(propertyName, oldValue, newValue);
}
+
+ public void setFallBackScreen() {
+ if (isDbLoaded()) {
+ setScreen(TuttiScreen.SELECT_CRUISE);
+ } else {
+ setScreen(TuttiScreen.MANAGE_DB);
+ }
+ }
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/AbstractChangeScreenAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/AbstractChangeScreenAction.java 2013-05-08 14:41:35 UTC (rev 930)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/AbstractChangeScreenAction.java 2013-05-08 15:45:54 UTC (rev 931)
@@ -86,37 +86,27 @@
TuttiUIContext context = getContext();
- try {
-
- TuttiScreen previousScreen = context.getScreen();
- if (getUI() != null) {
- if (previousScreen == null) {
- PREVIOUS_SCREEN.removeContextValue(getUI());
- } else {
- PREVIOUS_SCREEN.setContextValue(getUI(), previousScreen);
- }
+ TuttiScreen previousScreen = context.getScreen();
+ if (getUI() != null) {
+ if (previousScreen == null) {
+ PREVIOUS_SCREEN.removeContextValue(getUI());
+ } else {
+ PREVIOUS_SCREEN.setContextValue(getUI(), previousScreen);
}
+ }
- // clean current screen
- context.setScreen(null);
+ // clean current screen
+ context.setScreen(null);
- // change screen
- context.setScreen(screen);
-
- } catch (Exception e) {
- throw e;
- }
+ // change screen
+ context.setScreen(screen);
}
@Override
public void postFailedAction(Throwable error) {
- TuttiUIContext context = getContext();
if (error != null) {
- if (context.isDbLoaded()) {
- context.setScreen(TuttiScreen.SELECT_CRUISE);
- } else {
- context.setScreen(TuttiScreen.MANAGE_DB);
- }
+
+ getContext().setFallBackScreen();
}
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/DbManagerUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/DbManagerUIHandler.java 2013-05-08 14:41:35 UTC (rev 930)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/DbManagerUIHandler.java 2013-05-08 15:45:54 UTC (rev 931)
@@ -51,25 +51,26 @@
String message;
if (dbExist) {
+
+ String jdbcUrl = getConfig().getServiceConfig().getPersistenceConfig().getJdbcUrl();
+
if (dbLoaded) {
- String jdbcUrl = getConfig().getServiceConfig().getPersistenceConfig().getJdbcUrl();
-
// db loaded
message = _("tutti.dbManager.info.db.loaded", jdbcUrl);
} else {
// no db loaded
- message = _("tutti.dbManager.info.no.db.loaded");
+ message = _("tutti.dbManager.info.no.db.loaded", jdbcUrl);
}
} else {
// db does not exist
message = _("tutti.dbManager.info.no.db.exist");
- ui.getInformationLabel().setText(_(message));
+// ui.getInformationLabel().setText(_(message));
}
- return message;
+ return "<html><body>" + message + "</body></html>";
}
@Override
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/OpenDbAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/OpenDbAction.java 2013-05-08 14:41:35 UTC (rev 930)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/OpenDbAction.java 2013-05-08 15:45:54 UTC (rev 931)
@@ -24,6 +24,7 @@
* #L%
*/
+import fr.ifremer.tutti.TuttiBusinessException;
import fr.ifremer.tutti.persistence.config.TuttiPersistenceConfig;
import fr.ifremer.tutti.ui.swing.TuttiScreen;
import fr.ifremer.tutti.ui.swing.content.AbstractChangeScreenAction;
@@ -55,9 +56,20 @@
if (log.isDebugEnabled()) {
log.debug("Will open db...");
}
- getContext().setDbLoaded(true);
- getHandler().reloadPersistenceService();
+ try {
+ getContext().setDbLoaded(true);
+ getHandler().reloadPersistenceService();
+ } catch (Exception e) {
+
+ // no more db
+ getContext().setDbLoaded(false);
+ getHandler().reloadPersistenceService();
+
+ // could not load db
+ throw new TuttiBusinessException(_("tutti.dbManager.action.openDb.couldNotOpen"));
+ }
+
if (log.isDebugEnabled()) {
log.debug("Check db context");
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/TuttiExceptionHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/TuttiExceptionHandler.java 2013-05-08 14:41:35 UTC (rev 930)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/TuttiExceptionHandler.java 2013-05-08 15:45:54 UTC (rev 931)
@@ -25,7 +25,6 @@
*/
import fr.ifremer.tutti.TuttiTechnicalException;
-import fr.ifremer.tutti.ui.swing.TuttiScreen;
import fr.ifremer.tutti.ui.swing.TuttiUIContext;
import fr.ifremer.tutti.ui.swing.content.AbstractChangeScreenAction;
import fr.ifremer.tutti.ui.swing.util.action.AbstractTuttiAction;
@@ -98,7 +97,8 @@
TuttiUIContext.getErrorHelper().showErrorDialog(cause.getMessage(), cause);
if (backToScreen) {
- action.getContext().setScreen(TuttiScreen.SELECT_CRUISE);
+
+ action.getContext().setFallBackScreen();
}
}
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-05-08 14:41:35 UTC (rev 930)
+++ trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties 2013-05-08 15:45:54 UTC (rev 931)
@@ -241,6 +241,7 @@
tutti.dbManager.action.installDb.mnemonic=
tutti.dbManager.action.installDb.tip=
tutti.dbManager.action.openDb=
+tutti.dbManager.action.openDb.couldNotOpen=
tutti.dbManager.action.openDb.mnemonic=
tutti.dbManager.action.openDb.tip=
tutti.dbManager.action.upgradeDb=
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-05-08 14:41:35 UTC (rev 930)
+++ trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2013-05-08 15:45:54 UTC (rev 931)
@@ -236,6 +236,7 @@
tutti.dbManager.action.installDb.mnemonic=n
tutti.dbManager.action.installDb.tip=Télécharger puis installer la base de données
tutti.dbManager.action.openDb=Ouvrir
+tutti.dbManager.action.openDb.couldNotOpen=Impossible d'ouvrir la base, elle est peut-être déjà utilisée par une autre application (ou une autre instance de Tutti).
tutti.dbManager.action.openDb.mnemonic=O
tutti.dbManager.action.openDb.tip=Ouvrir la base de données
tutti.dbManager.action.upgradeDb=Vérifier les mises à jour
@@ -245,9 +246,9 @@
tutti.dbManager.action.upgradeDb.reloading=Rechargement de la base de données
tutti.dbManager.action.upgradeDb.tip=Mettre à jour les référentiels si nécessaire
tutti.dbManager.action.upgradeDb.upToDate=Aucune mise à jour de base détectée.
-tutti.dbManager.info.db.loaded=<html>Tutti est connecté à une base de données<hr/>Url de connexion \: <strong>%s</strong></html>
+tutti.dbManager.info.db.loaded=Tutti est connecté à une base de données<hr/>Url de connexion \: <strong>%s</strong>
tutti.dbManager.info.no.db.exist=Aucune base détectée, vous pouvez installer la dernière disponible sur le réseau ou bien en importer une.
-tutti.dbManager.info.no.db.loaded=Tutti possède une base mais elle n'est pas actuellement ouverte.
+tutti.dbManager.info.no.db.loaded=Tutti possède une base (<strong>%s</strong>).<br/>Elle n'a pas pu être ouverte, elle doit être probablement utilisée par une autre application.<hr/>Quitter les applications l'utilisant puis redémarrer Tutti.
tutti.dbManager.title.choose.dbExportFile=Exporter la base de données
tutti.dbManager.title.choose.dbImportFile=Importer la base de données
tutti.editAccidentalBatch.action.createBatch=Créer une capture accidentelle
1
0
08 May '13
Author: tchemit
Date: 2013-05-08 16:41:35 +0200 (Wed, 08 May 2013)
New Revision: 930
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/930
Log:
- fixes #2410: [TRAIT] Pas d'arbre d'?\195?\169chantillonnage associ?\195?\169 ?\195?\160 une op?\195?\169ration de p?\195?\170che
- fixes #2395: [TRAIT] Il manque un sablier quand on s?\195?\169lectionne un trait dans la liste
- clean some action api
Modified:
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/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseFishingOperationAction.java
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/operation/CancelEditFishingOperationAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/DeleteFishingOperationAction.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/FishingOperationsUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUIModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/RemoveBenthosBatchAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/RemoveSpeciesBatchAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiTabContainerUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/action/AbstractTuttiAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/action/TuttiActionHelper.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/catches/ValidateCruiseOperationsService.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/ValidateCruiseOperationsService.java 2013-05-08 11:00:38 UTC (rev 929)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/ValidateCruiseOperationsService.java 2013-05-08 14:41:35 UTC (rev 930)
@@ -28,16 +28,29 @@
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.InvalidBatchModelException;
+import fr.ifremer.tutti.persistence.entities.data.BatchContainer;
+import fr.ifremer.tutti.persistence.entities.data.BenthosBatch;
+import fr.ifremer.tutti.persistence.entities.data.BenthosBatchFrequency;
+import fr.ifremer.tutti.persistence.entities.data.CatchBatch;
+import fr.ifremer.tutti.persistence.entities.data.FishingOperation;
+import fr.ifremer.tutti.persistence.entities.data.MarineLitterBatch;
+import fr.ifremer.tutti.persistence.entities.data.SpeciesBatch;
+import fr.ifremer.tutti.persistence.entities.data.SpeciesBatchFrequency;
import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol;
import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocols;
-import fr.ifremer.tutti.service.*;
+import fr.ifremer.tutti.service.AbstractTuttiService;
+import fr.ifremer.tutti.service.DecoratorService;
+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 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 org.springframework.dao.DataRetrievalFailureException;
import java.io.File;
import java.io.IOException;
@@ -75,6 +88,7 @@
/**
* Validates the operations of the currently selected cruise.
+ *
* @return a map containing the operations and the validation results
*/
public Map<FishingOperation, NuitonValidatorResult> validateCruiseOperations() {
@@ -95,6 +109,7 @@
/**
* Validates the operation of the currently selected cruise whose id is the given id.
+ *
* @return the validation results
*/
public NuitonValidatorResult validateCruiseOperation(FishingOperation operation) {
@@ -105,6 +120,7 @@
/**
* Validates the operation of the currently selected cruise whose id is the given id.
+ *
* @return the validation results
*/
public NuitonValidatorResult validateCruiseOperation(CatchBatch catches) {
@@ -116,7 +132,6 @@
}
/**
- *
* @param file
* @param validationResults
*/
@@ -135,7 +150,6 @@
}
/**
- *
* @param file
* @param operation
* @param validationResult
@@ -157,22 +171,48 @@
/**
* Adds additional messages to the validation results
+ *
* @param fishingOperation the operation to validate
- * @param validator the validatpr containing the messages.
+ * @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);
+
+ try {
+ CatchBatch catchBatch =
+ persistenceService.getCatchBatchFromFishingOperation(fishingOperationId);
+
+ checkOperation(fishingOperation, catchBatch, validator);
+ } catch (DataRetrievalFailureException e) {
+ // batch not found
+ if (log.isDebugEnabled()) {
+ log.debug("Catch batch not found", e);
+ }
+ Map<String, List<String>> errorMap = Maps.newHashMap();
+ errorMap.put("catches", Lists.newArrayList(_("tutti.validator.warning.fishingOperation.batch.notFound")));
+ validator.addMessagesForScope(NuitonValidatorScope.WARNING, errorMap);
+
+ } catch (InvalidBatchModelException e) {
+
+ // batch is not compatible with Tutti
+ if (log.isDebugEnabled()) {
+ log.debug("Invalid batch model", e);
+ }
+ Map<String, List<String>> errorMap = Maps.newHashMap();
+ errorMap.put("catches", Lists.newArrayList(_("tutti.validator.warning.fishingOperation.invalid.batch.model")));
+ validator.addMessagesForScope(NuitonValidatorScope.WARNING, errorMap);
+ }
+
}
/**
* 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.
+ * @param validator the validatpr containing the messages.
*/
protected void checkOperation(FishingOperation fishingOperation,
CatchBatch catchBatch,
@@ -215,9 +255,9 @@
try {
if (catchBatch != null) {
tuttiWeightComputingService.computeCatchBatchWeights(catchBatch,
- rootSpeciesBatch,
- rootBenthosBatch,
- rootMarineLitterBatch);
+ rootSpeciesBatch,
+ rootBenthosBatch,
+ rootMarineLitterBatch);
}
} catch (TuttiBusinessException e) {
errors.add(e.getMessage());
@@ -252,7 +292,8 @@
/**
* Is the species batch respecting the protocol recommendations?
- * @param batch the batch to check
+ *
+ * @param batch the batch to check
* @param protocol the current protocol
* @return true if the batch or one of its children does not respect the protocol, false otherwise
*/
@@ -274,7 +315,8 @@
/**
* Is the benthos batch respecting the protocol recommendations?
- * @param batch the batch to check
+ *
+ * @param batch the batch to check
* @param protocol the current protocol
* @return true if the batch or one of its children does not respect the protocol, false otherwise
*/
@@ -295,7 +337,6 @@
}
/**
- *
* @param operation
* @param validationResult
*/
@@ -303,7 +344,7 @@
List<String> lines = Lists.newArrayList();
lines.add(_("tutti.validator.export.operation",
- decoratorService.getDecoratorByType(FishingOperation.class).toString(operation)));
+ decoratorService.getDecoratorByType(FishingOperation.class).toString(operation)));
List<String> messages = validationResult.getMessagesForScope(NuitonValidatorScope.ERROR);
for (String message : messages) {
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-05-08 11:00:38 UTC (rev 929)
+++ trunk/tutti-service/src/main/resources/i18n/tutti-service_en_GB.properties 2013-05-08 14:41:35 UTC (rev 930)
@@ -83,6 +83,7 @@
tutti.service.exportSumatra.header.weight=
tutti.service.mkDir.error=
tutti.service.multipost.export.error=
+tutti.service.multipost.export.frequencies.error=
tutti.service.operations.accidental.error.species.required=
tutti.service.operations.computeWeights.benthos.error.incoherentCategoryWeight=
tutti.service.operations.computeWeights.benthos.error.incoherentParentCategoryWeight=
@@ -211,6 +212,8 @@
tutti.validator.export.message.warning=
tutti.validator.export.operation=
tutti.validator.warning.benthos.protocolNotRespected=
+tutti.validator.warning.fishingOperation.batch.notFound=
+tutti.validator.warning.fishingOperation.invalid.batch.model=
tutti.validator.warning.latitude.outOfBounds=
tutti.validator.warning.longitude.outOfBounds=
tutti.validator.warning.marineLitter.weight.required=
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-05-08 11:00:38 UTC (rev 929)
+++ trunk/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties 2013-05-08 14:41:35 UTC (rev 930)
@@ -81,6 +81,7 @@
tutti.service.exportSumatra.header.weight=Total
tutti.service.mkDir.error=Erreur à la création du dossier %s
tutti.service.multipost.export.error=
+tutti.service.multipost.export.frequencies.error=
tutti.service.operations.computeWeights.error.benthos.incoherentCategoryWeight=Le poids total des mensurations d'un lot du benthos est supérieur au poids de la catégorie
tutti.service.operations.computeWeights.error.benthos.incoherentParentCategoryWeight=Le poids de la catégorie d'un lot du benthos est différent de la somme des poids de ses sous-catégories
tutti.service.operations.computeWeights.error.benthos.incoherentRowWeightCategory=Le poids de sous-échantillon est renseigné alors que le lot n'a pas de poids.
@@ -184,6 +185,8 @@
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.fishingOperation.batch.notFound=Pas d'arbre d'échantilonnage trouvé
+tutti.validator.warning.fishingOperation.invalid.batch.model=Arbre d'échantilonnage non compatible avec Tutti
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
tutti.validator.warning.marineLitter.weight.required=Un lot de macro-déchets n'a pas de poids
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-05-08 11:00:38 UTC (rev 929)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseFishingOperationAction.java 2013-05-08 14:41:35 UTC (rev 930)
@@ -140,7 +140,7 @@
};
public EditCruiseFishingOperationAction(ValidateCruiseUIHandler handler) {
- super(handler, false);
+ super(handler, true);
setActionDescription(_("tutti.editFishingOperation.action.editFishingOperation.tip"));
}
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-05-08 11:00:38 UTC (rev 929)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/ValidateCruiseUIHandler.java 2013-05-08 14:41:35 UTC (rev 930)
@@ -33,7 +33,6 @@
import fr.ifremer.tutti.ui.swing.util.CloseableUI;
import fr.ifremer.tutti.ui.swing.util.RemoveablePropertyChangeListener;
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 jaxx.runtime.SwingUtil;
import jaxx.runtime.validator.swing.SwingValidator;
@@ -42,9 +41,19 @@
import org.nuiton.validator.NuitonValidatorResult;
import org.nuiton.validator.NuitonValidatorScope;
-import javax.swing.*;
-import javax.swing.tree.*;
-import java.awt.*;
+import javax.swing.JComponent;
+import javax.swing.JLabel;
+import javax.swing.JPopupMenu;
+import javax.swing.JTree;
+import javax.swing.SwingUtilities;
+import javax.swing.tree.DefaultMutableTreeNode;
+import javax.swing.tree.DefaultTreeCellRenderer;
+import javax.swing.tree.DefaultTreeModel;
+import javax.swing.tree.TreeModel;
+import javax.swing.tree.TreePath;
+import java.awt.Component;
+import java.awt.Point;
+import java.awt.Rectangle;
import java.awt.event.KeyEvent;
import java.awt.event.MouseEvent;
import java.beans.PropertyChangeEvent;
@@ -79,21 +88,15 @@
model.setValidator(validationService.validateCruiseOperations());
model.addPropertyChangeListener(ValidateCruiseUIModel.PROPERTY_SELECTED_FISHING_OPERATION,
- new RemoveablePropertyChangeListener() {
- @Override
- public void propertyChange(PropertyChangeEvent evt) {
- FishingOperation operation = (FishingOperation) evt.getNewValue();
+ new RemoveablePropertyChangeListener() {
+ @Override
+ public void propertyChange(PropertyChangeEvent evt) {
+ FishingOperation operation = (FishingOperation) evt.getNewValue();
+ editFishingOperationAction.setFishingOperation(operation);
+ TuttiActionHelper.runAction(editFishingOperationAction);
+ }
+ });
- editFishingOperationAction.setFishingOperation(null);
- AbstractTuttiAction.runAction(editFishingOperationAction);
-
- if (operation != null) {
- editFishingOperationAction.setFishingOperation(operation);
- TuttiActionHelper.runAction(editFishingOperationAction);
- }
- }
- });
-
ui.setContextValue(model);
}
@@ -260,9 +263,9 @@
public void createChildren(NuitonValidatorResult validationResult) {
int messageNb = 0;
messageNb += addMessages(NuitonValidatorScope.ERROR,
- validationResult.getMessagesForScope(NuitonValidatorScope.ERROR));
+ validationResult.getMessagesForScope(NuitonValidatorScope.ERROR));
messageNb += addMessages(NuitonValidatorScope.WARNING,
- validationResult.getMessagesForScope(NuitonValidatorScope.WARNING));
+ validationResult.getMessagesForScope(NuitonValidatorScope.WARNING));
if (messageNb == 0) {
addMessages(NuitonValidatorScope.INFO, Lists.newArrayList(_("tutti.validator.info.operation.noError")));
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/CancelEditFishingOperationAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/CancelEditFishingOperationAction.java 2013-05-08 11:00:38 UTC (rev 929)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/CancelEditFishingOperationAction.java 2013-05-08 14:41:35 UTC (rev 930)
@@ -72,7 +72,7 @@
}
// cancel to create a new fishingOperation
action.setFishingOperation(null);
- runAction(action);
+ TuttiActionHelper.runInternalAction(action);
} else {
@@ -83,7 +83,7 @@
// re-edit current fishing operation (but do not perform any check)
action.setCheckPreviousEdit(false);
action.setFishingOperation(getModel().getFishingOperation());
- runAction(action);
+ TuttiActionHelper.runInternalAction(action);
}
//FIXME-TC Make sure this works again
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/DeleteFishingOperationAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/DeleteFishingOperationAction.java 2013-05-08 11:00:38 UTC (rev 929)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/DeleteFishingOperationAction.java 2013-05-08 14:41:35 UTC (rev 930)
@@ -74,17 +74,9 @@
}
getContext().getPersistenceService().deleteFishingOperation(fishingOperation.getId());
- }
- @Override
- public void postSuccessAction() {
- super.postSuccessAction();
-
FishingOperationsUIModel model = getModel();
- FishingOperation fishingOperation =
- model.getSelectedFishingOperation();
-
// unselect removed fishing operation
model.setSelectedFishingOperation(null);
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-05-08 11:00:38 UTC (rev 929)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationAction.java 2013-05-08 14:41:35 UTC (rev 930)
@@ -43,9 +43,11 @@
import fr.ifremer.tutti.ui.swing.content.operation.fishing.VesselUseFeatureTabUI;
import fr.ifremer.tutti.ui.swing.util.TuttiBeanMonitor;
import fr.ifremer.tutti.ui.swing.util.action.AbstractTuttiAction;
+import fr.ifremer.tutti.ui.swing.util.action.TuttiActionHelper;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.nuiton.util.decorator.Decorator;
+import org.springframework.dao.DataRetrievalFailureException;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
@@ -248,12 +250,12 @@
// persist previous fishing operation
if (fishingOperationModified) {
getSaveFishingOperationAction().setUpdateUI(false);
- runAction(getSaveFishingOperationAction());
+ TuttiActionHelper.runInternalAction(getSaveFishingOperationAction());
}
if (catchBatchModified) {
getSaveCatchBatchAction().setUpdateUI(false);
- runAction(getSaveCatchBatchAction());
+ TuttiActionHelper.runInternalAction(getSaveCatchBatchAction());
}
canContinue = true;
@@ -540,8 +542,19 @@
batch.setFishingOperation(bean);
Integer objectId = Integer.valueOf(batch.getId());
attachments = persistenceService.getAllAttachments(catchesUIModel.getObjectType(), objectId);
+ getModel().setCatchNotFound(false);
getModel().setCatchEnabled(true);
+ } catch (DataRetrievalFailureException e) {
+ // batch not found
+ if (log.isDebugEnabled()) {
+ log.debug("Batch not found", e);
+ }
+ batch = null;
+ attachments = Collections.emptyList();
+
+ getModel().setCatchEnabled(false);
+ getModel().setCatchNotFound(true);
} catch (InvalidBatchModelException e) {
// batch is not compatible with Tutti
@@ -574,11 +587,13 @@
// 4) Propagate new selected fishingoperation to others tabs
- ui.getSpeciesTabContent().getHandler().selectFishingOperation(batch == null ? null : bean);
- ui.getBenthosTabContent().getHandler().selectFishingOperation(batch == null ? null : bean);
- ui.getMarineLitterTabContent().getHandler().selectFishingOperation(batch == null ? null : bean);
- ui.getAccidentalTabContent().getHandler().selectFishingOperation(batch == null ? null : bean);
- ui.getIndividualObservationTabContent().getHandler().selectFishingOperation(batch == null ? null : bean);
+ FishingOperation operationToLoad = batch == null ? null : bean;
+
+ ui.getSpeciesTabContent().getHandler().selectFishingOperation(operationToLoad);
+ ui.getBenthosTabContent().getHandler().selectFishingOperation(operationToLoad);
+ ui.getMarineLitterTabContent().getHandler().selectFishingOperation(operationToLoad);
+ ui.getAccidentalTabContent().getHandler().selectFishingOperation(operationToLoad);
+ ui.getIndividualObservationTabContent().getHandler().selectFishingOperation(operationToLoad);
}
catchesUIModel.setLoadingData(false);
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUI.css 2013-05-08 11:00:38 UTC (rev 929)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUI.css 2013-05-08 14:41:35 UTC (rev 930)
@@ -63,7 +63,7 @@
#warningLabel {
actionIcon: warning;
border: {new javax.swing.border.EmptyBorder(5, 10, 5, 10)};
- text: "tutti.fishingOperations.warn.invalid.batch.model";
+ text: {handler.getCatchWarningLabel(model.isCatchEnabled(), model.isCatchNotFound())};
}
#catchesTab {
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUIHandler.java 2013-05-08 11:00:38 UTC (rev 929)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUIHandler.java 2013-05-08 14:41:35 UTC (rev 930)
@@ -33,7 +33,6 @@
import fr.ifremer.tutti.ui.swing.util.AbstractTuttiTabContainerUIHandler;
import fr.ifremer.tutti.ui.swing.util.CloseableUI;
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 jaxx.runtime.validator.swing.SwingValidator;
import org.apache.commons.logging.Log;
@@ -41,10 +40,13 @@
import javax.swing.JComponent;
import javax.swing.JTabbedPane;
+import javax.swing.SwingUtilities;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.util.List;
+import static org.nuiton.i18n.I18n._;
+
/**
* Handler of UI {@link FishingOperationsUI}.
*
@@ -67,6 +69,10 @@
persistenceService = context.getPersistenceService();
}
+ //------------------------------------------------------------------------//
+ //-- AbstractTuttiUIHandler methods --//
+ //------------------------------------------------------------------------//
+
@Override
public void beforeInitUI() {
@@ -148,13 +154,15 @@
operation.setCruise(cruise);
}
editFishingOperationAction.setFishingOperation(operation);
-// try {
- AbstractTuttiAction.runAction(editFishingOperationAction);
+ if (SwingUtilities.isEventDispatchThread()) {
-// } catch(RuntimeException e) {
-// getModel().setSelectedFishingOperation(null);
-//// throw e;
-// }
+ // launch a long action
+ TuttiActionHelper.runAction(editFishingOperationAction);
+ } else {
+
+ // run as an internal action (of embedded action)
+ TuttiActionHelper.runInternalAction(editFishingOperationAction);
+ }
}
}
});
@@ -222,11 +230,30 @@
return null;
}
+ //------------------------------------------------------------------------//
+ //-- AbstractTuttiTabContainerUIHandler methods --//
+ //------------------------------------------------------------------------//
+
@Override
public JTabbedPane getTabPanel() {
return ui.getTabPane();
}
+ //------------------------------------------------------------------------//
+ //-- Public methods --//
+ //------------------------------------------------------------------------//
+
+ public String getCatchWarningLabel(boolean catchEnabled,
+ boolean catchNotFound) {
+ String result = null;
+ if (catchNotFound) {
+ result = _("tutti.fishingOperations.warn.catchBatch.notFound");
+ } else if (!catchEnabled) {
+ result = _("tutti.fishingOperations.warn.invalid.batch.model");
+ }
+ return result;
+ }
+
public boolean isFishingOperationModified() {
return getModel().getEditFishingOperation() != null &&
getUI().getFishingOperationTabContent().getModel().isModify();
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUIModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUIModel.java 2013-05-08 11:00:38 UTC (rev 929)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUIModel.java 2013-05-08 14:41:35 UTC (rev 930)
@@ -56,6 +56,8 @@
public static final String PROPERTY_CATCH_ENABLED = "catchEnabled";
+ public static final String PROPERTY_CATCH_NOT_FOUND = "catchNotFound";
+
/**
* List of existing fishing operation for the selected cruise.
* <p/>
@@ -115,6 +117,13 @@
*/
protected boolean catchEnabled;
+ /**
+ * Flag setted to true when no catch found.
+ *
+ * @since 2.2
+ */
+ protected boolean catchNotFound;
+
public List<FishingOperation> getFishingOperation() {
return fishingOperation;
}
@@ -214,4 +223,14 @@
this.catchEnabled = catchEnabled;
firePropertyChange(PROPERTY_CATCH_ENABLED, oldValue, catchEnabled);
}
+
+ public boolean isCatchNotFound() {
+ return catchNotFound;
+ }
+
+ public void setCatchNotFound(boolean catchNotFound) {
+ boolean oldValue = isCatchNotFound();
+ this.catchNotFound = catchNotFound;
+ firePropertyChange(PROPERTY_CATCH_NOT_FOUND, oldValue, catchNotFound);
+ }
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/RemoveBenthosBatchAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/RemoveBenthosBatchAction.java 2013-05-08 11:00:38 UTC (rev 929)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/RemoveBenthosBatchAction.java 2013-05-08 14:41:35 UTC (rev 930)
@@ -29,6 +29,7 @@
import fr.ifremer.tutti.persistence.TuttiPersistence;
import fr.ifremer.tutti.persistence.entities.TuttiEntities;
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.table.AbstractSelectTableAction;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -87,7 +88,7 @@
table.setRowSelectionInterval(parentIndex, parentIndex);
// remove all his children
- runAction(removeSpeciesSubBatchAction);
+ TuttiActionHelper.runInternalAction(removeSpeciesSubBatchAction);
} else {
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/RemoveSpeciesBatchAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/RemoveSpeciesBatchAction.java 2013-05-08 11:00:38 UTC (rev 929)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/RemoveSpeciesBatchAction.java 2013-05-08 14:41:35 UTC (rev 930)
@@ -29,6 +29,7 @@
import fr.ifremer.tutti.persistence.TuttiPersistence;
import fr.ifremer.tutti.persistence.entities.TuttiEntities;
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.table.AbstractSelectTableAction;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -87,7 +88,7 @@
table.setRowSelectionInterval(parentIndex, parentIndex);
// remove all his children
- runAction(removeSpeciesSubBatchAction);
+ TuttiActionHelper.runInternalAction(removeSpeciesSubBatchAction);
} else {
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiTabContainerUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiTabContainerUIHandler.java 2013-05-08 11:00:38 UTC (rev 929)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiTabContainerUIHandler.java 2013-05-08 14:41:35 UTC (rev 930)
@@ -39,8 +39,6 @@
* @since 0.3
*/
public abstract class AbstractTuttiTabContainerUIHandler<M, UI extends TuttiUI<M, ?>> extends AbstractTuttiUIHandler<M, UI> {
-//
-// private final static Log log = LogFactory.getLog(AbstractTuttiTabContainerUIHandler.class);
protected AbstractTuttiTabContainerUIHandler(TuttiUIContext context, UI ui) {
super(context, ui);
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/action/AbstractTuttiAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/action/AbstractTuttiAction.java 2013-05-08 11:00:38 UTC (rev 929)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/action/AbstractTuttiAction.java 2013-05-08 14:41:35 UTC (rev 930)
@@ -31,8 +31,6 @@
import fr.ifremer.tutti.ui.swing.config.TuttiApplicationConfig;
import fr.ifremer.tutti.ui.swing.util.AbstractTuttiUIHandler;
import fr.ifremer.tutti.ui.swing.util.TuttiUI;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
import org.jdesktop.beans.AbstractBean;
import org.nuiton.util.decorator.Decorator;
@@ -45,8 +43,6 @@
public abstract class AbstractTuttiAction<M extends AbstractBean, UI extends TuttiUI<M, ?>, H extends AbstractTuttiUIHandler<M, UI>>
extends AbstractBean {
- private static final Log log = LogFactory.getLog(AbstractTuttiAction.class);
-
public static final String PROPERTY_DONE = "done";
protected final H handler;
@@ -82,25 +78,6 @@
// by default nothing to do after action
}
- public static void runAction(AbstractTuttiAction action) {
- Throwable error = null;
- try {
- action.doAction();
- action.postSuccessAction();
- } catch (Throwable e) {
- error = e;
- throw TuttiActionException.propagateError(action, e);
- } finally {
- try {
- if (error != null) {
- action.postFailedAction(error);
- }
- } finally {
- action.releaseAction();
- }
- }
- }
-
public H getHandler() {
return handler;
}
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-05-08 11:00:38 UTC (rev 929)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/action/TuttiActionHelper.java 2013-05-08 14:41:35 UTC (rev 930)
@@ -53,10 +53,14 @@
error = e;
throw TuttiActionException.propagateError(action, e);
} finally {
- if (error != null) {
- action.postFailedAction(error);
+ try {
+ if (error != null) {
+ action.postFailedAction(error);
+ }
+ } finally {
+
+ action.releaseAction();
}
- action.releaseAction();
}
}
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-05-08 11:00:38 UTC (rev 929)
+++ trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties 2013-05-08 14:41:35 UTC (rev 930)
@@ -915,6 +915,7 @@
tutti.fishingOperations.info.no.fishingOperation.selected=
tutti.fishingOperations.title.edit.operations=
tutti.fishingOperations.title.validate.operations=
+tutti.fishingOperations.warn.catchBatch.notFound=
tutti.fishingOperations.warn.invalid.batch.model=
tutti.flash.info.all.caractristic.exported=
tutti.flash.info.benthos.add.to.protocol=
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-05-08 11:00:38 UTC (rev 929)
+++ trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2013-05-08 14:41:35 UTC (rev 930)
@@ -883,6 +883,7 @@
tutti.fishingOperations.info.no.fishingOperation.selected=< Aucun trait sélectionné >
tutti.fishingOperations.title.edit.operations=Saisie des opérations de pêches (%s)
tutti.fishingOperations.title.validate.operations=Validation des opérations de pêches (%s)
+tutti.fishingOperations.warn.catchBatch.notFound=Pas d'arbre d'échantillonage associé à l'opération de pêche.
tutti.fishingOperations.warn.invalid.batch.model=L'arbre d’échantillonnage n'est pas compatible. Les captures ne seront pas visibles.
tutti.flash.info.all.caractristic.exported=Toutes les caractéristiques exportées dans le fichier <strong>%s</strong>.
tutti.flash.info.benthos.add.to.protocol=Le benthos <strong>%s</strong> a été ajoutée au protocole.
1
0
r929 - in trunk: . tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service tutti-persistence/src/main/resources/i18n
by tchemit@users.forge.codelutin.com 08 May '13
by tchemit@users.forge.codelutin.com 08 May '13
08 May '13
Author: tchemit
Date: 2013-05-08 13:00:38 +0200 (Wed, 08 May 2013)
New Revision: 929
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/929
Log:
fixes #2407: [TRAIT] erreur ?\195?\160 l'ouverture du trait CGFS 2010 n?\194?\176102 sur base fournie par Chistian ce jour
Modified:
trunk/pom.xml
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/BenthosBatchPersistenceServiceImpl.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/SpeciesBatchPersistenceServiceImpl.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/pom.xml
===================================================================
--- trunk/pom.xml 2013-05-08 10:59:03 UTC (rev 928)
+++ trunk/pom.xml 2013-05-08 11:00:38 UTC (rev 929)
@@ -132,7 +132,7 @@
<eugenePluginVersion>2.6.2</eugenePluginVersion>
<hibernateVersion>3.6.10.Final</hibernateVersion>
- <jaxxVersion>2.5.18</jaxxVersion>
+ <jaxxVersion>2.5.19-SNAPSHOT</jaxxVersion>
<swingXVersion>1.6.4</swingXVersion>
<xworkVersion>2.3.7</xworkVersion>
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/BenthosBatchPersistenceServiceImpl.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/BenthosBatchPersistenceServiceImpl.java 2013-05-08 10:59:03 UTC (rev 928)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/BenthosBatchPersistenceServiceImpl.java 2013-05-08 11:00:38 UTC (rev 929)
@@ -36,6 +36,7 @@
import fr.ifremer.adagio.core.dao.referential.QualityFlagImpl;
import fr.ifremer.adagio.core.dao.referential.taxon.ReferenceTaxon;
import fr.ifremer.adagio.core.dao.referential.taxon.ReferenceTaxonImpl;
+import fr.ifremer.tutti.TuttiBusinessException;
import fr.ifremer.tutti.persistence.entities.TuttiBeanFactory;
import fr.ifremer.tutti.persistence.entities.data.BatchContainer;
import fr.ifremer.tutti.persistence.entities.data.BenthosBatch;
@@ -58,6 +59,8 @@
import java.util.List;
import java.util.Set;
+import static org.nuiton.i18n.I18n._;
+
/**
* Default implementation of {@link BenthosBatchPersistenceService}.
*
@@ -106,7 +109,9 @@
ReferenceTaxon referenceTaxon = source.getReferenceTaxon();
Preconditions.checkNotNull(referenceTaxon, "Can't have a rootBenthosBatch with a null taxon, but was for " + batch.getId());
Species species = referentialService.getSpeciesByReferenceTaxonId(referenceTaxon.getId());
-
+ if (species == null) {
+ throw new TuttiBusinessException(_("tutti.persistence.batch.validation.unkonwn.taxon", source.getId(), referenceTaxon.getId()));
+ }
BenthosBatch target = TuttiBeanFactory.newBenthosBatch();
target.setSpecies(species);
entityToBenthosBatch(source, target);
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/SpeciesBatchPersistenceServiceImpl.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/SpeciesBatchPersistenceServiceImpl.java 2013-05-08 10:59:03 UTC (rev 928)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/SpeciesBatchPersistenceServiceImpl.java 2013-05-08 11:00:38 UTC (rev 929)
@@ -36,6 +36,7 @@
import fr.ifremer.adagio.core.dao.referential.QualityFlagImpl;
import fr.ifremer.adagio.core.dao.referential.taxon.ReferenceTaxon;
import fr.ifremer.adagio.core.dao.referential.taxon.ReferenceTaxonImpl;
+import fr.ifremer.tutti.TuttiBusinessException;
import fr.ifremer.tutti.persistence.entities.TuttiBeanFactory;
import fr.ifremer.tutti.persistence.entities.TuttiEntities;
import fr.ifremer.tutti.persistence.entities.data.BatchContainer;
@@ -59,6 +60,8 @@
import java.util.List;
import java.util.Set;
+import static org.nuiton.i18n.I18n._;
+
/**
* Default implementation of {@link SpeciesBatchPersistenceService}.
*
@@ -114,7 +117,9 @@
log.trace("Loading CatchBatch Vrac > Species > Alive Itemized > " + referenceTaxon.getId() + " - " + " (batch:" + source.getId() + ")");
}
Species species = referentialService.getSpeciesByReferenceTaxonId(referenceTaxon.getId());
-
+ if (species == null) {
+ throw new TuttiBusinessException(_("tutti.persistence.batch.validation.unkonwn.taxon", source.getId(), referenceTaxon.getId()));
+ }
SpeciesBatch target = TuttiBeanFactory.newSpeciesBatch();
target.setSpecies(species);
entityToSpeciesBatch(source, target);
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-05-08 10:59:03 UTC (rev 928)
+++ trunk/tutti-persistence/src/main/resources/i18n/tutti-persistence_en_GB.properties 2013-05-08 11:00:38 UTC (rev 929)
@@ -20,6 +20,7 @@
tutti.persistence.batch.validation.horsVracMarineLitterNotFound=
tutti.persistence.batch.validation.horsVracNotFound=
tutti.persistence.batch.validation.horsVracSpeciesNotFound=
+tutti.persistence.batch.validation.unkonwn.taxon=
tutti.persistence.batch.validation.unsortedNotFound=
tutti.persistence.batch.validation.vracBenthosAliveItemizedNotFound=
tutti.persistence.batch.validation.vracBenthosInertNotFound=
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-05-08 10:59:03 UTC (rev 928)
+++ trunk/tutti-persistence/src/main/resources/i18n/tutti-persistence_fr_FR.properties 2013-05-08 11:00:38 UTC (rev 929)
@@ -20,6 +20,7 @@
tutti.persistence.batch.validation.horsVracMarineLitterNotFound=Lot 'Hors Vrac > Macro-déchet' non trouvé, ou configuré avec d'autres critères de classement.
tutti.persistence.batch.validation.horsVracNotFound=Lot 'Hors Vrac' non trouvé ou configuré avec d'autres critères de classement.
tutti.persistence.batch.validation.horsVracSpeciesNotFound=Lot 'Hors Vrac > Espèces' non trouvé ou configuré avec d'autres critères de classement.
+tutti.persistence.batch.validation.unkonwn.taxon=Le lot (%s) utilise une espèce de code inconnu (%s).
tutti.persistence.batch.validation.unsortedNotFound=Lot 'Hors Vrac > Espèces' non trouvé ou configuré avec d'autres critères de classement.
tutti.persistence.batch.validation.vracBenthosAliveItemizedNotFound=Lot 'Vrac > Benthos > Vivant Trié' non trouvé, ou configuré avec d'autres critères de classement.
tutti.persistence.batch.validation.vracBenthosInertNotFound=Lot 'Vrac > Benthos > Inerte' non trouvé, ou configuré avec d'autres critères de classement.
1
0
r928 - in trunk/tutti-ui-swing/src/main: java/fr/ifremer/tutti/ui/swing/util java/fr/ifremer/tutti/ui/swing/util/action resources/i18n
by tchemit@users.forge.codelutin.com 08 May '13
by tchemit@users.forge.codelutin.com 08 May '13
08 May '13
Author: tchemit
Date: 2013-05-08 12:59:03 +0200 (Wed, 08 May 2013)
New Revision: 928
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/928
Log:
fixes #2407: [TARIT] erreur ?\195?\160 l'ouverture du trait CGFS 2010 n?\194?\176102 sur base fournie par Chistian ce jour
Modified:
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/TuttiExceptionHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/action/AbstractTuttiAction.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/util/TuttiExceptionHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/TuttiExceptionHandler.java 2013-05-07 14:13:08 UTC (rev 927)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/TuttiExceptionHandler.java 2013-05-08 10:59:03 UTC (rev 928)
@@ -30,6 +30,7 @@
import fr.ifremer.tutti.ui.swing.content.AbstractChangeScreenAction;
import fr.ifremer.tutti.ui.swing.util.action.AbstractTuttiAction;
import fr.ifremer.tutti.ui.swing.util.action.TuttiActionException;
+import jaxx.runtime.swing.JAXXRuntimeException;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -70,6 +71,10 @@
cause = cause.getCause();
}
+ if (cause instanceof JAXXRuntimeException) {
+ cause = cause.getCause();
+ }
+
boolean backToScreen = false;
AbstractTuttiAction action = null;
@@ -79,6 +84,10 @@
TuttiActionException actionException = (TuttiActionException) cause;
cause = cause.getCause();
+ if (log.isDebugEnabled()) {
+ log.debug("Action error cause:", cause);
+ }
+
action = actionException.getAction();
if (action instanceof AbstractChangeScreenAction) {
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/action/AbstractTuttiAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/action/AbstractTuttiAction.java 2013-05-07 14:13:08 UTC (rev 927)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/action/AbstractTuttiAction.java 2013-05-08 10:59:03 UTC (rev 928)
@@ -91,10 +91,13 @@
error = e;
throw TuttiActionException.propagateError(action, e);
} finally {
- if (error != null) {
- action.postFailedAction(error);
+ try {
+ if (error != null) {
+ action.postFailedAction(error);
+ }
+ } finally {
+ action.releaseAction();
}
- action.releaseAction();
}
}
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-05-07 14:13:08 UTC (rev 927)
+++ trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties 2013-05-08 10:59:03 UTC (rev 928)
@@ -808,6 +808,7 @@
tutti.editSpeciesBatch.action.importMultiPost.mnemonic=
tutti.editSpeciesBatch.action.importMultiPost.sourceFile.button=
tutti.editSpeciesBatch.action.importMultiPost.sourceFile.title=
+tutti.editSpeciesBatch.action.importMultiPost.success=
tutti.editSpeciesBatch.action.importMultiPost.tip=
tutti.editSpeciesBatch.action.removeBatch=
tutti.editSpeciesBatch.action.removeBatch.mnemonic=
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-05-07 14:13:08 UTC (rev 927)
+++ trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2013-05-08 10:59:03 UTC (rev 928)
@@ -777,6 +777,7 @@
tutti.editSpeciesBatch.action.importMultiPost.mnemonic=I
tutti.editSpeciesBatch.action.importMultiPost.sourceFile.button=Choisir le fichier à importer
tutti.editSpeciesBatch.action.importMultiPost.sourceFile.title=Importer des lots d'espèces
+tutti.editSpeciesBatch.action.importMultiPost.success=
tutti.editSpeciesBatch.action.importMultiPost.tip=Importer des lots d'espèces créés sur un poste satellite
tutti.editSpeciesBatch.action.removeBatch=Supprimer le lot
tutti.editSpeciesBatch.action.removeBatch.mnemonic=S
1
0
07 May '13
Author: kmorin
Date: 2013-05-07 16:13:08 +0200 (Tue, 07 May 2013)
New Revision: 927
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/927
Log:
refs #1873 [IMP/EXP] - Import/Export multi-postes
Added:
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/CatchFrequencyRow.java
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/CatchFrequencyRowModel.java
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/CatchRow.java
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/CatchRowModel.java
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/TuttiMultiPostImportExportService.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/ExportMultiPostAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/ImportMultiPostAction.java
Modified:
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/TuttiUIContext.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.jaxx
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchUI.jaxx
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchUI.jaxx
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUI.jaxx
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/MarineLitterBatchUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/MarineLitterBatchUI.jaxx
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUI.jaxx
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
Added: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/CatchFrequencyRow.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/CatchFrequencyRow.java (rev 0)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/CatchFrequencyRow.java 2013-05-07 14:13:08 UTC (rev 927)
@@ -0,0 +1,72 @@
+package fr.ifremer.tutti.service.catches.multipost;
+
+import fr.ifremer.tutti.persistence.entities.referential.Caracteristic;
+
+import java.io.Serializable;
+
+/**
+ * @author kmorin <kmorin(a)codelutin.com>
+ * @since 2.2
+ */
+public class CatchFrequencyRow implements Serializable {
+
+ public static final String BATCH_ID = "batchId";
+
+ public static final String FREQUENCY_LENGTH_STEP_CARACTERISTIC = "lengthStepCaracteristic";
+
+ public static final String FREQUENCY_LENGTH_STEP = "lengthStep";
+
+ public static final String FREQUENCY_WEIGHT = "weight";
+
+ public static final String FREQUENCY_NUMBER = "number";
+
+ protected String batchId;
+
+ protected Caracteristic lengthStepCaracteristic;
+
+ protected Float lengthStep;
+
+ protected Float weight;
+
+ protected Integer number;
+
+ public String getBatchId() {
+ return batchId;
+ }
+
+ public void setBatchId(String batchId) {
+ this.batchId = batchId;
+ }
+
+ public Caracteristic getLengthStepCaracteristic() {
+ return lengthStepCaracteristic;
+ }
+
+ public void setLengthStepCaracteristic(Caracteristic lengthStepCaracteristic) {
+ this.lengthStepCaracteristic = lengthStepCaracteristic;
+ }
+
+ public Float getLengthStep() {
+ return lengthStep;
+ }
+
+ public void setLengthStep(Float lengthStep) {
+ this.lengthStep = lengthStep;
+ }
+
+ public Float getWeight() {
+ return weight;
+ }
+
+ public void setWeight(Float weight) {
+ this.weight = weight;
+ }
+
+ public Integer getNumber() {
+ return number;
+ }
+
+ public void setNumber(Integer number) {
+ this.number = number;
+ }
+}
Added: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/CatchFrequencyRowModel.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/CatchFrequencyRowModel.java (rev 0)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/CatchFrequencyRowModel.java 2013-05-07 14:13:08 UTC (rev 927)
@@ -0,0 +1,47 @@
+package fr.ifremer.tutti.service.catches.multipost;
+
+import fr.ifremer.tutti.persistence.entities.referential.Caracteristic;
+import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValue;
+import fr.ifremer.tutti.persistence.entities.referential.Species;
+import fr.ifremer.tutti.service.TuttiCsvUtil;
+import org.nuiton.util.csv.ValueFormatter;
+
+import java.io.Serializable;
+
+/**
+ * Model of a catch export.
+ *
+ * @author kmorin <morin(a)codelutin.com>
+ * @since 2.2
+ */
+public class CatchFrequencyRowModel extends TuttiCsvUtil.AbstractTuttiExportModel<CatchFrequencyRow> {
+
+ public CatchFrequencyRowModel(char separator) {
+ super(separator);
+
+ newColumnForExport(CatchFrequencyRow.BATCH_ID,
+ CatchFrequencyRow.BATCH_ID);
+
+ newColumnForExport(CatchFrequencyRow.FREQUENCY_LENGTH_STEP_CARACTERISTIC,
+ CatchFrequencyRow.FREQUENCY_LENGTH_STEP_CARACTERISTIC,
+ new ValueFormatter<Caracteristic>() {
+ @Override
+ public String format(Caracteristic value) {
+ return value != null ? value.getId() : "";
+ }
+ });
+
+ newColumnForExport(CatchFrequencyRow.FREQUENCY_LENGTH_STEP,
+ CatchFrequencyRow.FREQUENCY_LENGTH_STEP,
+ TuttiCsvUtil.FLOAT);
+
+ newColumnForExport(CatchFrequencyRow.FREQUENCY_NUMBER,
+ CatchFrequencyRow.FREQUENCY_NUMBER,
+ TuttiCsvUtil.INTEGER);
+
+ newColumnForExport(CatchFrequencyRow.FREQUENCY_WEIGHT,
+ CatchFrequencyRow.FREQUENCY_WEIGHT,
+ TuttiCsvUtil.FLOAT);
+
+ }
+}
\ No newline at end of file
Copied: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/CatchRow.java (from rev 919, trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/CatchExportRow.java)
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/CatchRow.java (rev 0)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/CatchRow.java 2013-05-07 14:13:08 UTC (rev 927)
@@ -0,0 +1,168 @@
+package fr.ifremer.tutti.service.catches.multipost;
+
+import com.google.common.collect.Maps;
+import fr.ifremer.tutti.persistence.entities.data.*;
+import fr.ifremer.tutti.persistence.entities.referential.Caracteristic;
+import fr.ifremer.tutti.persistence.entities.referential.Gear;
+import fr.ifremer.tutti.persistence.entities.referential.Species;
+import fr.ifremer.tutti.persistence.entities.referential.Vessel;
+import fr.ifremer.tutti.service.export.ExportSampleCategory;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.Map;
+
+/**
+ * A row in a catch export.
+ *
+ * @author kmorin <morin(a)codelutin.com>
+ * @since 2.2
+ */
+public class CatchRow implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ public static final String ID = "id";
+
+ public static final String SPECIES = "species";
+
+ public static final String SORTED_UNSORTED_SAMPLE_CATEGORY = "sortedUnsortedSampleCategory";
+
+ public static final String SIZE_SAMPLE_CATEGORY = "sizeSampleCategory";
+
+ public static final String SEX_SAMPLE_CATEGORY = "sexSampleCategory";
+
+ public static final String MATURITY_SAMPLE_CATEGORY = "maturitySampleCategory";
+
+ public static final String AGE_SAMPLE_CATEGORY = "ageSampleCategory";
+
+ public static final String CATEGORY_WEIGHT = "categoryWeight";
+
+ public static final String WEIGHT = "weight";
+
+ public static final String NUMBER = "number";
+
+ public static final String COMMENT = "comment";
+
+ public static final String TO_CONFIRM = "toConfirm";
+
+ protected String id;
+
+ protected Species species;
+
+ protected Serializable sortedUnsortedSampleCategory;
+
+ protected Serializable sizeSampleCategory;
+
+ protected Serializable sexSampleCategory;
+
+ protected Serializable maturitySampleCategory;
+
+ protected Serializable ageSampleCategory;
+
+ protected Float categoryWeight;
+
+ protected Float weight;
+
+ protected Integer number;
+
+ protected String comment;
+
+ protected boolean toConfirm;
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public Species getSpecies() {
+ return species;
+ }
+
+ public void setSpecies(Species species) {
+ this.species = species;
+ }
+
+ public Serializable getSortedUnsortedSampleCategory() {
+ return sortedUnsortedSampleCategory;
+ }
+
+ public void setSortedUnsortedSampleCategory(Serializable sortedUnsortedSampleCategory) {
+ this.sortedUnsortedSampleCategory = sortedUnsortedSampleCategory;
+ }
+
+ public Serializable getSizeSampleCategory() {
+ return sizeSampleCategory;
+ }
+
+ public void setSizeSampleCategory(Serializable sizeSampleCategory) {
+ this.sizeSampleCategory = sizeSampleCategory;
+ }
+
+ public Serializable getSexSampleCategory() {
+ return sexSampleCategory;
+ }
+
+ public void setSexSampleCategory(Serializable sexSampleCategory) {
+ this.sexSampleCategory = sexSampleCategory;
+ }
+
+ public Serializable getMaturitySampleCategory() {
+ return maturitySampleCategory;
+ }
+
+ public void setMaturitySampleCategory(Serializable maturitySampleCategory) {
+ this.maturitySampleCategory = maturitySampleCategory;
+ }
+
+ public Serializable getAgeSampleCategory() {
+ return ageSampleCategory;
+ }
+
+ public void setAgeSampleCategory(Serializable ageSampleCategory) {
+ this.ageSampleCategory = ageSampleCategory;
+ }
+
+ public Float getCategoryWeight() {
+ return categoryWeight;
+ }
+
+ public void setCategoryWeight(Float categoryWeight) {
+ this.categoryWeight = categoryWeight;
+ }
+
+ public Float getWeight() {
+ return weight;
+ }
+
+ public void setWeight(Float weight) {
+ this.weight = weight;
+ }
+
+ public Integer getNumber() {
+ return number;
+ }
+
+ public void setNumber(Integer number) {
+ this.number = number;
+ }
+
+ public String getComment() {
+ return comment;
+ }
+
+ public void setComment(String comment) {
+ this.comment = comment;
+ }
+
+ public boolean isToConfirm() {
+ return toConfirm;
+ }
+
+ public void setToConfirm(boolean toConfirm) {
+ this.toConfirm = toConfirm;
+ }
+}
\ No newline at end of file
Property changes on: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/CatchRow.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Copied: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/CatchRowModel.java (from rev 919, trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/CatchExportModel.java)
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/CatchRowModel.java (rev 0)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/CatchRowModel.java 2013-05-07 14:13:08 UTC (rev 927)
@@ -0,0 +1,94 @@
+package fr.ifremer.tutti.service.catches.multipost;
+
+import fr.ifremer.tutti.persistence.entities.data.*;
+import fr.ifremer.tutti.persistence.entities.referential.*;
+import fr.ifremer.tutti.service.PersistenceService;
+import fr.ifremer.tutti.service.TuttiCsvUtil;
+import fr.ifremer.tutti.service.export.ExportSampleCategory;
+import org.apache.commons.collections.CollectionUtils;
+import org.nuiton.util.csv.ValueFormatter;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * Model of a catch export.
+ *
+ * @author kmorin <morin(a)codelutin.com>
+ * @since 2.2
+ */
+public class CatchRowModel extends TuttiCsvUtil.AbstractTuttiExportModel<CatchRow> {
+
+ public CatchRowModel(char separator) {
+ super(separator);
+
+ ValueFormatter<Serializable> caracteristicValueFormatter = new ValueFormatter<Serializable>() {
+ @Override
+ public String format(Serializable value) {
+ String result = "";
+ if (value != null) {
+ if (CaracteristicQualitativeValue.class.isAssignableFrom(value.getClass())) {
+ CaracteristicQualitativeValue cqv = (CaracteristicQualitativeValue) value;
+ result = cqv.getId();
+
+ } else {
+ result = String.valueOf(value);
+ }
+ }
+ return result;
+ }
+ };
+
+ newColumnForExport(CatchRow.ID,
+ CatchRow.ID);
+
+ newColumnForExport(CatchRow.SPECIES,
+ CatchRow.SPECIES,
+ new ValueFormatter<Species>() {
+ @Override
+ public String format(Species value) {
+ return value != null ? String.valueOf(value.getReferenceTaxonId()) : null;
+ }
+ });
+
+ newColumnForExport(CatchRow.SORTED_UNSORTED_SAMPLE_CATEGORY,
+ CatchRow.SORTED_UNSORTED_SAMPLE_CATEGORY,
+ caracteristicValueFormatter);
+
+ newColumnForExport(CatchRow.SIZE_SAMPLE_CATEGORY,
+ CatchRow.SIZE_SAMPLE_CATEGORY,
+ caracteristicValueFormatter);
+
+ newColumnForExport(CatchRow.SEX_SAMPLE_CATEGORY,
+ CatchRow.SEX_SAMPLE_CATEGORY,
+ caracteristicValueFormatter);
+
+ newColumnForExport(CatchRow.MATURITY_SAMPLE_CATEGORY,
+ CatchRow.MATURITY_SAMPLE_CATEGORY,
+ caracteristicValueFormatter);
+
+ newColumnForExport(CatchRow.AGE_SAMPLE_CATEGORY,
+ CatchRow.AGE_SAMPLE_CATEGORY,
+ caracteristicValueFormatter);
+
+ newColumnForExport(CatchRow.CATEGORY_WEIGHT,
+ CatchRow.CATEGORY_WEIGHT,
+ TuttiCsvUtil.FLOAT);
+
+ newColumnForExport(CatchRow.WEIGHT,
+ CatchRow.WEIGHT,
+ TuttiCsvUtil.FLOAT);
+
+ newColumnForExport(CatchRow.NUMBER,
+ CatchRow.NUMBER,
+ TuttiCsvUtil.INTEGER);
+
+ newColumnForExport(CatchRow.COMMENT,
+ CatchRow.COMMENT);
+
+ newColumnForExport(CatchRow.TO_CONFIRM,
+ CatchRow.TO_CONFIRM,
+ TuttiCsvUtil.PRIMITIVE_BOOLEAN);
+
+ }
+}
\ No newline at end of file
Property changes on: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/CatchRowModel.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Added: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/TuttiMultiPostImportExportService.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/TuttiMultiPostImportExportService.java (rev 0)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/TuttiMultiPostImportExportService.java 2013-05-07 14:13:08 UTC (rev 927)
@@ -0,0 +1,267 @@
+package fr.ifremer.tutti.service.catches.multipost;
+
+import com.google.common.base.Charsets;
+import com.google.common.collect.Lists;
+import com.google.common.io.Files;
+import fr.ifremer.tutti.TuttiTechnicalException;
+import fr.ifremer.tutti.persistence.entities.TuttiEntities;
+import fr.ifremer.tutti.persistence.entities.data.*;
+import fr.ifremer.tutti.persistence.entities.referential.Caracteristic;
+import fr.ifremer.tutti.persistence.entities.referential.TuttiLocation;
+import fr.ifremer.tutti.service.AbstractTuttiService;
+import fr.ifremer.tutti.service.DecoratorService;
+import fr.ifremer.tutti.service.PersistenceService;
+import fr.ifremer.tutti.service.TuttiServiceContext;
+import fr.ifremer.tutti.service.catches.TuttiWeightComputingService;
+import org.apache.commons.io.IOUtils;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.nuiton.util.FileUtil;
+import org.nuiton.util.ZipUtil;
+import org.nuiton.util.csv.Export;
+
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.IOException;
+import java.util.List;
+import java.util.Map;
+import java.util.UUID;
+
+import static org.nuiton.i18n.I18n._;
+
+/**
+ * @author kmorin <kmorin(a)codelutin.com>
+ * @since 2.2
+ */
+public class TuttiMultiPostImportExportService extends AbstractTuttiService {
+
+ private static final Log log =
+ LogFactory.getLog(TuttiMultiPostImportExportService.class);
+
+ protected PersistenceService persistenceService;
+
+ protected DecoratorService decoratorService;
+
+ protected char csvSeparator;
+
+ protected List<SampleCategoryEnum> samplingOrder;
+
+ @Override
+ public void setServiceContext(TuttiServiceContext context) {
+ super.setServiceContext(context);
+ persistenceService = getService(PersistenceService.class);
+ decoratorService = getService(DecoratorService.class);
+
+ csvSeparator = context.getConfig().getCsvSeparator();
+
+ Map<Integer, SampleCategoryEnum> idMapping = SampleCategoryEnum.toIdMapping();
+
+ samplingOrder = Lists.newArrayList();
+
+ // always first sampling category
+ samplingOrder.add(SampleCategoryEnum.sortedUnsorted);
+
+ for (Integer categoryId : context.getConfig().getSamplingOrderIds()) {
+ SampleCategoryEnum categoryEnum = idMapping.get(categoryId);
+ if (SampleCategoryEnum.sortedUnsorted != categoryEnum) {
+ samplingOrder.add(categoryEnum);
+ }
+ }
+ }
+
+ public void exportSpecies(File file, FishingOperation operation) {
+ CatchRowModel csvModel = new CatchRowModel(csvSeparator);
+ CatchFrequencyRowModel csvFrequencyModel = new CatchFrequencyRowModel(csvSeparator);
+
+ BatchContainer<SpeciesBatch> speciesBatchContainer =
+ persistenceService.getRootSpeciesBatch(operation.getId());
+
+ List<CatchRow> rows = Lists.newArrayList();
+ List<CatchFrequencyRow> frequencyRows = Lists.newArrayList();
+
+ for (SpeciesBatch batch : speciesBatchContainer.getChildren()) {
+ createSpeciesRow(batch, rows, frequencyRows);
+ }
+
+ BufferedWriter writer = null;
+ File directory = Files.createTempDir();
+
+ File speciesFile = new File(directory, "species.csv");
+ try {
+ writer = Files.newWriter(speciesFile, Charsets.UTF_8);
+ Export export = Export.newExport(csvModel, rows);
+ export.write(writer);
+ writer.close();
+ } catch (Exception e) {
+ throw new TuttiTechnicalException(_("tutti.service.multipost.export.error", file), e);
+ } finally {
+ IOUtils.closeQuietly(writer);
+ }
+
+ File frequencyFile = new File(directory, "frequencies.csv");
+ try {
+ writer = Files.newWriter(frequencyFile, Charsets.UTF_8);
+ Export export = Export.newExport(csvFrequencyModel, frequencyRows);
+ export.write(writer);
+ writer.close();
+
+ } catch (Exception e) {
+ throw new TuttiTechnicalException(_("tutti.service.multipost.export.frequencies.error", frequencyFile), e);
+ } finally {
+ IOUtils.closeQuietly(writer);
+ }
+
+ try {
+ ZipUtil.compressFiles(file, directory, Lists.newArrayList(speciesFile, frequencyFile));
+
+ } catch (IOException e) {
+ throw new TuttiTechnicalException(_("tutti.service.multipost.export.error", file), e);
+ }
+ }
+
+ protected void createSpeciesRow(SpeciesBatch batch, List<CatchRow> rows, List<CatchFrequencyRow> frequencyRows) {
+ CatchRow row = new CatchRow();
+
+ String id = UUID.randomUUID().toString();
+ row.setId(id);
+
+ row.setSpecies(batch.getSpecies());
+
+ switch (batch.getSampleCategoryType()) {
+ case sortedUnsorted:
+ row.setSortedUnsortedSampleCategory(batch.getSampleCategoryValue());
+ break;
+ case sex:
+ row.setSexSampleCategory(batch.getSampleCategoryValue());
+ break;
+ case size:
+ row.setSizeSampleCategory(batch.getSampleCategoryValue());
+ break;
+ case maturity:
+ row.setMaturitySampleCategory(batch.getSampleCategoryValue());
+ break;
+ case age:
+ row.setAgeSampleCategory(batch.getSampleCategoryValue());
+ break;
+ }
+ row.setCategoryWeight(batch.getSampleCategoryWeight());
+ row.setWeight(batch.getWeight());
+ row.setNumber(batch.getNumber());
+ row.setComment(batch.getComment());
+ row.setToConfirm(batch.isSpeciesToConfirm());
+
+ rows.add(row);
+
+ List<SpeciesBatchFrequency> frequencies =
+ persistenceService.getAllSpeciesBatchFrequency(batch.getId());
+ for (SpeciesBatchFrequency frequency : frequencies) {
+ CatchFrequencyRow frequencyRow = new CatchFrequencyRow();
+ frequencyRow.setBatchId(id);
+ frequencyRow.setLengthStepCaracteristic(frequency.getLengthStepCaracteristic());
+ frequencyRow.setLengthStep(frequency.getLengthStep());
+ frequencyRow.setNumber(frequency.getNumber());
+ frequencyRow.setWeight(frequency.getWeight());
+ frequencyRows.add(frequencyRow);
+ }
+
+ for (SpeciesBatch child : batch.getChildBatchs()) {
+ createSpeciesRow(child, rows, frequencyRows);
+ }
+ }
+
+ public void exportBenthos(File file, FishingOperation operation) {
+ CatchRowModel csvModel = new CatchRowModel(csvSeparator);
+ CatchFrequencyRowModel csvFrequencyModel = new CatchFrequencyRowModel(csvSeparator);
+
+ BatchContainer<BenthosBatch> benthosBatchContainer =
+ persistenceService.getRootBenthosBatch(operation.getId());
+
+ List<CatchRow> rows = Lists.newArrayList();
+ List<CatchFrequencyRow> frequencyRows = Lists.newArrayList();
+
+ for (BenthosBatch batch : benthosBatchContainer.getChildren()) {
+ createBenthosRow(batch, rows, frequencyRows);
+ }
+
+ BufferedWriter writer = null;
+ File directory = Files.createTempDir();
+
+ File benthosFile = new File(directory, "benthos.csv");
+ try {
+ writer = Files.newWriter(benthosFile, Charsets.UTF_8);
+ Export export = Export.newExport(csvModel, rows);
+ export.write(writer);
+ writer.close();
+ } catch (Exception e) {
+ throw new TuttiTechnicalException(_("tutti.service.multipost.export.error", file), e);
+ } finally {
+ IOUtils.closeQuietly(writer);
+ }
+
+ File frequencyFile = new File(directory, "frequencies.csv");
+ try {
+ writer = Files.newWriter(frequencyFile, Charsets.UTF_8);
+ Export export = Export.newExport(csvFrequencyModel, frequencyRows);
+ export.write(writer);
+ writer.close();
+
+ } catch (Exception e) {
+ throw new TuttiTechnicalException(_("tutti.service.multipost.export.frequencies.error", frequencyFile), e);
+ } finally {
+ IOUtils.closeQuietly(writer);
+ }
+
+ compressZipFile(file, directory);
+
+ }
+
+ protected void createBenthosRow(BenthosBatch batch, List<CatchRow> rows, List<CatchFrequencyRow> frequencyRows) {
+ CatchRow row = new CatchRow();
+
+ String id = UUID.randomUUID().toString();
+ row.setId(id);
+
+ row.setSpecies(batch.getSpecies());
+
+ switch (batch.getSampleCategoryType()) {
+ case sortedUnsorted:
+ row.setSortedUnsortedSampleCategory(batch.getSampleCategoryValue());
+ break;
+ case sex:
+ row.setSexSampleCategory(batch.getSampleCategoryValue());
+ break;
+ case size:
+ row.setSizeSampleCategory(batch.getSampleCategoryValue());
+ break;
+ case maturity:
+ row.setMaturitySampleCategory(batch.getSampleCategoryValue());
+ break;
+ case age:
+ row.setAgeSampleCategory(batch.getSampleCategoryValue());
+ break;
+ }
+ row.setCategoryWeight(batch.getSampleCategoryWeight());
+ row.setWeight(batch.getWeight());
+ row.setNumber(batch.getNumber());
+ row.setComment(batch.getComment());
+ row.setToConfirm(batch.isSpeciesToConfirm());
+
+ rows.add(row);
+
+ List<SpeciesBatchFrequency> frequencies =
+ persistenceService.getAllSpeciesBatchFrequency(batch.getId());
+ for (SpeciesBatchFrequency frequency : frequencies) {
+ CatchFrequencyRow frequencyRow = new CatchFrequencyRow();
+ frequencyRow.setBatchId(id);
+ frequencyRow.setLengthStepCaracteristic(frequency.getLengthStepCaracteristic());
+ frequencyRow.setLengthStep(frequency.getLengthStep());
+ frequencyRow.setNumber(frequency.getNumber());
+ frequencyRow.setWeight(frequency.getWeight());
+ frequencyRows.add(frequencyRow);
+ }
+
+ for (BenthosBatch child : batch.getChildBatchs()) {
+ createBenthosRow(child, rows, frequencyRows);
+ }
+ }
+}
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-05-07 13:08:02 UTC (rev 926)
+++ trunk/tutti-service/src/main/resources/i18n/tutti-service_en_GB.properties 2013-05-07 14:13:08 UTC (rev 927)
@@ -82,6 +82,7 @@
tutti.service.exportSumatra.header.station=
tutti.service.exportSumatra.header.weight=
tutti.service.mkDir.error=
+tutti.service.multipost.export.error=
tutti.service.operations.accidental.error.species.required=
tutti.service.operations.computeWeights.benthos.error.incoherentCategoryWeight=
tutti.service.operations.computeWeights.benthos.error.incoherentParentCategoryWeight=
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-05-07 13:08:02 UTC (rev 926)
+++ trunk/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties 2013-05-07 14:13:08 UTC (rev 927)
@@ -80,6 +80,7 @@
tutti.service.exportSumatra.header.station=Station
tutti.service.exportSumatra.header.weight=Total
tutti.service.mkDir.error=Erreur à la création du dossier %s
+tutti.service.multipost.export.error=
tutti.service.operations.computeWeights.error.benthos.incoherentCategoryWeight=Le poids total des mensurations d'un lot du benthos est supérieur au poids de la catégorie
tutti.service.operations.computeWeights.error.benthos.incoherentParentCategoryWeight=Le poids de la catégorie d'un lot du benthos est différent de la somme des poids de ses sous-catégories
tutti.service.operations.computeWeights.error.benthos.incoherentRowWeightCategory=Le poids de sous-échantillon est renseigné alors que le lot n'a pas de poids.
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-05-07 13:08:02 UTC (rev 926)
+++ trunk/tutti-ui-swing/src/main/filtered-resources/tutti-help-en.properties 2013-05-07 14:13:08 UTC (rev 927)
@@ -1,5 +1,5 @@
#Generated by org.nuiton.jaxx.plugin.GenerateHelpIdsMojo
-#Mon May 06 16:32:40 CEST 2013
+#Tue May 07 16:11:30 CEST 2013
tutti.config.help=config.html
tutti.createAccidentalBatch.action.cancel.help=createAccidentalBatch.html\#actions
tutti.createAccidentalBatch.action.save.help=createAccidentalBatch.html\#actions
@@ -47,10 +47,14 @@
tutti.dbManager.action.upgradeDb.help=dbManager.html\#actions
tutti.dbManager.help=dbManager.html
tutti.editAccidentalBatch.action.createBatch.help=editAccidentalBatch.html\#actions
+tutti.editAccidentalBatch.action.exportMultiPost.help=
+tutti.editAccidentalBatch.action.importMultiPost.help=
tutti.editAccidentalBatch.action.removeBatch.help=editAccidentalBatch.html\#actions
tutti.editAccidentalBatch.help=editAccidentalBatch.html
tutti.editBenthosBatch.action.createBatch.help=editBenthosBatch.html\#actions
tutti.editBenthosBatch.action.createMelag.help=editBenthosBatch.html\#actions
+tutti.editBenthosBatch.action.exportMultiPost.help=
+tutti.editBenthosBatch.action.importMultiPost.help=
tutti.editBenthosBatch.action.removeBatch.help=editBenthosBatch.html\#actions
tutti.editBenthosBatch.action.removeSubBatch.help=editBenthosBatch.html\#actions
tutti.editBenthosBatch.action.renameBatch.help=editBenthosBatch.html\#actions
@@ -157,9 +161,13 @@
tutti.editFishingOperation.field.vessel.help=editFishingOperation.html\#fields
tutti.editFishingOperation.help=editFishingOperation.html
tutti.editIndividualObservationBatch.action.createBatch.help=editIndividualObservationBatch.html\#actions
+tutti.editIndividualObservationBatch.action.exportMultiPost.help=
+tutti.editIndividualObservationBatch.action.importMultiPost.help=
tutti.editIndividualObservationBatch.action.removeBatch.help=editIndividualObservationBatch.html\#actions
tutti.editIndividualObservationBatch.help=editIndividualObservationBatch.html
tutti.editMarineLitterBatch.action.createBatch.help=editIndividualObservationBatch.html\#actions
+tutti.editMarineLitterBatch.action.exportMultiPost.help=
+tutti.editMarineLitterBatch.action.importMultiPost.help=
tutti.editMarineLitterBatch.action.removeBatch.help=editIndividualObservationBatch.html\#actions
tutti.editMarineLitterBatch.field.marineLitterTotalWeight.help=editIndividualObservationBatch.html\#fields
tutti.editMarineLitterBatch.help=editMarineLitterBatch.html
@@ -197,6 +205,8 @@
tutti.editProtocol.pane.caracteristic.help=editProtocol.html\#fieldsCaracteristics
tutti.editSpeciesBatch.action.createBatch.help=editSpeciesBatch.html\#actions
tutti.editSpeciesBatch.action.createMelag.help=editSpeciesBatch.html\#actions
+tutti.editSpeciesBatch.action.exportMultiPost.help=
+tutti.editSpeciesBatch.action.importMultiPost.help=
tutti.editSpeciesBatch.action.removeBatch.help=editSpeciesBatch.html\#actions
tutti.editSpeciesBatch.action.removeSubBatch.help=editSpeciesBatch.html\#actions
tutti.editSpeciesBatch.action.renameBatch.help=editSpeciesBatch.html\#actions
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-05-07 13:08:02 UTC (rev 926)
+++ trunk/tutti-ui-swing/src/main/filtered-resources/tutti-help-fr.properties 2013-05-07 14:13:08 UTC (rev 927)
@@ -1,5 +1,5 @@
#Generated by org.nuiton.jaxx.plugin.GenerateHelpIdsMojo
-#Mon May 06 16:32:40 CEST 2013
+#Tue May 07 16:11:30 CEST 2013
tutti.config.help=config.html
tutti.createAccidentalBatch.action.cancel.help=createAccidentalBatch.html\#actions
tutti.createAccidentalBatch.action.save.help=createAccidentalBatch.html\#actions
@@ -47,10 +47,14 @@
tutti.dbManager.action.upgradeDb.help=dbManager.html\#actions
tutti.dbManager.help=dbManager.html
tutti.editAccidentalBatch.action.createBatch.help=editAccidentalBatch.html\#actions
+tutti.editAccidentalBatch.action.exportMultiPost.help=
+tutti.editAccidentalBatch.action.importMultiPost.help=
tutti.editAccidentalBatch.action.removeBatch.help=editAccidentalBatch.html\#actions
tutti.editAccidentalBatch.help=editAccidentalBatch.html
tutti.editBenthosBatch.action.createBatch.help=editBenthosBatch.html\#actions
tutti.editBenthosBatch.action.createMelag.help=editBenthosBatch.html\#actions
+tutti.editBenthosBatch.action.exportMultiPost.help=
+tutti.editBenthosBatch.action.importMultiPost.help=
tutti.editBenthosBatch.action.removeBatch.help=editBenthosBatch.html\#actions
tutti.editBenthosBatch.action.removeSubBatch.help=editBenthosBatch.html\#actions
tutti.editBenthosBatch.action.renameBatch.help=editBenthosBatch.html\#actions
@@ -157,9 +161,13 @@
tutti.editFishingOperation.field.vessel.help=editFishingOperation.html\#fields
tutti.editFishingOperation.help=editFishingOperation.html
tutti.editIndividualObservationBatch.action.createBatch.help=editIndividualObservationBatch.html\#actions
+tutti.editIndividualObservationBatch.action.exportMultiPost.help=
+tutti.editIndividualObservationBatch.action.importMultiPost.help=
tutti.editIndividualObservationBatch.action.removeBatch.help=editIndividualObservationBatch.html\#actions
tutti.editIndividualObservationBatch.help=editIndividualObservationBatch.html
tutti.editMarineLitterBatch.action.createBatch.help=editIndividualObservationBatch.html\#actions
+tutti.editMarineLitterBatch.action.exportMultiPost.help=
+tutti.editMarineLitterBatch.action.importMultiPost.help=
tutti.editMarineLitterBatch.action.removeBatch.help=editIndividualObservationBatch.html\#actions
tutti.editMarineLitterBatch.field.marineLitterTotalWeight.help=editIndividualObservationBatch.html\#fields
tutti.editMarineLitterBatch.help=editMarineLitterBatch.html
@@ -197,6 +205,8 @@
tutti.editProtocol.pane.caracteristic.help=editProtocol.html\#fieldsCaracteristics
tutti.editSpeciesBatch.action.createBatch.help=editSpeciesBatch.html\#actions
tutti.editSpeciesBatch.action.createMelag.help=editSpeciesBatch.html\#actions
+tutti.editSpeciesBatch.action.exportMultiPost.help=
+tutti.editSpeciesBatch.action.importMultiPost.help=
tutti.editSpeciesBatch.action.removeBatch.help=editSpeciesBatch.html\#actions
tutti.editSpeciesBatch.action.removeSubBatch.help=editSpeciesBatch.html\#actions
tutti.editSpeciesBatch.action.renameBatch.help=editSpeciesBatch.html\#actions
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-05-07 13:08:02 UTC (rev 926)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiUIContext.java 2013-05-07 14:13:08 UTC (rev 927)
@@ -39,6 +39,7 @@
import fr.ifremer.tutti.service.catches.ExportCatchesReportService;
import fr.ifremer.tutti.service.catches.TuttiWeightComputingService;
import fr.ifremer.tutti.service.catches.ValidateCruiseOperationsService;
+import fr.ifremer.tutti.service.catches.multipost.TuttiMultiPostImportExportService;
import fr.ifremer.tutti.service.export.TuttiExportService;
import fr.ifremer.tutti.service.protocol.TuttiProtocolImportExportService;
import fr.ifremer.tutti.service.pupitri.TuttiPupitriImportExportService;
@@ -545,6 +546,10 @@
return serviceContext.getService(TuttiCatchesSumatraExportService.class);
}
+ public TuttiMultiPostImportExportService getMultiPostImportExportService() {
+ return serviceContext.getService(TuttiMultiPostImportExportService.class);
+ }
+
public boolean useRealPersistenceService() {
return isDbExist() && isDbLoaded();
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.css 2013-05-07 13:08:02 UTC (rev 926)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.css 2013-05-07 14:13:08 UTC (rev 927)
@@ -580,13 +580,3 @@
_tuttiAction: {CancelEditFishingOperationAction.class};
_help: {"tutti.editFishingOperation.action.cancelEditFishingOperation.help"};
}
-
-#importCasinoButton {
- actionIcon: casino-import;
- text: "tutti.editFishingOperation.action.importCasino";
- toolTipText: "tutti.editFishingOperation.action.importCasino.tip";
- i18nMnemonic: "tutti.editFishingOperation.action.importCasino.mnemonic";
- _tuttiAction: {ImportCasinoAction.class};
- enabled: {model.getId() != null};
- _help: {"tutti.editFishingOperation.action.importCasino.help"};
-}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.jaxx 2013-05-07 13:08:02 UTC (rev 926)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.jaxx 2013-05-07 14:13:08 UTC (rev 927)
@@ -147,7 +147,6 @@
constructorParams='"tuttihelp.editeditFishingOperation.help"'/>
<JToolBar id='traitGeneralTabPaneToolBar'>
- <JButton id='importCasinoButton'/>
<ButtonAttachment id='fishingOperationAttachmentsButton'
constructorParams='getHandler().getContext(), getModel()'/>
</JToolBar>
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.css 2013-05-07 13:08:02 UTC (rev 926)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.css 2013-05-07 14:13:08 UTC (rev 927)
@@ -60,6 +60,26 @@
rightDecoration: {catchesCaracteristicsTabToolBar};
}
+#speciesTabFishingOperationReminderLabel {
+ rightDecoration: {speciesTabContent.getSpeciesBatchTabToolBar()};
+}
+
+#benthosTabFishingOperationReminderLabel {
+ rightDecoration: {benthosTabContent.getBenthosBatchTabToolBar()};
+}
+
+#marineLitterTabFishingOperationReminderLabel {
+ rightDecoration: {marineLitterTabContent.getMarineLitterBatchTabToolBar()};
+}
+
+#individualObservationTabFishingOperationReminderLabel {
+ rightDecoration: {individualObservationTabContent.getIndividualObservationBatchTabToolBar()};
+}
+
+#accidentalTabFishingOperationReminderLabel {
+ rightDecoration: {accidentalTabContent.getAccidentalBatchTabToolBar()};
+}
+
#catchTable {
border: {BorderFactory.createTitledBorder(_("tutti.editCatchBatch.legend.total"))};
}
@@ -301,7 +321,6 @@
text: "tutti.editCatchBatch.action.importPupitri";
toolTipText: "tutti.editCatchBatch.action.importPupitri.tip";
i18nMnemonic: "tutti.editCatchBatch.action.importPupitri.mnemonic";
- /*enabled: {model.getCatchTotalSortedTremisWeight() == null};*/
_tuttiAction: {ImportPupitriAction.class};
_help: {"tutti.editCatchBatch.action.importPupitri.help"};
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchUI.css 2013-05-07 13:08:02 UTC (rev 926)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchUI.css 2013-05-07 14:13:08 UTC (rev 927)
@@ -33,6 +33,30 @@
_help: {"tutti.editAccidentalBatch.help"};
}
+#accidentalBatchTabToolBar {
+ floatable: false;
+ opaque: false;
+ borderPainted: false;
+}
+
+#importMultiPostButton {
+ actionIcon: import;
+ text: "tutti.editAccidentalBatch.action.importMultiPost";
+ toolTipText: "tutti.editAccidentalBatch.action.importMultiPost.tip";
+ i18nMnemonic: "tutti.editAccidentalBatch.action.importMultiPost.mnemonic";
+ /*_tuttiAction: {ImportMultiPostAction.class};*/
+ _help: {"tutti.editAccidentalBatch.action.importMultiPost.help"};
+}
+
+#exportMultiPostButton {
+ actionIcon: export;
+ text: "tutti.editAccidentalBatch.action.exportMultiPost";
+ toolTipText: "tutti.editAccidentalBatch.action.exportMultiPost.tip";
+ i18nMnemonic: "tutti.editAccidentalBatch.action.exportMultiPost.mnemonic";
+ /*_tuttiAction: {ExportMultiPostAction.class};*/
+ _help: {"tutti.editAccidentalBatch.action.exportMultiPost.help"};
+}
+
#tablePopup {
label: "tutti.editAccidentalBatch.title.batchActions";
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchUI.jaxx 2013-05-07 13:08:02 UTC (rev 926)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchUI.jaxx 2013-05-07 14:13:08 UTC (rev 927)
@@ -67,6 +67,11 @@
<TuttiHelpBroker id='broker'
constructorParams='"tutti.editAccidentalBatch.help"'/>
+ <JToolBar id='accidentalBatchTabToolBar'>
+ <JButton id='importMultiPostButton'/>
+ <JButton id='exportMultiPostButton'/>
+ </JToolBar>
+
<JPopupMenu id='tablePopup'>
<JMenuItem id='removeAccidentalBatchMenu'/>
</JPopupMenu>
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchUI.css 2013-05-07 13:08:02 UTC (rev 926)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchUI.css 2013-05-07 14:13:08 UTC (rev 927)
@@ -46,6 +46,30 @@
_help: {"tutti.editBenthosBatch.help"};
}
+#benthosBatchTabToolBar {
+ floatable: false;
+ opaque: false;
+ borderPainted: false;
+}
+
+#importMultiPostButton {
+ actionIcon: import;
+ text: "tutti.editBenthosBatch.action.importMultiPost";
+ toolTipText: "tutti.editBenthosBatch.action.importMultiPost.tip";
+ i18nMnemonic: "tutti.editBenthosBatch.action.importMultiPost.mnemonic";
+ /*_tuttiAction: {ImportMultiPostAction.class};*/
+ _help: {"tutti.editBenthosBatch.action.importMultiPost.help"};
+}
+
+#exportMultiPostButton {
+ actionIcon: export;
+ text: "tutti.editBenthosBatch.action.exportMultiPost";
+ toolTipText: "tutti.editBenthosBatch.action.exportMultiPost.tip";
+ i18nMnemonic: "tutti.editBenthosBatch.action.exportMultiPost.mnemonic";
+ /*_tuttiAction: {ExportMultiPostAction.class};*/
+ _help: {"tutti.editBenthosBatch.action.exportMultiPost.help"};
+}
+
#benthosTotalWeightLabel {
text: "tutti.editBenthosBatch.field.benthosTotalWeight";
toolTipText: "tutti.editBenthosBatch.field.benthosTotalWeight.tip";
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchUI.jaxx 2013-05-07 13:08:02 UTC (rev 926)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchUI.jaxx 2013-05-07 14:13:08 UTC (rev 927)
@@ -69,6 +69,11 @@
<TuttiHelpBroker id='broker'
constructorParams='"tutti.editBenthosBatch.help"'/>
+ <JToolBar id='benthosBatchTabToolBar'>
+ <JButton id='importMultiPostButton'/>
+ <JButton id='exportMultiPostButton'/>
+ </JToolBar>
+
<JPopupMenu id='tablePopup'>
<JMenuItem id='splitBenthosBatchMenu'
onActionPerformed='handler.splitBatch()'/>
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUI.css 2013-05-07 13:08:02 UTC (rev 926)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUI.css 2013-05-07 14:13:08 UTC (rev 927)
@@ -26,6 +26,30 @@
_help: {"tutti.editIndividualObservationBatch.help"};
}
+#individualObservationBatchTabToolBar {
+ floatable: false;
+ opaque: false;
+ borderPainted: false;
+}
+
+#importMultiPostButton {
+ actionIcon: import;
+ text: "tutti.editIndividualObservationBatch.action.importMultiPost";
+ toolTipText: "tutti.editIndividualObservationBatch.action.importMultiPost.tip";
+ i18nMnemonic: "tutti.editIndividualObservationBatch.action.importMultiPost.mnemonic";
+ /*_tuttiAction: {ImportMultiPostAction.class};*/
+ _help: {"tutti.editIndividualObservationBatch.action.importMultiPost.help"};
+}
+
+#exportMultiPostButton {
+ actionIcon: export;
+ text: "tutti.editIndividualObservationBatch.action.exportMultiPost";
+ toolTipText: "tutti.editIndividualObservationBatch.action.exportMultiPost.tip";
+ i18nMnemonic: "tutti.editIndividualObservationBatch.action.exportMultiPost.mnemonic";
+ /*_tuttiAction: {ExportMultiPostAction.class};*/
+ _help: {"tutti.editIndividualObservationBatch.action.exportMultiPost.help"};
+}
+
#tablePopup {
label: "tutti.editIndividualObservationBatch.title.batchActions";
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUI.jaxx 2013-05-07 13:08:02 UTC (rev 926)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUI.jaxx 2013-05-07 14:13:08 UTC (rev 927)
@@ -66,6 +66,11 @@
<TuttiHelpBroker id='broker'
constructorParams='"tutti.editIndividualObservationBatch.help"'/>
+ <JToolBar id='individualObservationBatchTabToolBar'>
+ <JButton id='importMultiPostButton'/>
+ <JButton id='exportMultiPostButton'/>
+ </JToolBar>
+
<JPopupMenu id='tablePopup'>
<JMenuItem id='removeIndividualObservationBatchMenu'/>
</JPopupMenu>
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/MarineLitterBatchUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/MarineLitterBatchUI.css 2013-05-07 13:08:02 UTC (rev 926)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/MarineLitterBatchUI.css 2013-05-07 14:13:08 UTC (rev 927)
@@ -36,6 +36,30 @@
_help: {"tutti.editMarineLitterBatch.help"};
}
+#marineLitterBatchTabToolBar {
+ floatable: false;
+ opaque: false;
+ borderPainted: false;
+}
+
+#importMultiPostButton {
+ actionIcon: import;
+ text: "tutti.editMarineLitterBatch.action.importMultiPost";
+ toolTipText: "tutti.editMarineLitterBatch.action.importMultiPost.tip";
+ i18nMnemonic: "tutti.editMarineLitterBatch.action.importMultiPost.mnemonic";
+ /*_tuttiAction: {ImportMultiPostAction.class};*/
+ _help: {"tutti.editMarineLitterBatch.action.importMultiPost.help"};
+}
+
+#exportMultiPostButton {
+ actionIcon: export;
+ text: "tutti.editMarineLitterBatch.action.exportMultiPost";
+ toolTipText: "tutti.editMarineLitterBatch.action.exportMultiPost.tip";
+ i18nMnemonic: "tutti.editMarineLitterBatch.action.exportMultiPost.mnemonic";
+ /*_tuttiAction: {ExportMultiPostAction.class};*/
+ _help: {"tutti.editMarineLitterBatch.action.exportMultiPost.help"};
+}
+
#marineLitterTotalWeightLabel {
text: "tutti.editMarineLitterBatch.field.marineLitterTotalWeight";
toolTipText: "tutti.editMarineLitterBatch.field.marineLitterTotalWeight.tip";
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/MarineLitterBatchUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/MarineLitterBatchUI.jaxx 2013-05-07 13:08:02 UTC (rev 926)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/MarineLitterBatchUI.jaxx 2013-05-07 14:13:08 UTC (rev 927)
@@ -67,6 +67,11 @@
<TuttiHelpBroker id='broker'
constructorParams='"tutti.editMarineLitterBatch.help"'/>
+ <JToolBar id='marineLitterBatchTabToolBar'>
+ <JButton id='importMultiPostButton'/>
+ <JButton id='exportMultiPostButton'/>
+ </JToolBar>
+
<JPopupMenu id='tablePopup'>
<JMenuItem id='removeMarineLitterBatchMenu'/>
</JPopupMenu>
Added: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/ExportMultiPostAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/ExportMultiPostAction.java (rev 0)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/ExportMultiPostAction.java 2013-05-07 14:13:08 UTC (rev 927)
@@ -0,0 +1,79 @@
+package fr.ifremer.tutti.ui.swing.content.operation.catches.species;
+
+import fr.ifremer.tutti.persistence.entities.data.FishingOperation;
+import fr.ifremer.tutti.service.DecoratorService;
+import fr.ifremer.tutti.service.catches.multipost.TuttiMultiPostImportExportService;
+import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUI;
+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.2
+ */
+public class ExportMultiPostAction extends AbstractTuttiAction<SpeciesBatchUIModel, SpeciesBatchUI, SpeciesBatchUIHandler> {
+
+ protected File file;
+
+ protected FishingOperation currentOperation;
+
+ protected TuttiMultiPostImportExportService multiPostImportExportService;
+
+ public ExportMultiPostAction(SpeciesBatchUIHandler handler) {
+ super(handler, false);
+ multiPostImportExportService = getContext().getMultiPostImportExportService();
+ }
+
+ @Override
+ protected boolean prepareAction() throws Exception {
+
+ boolean doAction = super.prepareAction();
+
+ if (doAction) {
+
+ EditCatchesUI catchesUI = getUI().getParentContainer(EditCatchesUI.class);
+ currentOperation = catchesUI.getModel().getFishingOperation();
+
+ // choose file to export
+ file = TuttiUIUtil.saveFile(
+ decorate(currentOperation, DecoratorService.FILE_NAME_COMPATIBLE) + ".zip",
+ getContext().getMainUI(),
+ _("tutti.editSpeciesBatch.action.exportMultiPost.destinationFile.title"),
+ _("tutti.editSpeciesBatch.action.exportMultiPost.destinationFile.button"),
+ "^.*\\.zip", _("tutti.common.file.zip")
+ );
+ if (file == null) {
+
+ // user cancel
+ doAction = false;
+ } else {
+
+ // ask user to confirm overwrite.
+ doAction = getHandler().askOverwriteFile(file);
+ }
+ }
+ return doAction;
+ }
+
+ @Override
+ protected void releaseAction() {
+ file = null;
+ currentOperation = null;
+ super.releaseAction();
+ }
+
+ @Override
+ protected void doAction() throws Exception {
+ multiPostImportExportService.exportSpecies(file, currentOperation);
+ }
+
+ @Override
+ public void postSuccessAction() {
+ super.postSuccessAction();
+ sendMessage(_("tutti.editSpeciesBatch.action.exportMultiPost.success", file));
+ }
+}
Added: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/ImportMultiPostAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/ImportMultiPostAction.java (rev 0)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/ImportMultiPostAction.java 2013-05-07 14:13:08 UTC (rev 927)
@@ -0,0 +1,86 @@
+package fr.ifremer.tutti.ui.swing.content.operation.catches.species;
+
+import fr.ifremer.tutti.persistence.entities.data.CatchBatch;
+import fr.ifremer.tutti.persistence.entities.data.FishingOperation;
+import fr.ifremer.tutti.ui.swing.content.operation.EditFishingOperationAction;
+import fr.ifremer.tutti.ui.swing.content.operation.FishingOperationsUI;
+import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUI;
+import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUIHandler;
+import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUIModel;
+import fr.ifremer.tutti.ui.swing.content.operation.catches.ImportPupitriPopupUI;
+import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil;
+import fr.ifremer.tutti.ui.swing.util.action.AbstractTuttiAction;
+import fr.ifremer.tutti.ui.swing.util.action.TuttiActionHelper;
+
+import java.io.File;
+
+import static org.nuiton.i18n.I18n._;
+
+/**
+ * @author kmorin <kmorin(a)codelutin.com>
+ * @since 2.2
+ */
+public class ImportMultiPostAction extends AbstractTuttiAction<SpeciesBatchUIModel, SpeciesBatchUI, SpeciesBatchUIHandler> {
+
+ protected File file;
+
+ protected EditFishingOperationAction editAction;
+
+ public ImportMultiPostAction(SpeciesBatchUIHandler handler) {
+ super(handler, false);
+ }
+
+ public EditFishingOperationAction getEditAction() {
+ FishingOperationsUI parentUI = getUI().getParentContainer(FishingOperationsUI.class);
+ if (editAction == null) {
+ editAction = TuttiActionHelper.createLogicAction(parentUI.getHandler(),
+ EditFishingOperationAction.class);
+ }
+ return editAction;
+ }
+
+ @Override
+ protected boolean prepareAction() throws Exception {
+
+ boolean doAction = super.prepareAction();
+
+ if (doAction) {
+
+ // choose file to import
+ file = TuttiUIUtil.chooseFile(
+ getContext().getMainUI(),
+ _("tutti.editSpeciesBatch.action.importMultiPost.sourceFile.title"),
+ _("tutti.editSpeciesBatch.action.importMultiPost.sourceFile.button")
+ );
+
+ doAction = file != null;
+ }
+ return doAction;
+ }
+
+ @Override
+ protected void releaseAction() {
+ file = null;
+ super.releaseAction();
+ }
+
+ @Override
+ protected void doAction() throws Exception {
+ EditCatchesUI editCatchesUI = getUI().getParentContainer(EditCatchesUI.class);
+ EditCatchesUIModel editCatchesUIModel = editCatchesUI.getModel();
+
+ FishingOperation operation = editCatchesUIModel.getFishingOperation();
+ CatchBatch catchBatch = editCatchesUIModel.getCatchBatch();
+
+ String fishingOperationText = getEditAction().getFishingOperationTitle(operation);
+
+ getEditAction().loadCatchBatch(operation, fishingOperationText, true);
+ }
+
+ @Override
+ public void postSuccessAction() {
+ super.postSuccessAction();
+
+ sendMessage(_("tutti.editSpeciesBatch.action.importMultiPost.success", file));
+ }
+}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUI.css 2013-05-07 13:08:02 UTC (rev 926)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUI.css 2013-05-07 14:13:08 UTC (rev 927)
@@ -46,6 +46,30 @@
_help: {"tutti.editSpeciesBatch.help"};
}
+#speciesBatchTabToolBar {
+ floatable: false;
+ opaque: false;
+ borderPainted: false;
+}
+
+#importMultiPostButton {
+ actionIcon: import;
+ text: "tutti.editSpeciesBatch.action.importMultiPost";
+ toolTipText: "tutti.editSpeciesBatch.action.importMultiPost.tip";
+ i18nMnemonic: "tutti.editSpeciesBatch.action.importMultiPost.mnemonic";
+ _tuttiAction: {ImportMultiPostAction.class};
+ _help: {"tutti.editSpeciesBatch.action.importMultiPost.help"};
+}
+
+#exportMultiPostButton {
+ actionIcon: export;
+ text: "tutti.editSpeciesBatch.action.exportMultiPost";
+ toolTipText: "tutti.editSpeciesBatch.action.exportMultiPost.tip";
+ i18nMnemonic: "tutti.editSpeciesBatch.action.exportMultiPost.mnemonic";
+ _tuttiAction: {ExportMultiPostAction.class};
+ _help: {"tutti.editSpeciesBatch.action.exportMultiPost.help"};
+}
+
#speciesTotalWeightLabel {
text: "tutti.editSpeciesBatch.field.speciesTotalWeight";
toolTipText: "tutti.editSpeciesBatch.field.speciesTotalWeight.tip";
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUI.jaxx 2013-05-07 13:08:02 UTC (rev 926)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUI.jaxx 2013-05-07 14:13:08 UTC (rev 927)
@@ -68,6 +68,11 @@
<TuttiHelpBroker id='broker'
constructorParams='"tutti.editSpeciesBatch.help"'/>
+ <JToolBar id='speciesBatchTabToolBar'>
+ <JButton id='importMultiPostButton'/>
+ <JButton id='exportMultiPostButton'/>
+ </JToolBar>
+
<JPopupMenu id='tablePopup'>
<JMenuItem id='splitSpeciesBatchMenu'
onActionPerformed='handler.splitBatch()'/>
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-05-07 13:08:02 UTC (rev 926)
+++ trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties 2013-05-07 14:13:08 UTC (rev 927)
@@ -258,6 +258,12 @@
tutti.editAccidentalBatch.action.createBatch=
tutti.editAccidentalBatch.action.createBatch.mnemonic=
tutti.editAccidentalBatch.action.createBatch.tip=
+tutti.editAccidentalBatch.action.exportMultiPost=
+tutti.editAccidentalBatch.action.exportMultiPost.mnemonic=
+tutti.editAccidentalBatch.action.exportMultiPost.tip=
+tutti.editAccidentalBatch.action.importMultiPost=
+tutti.editAccidentalBatch.action.importMultiPost.mnemonic=
+tutti.editAccidentalBatch.action.importMultiPost.tip=
tutti.editAccidentalBatch.action.removeBatch=
tutti.editAccidentalBatch.action.removeBatch.mnemonic=
tutti.editAccidentalBatch.action.removeBatch.tip=
@@ -285,6 +291,12 @@
tutti.editBenthosBatch.action.createMelag=
tutti.editBenthosBatch.action.createMelag.mnemonic=
tutti.editBenthosBatch.action.createMelag.tip=
+tutti.editBenthosBatch.action.exportMultiPost=
+tutti.editBenthosBatch.action.exportMultiPost.mnemonic=
+tutti.editBenthosBatch.action.exportMultiPost.tip=
+tutti.editBenthosBatch.action.importMultiPost=
+tutti.editBenthosBatch.action.importMultiPost.mnemonic=
+tutti.editBenthosBatch.action.importMultiPost.tip=
tutti.editBenthosBatch.action.removeBatch=
tutti.editBenthosBatch.action.removeBatch.mnemonic=
tutti.editBenthosBatch.action.removeBatch.tip=
@@ -593,6 +605,12 @@
tutti.editIndividualObservationBatch.action.createBatch=
tutti.editIndividualObservationBatch.action.createBatch.mnemonic=
tutti.editIndividualObservationBatch.action.createBatch.tip=
+tutti.editIndividualObservationBatch.action.exportMultiPost=
+tutti.editIndividualObservationBatch.action.exportMultiPost.mnemonic=
+tutti.editIndividualObservationBatch.action.exportMultiPost.tip=
+tutti.editIndividualObservationBatch.action.importMultiPost=
+tutti.editIndividualObservationBatch.action.importMultiPost.mnemonic=
+tutti.editIndividualObservationBatch.action.importMultiPost.tip=
tutti.editIndividualObservationBatch.action.removeBatch=
tutti.editIndividualObservationBatch.action.removeBatch.mnemonic=
tutti.editIndividualObservationBatch.action.removeBatch.tip=
@@ -626,6 +644,12 @@
tutti.editMarineLitterBatch.action.createBatch=
tutti.editMarineLitterBatch.action.createBatch.mnemonic=
tutti.editMarineLitterBatch.action.createBatch.tip=
+tutti.editMarineLitterBatch.action.exportMultiPost=
+tutti.editMarineLitterBatch.action.exportMultiPost.mnemonic=
+tutti.editMarineLitterBatch.action.exportMultiPost.tip=
+tutti.editMarineLitterBatch.action.importMultiPost=
+tutti.editMarineLitterBatch.action.importMultiPost.mnemonic=
+tutti.editMarineLitterBatch.action.importMultiPost.tip=
tutti.editMarineLitterBatch.action.removeBatch=
tutti.editMarineLitterBatch.action.removeBatch.mnemonic=
tutti.editMarineLitterBatch.action.removeBatch.tip=
@@ -773,6 +797,18 @@
tutti.editSpeciesBatch.action.createMelag=
tutti.editSpeciesBatch.action.createMelag.mnemonic=
tutti.editSpeciesBatch.action.createMelag.tip=
+tutti.editSpeciesBatch.action.exportMultiPost=
+tutti.editSpeciesBatch.action.exportMultiPost.destinationFile.button=
+tutti.editSpeciesBatch.action.exportMultiPost.destinationFile.title=
+tutti.editSpeciesBatch.action.exportMultiPost.mnemonic=
+tutti.editSpeciesBatch.action.exportMultiPost.success=
+tutti.editSpeciesBatch.action.exportMultiPost.tip=
+tutti.editSpeciesBatch.action.importMultiPost=
+tutti.editSpeciesBatch.action.importMultiPost.destinationFile.title=
+tutti.editSpeciesBatch.action.importMultiPost.mnemonic=
+tutti.editSpeciesBatch.action.importMultiPost.sourceFile.button=
+tutti.editSpeciesBatch.action.importMultiPost.sourceFile.title=
+tutti.editSpeciesBatch.action.importMultiPost.tip=
tutti.editSpeciesBatch.action.removeBatch=
tutti.editSpeciesBatch.action.removeBatch.mnemonic=
tutti.editSpeciesBatch.action.removeBatch.tip=
@@ -1183,6 +1219,7 @@
tutti.updateApplication.message.success=
tutti.updateApplication.noUpdate=
tutti.updateApplication.title.success=
+tutti.v.action.importMultiPost.mnemonic=
tutti.validateCruise.action.export.all.chooseFile.defaultFile=
tutti.validateCruise.action.export.all.chooseFile.label=
tutti.validateCruise.action.export.all.chooseFile.title=
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-05-07 13:08:02 UTC (rev 926)
+++ trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2013-05-07 14:13:08 UTC (rev 927)
@@ -253,6 +253,12 @@
tutti.editAccidentalBatch.action.createBatch=Créer une capture accidentelle
tutti.editAccidentalBatch.action.createBatch.mnemonic=C
tutti.editAccidentalBatch.action.createBatch.tip=Créer une capture accidentelle
+tutti.editAccidentalBatch.action.exportMultiPost=Exporter les captures accidentelles
+tutti.editAccidentalBatch.action.exportMultiPost.mnemonic=E
+tutti.editAccidentalBatch.action.exportMultiPost.tip=Exporter les captures accidentelles pour les importer sur le poste maître
+tutti.editAccidentalBatch.action.importMultiPost=Importer des captures accidentelles
+tutti.editAccidentalBatch.action.importMultiPost.mnemonic=I
+tutti.editAccidentalBatch.action.importMultiPost.tip=Importer des captures accidentelles créées sur un poste satellite
tutti.editAccidentalBatch.action.removeBatch=Supprimer la capture courante
tutti.editAccidentalBatch.action.removeBatch.mnemonic=S
tutti.editAccidentalBatch.action.removeBatch.tip=Supprimer la capture courante (celle de la ligne sélectionnée)
@@ -280,6 +286,12 @@
tutti.editBenthosBatch.action.createMelag=Espèces d'un MELAG
tutti.editBenthosBatch.action.createMelag.mnemonic=C
tutti.editBenthosBatch.action.createMelag.tip=Calcul des poids des lots appartenant à un MELAG
+tutti.editBenthosBatch.action.exportMultiPost=Exporter les lots de benthos
+tutti.editBenthosBatch.action.exportMultiPost.mnemonic=E
+tutti.editBenthosBatch.action.exportMultiPost.tip=Exporter les lots de benthos pour les importer sur le poste maître
+tutti.editBenthosBatch.action.importMultiPost=Importer des lots de benthos
+tutti.editBenthosBatch.action.importMultiPost.mnemonic=I
+tutti.editBenthosBatch.action.importMultiPost.tip=Importer des lots de benthos créés sur un poste satellite
tutti.editBenthosBatch.action.removeBatch=Supprimer le lot
tutti.editBenthosBatch.action.removeBatch.mnemonic=S
tutti.editBenthosBatch.action.removeBatch.tip=Supprimer le lot courant (celui de la ligne sélectionnée) et tous ces fils
@@ -577,6 +589,12 @@
tutti.editIndividualObservationBatch.action.createBatch=Créer une observation
tutti.editIndividualObservationBatch.action.createBatch.mnemonic=C
tutti.editIndividualObservationBatch.action.createBatch.tip=Créer une nouvelle observation
+tutti.editIndividualObservationBatch.action.exportMultiPost=Exporter les observations
+tutti.editIndividualObservationBatch.action.exportMultiPost.mnemonic=E
+tutti.editIndividualObservationBatch.action.exportMultiPost.tip=Exporter les observations pour les importer sur le poste maître
+tutti.editIndividualObservationBatch.action.importMultiPost=Importer des observations
+tutti.editIndividualObservationBatch.action.importMultiPost.mnemonic=I
+tutti.editIndividualObservationBatch.action.importMultiPost.tip=Importer des observations créées sur un poste satellite
tutti.editIndividualObservationBatch.action.removeBatch=Supprimer la ligne sélectionnée
tutti.editIndividualObservationBatch.action.removeBatch.mnemonic=S
tutti.editIndividualObservationBatch.action.removeBatch.tip=Supprimer la ligne sélectionnée
@@ -610,6 +628,12 @@
tutti.editMarineLitterBatch.action.createBatch=Créer un lot de déchet
tutti.editMarineLitterBatch.action.createBatch.mnemonic=C
tutti.editMarineLitterBatch.action.createBatch.tip=Créer un nouveau lot de déchet
+tutti.editMarineLitterBatch.action.exportMultiPost=Exporter les lots de déchets
+tutti.editMarineLitterBatch.action.exportMultiPost.mnemonic=E
+tutti.editMarineLitterBatch.action.exportMultiPost.tip=Exporter les lots de déchets pour les importer sur le poste maître
+tutti.editMarineLitterBatch.action.importMultiPost=Importer des lots de déchets
+tutti.editMarineLitterBatch.action.importMultiPost.mnemonic=I
+tutti.editMarineLitterBatch.action.importMultiPost.tip=Importer des lots de déchets créés sur un poste satellite
tutti.editMarineLitterBatch.action.removeBatch=Supprimer la ligne sélectionnée
tutti.editMarineLitterBatch.action.removeBatch.mnemonic=S
tutti.editMarineLitterBatch.action.removeBatch.tip=Supprimer la ligne sélectionnée
@@ -743,6 +767,17 @@
tutti.editSpeciesBatch.action.createMelag=Espèces d'un MELAG
tutti.editSpeciesBatch.action.createMelag.mnemonic=C
tutti.editSpeciesBatch.action.createMelag.tip=Calcul des poids des lots appartenant à un MELAG
+tutti.editSpeciesBatch.action.exportMultiPost=Exporter les lots d'espèces
+tutti.editSpeciesBatch.action.exportMultiPost.destinationFile.button=Choisir le fichier pour l'export
+tutti.editSpeciesBatch.action.exportMultiPost.destinationFile.title=Exporter les lots d'espèces
+tutti.editSpeciesBatch.action.exportMultiPost.mnemonic=E
+tutti.editSpeciesBatch.action.exportMultiPost.success=
+tutti.editSpeciesBatch.action.exportMultiPost.tip=Exporter les lots d'espèces pour les importer sur le poste maître
+tutti.editSpeciesBatch.action.importMultiPost=Importer des lots d'espèces
+tutti.editSpeciesBatch.action.importMultiPost.mnemonic=I
+tutti.editSpeciesBatch.action.importMultiPost.sourceFile.button=Choisir le fichier à importer
+tutti.editSpeciesBatch.action.importMultiPost.sourceFile.title=Importer des lots d'espèces
+tutti.editSpeciesBatch.action.importMultiPost.tip=Importer des lots d'espèces créés sur un poste satellite
tutti.editSpeciesBatch.action.removeBatch=Supprimer le lot
tutti.editSpeciesBatch.action.removeBatch.mnemonic=S
tutti.editSpeciesBatch.action.removeBatch.tip=Supprimer le lot courant (celui de la ligne sélectionnée) et tous ces fils
1
0
r926 - in trunk/tutti-ui-swing/src/main: java/fr/ifremer/tutti/ui/swing/content/cruise java/fr/ifremer/tutti/ui/swing/content/operation resources/i18n
by tchemit@users.forge.codelutin.com 07 May '13
by tchemit@users.forge.codelutin.com 07 May '13
07 May '13
Author: tchemit
Date: 2013-05-07 15:08:02 +0200 (Tue, 07 May 2013)
New Revision: 926
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/926
Log:
add missing svn properties + license headers
Modified:
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditGearCaracteristicsAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/ViewGearCaracteristicsAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/DeleteFishingOperationAction.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/content/cruise/EditGearCaracteristicsAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditGearCaracteristicsAction.java 2013-05-07 13:07:36 UTC (rev 925)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditGearCaracteristicsAction.java 2013-05-07 13:08:02 UTC (rev 926)
@@ -1,5 +1,29 @@
package fr.ifremer.tutti.ui.swing.content.cruise;
+/*
+ * #%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%
+ */
+
import fr.ifremer.tutti.persistence.entities.referential.Caracteristic;
import fr.ifremer.tutti.persistence.entities.referential.Gear;
import fr.ifremer.tutti.service.PersistenceService;
Property changes on: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditGearCaracteristicsAction.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/ViewGearCaracteristicsAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/ViewGearCaracteristicsAction.java 2013-05-07 13:07:36 UTC (rev 925)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/ViewGearCaracteristicsAction.java 2013-05-07 13:08:02 UTC (rev 926)
@@ -1,5 +1,29 @@
package fr.ifremer.tutti.ui.swing.content.cruise;
+/*
+ * #%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%
+ */
+
import fr.ifremer.tutti.persistence.entities.referential.Gear;
import fr.ifremer.tutti.service.PersistenceService;
import fr.ifremer.tutti.ui.swing.util.action.AbstractTuttiAction;
Property changes on: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/ViewGearCaracteristicsAction.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/DeleteFishingOperationAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/DeleteFishingOperationAction.java 2013-05-07 13:07:36 UTC (rev 925)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/DeleteFishingOperationAction.java 2013-05-07 13:08:02 UTC (rev 926)
@@ -1,5 +1,29 @@
package fr.ifremer.tutti.ui.swing.content.operation;
+/*
+ * #%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%
+ */
+
import fr.ifremer.tutti.persistence.entities.TuttiEntities;
import fr.ifremer.tutti.persistence.entities.data.FishingOperation;
import fr.ifremer.tutti.ui.swing.util.action.AbstractTuttiAction;
Property changes on: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/DeleteFishingOperationAction.java
___________________________________________________________________
Modified: svn:keywords
- Author Date Id Revision
+ Author Date Id Revision HeadURL
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-05-07 13:07:36 UTC (rev 925)
+++ trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties 2013-05-07 13:08:02 UTC (rev 926)
@@ -587,6 +587,7 @@
tutti.editFishingOperation.field.vessel.tip=
tutti.editFishingOperation.label.traitReminder=
tutti.editFishingOperation.label.traitReminder.inCreation=
+tutti.editFishingOperation.message.operation.deleted=
tutti.editFishingOperation.pane.other=
tutti.editFishingOperation.tab.general=
tutti.editIndividualObservationBatch.action.createBatch=
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-05-07 13:07:36 UTC (rev 925)
+++ trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2013-05-07 13:08:02 UTC (rev 926)
@@ -487,7 +487,6 @@
tutti.editFishingOperation.action.deleteFishingOperation.message=Vous êtes sur le point de supprimer l'opération de pêche <strong>%s</strong>
tutti.editFishingOperation.action.deleteFishingOperation.tip=Supprimer l'opération de pêche sélectionnée
tutti.editFishingOperation.action.deleteFishingOperation.title=Supprimer l'opération de pêche sélectionnée
-tutti.editFishingOperation.message.operation.deleted=Opération de pêche <strong>%s</strong> supprimée.
tutti.editFishingOperation.action.editFishingOperation.tip=Éditer l'opération de pêche
tutti.editFishingOperation.action.importCasino=Import Casino
tutti.editFishingOperation.action.importCasino.mnemonic=I
@@ -572,6 +571,7 @@
tutti.editFishingOperation.field.vessel.tip=Navire du trait
tutti.editFishingOperation.label.traitReminder=Trait \: %s
tutti.editFishingOperation.label.traitReminder.inCreation=en cours de création
+tutti.editFishingOperation.message.operation.deleted=Opération de pêche <strong>%s</strong> supprimée.
tutti.editFishingOperation.pane.other=Autres caractéristiques
tutti.editFishingOperation.tab.general=Trait
tutti.editIndividualObservationBatch.action.createBatch=Créer une observation
1
0
r925 - in trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service: . batch
by tchemit@users.forge.codelutin.com 07 May '13
by tchemit@users.forge.codelutin.com 07 May '13
07 May '13
Author: tchemit
Date: 2013-05-07 15:07:36 +0200 (Tue, 07 May 2013)
New Revision: 925
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/925
Log:
fixes #2404: [CAPTURES] Les pic?\195?\168es jointes ne sont pas toutes supprim?\195?\169es
improve sample helper api
improve delete attachments api
Added:
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/SamplePersistenceHelper.java
Removed:
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/SampleMeasurementPersistenceHelper.java
Modified:
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/AccidentalBatchPersistenceServiceImpl.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/AttachmentPersistenceService.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/AttachmentPersistenceServiceImpl.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/BenthosBatchPersistenceServiceImpl.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/FishingOperationPersistenceServiceImpl.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/IndividualObservationBatchPersistenceServiceImpl.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/MarineLitterBatchPersistenceServiceImpl.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/PlanktonBatchPersistenceServiceImpl.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/SpeciesBatchPersistenceServiceImpl.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/batch/BatchPersistenceHelper.java
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/AccidentalBatchPersistenceServiceImpl.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/AccidentalBatchPersistenceServiceImpl.java 2013-05-07 13:00:45 UTC (rev 924)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/AccidentalBatchPersistenceServiceImpl.java 2013-05-07 13:07:36 UTC (rev 925)
@@ -31,7 +31,6 @@
import fr.ifremer.adagio.core.dao.administration.user.PersonImpl;
import fr.ifremer.adagio.core.dao.data.operation.FishingOperationImpl;
import fr.ifremer.adagio.core.dao.data.sample.Sample;
-import fr.ifremer.adagio.core.dao.data.sample.SampleDao;
import fr.ifremer.adagio.core.dao.referential.QualityFlagImpl;
import fr.ifremer.adagio.core.dao.referential.pmfm.Matrix;
import fr.ifremer.adagio.core.dao.referential.pmfm.MatrixImpl;
@@ -41,7 +40,6 @@
import fr.ifremer.tutti.persistence.entities.TuttiBeanFactory;
import fr.ifremer.tutti.persistence.entities.TuttiEntities;
import fr.ifremer.tutti.persistence.entities.data.AccidentalBatch;
-import fr.ifremer.tutti.persistence.entities.data.AttachementObjectTypeEnum;
import fr.ifremer.tutti.persistence.entities.referential.Caracteristic;
import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValue;
import fr.ifremer.tutti.persistence.entities.referential.Species;
@@ -73,15 +71,9 @@
@Autowired
protected ReferentialPersistenceService referentialService;
- @Autowired
- protected AttachmentPersistenceService attachmentPersistenceService;
+ @Resource(name = "samplePersistenceHelper")
+ protected SamplePersistenceHelper samplePersistenceHelper;
- @Autowired
- protected SampleMeasurementPersistenceHelper sampleMeasurementPersistenceHelper;
-
- @Resource(name = "sampleDao")
- protected SampleDao sampleDao;
-
@Override
public List<AccidentalBatch> getAllAccidentalBatch(String fishingOperationId) {
Preconditions.checkNotNull(fishingOperationId);
@@ -132,7 +124,7 @@
Sample sample = Sample.Factory.newInstance();
beanToEntity(bean, sample);
- sampleDao.create(sample);
+ samplePersistenceHelper.create(sample);
bean.setId(String.valueOf(sample.getId()));
return bean;
}
@@ -145,13 +137,13 @@
Preconditions.checkNotNull(bean.getFishingOperation());
Preconditions.checkState(!TuttiEntities.isNew(bean.getFishingOperation()));
- Sample sample = sampleDao.load(bean.getIdAsInt());
+ Sample sample = samplePersistenceHelper.load(bean.getIdAsInt());
if (sample == null) {
throw new DataRetrievalFailureException(
"Could not retrieve sample id=" + bean.getId());
}
beanToEntity(bean, sample);
- sampleDao.update(sample);
+ samplePersistenceHelper.update(sample);
return bean;
}
@@ -164,11 +156,7 @@
if (log.isInfoEnabled()) {
log.info("Will delete accidental batch: " + batchId);
}
- sampleDao.remove(batchId);
-
- attachmentPersistenceService.deleteAllAttachment(
- AttachementObjectTypeEnum.SAMPLE,
- batchId);
+ samplePersistenceHelper.deleteSample(batchId);
}
@Override
@@ -295,8 +283,8 @@
source.getSize());
}
- sampleMeasurementPersistenceHelper.setSampleMeasurements(target,
- caracteristics);
+ samplePersistenceHelper.setSampleMeasurements(target,
+ caracteristics);
}
@@ -308,7 +296,7 @@
CaracteristicMap result = batch.getCaracteristics();
- sampleMeasurementPersistenceHelper.fillSampleMeasurements(
+ samplePersistenceHelper.fillSampleMeasurements(
result, batch.getIdAsInt());
CaracteristicQualitativeValue deadOrAliveValue =
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/AttachmentPersistenceService.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/AttachmentPersistenceService.java 2013-05-07 13:00:45 UTC (rev 924)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/AttachmentPersistenceService.java 2013-05-07 13:07:36 UTC (rev 925)
@@ -88,13 +88,13 @@
void deleteAttachment(String attachmentId);
/**
- * Deletes all attachments of the given object id.
+ * Deletes all attachments of the given object ids.
*
* @param objectType type of attachment
- * @param objectId id of the object
+ * @param objectIds ids of object
*/
@Transactional(readOnly = false)
void deleteAllAttachment(AttachementObjectTypeEnum objectType,
- Integer objectId);
+ Integer... objectIds);
}
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/AttachmentPersistenceServiceImpl.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/AttachmentPersistenceServiceImpl.java 2013-05-07 13:00:45 UTC (rev 924)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/AttachmentPersistenceServiceImpl.java 2013-05-07 13:07:36 UTC (rev 925)
@@ -246,10 +246,12 @@
@Override
public void deleteAllAttachment(AttachementObjectTypeEnum objectType,
- Integer objectId) {
- List<Attachment> attachments = getAllAttachments(objectType, objectId);
- for (Attachment attachment : attachments) {
- delete(attachment);
+ Integer... objectIds) {
+ for (Integer objectId : objectIds) {
+ List<Attachment> attachments = getAllAttachments(objectType, objectId);
+ for (Attachment attachment : attachments) {
+ delete(attachment);
+ }
}
}
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/BenthosBatchPersistenceServiceImpl.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/BenthosBatchPersistenceServiceImpl.java 2013-05-07 13:00:45 UTC (rev 924)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/BenthosBatchPersistenceServiceImpl.java 2013-05-07 13:07:36 UTC (rev 925)
@@ -37,7 +37,6 @@
import fr.ifremer.adagio.core.dao.referential.taxon.ReferenceTaxon;
import fr.ifremer.adagio.core.dao.referential.taxon.ReferenceTaxonImpl;
import fr.ifremer.tutti.persistence.entities.TuttiBeanFactory;
-import fr.ifremer.tutti.persistence.entities.data.AttachementObjectTypeEnum;
import fr.ifremer.tutti.persistence.entities.data.BatchContainer;
import fr.ifremer.tutti.persistence.entities.data.BenthosBatch;
import fr.ifremer.tutti.persistence.entities.data.BenthosBatchFrequency;
@@ -76,9 +75,6 @@
@Autowired
protected ReferentialPersistenceService referentialService;
- @Autowired
- protected AttachmentPersistenceService attachmentPersistenceService;
-
@Resource(name = "batchPersistenceHelper")
protected BatchPersistenceHelper batchHelper;
@@ -191,10 +187,6 @@
Integer batchId = Integer.valueOf(id);
batchHelper.removeWithChildren(batchId);
-
- attachmentPersistenceService.deleteAllAttachment(
- AttachementObjectTypeEnum.BATCH,
- batchId);
}
@Override
@@ -221,11 +213,6 @@
log.info("Delete child [" + childBatchId + "] of species batch: " + id);
}
batchHelper.removeWithChildren(childBatchId);
-
- // delete his attachment (if any)
- attachmentPersistenceService.deleteAllAttachment(
- AttachementObjectTypeEnum.BATCH,
- childBatchId);
}
}
}
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/FishingOperationPersistenceServiceImpl.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/FishingOperationPersistenceServiceImpl.java 2013-05-07 13:00:45 UTC (rev 924)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/FishingOperationPersistenceServiceImpl.java 2013-05-07 13:07:36 UTC (rev 925)
@@ -366,8 +366,18 @@
@Override
public FishingOperation saveFishingOperation(FishingOperation bean) {
- checkFishingOperation(bean);
+ Preconditions.checkNotNull(bean);
+ Preconditions.checkNotNull(bean.getId());
+ Preconditions.checkNotNull(bean.getCruise());
+ Preconditions.checkNotNull(bean.getCruise().getId());
+ //TODO-TC Voir si il n'y a pas d'autre données obligatoires
+ if (bean.getGearShootingStartDate() != null && bean.getGearShootingEndDate() != null) {
+
+ //make sure not same date
+ Preconditions.checkArgument(!bean.getGearShootingStartDate().equals(bean.getGearShootingEndDate()));
+ }
+
getCurrentSession().clear();
getCurrentSession().setFlushMode(FlushMode.COMMIT);
fr.ifremer.adagio.core.dao.data.operation.FishingOperation fishingOperation = fishingOperationDao.load(Integer.valueOf(bean.getId()));
@@ -484,9 +494,6 @@
// remove operation vessel associations
removeAllOperationVesselAssociation(fishingOperation);
-// if (CollectionUtils.isNotEmpty(fishingOperation.getOperationVesselAssociations())) {
-// fishingOperation.getOperationVesselAssociations().clear();
-// }
// remove fishing areas
if (CollectionUtils.isNotEmpty(fishingAreas)) {
@@ -521,20 +528,6 @@
//-- Internal methods --//
//------------------------------------------------------------------------//
- protected void checkFishingOperation(FishingOperation bean) {
- Preconditions.checkNotNull(bean);
- Preconditions.checkNotNull(bean.getId());
- Preconditions.checkNotNull(bean.getCruise());
- Preconditions.checkNotNull(bean.getCruise().getId());
- //TODO-TC Voir si il n'y a pas d'autre données obligatoires
-
- if (bean.getGearShootingStartDate() != null && bean.getGearShootingEndDate() != null) {
-
- //make sure not same date
- Preconditions.checkArgument(!bean.getGearShootingStartDate().equals(bean.getGearShootingEndDate()));
- }
- }
-
protected void getVesselUseCaracteristics(String fishingOperationId, FishingOperation result) {
// retrieve fishing operation caracteristics
Iterator<Object[]> list = queryList(
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/IndividualObservationBatchPersistenceServiceImpl.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/IndividualObservationBatchPersistenceServiceImpl.java 2013-05-07 13:00:45 UTC (rev 924)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/IndividualObservationBatchPersistenceServiceImpl.java 2013-05-07 13:07:36 UTC (rev 925)
@@ -33,7 +33,6 @@
import fr.ifremer.adagio.core.dao.data.batch.CatchBatch;
import fr.ifremer.adagio.core.dao.data.operation.FishingOperationImpl;
import fr.ifremer.adagio.core.dao.data.sample.Sample;
-import fr.ifremer.adagio.core.dao.data.sample.SampleDao;
import fr.ifremer.adagio.core.dao.referential.QualityFlagImpl;
import fr.ifremer.adagio.core.dao.referential.pmfm.Matrix;
import fr.ifremer.adagio.core.dao.referential.pmfm.MatrixImpl;
@@ -42,7 +41,6 @@
import fr.ifremer.tutti.persistence.entities.CaracteristicMap;
import fr.ifremer.tutti.persistence.entities.TuttiBeanFactory;
import fr.ifremer.tutti.persistence.entities.TuttiEntities;
-import fr.ifremer.tutti.persistence.entities.data.AttachementObjectTypeEnum;
import fr.ifremer.tutti.persistence.entities.data.FishingOperation;
import fr.ifremer.tutti.persistence.entities.data.IndividualObservationBatch;
import fr.ifremer.tutti.persistence.entities.referential.Caracteristic;
@@ -79,15 +77,12 @@
@Autowired
protected AttachmentPersistenceService attachmentPersistenceService;
- @Autowired
- protected SampleMeasurementPersistenceHelper sampleMeasurementPersistenceHelper;
+ @Resource(name = "samplePersistenceHelper")
+ protected SamplePersistenceHelper samplePersistenceHelper;
@Resource(name = "batchPersistenceHelper")
protected BatchPersistenceHelper batchHelper;
- @Resource(name = "sampleDao")
- protected SampleDao sampleDao;
-
@Override
public List<IndividualObservationBatch> getAllIndividualObservationBatch(String fishingOperationId) {
Preconditions.checkNotNull(fishingOperationId);
@@ -152,7 +147,7 @@
Sample sample = Sample.Factory.newInstance();
beanToEntity(bean, sample, catchBatch);
- sampleDao.create(sample);
+ samplePersistenceHelper.create(sample);
bean.setId(String.valueOf(sample.getId()));
return bean;
}
@@ -172,13 +167,13 @@
// Get catch Batch
Batch catchBatch = getBatch(fishingOperation.getIdAsInt());
- Sample sample = sampleDao.load(bean.getIdAsInt());
+ Sample sample = samplePersistenceHelper.load(bean.getIdAsInt());
if (sample == null) {
throw new DataRetrievalFailureException(
"Could not retrieve sample id: " + bean.getId());
}
beanToEntity(bean, sample, catchBatch);
- sampleDao.update(sample);
+ samplePersistenceHelper.update(sample);
return bean;
}
@@ -192,15 +187,7 @@
log.info("Will delete individual observation batch: " +
batchId);
}
- //FIXME See why this code does not work
-// sampleDao.remove(batchId);
- Sample sample = sampleDao.load(batchId);
- if (sample != null) {
- sample.getSampleMeasurements().clear();
- sampleDao.remove(sample);
- attachmentPersistenceService.deleteAllAttachment(AttachementObjectTypeEnum.SAMPLE,
- batchId);
- }
+ samplePersistenceHelper.deleteSample(batchId);
}
@Override
@@ -327,8 +314,8 @@
source.getSize());
}
- sampleMeasurementPersistenceHelper.setSampleMeasurements(target,
- caracteristics);
+ samplePersistenceHelper.setSampleMeasurements(target,
+ caracteristics);
}
protected Batch getBatch(Integer operationId) {
@@ -342,7 +329,7 @@
CaracteristicMap result = batch.getCaracteristics();
- sampleMeasurementPersistenceHelper.fillSampleMeasurements(
+ samplePersistenceHelper.fillSampleMeasurements(
result, batch.getIdAsInt());
String sampleCode = (String) result.remove(referentialService.getSampleIdCaracteristic());
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/MarineLitterBatchPersistenceServiceImpl.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/MarineLitterBatchPersistenceServiceImpl.java 2013-05-07 13:00:45 UTC (rev 924)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/MarineLitterBatchPersistenceServiceImpl.java 2013-05-07 13:07:36 UTC (rev 925)
@@ -35,7 +35,6 @@
import fr.ifremer.adagio.core.dao.referential.pmfm.QualitativeValue;
import fr.ifremer.tutti.persistence.entities.TuttiBeanFactory;
import fr.ifremer.tutti.persistence.entities.TuttiEntities;
-import fr.ifremer.tutti.persistence.entities.data.AttachementObjectTypeEnum;
import fr.ifremer.tutti.persistence.entities.data.BatchContainer;
import fr.ifremer.tutti.persistence.entities.data.MarineLitterBatch;
import fr.ifremer.tutti.persistence.entities.referential.Caracteristic;
@@ -65,9 +64,6 @@
@Autowired
protected ReferentialPersistenceService referentialService;
- @Autowired
- protected AttachmentPersistenceService attachmentPersistenceService;
-
@Resource(name = "batchPersistenceHelper")
protected BatchPersistenceHelper batchHelper;
@@ -162,9 +158,6 @@
Integer batchId = Integer.valueOf(id);
batchHelper.removeWithChildren(batchId);
-
- attachmentPersistenceService.deleteAllAttachment(
- AttachementObjectTypeEnum.BATCH, batchId);
}
public MarineLitterBatch entityToMarineLitterBatch(SortingBatch source,
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/PlanktonBatchPersistenceServiceImpl.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/PlanktonBatchPersistenceServiceImpl.java 2013-05-07 13:00:45 UTC (rev 924)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/PlanktonBatchPersistenceServiceImpl.java 2013-05-07 13:07:36 UTC (rev 925)
@@ -26,7 +26,6 @@
import com.google.common.base.Preconditions;
import com.google.common.collect.Lists;
-import fr.ifremer.tutti.persistence.entities.data.AttachementObjectTypeEnum;
import fr.ifremer.tutti.persistence.entities.data.PlanktonBatch;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -46,9 +45,6 @@
private static final Log log =
LogFactory.getLog(PlanktonBatchPersistenceServiceImpl.class);
- @Autowired
- protected AttachmentPersistenceService attachmentPersistenceService;
-
@Override
public List<PlanktonBatch> getAllPlanktonBatch(String fishingOperationId) {
List<PlanktonBatch> result = Lists.newArrayList();
@@ -71,8 +67,5 @@
@Override
public void deletePlanktonBatch(String id) {
Preconditions.checkNotNull(id);
- attachmentPersistenceService.deleteAllAttachment(
- AttachementObjectTypeEnum.BATCH,
- Integer.valueOf(id));
}
}
Deleted: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/SampleMeasurementPersistenceHelper.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/SampleMeasurementPersistenceHelper.java 2013-05-07 13:00:45 UTC (rev 924)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/SampleMeasurementPersistenceHelper.java 2013-05-07 13:07:36 UTC (rev 925)
@@ -1,145 +0,0 @@
-package fr.ifremer.tutti.persistence.service;
-
-/*
- * #%L
- * Tutti :: Persistence
- * $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%
- */
-
-import com.google.common.collect.Sets;
-import fr.ifremer.adagio.core.dao.data.measure.SampleMeasurement;
-import fr.ifremer.adagio.core.dao.data.sample.Sample;
-import fr.ifremer.adagio.core.dao.referential.QualityFlagImpl;
-import fr.ifremer.adagio.core.dao.referential.pmfm.PmfmImpl;
-import fr.ifremer.tutti.persistence.entities.CaracteristicMap;
-import fr.ifremer.tutti.persistence.entities.TuttiEntities;
-import fr.ifremer.tutti.persistence.entities.referential.Caracteristic;
-import org.hibernate.type.IntegerType;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-
-import java.io.Serializable;
-import java.util.Iterator;
-import java.util.Set;
-
-/**
- * Helper around {@link SampleMeasurement}.
- *
- * @author tchemit <chemit(a)codelutin.com>
- * @since 1.6
- */
-@Component("sampleMeasurementPersistenceHelper")
-public class SampleMeasurementPersistenceHelper extends AbstractPersistenceService {
-
- @Autowired
- protected ReferentialPersistenceService referentialService;
-
- @Autowired
- protected MeasurementPersistenceHelper measurementPersistenceHelper;
-
- public void setSampleMeasurements(Sample target,
- CaracteristicMap caracteristics) {
-
- Set<SampleMeasurement> notChangedSampleMeasurements = Sets.newHashSet();
- if (target.getSampleMeasurements() != null) {
- notChangedSampleMeasurements.addAll(target.getSampleMeasurements());
- }
-
- for (Caracteristic caracteristic : caracteristics.keySet()) {
- SampleMeasurement vum = setSampleMeasurement(
- target,
- caracteristic,
- caracteristics.get(caracteristic));
- notChangedSampleMeasurements.remove(vum);
- }
-
- if (target.getSampleMeasurements() != null &&
- notChangedSampleMeasurements.size() > 0) {
- target.getSampleMeasurements().removeAll(notChangedSampleMeasurements);
- }
- }
-
- public void fillSampleMeasurements(CaracteristicMap result,
- Integer sampleId) {
- Iterator<Object[]> list = queryList(
- "sampleMeasurements",
- "sampleId", IntegerType.INSTANCE, sampleId);
- while (list.hasNext()) {
- int colIndex = 0;
- Object[] source = list.next();
- Integer pmfmId = (Integer) source[colIndex++];
- Float numericalValue = (Float) source[colIndex++];
- String alphanumericalValue = (String) source[colIndex++];
- Integer qualitativeValueId = (Integer) source[colIndex];
-
- Caracteristic caracteristic = referentialService.getCaracteristic(pmfmId);
- Serializable value = null;
- switch (caracteristic.getCaracteristicType()) {
-
- case NUMBER:
- value = numericalValue;
- break;
- case QUALITATIVE:
- value = TuttiEntities.getQualitativeValue(caracteristic,
- qualitativeValueId);
- break;
- case TEXT:
- value = alphanumericalValue;
- break;
- }
- result.put(caracteristic, value);
- }
- }
-
- protected SampleMeasurement setSampleMeasurement(Sample sample,
- Caracteristic caracteristic,
- Serializable value) {
-
- Integer pmfmId = caracteristic.getIdAsInt();
-
- SampleMeasurement result = null;
- if (sample.getSampleMeasurements() != null) {
- for (SampleMeasurement vum : sample.getSampleMeasurements()) {
- if (pmfmId.equals(vum.getPmfm().getId())) {
- result = vum;
- break;
- }
- }
- }
- if (result == null) {
-
- result = SampleMeasurement.Factory.newInstance();
-
- result.setSample(sample);
- if (sample.getSampleMeasurements() == null) {
- sample.setSampleMeasurements(Sets.newHashSet(result));
- } else {
- sample.getSampleMeasurements().add(result);
- }
- result.setQualityFlag(load(QualityFlagImpl.class, enumeration.QUALITY_FLAG_CODE_NOT_QUALIFIED));
- result.setDepartment(sample.getRecorderDepartment());
- result.setPmfm(load(PmfmImpl.class, pmfmId));
- }
- measurementPersistenceHelper.setMeasurement(result, caracteristic, value);
- return result;
- }
-
-}
Copied: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/SamplePersistenceHelper.java (from rev 920, trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/SampleMeasurementPersistenceHelper.java)
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/SamplePersistenceHelper.java (rev 0)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/SamplePersistenceHelper.java 2013-05-07 13:07:36 UTC (rev 925)
@@ -0,0 +1,178 @@
+package fr.ifremer.tutti.persistence.service;
+
+/*
+ * #%L
+ * Tutti :: Persistence
+ * $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%
+ */
+
+import com.google.common.collect.Sets;
+import fr.ifremer.adagio.core.dao.data.measure.SampleMeasurement;
+import fr.ifremer.adagio.core.dao.data.sample.Sample;
+import fr.ifremer.adagio.core.dao.data.sample.SampleDao;
+import fr.ifremer.adagio.core.dao.referential.QualityFlagImpl;
+import fr.ifremer.adagio.core.dao.referential.pmfm.PmfmImpl;
+import fr.ifremer.tutti.persistence.entities.CaracteristicMap;
+import fr.ifremer.tutti.persistence.entities.TuttiEntities;
+import fr.ifremer.tutti.persistence.entities.data.AttachementObjectTypeEnum;
+import fr.ifremer.tutti.persistence.entities.referential.Caracteristic;
+import org.hibernate.type.IntegerType;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+import java.io.Serializable;
+import java.util.Iterator;
+import java.util.Set;
+
+/**
+ * Helper around {@link Sample}.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 1.6
+ */
+@Component("samplePersistenceHelper")
+public class SamplePersistenceHelper extends AbstractPersistenceService {
+
+ @Autowired
+ protected ReferentialPersistenceService referentialService;
+
+ @Autowired
+ protected MeasurementPersistenceHelper measurementPersistenceHelper;
+
+ @Autowired
+ protected AttachmentPersistenceService attachmentPersistenceService;
+
+ @Resource(name = "sampleDao")
+ protected SampleDao sampleDao;
+
+ public Sample create(Sample sample) {
+ return sampleDao.create(sample);
+ }
+
+ public void update(Sample sample) {
+ sampleDao.update(sample);
+ }
+
+ public Sample load(Integer id) {
+ return sampleDao.load(id);
+ }
+
+ public void deleteSample(Integer sampleId) {
+
+ Sample sample = sampleDao.load(sampleId);
+ if (sample != null) {
+ sample.getSampleMeasurements().clear();
+ sampleDao.remove(sample);
+ attachmentPersistenceService.deleteAllAttachment(
+ AttachementObjectTypeEnum.SAMPLE,
+ sampleId);
+ }
+ }
+
+ public void setSampleMeasurements(Sample target,
+ CaracteristicMap caracteristics) {
+
+ Set<SampleMeasurement> notChangedSampleMeasurements = Sets.newHashSet();
+ if (target.getSampleMeasurements() != null) {
+ notChangedSampleMeasurements.addAll(target.getSampleMeasurements());
+ }
+
+ for (Caracteristic caracteristic : caracteristics.keySet()) {
+ SampleMeasurement vum = setSampleMeasurement(
+ target,
+ caracteristic,
+ caracteristics.get(caracteristic));
+ notChangedSampleMeasurements.remove(vum);
+ }
+
+ if (target.getSampleMeasurements() != null &&
+ notChangedSampleMeasurements.size() > 0) {
+ target.getSampleMeasurements().removeAll(notChangedSampleMeasurements);
+ }
+ }
+
+ public void fillSampleMeasurements(CaracteristicMap result,
+ Integer sampleId) {
+ Iterator<Object[]> list = queryList(
+ "sampleMeasurements",
+ "sampleId", IntegerType.INSTANCE, sampleId);
+ while (list.hasNext()) {
+ int colIndex = 0;
+ Object[] source = list.next();
+ Integer pmfmId = (Integer) source[colIndex++];
+ Float numericalValue = (Float) source[colIndex++];
+ String alphanumericalValue = (String) source[colIndex++];
+ Integer qualitativeValueId = (Integer) source[colIndex];
+
+ Caracteristic caracteristic = referentialService.getCaracteristic(pmfmId);
+ Serializable value = null;
+ switch (caracteristic.getCaracteristicType()) {
+
+ case NUMBER:
+ value = numericalValue;
+ break;
+ case QUALITATIVE:
+ value = TuttiEntities.getQualitativeValue(caracteristic,
+ qualitativeValueId);
+ break;
+ case TEXT:
+ value = alphanumericalValue;
+ break;
+ }
+ result.put(caracteristic, value);
+ }
+ }
+
+ protected SampleMeasurement setSampleMeasurement(Sample sample,
+ Caracteristic caracteristic,
+ Serializable value) {
+
+ Integer pmfmId = caracteristic.getIdAsInt();
+
+ SampleMeasurement result = null;
+ if (sample.getSampleMeasurements() != null) {
+ for (SampleMeasurement vum : sample.getSampleMeasurements()) {
+ if (pmfmId.equals(vum.getPmfm().getId())) {
+ result = vum;
+ break;
+ }
+ }
+ }
+ if (result == null) {
+
+ result = SampleMeasurement.Factory.newInstance();
+
+ result.setSample(sample);
+ if (sample.getSampleMeasurements() == null) {
+ sample.setSampleMeasurements(Sets.newHashSet(result));
+ } else {
+ sample.getSampleMeasurements().add(result);
+ }
+ result.setQualityFlag(load(QualityFlagImpl.class, enumeration.QUALITY_FLAG_CODE_NOT_QUALIFIED));
+ result.setDepartment(sample.getRecorderDepartment());
+ result.setPmfm(load(PmfmImpl.class, pmfmId));
+ }
+ measurementPersistenceHelper.setMeasurement(result, caracteristic, value);
+ return result;
+ }
+
+}
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/SpeciesBatchPersistenceServiceImpl.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/SpeciesBatchPersistenceServiceImpl.java 2013-05-07 13:00:45 UTC (rev 924)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/SpeciesBatchPersistenceServiceImpl.java 2013-05-07 13:07:36 UTC (rev 925)
@@ -38,7 +38,6 @@
import fr.ifremer.adagio.core.dao.referential.taxon.ReferenceTaxonImpl;
import fr.ifremer.tutti.persistence.entities.TuttiBeanFactory;
import fr.ifremer.tutti.persistence.entities.TuttiEntities;
-import fr.ifremer.tutti.persistence.entities.data.AttachementObjectTypeEnum;
import fr.ifremer.tutti.persistence.entities.data.BatchContainer;
import fr.ifremer.tutti.persistence.entities.data.SampleCategoryEnum;
import fr.ifremer.tutti.persistence.entities.data.SpeciesBatch;
@@ -75,9 +74,6 @@
LogFactory.getLog(SpeciesBatchPersistenceServiceImpl.class);
@Autowired
- protected AttachmentPersistenceService attachmentPersistenceService;
-
- @Autowired
protected ReferentialPersistenceService referentialService;
@Resource(name = "batchPersistenceHelper")
@@ -202,10 +198,6 @@
Integer batchId = Integer.valueOf(id);
batchHelper.removeWithChildren(batchId);
-
- attachmentPersistenceService.deleteAllAttachment(
- AttachementObjectTypeEnum.BATCH,
- batchId);
}
@Override
@@ -232,11 +224,6 @@
log.info("Delete child [" + childBatchId + "] of species batch: " + id);
}
batchHelper.removeWithChildren(childBatchId);
-
- // delete his attachment (if any)
- attachmentPersistenceService.deleteAllAttachment(
- AttachementObjectTypeEnum.BATCH,
- childBatchId);
}
}
}
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/batch/BatchPersistenceHelper.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/batch/BatchPersistenceHelper.java 2013-05-07 13:00:45 UTC (rev 924)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/batch/BatchPersistenceHelper.java 2013-05-07 13:07:36 UTC (rev 925)
@@ -132,11 +132,9 @@
getCurrentSession().flush();
- for (Integer id : ids) {
- attachmentPersistenceService.deleteAllAttachment(
- AttachementObjectTypeEnum.BATCH,
- id);
- }
+ attachmentPersistenceService.deleteAllAttachment(
+ AttachementObjectTypeEnum.BATCH,
+ ids.toArray(new Integer[ids.size()]));
}
public <D extends TuttiEntity> D createSortingBatch(D bean, CatchBatch catchBatch, SortingBatch batch) {
@@ -146,11 +144,23 @@
}
public void removeWithChildren(Integer batchId) {
+ List<Integer> ids = catchBatchDao.getAllChildrenIds(batchId);
+ ids.add(batchId);
catchBatchDao.removeWithChildren(batchId);
+
+ attachmentPersistenceService.deleteAllAttachment(
+ AttachementObjectTypeEnum.BATCH,
+ ids.toArray(new Integer[ids.size()]));
}
public void removeWithChildren(Integer batchId, CatchBatch parentCatchBatch) {
+ List<Integer> ids = catchBatchDao.getAllChildrenIds(batchId);
+ ids.add(batchId);
catchBatchDao.removeWithChildren(batchId, parentCatchBatch);
+
+ attachmentPersistenceService.deleteAllAttachment(
+ AttachementObjectTypeEnum.BATCH,
+ ids.toArray(new Integer[ids.size()]));
}
public void updateSortingBatch(List<SortingBatch> sortingBatchs, CatchBatch parentCatchBatch) {
1
0
r924 - in trunk/tutti-ui-swing/src/main: java/fr/ifremer/tutti/ui/swing/content/home java/fr/ifremer/tutti/ui/swing/content/operation java/fr/ifremer/tutti/ui/swing/util resources/i18n
by tchemit@users.forge.codelutin.com 07 May '13
by tchemit@users.forge.codelutin.com 07 May '13
07 May '13
Author: tchemit
Date: 2013-05-07 15:00:45 +0200 (Tue, 07 May 2013)
New Revision: 924
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/924
Log:
fixes #1975: [TRAIT] - Pouvoir supprimer un trait + improve delete messages
Modified:
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/DeleteProtocolAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/EditCatchesAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/DeleteFishingOperationAction.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/util/AbstractTuttiUIHandler.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/content/home/DeleteProtocolAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/DeleteProtocolAction.java 2013-05-07 09:16:46 UTC (rev 923)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/DeleteProtocolAction.java 2013-05-07 13:00:45 UTC (rev 924)
@@ -31,7 +31,6 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import javax.swing.JOptionPane;
import java.util.List;
import static org.nuiton.i18n.I18n._;
@@ -56,14 +55,13 @@
boolean result = super.prepareAction();
TuttiProtocol protocol = getHandler().getModel().getProtocol();
- int answer = JOptionPane.showConfirmDialog(
- getHandler().getUI(),
- _("tutti.selectCruise.action.deleteProtocol.message", protocol.getName()),
- _("tutti.selectCruise.action.deleteProtocol.title"),
- JOptionPane.OK_CANCEL_OPTION
- );
- result &= answer == JOptionPane.OK_OPTION;
+ result &=
+ getHandler().askBeforeDelete(
+ _("tutti.selectCruise.action.deleteProtocol.title"),
+ _("tutti.selectCruise.action.deleteProtocol.message", protocol.getName())
+ );
+
return result;
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/EditCatchesAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/EditCatchesAction.java 2013-05-07 09:16:46 UTC (rev 923)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/EditCatchesAction.java 2013-05-07 13:00:45 UTC (rev 924)
@@ -27,7 +27,6 @@
import com.google.common.base.Preconditions;
import fr.ifremer.tutti.service.ValidationService;
import fr.ifremer.tutti.ui.swing.TuttiScreen;
-import fr.ifremer.tutti.ui.swing.TuttiUIContext;
import fr.ifremer.tutti.ui.swing.content.AbstractChangeScreenAction;
import fr.ifremer.tutti.ui.swing.content.MainUIHandler;
import org.apache.commons.logging.Log;
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/DeleteFishingOperationAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/DeleteFishingOperationAction.java 2013-05-07 09:16:46 UTC (rev 923)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/DeleteFishingOperationAction.java 2013-05-07 13:00:45 UTC (rev 924)
@@ -3,7 +3,6 @@
import fr.ifremer.tutti.persistence.entities.TuttiEntities;
import fr.ifremer.tutti.persistence.entities.data.FishingOperation;
import fr.ifremer.tutti.ui.swing.util.action.AbstractTuttiAction;
-import fr.ifremer.tutti.ui.swing.util.action.TuttiActionHelper;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -19,35 +18,24 @@
/** Logger. */
private static final Log log =
- LogFactory.getLog(EditFishingOperationAction.class);
+ LogFactory.getLog(DeleteFishingOperationAction.class);
- /**
- * Delegate edit action.
- *
- * @since 1.0
- */
- protected EditFishingOperationAction editAction;
-
public DeleteFishingOperationAction(FishingOperationsUIHandler handler) {
super(handler, true);
- setActionDescription(_("tutti.editFishingOperation.action.editFishingOperation.tip"));
+ setActionDescription(
+ _("tutti.editFishingOperation.action.deleteFishingOperation.tip"));
}
- public EditFishingOperationAction getEditAction() {
- if (editAction == null) {
- editAction = TuttiActionHelper.createLogicAction(
- getHandler(),
- EditFishingOperationAction.class);
- }
- return editAction;
- }
-
@Override
- protected boolean prepareAction() {
-
+ protected boolean prepareAction() throws Exception {
+ boolean canContinue = super.prepareAction();
FishingOperation fishingOperation = getModel().getSelectedFishingOperation();
- boolean canContinue = fishingOperation != null &&
- !TuttiEntities.isNew(fishingOperation);
+ canContinue &= fishingOperation != null &&
+ !TuttiEntities.isNew(fishingOperation) &&
+ getHandler().askBeforeDelete(
+ _("tutti.editFishingOperation.action.deleteFishingOperation.title"),
+ _("tutti.editFishingOperation.action.deleteFishingOperation.message", decorate(fishingOperation))
+ );
return canContinue;
}
@@ -58,17 +46,27 @@
getModel().getSelectedFishingOperation();
if (log.isInfoEnabled()) {
- log.info("Try to delete fishingOperation: " + fishingOperation);
+ log.info("Will delete fishingOperation: " + fishingOperation);
}
getContext().getPersistenceService().deleteFishingOperation(fishingOperation.getId());
-
}
@Override
public void postSuccessAction() {
super.postSuccessAction();
- getEditAction().setFishingOperation(null);
- runAction(getEditAction());
+
+ FishingOperationsUIModel model = getModel();
+
+ FishingOperation fishingOperation =
+ model.getSelectedFishingOperation();
+
+ // unselect removed fishing operation
+ model.setSelectedFishingOperation(null);
+
+ // remove it from selection model
+ model.removeFishingOperation(fishingOperation);
+
+ sendMessage(_("tutti.editFishingOperation.message.operation.deleted", decorate(fishingOperation)));
}
}
\ No newline at end of file
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-05-07 09:16:46 UTC (rev 923)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationAction.java 2013-05-07 13:00:45 UTC (rev 924)
@@ -166,7 +166,6 @@
fishingOperation = null;
checkPreviousEdit = true;
super.releaseAction();
-// getComputeWeightsAction().actionPerformed(event);
}
protected SaveFishingOperationAction getSaveFishingOperationAction() {
@@ -547,7 +546,7 @@
// batch is not compatible with Tutti
if (log.isDebugEnabled()) {
- log.debug("Invalid batch model");
+ log.debug("Invalid batch model", e);
}
batch = null;
attachments = Collections.emptyList();
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiUIHandler.java 2013-05-07 09:16:46 UTC (rev 923)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiUIHandler.java 2013-05-07 13:00:45 UTC (rev 924)
@@ -324,6 +324,22 @@
return result;
}
+ public boolean askBeforeDelete(String title, String message) {
+ String htmlMessage = String.format(
+ CONFIRMATION_FORMAT,
+ message,
+ _("tutti.common.askBeforeDelete.help"));
+ int i = JOptionPane.showConfirmDialog(
+ getTopestUI(),
+ htmlMessage,
+ title,
+ JOptionPane.OK_CANCEL_OPTION,
+ JOptionPane.QUESTION_MESSAGE);
+
+ boolean result = i == JOptionPane.OK_OPTION;
+ return result;
+ }
+
public boolean askOverwriteFile(File file) {
boolean result;
if (file.exists()) {
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-05-07 09:16:46 UTC (rev 923)
+++ trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties 2013-05-07 13:00:45 UTC (rev 924)
@@ -66,6 +66,8 @@
tutti.commentEditor.action.tip=
tutti.commentEditor.none.tip=
tutti.commentEditor.title=
+tutti.common.askBeforeDelete.help=
+tutti.common.askBeforeDelete.title=
tutti.common.askCancelEditBeforeLeaving.help=
tutti.common.askCancelEditBeforeLeaving.title=
tutti.common.askOverwriteFile.help=
@@ -81,6 +83,8 @@
tutti.common.file.pdf=
tutti.common.file.protocol=
tutti.common.file.zip=
+tutti.common.selected.fishingOperation=
+tutti.common.selected.protocol=
tutti.common.validate=
tutti.common.validate.mnemonic=
tutti.config.action.reload.actions=
@@ -496,6 +500,9 @@
tutti.editFishingOperation.action.cancelEditFishingOperation=
tutti.editFishingOperation.action.cancelEditFishingOperation.mnemonic=
tutti.editFishingOperation.action.cancelEditFishingOperation.tip=
+tutti.editFishingOperation.action.deleteFishingOperation.message=
+tutti.editFishingOperation.action.deleteFishingOperation.tip=
+tutti.editFishingOperation.action.deleteFishingOperation.title=
tutti.editFishingOperation.action.editFishingOperation.tip=
tutti.editFishingOperation.action.importCasino=
tutti.editFishingOperation.action.importCasino.mnemonic=
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-05-07 09:16:46 UTC (rev 923)
+++ trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2013-05-07 13:00:45 UTC (rev 924)
@@ -63,6 +63,8 @@
tutti.commentEditor.action.tip=Commentaire
tutti.commentEditor.none.tip=Pas de commentaire
tutti.commentEditor.title=Commentaire
+tutti.common.askBeforeDelete.help=Que voulez-vous faire ?<ul><li><strong>Annuler</strong> pour ne pas supprimer</li><li><strong>OK</strong> pour supprimer l'objet en question</li></ul>
+tutti.common.askBeforeDelete.title=Suppression de %s
tutti.common.askCancelEditBeforeLeaving.help=Que voulez-vous faire ?<ul><li><strong>Annuler</strong> pour rester sur cet écran</li><li><strong>OK</strong> pour quitter l'écran en abandonnant les modifications</li></ul>
tutti.common.askCancelEditBeforeLeaving.title=Modifications non enregistrées mais invalides
tutti.common.askOverwriteFile.help=Que voulez-vous faire ?<ul><li><strong>Annuler</strong> pour ne pas écraser le fichier et annuler l'opération</li><li><strong>Oui</strong> pour écraser le fichier et continuer l'opération</li></ul>
@@ -77,6 +79,8 @@
tutti.common.file.pdf=Extension d'un fichier pdf
tutti.common.file.protocol=Extension d'un fichier de protocole Tutti
tutti.common.file.zip=Extension d'une archive zip
+tutti.common.selected.fishingOperation=l'opération de pêche sélectionnée
+tutti.common.selected.protocol=le protocole sélectionné
tutti.common.validate=Valider
tutti.common.validate.mnemonic=V
tutti.config.action.reload.actions=Recharger les actions
@@ -480,6 +484,10 @@
tutti.editFishingOperation.action.cancelEditFishingOperation=Annuler
tutti.editFishingOperation.action.cancelEditFishingOperation.mnemonic=A
tutti.editFishingOperation.action.cancelEditFishingOperation.tip=Annuler la création du trait
+tutti.editFishingOperation.action.deleteFishingOperation.message=Vous êtes sur le point de supprimer l'opération de pêche <strong>%s</strong>
+tutti.editFishingOperation.action.deleteFishingOperation.tip=Supprimer l'opération de pêche sélectionnée
+tutti.editFishingOperation.action.deleteFishingOperation.title=Supprimer l'opération de pêche sélectionnée
+tutti.editFishingOperation.message.operation.deleted=Opération de pêche <strong>%s</strong> supprimée.
tutti.editFishingOperation.action.editFishingOperation.tip=Éditer l'opération de pêche
tutti.editFishingOperation.action.importCasino=Import Casino
tutti.editFishingOperation.action.importCasino.mnemonic=I
@@ -1039,7 +1047,7 @@
tutti.selectCruise.action.cloneProtocol=Cloner
tutti.selectCruise.action.cloneProtocol.tip=Dupliquer le protocole sélectionné
tutti.selectCruise.action.deleteProtocol=Supprimer
-tutti.selectCruise.action.deleteProtocol.message=Vous êtes sur le point de supprimer le protocole %s
+tutti.selectCruise.action.deleteProtocol.message=Vous êtes sur le point de supprimer le protocole <strong>%s</strong>
tutti.selectCruise.action.deleteProtocol.tip=Supprimer le protocole sélectionné
tutti.selectCruise.action.deleteProtocol.title=Supprimer le protocole sélectionné
tutti.selectCruise.action.editCatches=Saisir les captures
1
0