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
r807 - in trunk/tutti-ui-swing/src/main: filtered-resources java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create resources/i18n
by kmorin@users.forge.codelutin.com 16 Apr '13
by kmorin@users.forge.codelutin.com 16 Apr '13
16 Apr '13
Author: kmorin
Date: 2013-04-16 17:41:25 +0200 (Tue, 16 Apr 2013)
New Revision: 807
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/807
Log:
fixes #2308 [OBSERVATIONS INDIVIDUELLES] auto compl?\195?\169tion du champ classe de taille
Added:
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/SelectSpeciesForIndividualObservationBatchAction.java
Modified:
trunk/tutti-ui-swing/src/main/filtered-resources/tutti-help-en.properties
trunk/tutti-ui-swing/src/main/filtered-resources/tutti-help-fr.properties
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUIModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/CreateIndividualObservationBatchUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/CreateIndividualObservationBatchUI.jaxx
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/CreateIndividualObservationBatchUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/CreateIndividualObservationBatchUIModel.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/filtered-resources/tutti-help-en.properties
===================================================================
--- trunk/tutti-ui-swing/src/main/filtered-resources/tutti-help-en.properties 2013-04-16 15:37:31 UTC (rev 806)
+++ trunk/tutti-ui-swing/src/main/filtered-resources/tutti-help-en.properties 2013-04-16 15:41:25 UTC (rev 807)
@@ -1,28 +1,5 @@
-###
-# #%L
-# Tutti :: UI
-# $Id$
-# $HeadURL$
-# %%
-# Copyright (C) 2012 - 2013 Ifremer
-# %%
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as
-# published by the Free Software Foundation, either version 3 of the
-# License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public
-# License along with this program. If not, see
-# <http://www.gnu.org/licenses/gpl-3.0.html>.
-# #L%
-###
#Generated by org.nuiton.jaxx.plugin.GenerateHelpIdsMojo
-#Fri Apr 12 10:46:52 CEST 2013
+#Tue Apr 16 17:33:03 CEST 2013
tutti.createAccidentalBatch.action.cancel.help=
tutti.createAccidentalBatch.action.save.help=
tutti.createAccidentalBatch.field.accidentalDeadOrAlive.help=
@@ -38,6 +15,7 @@
tutti.createBenthosBatch.field.sortedUnsortedCategory.help=createBenthosBatch.html\#fields
tutti.createBenthosBatch.field.species.help=createBenthosBatch.html\#fields
tutti.createBenthosBatch.help=createBenthosBatch.html
+tutti.createIndividualObservationBatch.action.addSpecies.help=
tutti.createIndividualObservationBatch.action.cancel.help=
tutti.createIndividualObservationBatch.action.save.help=
tutti.createIndividualObservationBatch.field.individualObservationLengthStepCaracteristic.help=
Modified: trunk/tutti-ui-swing/src/main/filtered-resources/tutti-help-fr.properties
===================================================================
--- trunk/tutti-ui-swing/src/main/filtered-resources/tutti-help-fr.properties 2013-04-16 15:37:31 UTC (rev 806)
+++ trunk/tutti-ui-swing/src/main/filtered-resources/tutti-help-fr.properties 2013-04-16 15:41:25 UTC (rev 807)
@@ -1,28 +1,5 @@
-###
-# #%L
-# Tutti :: UI
-# $Id$
-# $HeadURL$
-# %%
-# Copyright (C) 2012 - 2013 Ifremer
-# %%
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as
-# published by the Free Software Foundation, either version 3 of the
-# License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public
-# License along with this program. If not, see
-# <http://www.gnu.org/licenses/gpl-3.0.html>.
-# #L%
-###
#Generated by org.nuiton.jaxx.plugin.GenerateHelpIdsMojo
-#Fri Apr 12 10:46:52 CEST 2013
+#Tue Apr 16 17:33:03 CEST 2013
tutti.createAccidentalBatch.action.cancel.help=
tutti.createAccidentalBatch.action.save.help=
tutti.createAccidentalBatch.field.accidentalDeadOrAlive.help=
@@ -38,6 +15,7 @@
tutti.createBenthosBatch.field.sortedUnsortedCategory.help=createBenthosBatch.html\#fields
tutti.createBenthosBatch.field.species.help=createBenthosBatch.html\#fields
tutti.createBenthosBatch.help=createBenthosBatch.html
+tutti.createIndividualObservationBatch.action.addSpecies.help=
tutti.createIndividualObservationBatch.action.cancel.help=
tutti.createIndividualObservationBatch.action.save.help=
tutti.createIndividualObservationBatch.field.individualObservationLengthStepCaracteristic.help=
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUIHandler.java 2013-04-16 15:37:31 UTC (rev 806)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUIHandler.java 2013-04-16 15:41:25 UTC (rev 807)
@@ -400,7 +400,7 @@
EditCatchesUI parent = SwingUtil.getParentContainer(ui, EditCatchesUI.class);
CreateIndividualObservationBatchUI createBatchEditor = parent.getIndividualObservationTabCreateBatch();
- createBatchEditor.getHandler().openUI();
+ createBatchEditor.getHandler().openUI(getModel());
parent.getHandler().setIndividualObservationSelectedCard(EditCatchesUIHandler.CREATE_BATCH_CARD);
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUIModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUIModel.java 2013-04-16 15:37:31 UTC (rev 806)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUIModel.java 2013-04-16 15:41:25 UTC (rev 807)
@@ -25,6 +25,7 @@
import com.google.common.collect.Lists;
import fr.ifremer.tutti.persistence.entities.data.AttachementObjectTypeEnum;
import fr.ifremer.tutti.persistence.entities.data.Attachment;
+import fr.ifremer.tutti.persistence.entities.referential.Species;
import fr.ifremer.tutti.ui.swing.content.operation.AbstractTuttiBatchUIModel;
import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUIModel;
import fr.ifremer.tutti.ui.swing.util.TabContentModel;
@@ -76,6 +77,14 @@
return rootBatchId;
}
+ public Species getLastSpeciesUsed() {
+ Species result = null;
+ if (!rows.isEmpty()) {
+ result = rows.get(rows.size() - 1).getSpecies();
+ }
+ return result;
+ }
+
//------------------------------------------------------------------------//
//-- AttachmentModelAware --//
//------------------------------------------------------------------------//
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/CreateIndividualObservationBatchUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/CreateIndividualObservationBatchUI.css 2013-04-16 15:37:31 UTC (rev 806)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/CreateIndividualObservationBatchUI.css 2013-04-16 15:41:25 UTC (rev 807)
@@ -89,6 +89,14 @@
selectedItem: {model.getLengthStepCaracteristic()};
}
+#addSpeciesButton {
+ text: "tutti.createIndividualObservationBatch.action.addSpecies";
+ toolTipText: "tutti.createIndividualObservationBatch.action.addSpecies.tip";
+ i18nMnemonic: "tutti.createIndividualObservationBatch.action.addSpecies.mnemonic";
+ _tuttiAction: {SelectSpeciesForIndividualObservationBatchAction.class};
+ _help: {"tutti.createIndividualObservationBatch.action.addSpecies.help"};
+}
+
#saveButton {
actionIcon: save;
text: "tutti.createIndividualObservationBatch.action.save";
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/CreateIndividualObservationBatchUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/CreateIndividualObservationBatchUI.jaxx 2013-04-16 15:37:31 UTC (rev 806)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/CreateIndividualObservationBatchUI.jaxx 2013-04-16 15:41:25 UTC (rev 807)
@@ -83,6 +83,9 @@
constructorParams='this'
genericType='Species'/>
</cell>
+ <cell>
+ <JButton id='addSpeciesButton'/>
+ </cell>
</row>
<!-- IndividualObservation weight -->
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/CreateIndividualObservationBatchUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/CreateIndividualObservationBatchUIHandler.java 2013-04-16 15:37:31 UTC (rev 806)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/CreateIndividualObservationBatchUIHandler.java 2013-04-16 15:41:25 UTC (rev 807)
@@ -22,9 +22,20 @@
* #L%
*/
+import com.google.common.base.Preconditions;
+import com.google.common.collect.Lists;
+import com.google.common.collect.Maps;
+import com.google.common.collect.Multimap;
+import fr.ifremer.tutti.persistence.entities.TuttiEntities;
+import fr.ifremer.tutti.persistence.entities.data.IndividualObservationBatch;
+import fr.ifremer.tutti.persistence.entities.protocol.SpeciesProtocol;
+import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol;
+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.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.individualobservation.IndividualObservationBatchUIModel;
import fr.ifremer.tutti.ui.swing.util.AbstractTuttiUIHandler;
import fr.ifremer.tutti.ui.swing.util.Cancelable;
import fr.ifremer.tutti.ui.swing.util.TuttiUI;
@@ -37,7 +48,10 @@
import javax.swing.JComponent;
import java.awt.Dimension;
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
import java.util.List;
+import java.util.Map;
/**
* @author kmorin <kmorin(a)codelutin.com>
@@ -71,13 +85,45 @@
initUI(ui);
initBeanFilterableComboBox(ui.getIndividualObservationSpeciesComboBox(),
- getDataContext().getReferentSpecies(),
+ getDataContext().getReferentSpeciesWithSurveyCode(),
null);
+ List<Caracteristic> lengthStepCaracteristics = getDataContext().getLengthStepCaracteristics();
initBeanFilterableComboBox(ui.getIndividualObservationLengthStepCaracteristicComboBox(),
- getDataContext().getLengthStepCaracteristics(),
+ lengthStepCaracteristics,
null);
+ if (context.isProtocolFilled()) {
+
+ // get loaded protocol
+ TuttiProtocol protocol = getDataContext().getProtocol();
+ Preconditions.checkNotNull(protocol,
+ "Could not find protocol in ui context");
+
+ final Map<Integer, SpeciesProtocol> speciesProtocolMap = Maps.newHashMap();
+ for (SpeciesProtocol sp : protocol.getSpecies()) {
+ speciesProtocolMap.put(sp.getSpeciesReferenceTaxonId(), sp);
+ }
+
+ final Map<String, Caracteristic> lengthStepCaracteristicMap = TuttiEntities.splitById(lengthStepCaracteristics);
+
+ getModel().addPropertyChangeListener(IndividualObservationBatch.PROPERTY_SPECIES,
+ new PropertyChangeListener() {
+ @Override
+ public void propertyChange(PropertyChangeEvent evt) {
+ Species species = (Species) evt.getNewValue();
+ if (species != null) {
+ SpeciesProtocol speciesProtocol = speciesProtocolMap.get(species.getReferenceTaxonId());
+ if (speciesProtocol != null) {
+ String lengthStepPmfmId = speciesProtocol.getLengthStepPmfmId();
+ Caracteristic lengthStepCaracteristic = lengthStepCaracteristicMap.get(lengthStepPmfmId);
+ getModel().setLengthStepCaracteristic(lengthStepCaracteristic);
+ }
+ }
+ }
+ });
+ }
+
listenValidatorValid(ui.getValidator(), getModel());
}
@@ -124,7 +170,7 @@
//-- Public methods --//
//------------------------------------------------------------------------//
- public void openUI() {
+ public void openUI(IndividualObservationBatchUIModel batchModel) {
CreateIndividualObservationBatchUIModel model = getModel();
@@ -133,6 +179,9 @@
model.reset();
+ model.setSpecies(batchModel.getLastSpeciesUsed());
+
+ model.setAvailableSpecies(getDataContext().getReferentSpeciesWithSurveyCode());
}
public void save() {
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/CreateIndividualObservationBatchUIModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/CreateIndividualObservationBatchUIModel.java 2013-04-16 15:37:31 UTC (rev 806)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/CreateIndividualObservationBatchUIModel.java 2013-04-16 15:41:25 UTC (rev 807)
@@ -22,22 +22,38 @@
* #L%
*/
+import com.google.common.collect.Multimap;
import fr.ifremer.tutti.persistence.entities.TuttiBeanFactory;
import fr.ifremer.tutti.persistence.entities.data.IndividualObservationBatch;
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.ui.swing.util.AbstractTuttiBeanUIModel;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import java.util.List;
+
/**
* @author kmorin <kmorin(a)codelutin.com>
* @since 1.4
*/
public class CreateIndividualObservationBatchUIModel extends AbstractTuttiBeanUIModel<CreateIndividualObservationBatchUIModel, CreateIndividualObservationBatchUIModel> {
-
private static final long serialVersionUID = 1L;
+ private static final Log log = LogFactory.getLog(CreateIndividualObservationBatchUIModel.class);
+
+ public static final String PROPERTY_AVAILABLE_SPECIES = "availableSpecies";
+
/**
+ * All available species (sets by protocol).
+ *
+ * @since 2.0
+ */
+ protected List<Species> availableSpecies;
+
+ /**
* Delegate edit object.
*
* @since 1.3
@@ -89,6 +105,23 @@
firePropertyChange(IndividualObservationBatch.PROPERTY_LENGTH_STEP_CARACTERISTIC, oldValue, individualObservationLengthStepCaracteristic);
}
+ public List<Species> getAvailableSpecies() {
+ if (log.isDebugEnabled()) {
+ log.debug("getAvailableSpecies " + availableSpecies);
+ }
+ return availableSpecies;
+ }
+
+ public void setAvailableSpecies(List<Species> availableSpecies) {
+
+ if (log.isDebugEnabled()) {
+ log.debug("setAvailableSpecies " + availableSpecies);
+ }
+ Object oldValue = getAvailableSpecies();
+ this.availableSpecies = availableSpecies;
+ firePropertyChange(PROPERTY_AVAILABLE_SPECIES, oldValue, availableSpecies);
+ }
+
@Override
protected CreateIndividualObservationBatchUIModel newEntity() {
return new CreateIndividualObservationBatchUIModel();
Copied: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/SelectSpeciesForIndividualObservationBatchAction.java (from rev 804, trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/create/SelectSpeciesForSpeciesBatchAction.java)
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/SelectSpeciesForIndividualObservationBatchAction.java (rev 0)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/SelectSpeciesForIndividualObservationBatchAction.java 2013-04-16 15:41:25 UTC (rev 807)
@@ -0,0 +1,103 @@
+package fr.ifremer.tutti.ui.swing.content.operation.catches.individualobservation.create;
+
+/*
+ * #%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 com.google.common.collect.Lists;
+import fr.ifremer.tutti.persistence.entities.TuttiEntities;
+import fr.ifremer.tutti.persistence.entities.referential.Species;
+import fr.ifremer.tutti.service.DecoratorService;
+import fr.ifremer.tutti.ui.swing.util.action.AbstractTuttiAction;
+
+import java.util.List;
+import java.util.Map;
+
+import static org.nuiton.i18n.I18n._;
+
+/**
+ * Enable to select a species to the species selected in the protocol.
+ *
+ * @author kmorin <kmorin(a)codelutin.com>
+ * @since 2.0
+ */
+public class SelectSpeciesForIndividualObservationBatchAction extends AbstractTuttiAction<CreateIndividualObservationBatchUIModel,
+ CreateIndividualObservationBatchUI,
+ CreateIndividualObservationBatchUIHandler> {
+
+ protected List<Species> allSpecies;
+
+ protected List<Species> referentSpecies;
+
+ protected Species selectedSpecies;
+
+ public SelectSpeciesForIndividualObservationBatchAction(CreateIndividualObservationBatchUIHandler handler) {
+ super(handler, false);
+
+ allSpecies = getDataContext().getSpecies();
+ referentSpecies = getDataContext().getReferentSpecies();
+ }
+
+ @Override
+ protected boolean prepareAction() throws Exception {
+ boolean canContinue = super.prepareAction();
+ if (canContinue) {
+
+ CreateIndividualObservationBatchUIModel model = getModel();
+
+ List<Species> species = Lists.newArrayList(allSpecies);
+ species.removeAll(model.getAvailableSpecies());
+
+ selectedSpecies = getHandler().openAddSpeciesDialog(
+ _("tutti.selectSpecies.title"), species);
+ canContinue = selectedSpecies != null;
+ }
+ return canContinue;
+ }
+
+ @Override
+ protected void doAction() throws Exception {
+
+ CreateIndividualObservationBatchUIModel model = getModel();
+
+ List<Species> availableSpecies = Lists.newArrayList(model.getAvailableSpecies());
+
+ if (!selectedSpecies.isReferenceTaxon()) {
+ String decoratedSynonym = decorate(selectedSpecies, DecoratorService.FROM_PROTOCOL);
+ List<Species> referents = referentSpecies;
+ Map<String, Species> referentsById = TuttiEntities.splitByTaxonId(referents);
+ String taxonId = String.valueOf(selectedSpecies.getReferenceTaxonId());
+ selectedSpecies = referentsById.get(taxonId);
+ String decoratedReferent = decorate(selectedSpecies, DecoratorService.FROM_PROTOCOL);
+ sendMessage(_("tutti.flash.info.species.replaced", decoratedSynonym, decoratedReferent));
+ }
+
+ if (!availableSpecies.contains(selectedSpecies)) {
+ availableSpecies.add(selectedSpecies);
+ }
+ model.setAvailableSpecies(availableSpecies);
+ model.setSpecies(selectedSpecies);
+
+ }
+
+}
Modified: trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties
===================================================================
--- trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties 2013-04-16 15:37:31 UTC (rev 806)
+++ trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties 2013-04-16 15:41:25 UTC (rev 807)
@@ -140,6 +140,9 @@
tutti.createBenthosBatch.title=
tutti.createBenthosMelag.error.message=
tutti.createBenthosMelag.error.title=
+tutti.createIndividualObservationBatch.action.addSpecies=
+tutti.createIndividualObservationBatch.action.addSpecies.mnemonic=
+tutti.createIndividualObservationBatch.action.addSpecies.tip=
tutti.createIndividualObservationBatch.action.cancel=
tutti.createIndividualObservationBatch.action.cancel.mnemonic=
tutti.createIndividualObservationBatch.action.cancel.tip=
Modified: trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties
===================================================================
--- trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2013-04-16 15:37:31 UTC (rev 806)
+++ trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2013-04-16 15:41:25 UTC (rev 807)
@@ -141,6 +141,9 @@
tutti.createBenthosMelag.error.title=Erreur
tutti.createBenthosMelag.message=Combien pesait le MELAG (kg) ?
tutti.createBenthosMelag.title=Poids du MELAG (kg)
+tutti.createIndividualObservationBatch.action.addSpecies=...
+tutti.createIndividualObservationBatch.action.addSpecies.mnemonic=.
+tutti.createIndividualObservationBatch.action.addSpecies.tip=Sélectionner une autre espèce
tutti.createIndividualObservationBatch.action.cancel=Annuler
tutti.createIndividualObservationBatch.action.cancel.mnemonic=A
tutti.createIndividualObservationBatch.action.cancel.tip=Annuler la création de l'observation individuelle
1
0
r806 - trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/synchro
by tchemit@users.forge.codelutin.com 16 Apr '13
by tchemit@users.forge.codelutin.com 16 Apr '13
16 Apr '13
Author: tchemit
Date: 2013-04-16 17:37:31 +0200 (Tue, 16 Apr 2013)
New Revision: 806
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/806
Log:
fix test
Modified:
trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/synchro/ReferentialSynchronizeHelperTest.java
Modified: trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/synchro/ReferentialSynchronizeHelperTest.java
===================================================================
--- trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/synchro/ReferentialSynchronizeHelperTest.java 2013-04-16 14:43:22 UTC (rev 805)
+++ trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/synchro/ReferentialSynchronizeHelperTest.java 2013-04-16 15:37:31 UTC (rev 806)
@@ -190,10 +190,10 @@
getLastUpdateDate(TuttiTable.GEAR, internalDb, getSqlDate(2012, 12, 18));
getLastUpdateDate(TuttiTable.LOCATION_CLASSIFICATION, internalDb, getSqlDate(2010, 10, 26));
getLastUpdateDate(TuttiTable.LOCATION_LEVEL, internalDb, getSqlDate(2013, 1, 28));
- getLastUpdateDate(TuttiTable.LOCATION, internalDb, getSqlDate(2013, 3, 29));
+ getLastUpdateDate(TuttiTable.LOCATION, internalDb, getSqlDate(2013, 3, 28));
getLastUpdateDate(TuttiTable.TAXONOMIC_LEVEL, internalDb, getSqlDate(2013, 2, 21));
getLastUpdateDate(TuttiTable.REFERENCE_TAXON, internalDb, getSqlDate(2013, 3, 26));
- getLastUpdateDate(TuttiTable.TAXON_NAME, internalDb, getSqlDate(2013, 3, 29));
+ getLastUpdateDate(TuttiTable.TAXON_NAME, internalDb, getSqlDate(2013, 3, 28));
getLastUpdateDate(TuttiTable.TAXON_GROUP_TYPE, internalDb, getSqlDate(2012, 5, 24));
getLastUpdateDate(TuttiTable.TAXON_GROUP, internalDb, getSqlDate(2013, 2, 20));
getLastUpdateDate(TuttiTable.ROUND_WEIGHT_CONVERSION, internalDb, getSqlDate(2013, 3, 28));
1
0
See <http://ci.nuiton.org/jenkins/job/tutti/648/changes>
Changes:
[Kevin Morin] fixes #2303 [CAPTURE ACCIDENTELLE] création lot, ne remonte pas la valeur du sexe et de "mort/vivant" dans le tableau
[Kevin Morin] fixes #2316 [CAPTURES] - Observations individuelles - Erreur lors de la saisie du code de prélèvement pièce calcifiée
------------------------------------------
[...truncated 497 lines...]
2013-04-16 15:17:14,286 5115 [main] INFO fr.ifremer.tutti.service.TuttiServiceContext - Close service fr.ifremer.tutti.service.ValidationService@162cd9f9
2013-04-16 15:17:14,286 5115 [main] INFO fr.ifremer.tutti.service.TuttiServiceContext - Close service fr.ifremer.tutti.service.PersistenceService@2ee65e1d
2013-04-16 15:17:14,286 5115 [main] INFO fr.ifremer.tutti.service.PersistenceService - Close persistence Service
2013-04-16 15:17:14,286 5115 [main] INFO fr.ifremer.tutti.service.PersistenceService - Persistence driver *Mock persistence service implementation* closed.
2013-04-16 15:17:14,292 5121 [main] INFO fr.ifremer.tutti.service.TuttiServiceContext - New service fr.ifremer.tutti.service.DecoratorService@5a9a75ce
2013-04-16 15:17:14,298 5127 [main] INFO fr.ifremer.tutti.service.TuttiServiceContext - New service fr.ifremer.tutti.service.catches.TuttiWeightComputingService@52ac55da
2013-04-16 15:17:14,298 5127 [main] INFO fr.ifremer.tutti.service.TuttiServiceContext - New service fr.ifremer.tutti.service.PersistenceService@3038859d
2013-04-16 15:17:14,298 5127 [main] INFO fr.ifremer.tutti.service.PersistenceService - Open persistence service
2013-04-16 15:17:14,298 5127 [main] INFO fr.ifremer.tutti.service.PersistenceService - Persistence driver *Mock persistence service implementation* opened.
2013-04-16 15:17:14,299 5128 [main] INFO fr.ifremer.tutti.service.TuttiServiceContext - New service fr.ifremer.tutti.service.ValidationService@4ecc1f26
2013-04-16 15:17:14,312 5141 [main] INFO fr.ifremer.tutti.service.export.TuttiExportServiceTest - Parameter export:
Annee;Serie;Serie_Partielle;Id_Operation;NumOrdre_Station;Code_PMFM;Libelle_PMFm;Valeur
2013;ProgramName;CruiseSurveyPart;A0;100;0;CaracteristicIntegerParameterName - CaracteristicIntegerMatrixName - CaracteristicIntegerFractionName - CaracteristicIntegerMethodName;10.4;
2013;ProgramName;CruiseSurveyPart;A0;100;1;CaracteristicTextParameterName - CaracteristicTextMatrixName - CaracteristicTextFractionName - CaracteristicTextMethodName;Text2;
2013;ProgramName;CruiseSurveyPart;A0;100;2;CaracteristicQualitativeParameterName1 - CaracteristicQualitativeMatrixName1 - CaracteristicQualitativeFractionName1 - CaracteristicQualitativeMethodName1;CaracteristicQualitativeValueName2;
2013;ProgramName;CruiseSurveyPart;A0;100;3;CaracteristicQualitativeParameterName2 - CaracteristicQualitativeMatrixName2 - CaracteristicQualitativeFractionName2 - CaracteristicQualitativeMethodName2;CaracteristicQualitativeValueName1;
2013;ProgramName;CruiseSurveyPart;A0;100;10;CaracteristicVerticalOpeningParameterName - CaracteristicVerticalOpeningMatrixName - CaracteristicVerticalOpeningFractionName - CaracteristicVerticalOpeningMethodName;5;
2013;ProgramName;CruiseSurveyPart;A0;100;12;CaracteristicHorizontalOpeningDoorParameterName - CaracteristicHorizontalOpeningDoorMatrixName - CaracteristicHorizontalOpeningDoorFractionName - CaracteristicHorizontalOpeningDoorMethodName;-2;
2013;ProgramName;CruiseSurveyPart;A0;100;11;CaracteristicHorizontalOpeningWingParameterName - CaracteristicHorizontalOpeningWingMatrixName - CaracteristicHorizontalOpeningWingFractionName - CaracteristicHorizontalOpeningWingMethodName;-9;
2013;ProgramName;CruiseSurveyPart;A1;101;0;CaracteristicIntegerParameterName - CaracteristicIntegerMatrixName - CaracteristicIntegerFractionName - CaracteristicIntegerMethodName;10.4;
2013;ProgramName;CruiseSurveyPart;A1;101;1;CaracteristicTextParameterName - CaracteristicTextMatrixName - CaracteristicTextFractionName - CaracteristicTextMethodName;Text2;
2013;ProgramName;CruiseSurveyPart;A1;101;2;CaracteristicQualitativeParameterName1 - CaracteristicQualitativeMatrixName1 - CaracteristicQualitativeFractionName1 - CaracteristicQualitativeMethodName1;CaracteristicQualitativeValueName2;
2013;ProgramName;CruiseSurveyPart;A1;101;3;CaracteristicQualitativeParameterName2 - CaracteristicQualitativeMatrixName2 - CaracteristicQualitativeFractionName2 - CaracteristicQualitativeMethodName2;CaracteristicQualitativeValueName1;
2013;ProgramName;CruiseSurveyPart;A1;101;10;CaracteristicVerticalOpeningParameterName - CaracteristicVerticalOpeningMatrixName - CaracteristicVerticalOpeningFractionName - CaracteristicVerticalOpeningMethodName;5;
2013;ProgramName;CruiseSurveyPart;A1;101;12;CaracteristicHorizontalOpeningDoorParameterName - CaracteristicHorizontalOpeningDoorMatrixName - CaracteristicHorizontalOpeningDoorFractionName - CaracteristicHorizontalOpeningDoorMethodName;-2;
2013;ProgramName;CruiseSurveyPart;A1;101;11;CaracteristicHorizontalOpeningWingParameterName - CaracteristicHorizontalOpeningWingMatrixName - CaracteristicHorizontalOpeningWingFractionName - CaracteristicHorizontalOpeningWingMethodName;-9;
2013;ProgramName;CruiseSurveyPart;A2;102;0;CaracteristicIntegerParameterName - CaracteristicIntegerMatrixName - CaracteristicIntegerFractionName - CaracteristicIntegerMethodName;10.4;
2013;ProgramName;CruiseSurveyPart;A2;102;1;CaracteristicTextParameterName - CaracteristicTextMatrixName - CaracteristicTextFractionName - CaracteristicTextMethodName;Text2;
2013;ProgramName;CruiseSurveyPart;A2;102;2;CaracteristicQualitativeParameterName1 - CaracteristicQualitativeMatrixName1 - CaracteristicQualitativeFractionName1 - CaracteristicQualitativeMethodName1;CaracteristicQualitativeValueName2;
2013;ProgramName;CruiseSurveyPart;A2;102;3;CaracteristicQualitativeParameterName2 - CaracteristicQualitativeMatrixName2 - CaracteristicQualitativeFractionName2 - CaracteristicQualitativeMethodName2;CaracteristicQualitativeValueName1;
2013;ProgramName;CruiseSurveyPart;A2;102;10;CaracteristicVerticalOpeningParameterName - CaracteristicVerticalOpeningMatrixName - CaracteristicVerticalOpeningFractionName - CaracteristicVerticalOpeningMethodName;5;
2013;ProgramName;CruiseSurveyPart;A2;102;12;CaracteristicHorizontalOpeningDoorParameterName - CaracteristicHorizontalOpeningDoorMatrixName - CaracteristicHorizontalOpeningDoorFractionName - CaracteristicHorizontalOpeningDoorMethodName;-2;
2013;ProgramName;CruiseSurveyPart;A2;102;11;CaracteristicHorizontalOpeningWingParameterName - CaracteristicHorizontalOpeningWingMatrixName - CaracteristicHorizontalOpeningWingFractionName - CaracteristicHorizontalOpeningWingMethodName;-9;
2013-04-16 15:17:14,312 5141 [main] INFO fr.ifremer.tutti.service.TuttiServiceContext - Close service fr.ifremer.tutti.service.DecoratorService@5a9a75ce
2013-04-16 15:17:14,312 5141 [main] INFO fr.ifremer.tutti.service.TuttiServiceContext - Close service fr.ifremer.tutti.service.catches.TuttiWeightComputingService@52ac55da
2013-04-16 15:17:14,312 5141 [main] INFO fr.ifremer.tutti.service.TuttiServiceContext - Close service fr.ifremer.tutti.service.ValidationService@4ecc1f26
2013-04-16 15:17:14,313 5142 [main] INFO fr.ifremer.tutti.service.TuttiServiceContext - Close service fr.ifremer.tutti.service.PersistenceService@3038859d
2013-04-16 15:17:14,313 5142 [main] INFO fr.ifremer.tutti.service.PersistenceService - Close persistence Service
2013-04-16 15:17:14,313 5142 [main] INFO fr.ifremer.tutti.service.PersistenceService - Persistence driver *Mock persistence service implementation* closed.
2013-04-16 15:17:14,318 5147 [main] INFO fr.ifremer.tutti.service.TuttiServiceContext - New service fr.ifremer.tutti.service.DecoratorService@3b112034
2013-04-16 15:17:14,326 5155 [main] INFO fr.ifremer.tutti.service.TuttiServiceContext - New service fr.ifremer.tutti.service.catches.TuttiWeightComputingService@61595437
2013-04-16 15:17:14,326 5155 [main] INFO fr.ifremer.tutti.service.TuttiServiceContext - New service fr.ifremer.tutti.service.PersistenceService@2fa818cf
2013-04-16 15:17:14,326 5155 [main] INFO fr.ifremer.tutti.service.PersistenceService - Open persistence service
2013-04-16 15:17:14,326 5155 [main] INFO fr.ifremer.tutti.service.PersistenceService - Persistence driver *Mock persistence service implementation* opened.
2013-04-16 15:17:14,327 5156 [main] INFO fr.ifremer.tutti.service.TuttiServiceContext - New service fr.ifremer.tutti.service.ValidationService@44f4d67a
2013-04-16 15:17:14,346 5175 [main] INFO fr.ifremer.tutti.service.TuttiServiceContext - Close service fr.ifremer.tutti.service.DecoratorService@3b112034
2013-04-16 15:17:14,347 5176 [main] INFO fr.ifremer.tutti.service.TuttiServiceContext - Close service fr.ifremer.tutti.service.catches.TuttiWeightComputingService@61595437
2013-04-16 15:17:14,347 5176 [main] INFO fr.ifremer.tutti.service.TuttiServiceContext - Close service fr.ifremer.tutti.service.ValidationService@44f4d67a
2013-04-16 15:17:14,347 5176 [main] INFO fr.ifremer.tutti.service.TuttiServiceContext - Close service fr.ifremer.tutti.service.PersistenceService@2fa818cf
2013-04-16 15:17:14,347 5176 [main] INFO fr.ifremer.tutti.service.PersistenceService - Close persistence Service
2013-04-16 15:17:14,347 5176 [main] INFO fr.ifremer.tutti.service.PersistenceService - Persistence driver *Mock persistence service implementation* closed.
Tests run: 5, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.517 sec
Results :
Tests run: 32, Failures: 0, Errors: 0, Skipped: 1
mojoSucceeded org.apache.maven.plugins:maven-surefire-plugin:2.14(default-test)
[JENKINS] Recording test results
mojoStarted org.apache.maven.plugins:maven-jar-plugin:2.4(default-jar)
[INFO]
[INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ tutti-service ---
[INFO] Building jar: <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk2/tutti-service/target/tutti…>
mojoSucceeded org.apache.maven.plugins:maven-jar-plugin:2.4(default-jar)
mojoStarted org.apache.maven.plugins:maven-site-plugin:3.2(attach-descriptor)
[INFO]
[INFO] --- maven-site-plugin:3.2:attach-descriptor (attach-descriptor) @ tutti-service ---
mojoSucceeded org.apache.maven.plugins:maven-site-plugin:3.2(attach-descriptor)
mojoStarted org.apache.maven.plugins:maven-install-plugin:2.4(default-install)
[INFO]
[INFO] --- maven-install-plugin:2.4:install (default-install) @ tutti-service ---
[INFO] Installing <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk2/tutti-service/target/tutti…> to /var/local/maven/data/repository/fr/ifremer/tutti/tutti-service/2.0-SNAPSHOT/tutti-service-2.0-SNAPSHOT.jar
[INFO] Installing <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk2/tutti-service/pom.xml> to /var/local/maven/data/repository/fr/ifremer/tutti/tutti-service/2.0-SNAPSHOT/tutti-service-2.0-SNAPSHOT.pom
mojoSucceeded org.apache.maven.plugins:maven-install-plugin:2.4(default-install)
projectSucceeded fr.ifremer.tutti:tutti-service:2.0-SNAPSHOT
projectStarted fr.ifremer.tutti:tutti-ui-swing:2.0-SNAPSHOT
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building Tutti :: UI 2.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
mojoStarted org.apache.maven.plugins:maven-clean-plugin:2.5(default-clean)
[INFO]
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ tutti-ui-swing ---
[INFO] Deleting <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk2/tutti-ui-swing/target>
mojoSucceeded org.apache.maven.plugins:maven-clean-plugin:2.5(default-clean)
mojoStarted org.apache.maven.plugins:maven-enforcer-plugin:1.2(check-project-files)
[INFO]
[INFO] --- maven-enforcer-plugin:1.2:enforce (check-project-files) @ tutti-ui-swing ---
mojoSucceeded org.apache.maven.plugins:maven-enforcer-plugin:1.2(check-project-files)
mojoStarted org.nuiton.jaxx:jaxx-maven-plugin:2.5.17(default)
[INFO]
[INFO] --- jaxx-maven-plugin:2.5.17:generate (default) @ tutti-ui-swing ---
[INFO] use project compile scope class-path
[INFO] Detects 39 modified jaxx file(s).
[INFO] Generated 39 file(s) in 23.897s
mojoSucceeded org.nuiton.jaxx:jaxx-maven-plugin:2.5.17(default)
mojoStarted org.nuiton.jaxx:jaxx-maven-plugin:2.5.17(default)
[INFO]
[INFO] --- jaxx-maven-plugin:2.5.17:generate-help-ids (default) @ tutti-ui-swing ---
[INFO] Store detected help ids to <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk2/tutti-ui-swing/target/gene…>
[INFO] Merge help ids to <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk2/tutti-ui-swing/target/gene…>
[INFO] Use input file: <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk2/tutti-ui-swing/src/main/fi…>
[INFO] No keys to add.
[INFO] Use input file: <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk2/tutti-ui-swing/src/main/fi…>
[INFO] No keys to add.
mojoSucceeded org.nuiton.jaxx:jaxx-maven-plugin:2.5.17(default)
mojoStarted org.nuiton.i18n:i18n-maven-plugin:2.5(scan-sources)
[INFO]
[INFO] --- i18n-maven-plugin:2.5:parserJava (scan-sources) @ tutti-ui-swing ---
mojoSucceeded org.nuiton.i18n:i18n-maven-plugin:2.5(scan-sources)
mojoStarted org.nuiton.i18n:i18n-maven-plugin:2.5(scan-sources)
[INFO]
[INFO] --- i18n-maven-plugin:2.5:parserValidation (scan-sources) @ tutti-ui-swing ---
[INFO] Load rules file validation.rules
mojoSucceeded org.nuiton.i18n:i18n-maven-plugin:2.5(scan-sources)
forkedProjectStarted fr.ifremer.tutti:tutti-ui-swing:2.0-SNAPSHOT
mojoStarted org.nuiton.i18n:i18n-maven-plugin:2.5(get)
[INFO]
[INFO] --- i18n-maven-plugin:2.5:get (get) @ tutti-ui-swing ---
[INFO] Copying tutti-ui-swing.properties to <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk2/tutti-ui-swing/target/gene…>
[INFO] Copying tutti-ui-swing.properties to <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk2/tutti-ui-swing/target/gene…>
mojoSucceeded org.nuiton.i18n:i18n-maven-plugin:2.5(get)
forkedProjectSucceeded fr.ifremer.tutti:tutti-ui-swing:2.0-SNAPSHOT
mojoStarted org.nuiton.i18n:i18n-maven-plugin:2.5(scan-sources)
[INFO]
[INFO] --- i18n-maven-plugin:2.5:gen (scan-sources) @ tutti-ui-swing ---
[WARNING] bundle fr_FR contains 126/1191 empty entries! (use -Di18n.showEmpty to see these entries)
[WARNING] bundle en_GB contains 1193/1193 empty entries! (use -Di18n.showEmpty to see these entries)
mojoSucceeded org.nuiton.i18n:i18n-maven-plugin:2.5(scan-sources)
forkedProjectStarted fr.ifremer.tutti:tutti-ui-swing:2.0-SNAPSHOT
mojoStarted org.nuiton.i18n:i18n-maven-plugin:2.5(collect-i18n-artifacts)
[INFO]
[INFO] --- i18n-maven-plugin:2.5:collect-i18n-artifacts (collect-i18n-artifacts) @ tutti-ui-swing ---
[INFO] collected 11 i18n artifacts for locale fr_FR stored in <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk2/tutti-ui-swing/target/i18n…>
[INFO] collected 11 i18n artifacts for locale en_GB stored in <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk2/tutti-ui-swing/target/i18n…>
mojoSucceeded org.nuiton.i18n:i18n-maven-plugin:2.5(collect-i18n-artifacts)
forkedProjectSucceeded fr.ifremer.tutti:tutti-ui-swing:2.0-SNAPSHOT
mojoStarted org.nuiton.i18n:i18n-maven-plugin:2.5(make-bundle)
[INFO]
[INFO] --- i18n-maven-plugin:2.5:bundle (make-bundle) @ tutti-ui-swing ---
[WARNING] bundle fr_FR contains 130/1437 empty entries! (use -Di18n.showEmpty to see these entries)
[WARNING] bundle en_GB contains 1279/1439 empty entries! (use -Di18n.showEmpty to see these entries)
mojoSucceeded org.nuiton.i18n:i18n-maven-plugin:2.5(make-bundle)
mojoStarted org.codehaus.mojo:license-maven-plugin:1.4(attach-licenses)
[INFO]
[INFO] --- license-maven-plugin:1.4:update-project-license (attach-licenses) @ tutti-ui-swing ---
mojoSucceeded org.codehaus.mojo:license-maven-plugin:1.4(attach-licenses)
mojoStarted org.codehaus.mojo:license-maven-plugin:1.4(attach-licenses)
[INFO]
[INFO] --- license-maven-plugin:1.4:add-third-party (attach-licenses) @ tutti-ui-swing ---
[WARNING] No license name defined for org.hibernate.javax.persistence--hibernate-jpa-2.0-api--1.0.1.Final
[INFO] Load missing file <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk2/tutti-ui-swing/src/license…>
[INFO] Missing file <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk2/tutti-ui-swing/src/license…> is up-to-date.
[INFO] Writing third-party file to <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk2/tutti-ui-swing/target/gene…>
[INFO] Writing bundled third-party file to <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk2/tutti-ui-swing/target/gene…>
[INFO] Will attach third party file from <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk2/tutti-ui-swing/src/license…>
mojoSucceeded org.codehaus.mojo:license-maven-plugin:1.4(attach-licenses)
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 4 resources
mojoStarted org.apache.maven.plugins:maven-resources-plugin:2.6(default-resources)
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ tutti-ui-swing ---
[INFO] Copying 84 resources
[INFO] Copying 4 resources
[INFO] Copying 4 resources
mojoSucceeded org.apache.maven.plugins:maven-resources-plugin:2.6(default-resources)
mojoStarted org.apache.maven.plugins:maven-compiler-plugin:2.5.1(default-compile)
[INFO]
[INFO] --- maven-compiler-plugin:2.5.1:compile (default-compile) @ tutti-ui-swing ---
[INFO] Compiling 284 source files to <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk2/tutti-ui-swing/target/clas…>
[INFO] -------------------------------------------------------------
mojoFailed org.apache.maven.plugins:maven-compiler-plugin:2.5.1(default-compile)
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] bootstrap class path not set in conjunction with -source 1.6
<http://ci.nuiton.org/jenkins/job/tutti/ws/trunk2/tutti-ui-swing/src/main/ja…>:[36,39] error: cannot find symbol
[ERROR] symbol: class TuttiWeightComputingException
location: package fr.ifremer.tutti.service.catches
<http://ci.nuiton.org/jenkins/job/tutti/ws/trunk2/tutti-ui-swing/src/main/ja…>:[77,17] error: cannot find symbol
[INFO] 2 errors
[INFO] -------------------------------------------------------------
projectFailed fr.ifremer.tutti:tutti-ui-swing:2.0-SNAPSHOT
sessionEnded
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO]
[INFO] Tutti ............................................. SUCCESS [7.539s]
[INFO] Tutti :: Persistence .............................. SUCCESS [22.680s]
[INFO] Tutti :: Service .................................. SUCCESS [10.312s]
[INFO] Tutti :: UI ....................................... FAILURE [38.534s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1:20.790s
[INFO] Finished at: Tue Apr 16 15:17:53 CEST 2013
[INFO] Final Memory: 63M/175M
[INFO] ------------------------------------------------------------------------
Projects to build: [MavenProject: fr.ifremer:tutti:2.0-SNAPSHOT @ <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk2/pom.xml,> MavenProject: fr.ifremer.tutti:tutti-persistence:2.0-SNAPSHOT @ <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk2/tutti-persistence/pom.xml,> MavenProject: fr.ifremer.tutti:tutti-service:2.0-SNAPSHOT @ <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk2/tutti-service/pom.xml,> MavenProject: fr.ifremer.tutti:tutti-ui-swing:2.0-SNAPSHOT @ <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk2/tutti-ui-swing/pom.xml]>
[JENKINS] Archiving <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk2/tutti-service/pom.xml> to /var/local/jenkins/data/jobs/tutti/modules/fr.ifremer.tutti$tutti-service/builds/2013-04-16_15-16-27/archive/fr.ifremer.tutti/tutti-service/2.0-SNAPSHOT/tutti-service-2.0-SNAPSHOT.pom
[JENKINS] Archiving <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk2/tutti-service/target/tutti…> to /var/local/jenkins/data/jobs/tutti/modules/fr.ifremer.tutti$tutti-service/builds/2013-04-16_15-16-27/archive/fr.ifremer.tutti/tutti-service/2.0-SNAPSHOT/tutti-service-2.0-SNAPSHOT.jar
[JENKINS] Archiving <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk2/tutti-ui-swing/pom.xml> to /var/local/jenkins/data/jobs/tutti/modules/fr.ifremer.tutti$tutti-ui-swing/builds/2013-04-16_15-16-27/archive/fr.ifremer.tutti/tutti-ui-swing/2.0-SNAPSHOT/tutti-ui-swing-2.0-SNAPSHOT.pom
[JENKINS] Archiving <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk2/tutti-ui-swing/src/license…> to /var/local/jenkins/data/jobs/tutti/modules/fr.ifremer.tutti$tutti-ui-swing/builds/2013-04-16_15-16-27/archive/fr.ifremer.tutti/tutti-ui-swing/2.0-SNAPSHOT/tutti-ui-swing-2.0-SNAPSHOT-third-party.properties
[JENKINS] Archiving <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk2/pom.xml> to /var/local/jenkins/data/jobs/tutti/modules/fr.ifremer$tutti/builds/2013-04-16_15-16-27/archive/fr.ifremer/tutti/2.0-SNAPSHOT/tutti-2.0-SNAPSHOT.pom
[JENKINS] Archiving <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk2/target/tutti-2.0-SNAPSHOT-…> to /var/local/jenkins/data/jobs/tutti/modules/fr.ifremer$tutti/builds/2013-04-16_15-16-27/archive/fr.ifremer/tutti/2.0-SNAPSHOT/tutti-2.0-SNAPSHOT-site_fr.xml
[JENKINS] Archiving <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk2/tutti-persistence/pom.xml> to /var/local/jenkins/data/jobs/tutti/modules/fr.ifremer.tutti$tutti-persistence/builds/2013-04-16_15-16-27/archive/fr.ifremer.tutti/tutti-persistence/2.0-SNAPSHOT/tutti-persistence-2.0-SNAPSHOT.pom
[JENKINS] Archiving <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk2/tutti-persistence/target/t…> to /var/local/jenkins/data/jobs/tutti/modules/fr.ifremer.tutti$tutti-persistence/builds/2013-04-16_15-16-27/archive/fr.ifremer.tutti/tutti-persistence/2.0-SNAPSHOT/tutti-persistence-2.0-SNAPSHOT.jar
Waiting for Jenkins to finish collecting data
mavenExecutionResult exceptions not empty
message : Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.5.1:compile (default-compile) on project tutti-ui-swing: Compilation failure
cause : Compilation failure
Stack trace :
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.5.1:compile (default-compile) on project tutti-ui-swing: Compilation failure
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:213)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)
at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:320)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
at org.jvnet.hudson.maven3.launcher.Maven3Launcher.main(Maven3Launcher.java:79)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchStandard(Launcher.java:329)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:239)
at org.jvnet.hudson.maven3.agent.Maven3Main.launch(Maven3Main.java:158)
at hudson.maven.Maven3Builder.call(Maven3Builder.java:100)
at hudson.maven.Maven3Builder.call(Maven3Builder.java:66)
at hudson.remoting.UserRequest.perform(UserRequest.java:118)
at hudson.remoting.UserRequest.perform(UserRequest.java:48)
at hudson.remoting.Request$2.run(Request.java:326)
at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
Caused by: org.apache.maven.plugin.CompilationFailureException: Compilation failure
at org.apache.maven.plugin.AbstractCompilerMojo.execute(AbstractCompilerMojo.java:729)
at org.apache.maven.plugin.CompilerMojo.execute(CompilerMojo.java:128)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209)
... 27 more
Sending e-mails to: tutti-commits(a)list.forge.codelutin.com kmorin(a)codelutin.com
channel stopped
1
4
16 Apr '13
See <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/648/…>
Changes:
[Kevin Morin] fixes #2303 [CAPTURE ACCIDENTELLE] création lot, ne remonte pas la valeur du sexe et de "mort/vivant" dans le tableau
[Kevin Morin] fixes #2316 [CAPTURES] - Observations individuelles - Erreur lors de la saisie du code de prélèvement pièce calcifiée
------------------------------------------
projectStarted fr.ifremer.tutti:tutti-ui-swing:2.0-SNAPSHOT
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building Tutti :: UI 2.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
mojoStarted org.apache.maven.plugins:maven-clean-plugin:2.5(default-clean)
[INFO]
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ tutti-ui-swing ---
[INFO] Deleting <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/t…>
mojoSucceeded org.apache.maven.plugins:maven-clean-plugin:2.5(default-clean)
mojoStarted org.apache.maven.plugins:maven-enforcer-plugin:1.2(check-project-files)
[INFO]
[INFO] --- maven-enforcer-plugin:1.2:enforce (check-project-files) @ tutti-ui-swing ---
mojoSucceeded org.apache.maven.plugins:maven-enforcer-plugin:1.2(check-project-files)
mojoStarted org.nuiton.jaxx:jaxx-maven-plugin:2.5.17(default)
[INFO]
[INFO] --- jaxx-maven-plugin:2.5.17:generate (default) @ tutti-ui-swing ---
[INFO] use project compile scope class-path
[INFO] Detects 39 modified jaxx file(s).
[INFO] Generated 39 file(s) in 23.897s
mojoSucceeded org.nuiton.jaxx:jaxx-maven-plugin:2.5.17(default)
mojoStarted org.nuiton.jaxx:jaxx-maven-plugin:2.5.17(default)
[INFO]
[INFO] --- jaxx-maven-plugin:2.5.17:generate-help-ids (default) @ tutti-ui-swing ---
[INFO] Store detected help ids to <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/t…>
[INFO] Merge help ids to <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/t…>
[INFO] Use input file: <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/s…>
[INFO] No keys to add.
[INFO] Use input file: <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/s…>
[INFO] No keys to add.
mojoSucceeded org.nuiton.jaxx:jaxx-maven-plugin:2.5.17(default)
mojoStarted org.nuiton.i18n:i18n-maven-plugin:2.5(scan-sources)
[INFO]
[INFO] --- i18n-maven-plugin:2.5:parserJava (scan-sources) @ tutti-ui-swing ---
mojoSucceeded org.nuiton.i18n:i18n-maven-plugin:2.5(scan-sources)
mojoStarted org.nuiton.i18n:i18n-maven-plugin:2.5(scan-sources)
[INFO]
[INFO] --- i18n-maven-plugin:2.5:parserValidation (scan-sources) @ tutti-ui-swing ---
[INFO] Load rules file validation.rules
mojoSucceeded org.nuiton.i18n:i18n-maven-plugin:2.5(scan-sources)
forkedProjectStarted fr.ifremer.tutti:tutti-ui-swing:2.0-SNAPSHOT
mojoStarted org.nuiton.i18n:i18n-maven-plugin:2.5(get)
[INFO]
[INFO] --- i18n-maven-plugin:2.5:get (get) @ tutti-ui-swing ---
[INFO] Copying tutti-ui-swing.properties to <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/t…>
[INFO] Copying tutti-ui-swing.properties to <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/t…>
mojoSucceeded org.nuiton.i18n:i18n-maven-plugin:2.5(get)
forkedProjectSucceeded fr.ifremer.tutti:tutti-ui-swing:2.0-SNAPSHOT
mojoStarted org.nuiton.i18n:i18n-maven-plugin:2.5(scan-sources)
[INFO]
[INFO] --- i18n-maven-plugin:2.5:gen (scan-sources) @ tutti-ui-swing ---
[WARNING] bundle fr_FR contains 126/1191 empty entries! (use -Di18n.showEmpty to see these entries)
[WARNING] bundle en_GB contains 1193/1193 empty entries! (use -Di18n.showEmpty to see these entries)
mojoSucceeded org.nuiton.i18n:i18n-maven-plugin:2.5(scan-sources)
forkedProjectStarted fr.ifremer.tutti:tutti-ui-swing:2.0-SNAPSHOT
mojoStarted org.nuiton.i18n:i18n-maven-plugin:2.5(collect-i18n-artifacts)
[INFO]
[INFO] --- i18n-maven-plugin:2.5:collect-i18n-artifacts (collect-i18n-artifacts) @ tutti-ui-swing ---
[INFO] collected 11 i18n artifacts for locale fr_FR stored in <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/t…>
[INFO] collected 11 i18n artifacts for locale en_GB stored in <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/t…>
mojoSucceeded org.nuiton.i18n:i18n-maven-plugin:2.5(collect-i18n-artifacts)
forkedProjectSucceeded fr.ifremer.tutti:tutti-ui-swing:2.0-SNAPSHOT
mojoStarted org.nuiton.i18n:i18n-maven-plugin:2.5(make-bundle)
[INFO]
[INFO] --- i18n-maven-plugin:2.5:bundle (make-bundle) @ tutti-ui-swing ---
[WARNING] bundle fr_FR contains 130/1437 empty entries! (use -Di18n.showEmpty to see these entries)
[WARNING] bundle en_GB contains 1279/1439 empty entries! (use -Di18n.showEmpty to see these entries)
mojoSucceeded org.nuiton.i18n:i18n-maven-plugin:2.5(make-bundle)
mojoStarted org.codehaus.mojo:license-maven-plugin:1.4(attach-licenses)
[INFO]
[INFO] --- license-maven-plugin:1.4:update-project-license (attach-licenses) @ tutti-ui-swing ---
mojoSucceeded org.codehaus.mojo:license-maven-plugin:1.4(attach-licenses)
mojoStarted org.codehaus.mojo:license-maven-plugin:1.4(attach-licenses)
[INFO]
[INFO] --- license-maven-plugin:1.4:add-third-party (attach-licenses) @ tutti-ui-swing ---
[WARNING] No license name defined for org.hibernate.javax.persistence--hibernate-jpa-2.0-api--1.0.1.Final
[INFO] Load missing file <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/s…>
[INFO] Missing file <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/s…> is up-to-date.
[INFO] Writing third-party file to <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/t…>
[INFO] Writing bundled third-party file to <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/t…>
[INFO] Will attach third party file from <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/s…>
mojoSucceeded org.codehaus.mojo:license-maven-plugin:1.4(attach-licenses)
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 4 resources
mojoStarted org.apache.maven.plugins:maven-resources-plugin:2.6(default-resources)
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ tutti-ui-swing ---
[INFO] Copying 84 resources
[INFO] Copying 4 resources
[INFO] Copying 4 resources
mojoSucceeded org.apache.maven.plugins:maven-resources-plugin:2.6(default-resources)
mojoStarted org.apache.maven.plugins:maven-compiler-plugin:2.5.1(default-compile)
[INFO]
[INFO] --- maven-compiler-plugin:2.5.1:compile (default-compile) @ tutti-ui-swing ---
[INFO] Compiling 284 source files to <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/t…>
[INFO] -------------------------------------------------------------
mojoFailed org.apache.maven.plugins:maven-compiler-plugin:2.5.1(default-compile)
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] bootstrap class path not set in conjunction with -source 1.6
<http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/s…>:[36,39] error: cannot find symbol
[ERROR] symbol: class TuttiWeightComputingException
location: package fr.ifremer.tutti.service.catches
<http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/s…>:[77,17] error: cannot find symbol
[INFO] 2 errors
[INFO] -------------------------------------------------------------
projectFailed fr.ifremer.tutti:tutti-ui-swing:2.0-SNAPSHOT
1
4
16 Apr '13
Author: kmorin
Date: 2013-04-16 16:43:22 +0200 (Tue, 16 Apr 2013)
New Revision: 805
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/805
Log:
refs #1883 [RAPPORT] - Rapport de contr?\195?\180le apr?\195?\168s saisie
Added:
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/TuttiWeightComputingException.java
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/ValidateCruiseOperationsService.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseFishingOperationAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/ValidateCruiseUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/ValidateCruiseUI.jaxx
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/ValidateCruiseUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/ValidateCruiseUIModel.java
trunk/tutti-ui-swing/src/main/resources/icons/error.png
trunk/tutti-ui-swing/src/main/resources/icons/fatal.png
trunk/tutti-ui-swing/src/main/resources/icons/info.png
trunk/tutti-ui-swing/src/main/resources/icons/warning.png
Modified:
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/ValidationService.java
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/TuttiWeightComputingService.java
trunk/tutti-service/src/main/resources/fr/ifremer/tutti/persistence/entities/data/BenthosBatch-error-validation.xml
trunk/tutti-service/src/main/resources/fr/ifremer/tutti/persistence/entities/data/SpeciesBatch-error-validation.xml
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/TuttiScreen.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiUIContext.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/EditSelectedCruiseCatchesAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/MainUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/MainUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/ValidateSelectedCruiseCatchesAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.jaxx
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/SelectCruiseUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/ValidateCatchesAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/SaveFishingOperationAction.java
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/ValidationService.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/ValidationService.java 2013-04-16 14:11:38 UTC (rev 804)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/ValidationService.java 2013-04-16 14:43:22 UTC (rev 805)
@@ -45,6 +45,10 @@
*/
public class ValidationService extends AbstractTuttiService {
+ public static final String VALIDATION_CONTEXT_EDIT = "edit";
+
+ public static final String VALIDATION_CONTEXT_VALIDATE = "validate";
+
public NuitonValidatorResult validateCruise(Cruise cruise) {
NuitonValidator<Cruise> validator = NuitonValidatorFactory.newValidator(Cruise.class);
NuitonValidatorResult result = validator.validate(cruise);
@@ -63,8 +67,8 @@
return result;
}
- public NuitonValidatorResult validateFishingOperation(FishingOperation fishingOperation) {
- NuitonValidator<FishingOperation> validator = NuitonValidatorFactory.newValidator(FishingOperation.class);
+ public NuitonValidatorResult validateFishingOperation(FishingOperation fishingOperation, String context) {
+ NuitonValidator<FishingOperation> validator = NuitonValidatorFactory.newValidator(FishingOperation.class, context);
NuitonValidatorResult result = validator.validate(fishingOperation);
return result;
}
Added: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/TuttiWeightComputingException.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/TuttiWeightComputingException.java (rev 0)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/TuttiWeightComputingException.java 2013-04-16 14:43:22 UTC (rev 805)
@@ -0,0 +1,33 @@
+package fr.ifremer.tutti.service.catches;
+
+import fr.ifremer.tutti.TuttiBusinessException;
+
+/**
+ * @author kmorin <kmorin(a)codelutin.com>
+ */
+public class TuttiWeightComputingException extends TuttiBusinessException {
+
+ public enum CatchType {
+ SPECIES, BENTHOS, MARINE_LITTER
+ }
+
+ protected CatchType catchType;
+
+ protected int index;
+
+ public TuttiWeightComputingException(String message,
+ CatchType catchType,
+ int index) {
+ super(message);
+ this.catchType = catchType;
+ this.index = index;
+ }
+
+ public CatchType getCatchType() {
+ return catchType;
+ }
+
+ public int getIndex() {
+ return index;
+ }
+}
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/TuttiWeightComputingService.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/TuttiWeightComputingService.java 2013-04-16 14:11:38 UTC (rev 804)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/TuttiWeightComputingService.java 2013-04-16 14:43:22 UTC (rev 805)
@@ -24,6 +24,7 @@
* #L%
*/
+import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import fr.ifremer.tutti.TuttiBusinessException;
import fr.ifremer.tutti.persistence.entities.data.BatchContainer;
@@ -98,11 +99,35 @@
String fishingOperationId = fishingOperation.getId();
CatchBatch catchBatch = persistenceService.getCatchBatchFromFishingOperation(fishingOperationId);
- BatchContainer<SpeciesBatch> rootSpeciesBatch = persistenceService.getRootSpeciesBatch(fishingOperationId);
- BatchContainer<BenthosBatch> rootBenthosBatch = persistenceService.getRootBenthosBatch(fishingOperationId);
- BatchContainer<MarineLitterBatch> rootMarineLitterBatch = persistenceService.getRootMarineLitterBatch(fishingOperationId);
+ BatchContainer<SpeciesBatch> rootSpeciesBatch;
try {
+ rootSpeciesBatch = getComputedSpeciesBatches(fishingOperation);
+
+ } catch (TuttiBusinessException e) {
+ result.put(fishingOperationId, e.getMessage());
+ rootSpeciesBatch = persistenceService.getRootSpeciesBatch(fishingOperationId);
+ }
+
+ BatchContainer<BenthosBatch> rootBenthosBatch;
+ try {
+ rootBenthosBatch = getComputedBenthosBatches(fishingOperation);
+
+ } catch (TuttiBusinessException e) {
+ result.put(fishingOperationId, e.getMessage());
+ rootBenthosBatch = persistenceService.getRootBenthosBatch(fishingOperationId);
+ }
+
+ BatchContainer<MarineLitterBatch> rootMarineLitterBatch;
+ try {
+ rootMarineLitterBatch = getComputedMarineLitterBatches(fishingOperation);
+
+ } catch (TuttiBusinessException e) {
+ result.put(fishingOperationId, e.getMessage());
+ rootMarineLitterBatch = persistenceService.getRootMarineLitterBatch(fishingOperationId);
+ }
+
+ try {
if (catchBatch != null) {
computeCatchBatchWeights(catchBatch,
rootSpeciesBatch,
@@ -116,6 +141,65 @@
return result;
}
+ /**
+ * To check if can compute the weights of the given operation
+ * <p/>
+ * If no error found, then return is a empty list, otherwise the errors found
+ *
+ * @param fishingOperation the operation to check.
+ * @return list of errors, or empty list if no error found.
+ * @since 1.4
+ */
+ public List<String> checkOperation(FishingOperation fishingOperation) {
+
+ if (log.isDebugEnabled()) {
+ log.debug("Will check fishingOperation: " + fishingOperation);
+ }
+
+ List<String> result = Lists.newArrayList();
+ String fishingOperationId = fishingOperation.getId();
+ CatchBatch catchBatch = persistenceService.getCatchBatchFromFishingOperation(fishingOperationId);
+
+ BatchContainer<SpeciesBatch> rootSpeciesBatch;
+ try {
+ rootSpeciesBatch = getComputedSpeciesBatches(fishingOperation);
+
+ } catch (TuttiBusinessException e) {
+ result.add(e.getMessage());
+ rootSpeciesBatch = persistenceService.getRootSpeciesBatch(fishingOperationId);
+ }
+
+ BatchContainer<BenthosBatch> rootBenthosBatch;
+ try {
+ rootBenthosBatch = getComputedBenthosBatches(fishingOperation);
+
+ } catch (TuttiBusinessException e) {
+ result.add(e.getMessage());
+ rootBenthosBatch = persistenceService.getRootBenthosBatch(fishingOperationId);
+ }
+
+ BatchContainer<MarineLitterBatch> rootMarineLitterBatch;
+ try {
+ rootMarineLitterBatch = getComputedMarineLitterBatches(fishingOperation);
+
+ } catch (TuttiBusinessException e) {
+ result.add(e.getMessage());
+ rootMarineLitterBatch = persistenceService.getRootMarineLitterBatch(fishingOperationId);
+ }
+
+ try {
+ if (catchBatch != null) {
+ computeCatchBatchWeights(catchBatch,
+ rootSpeciesBatch,
+ rootBenthosBatch,
+ rootMarineLitterBatch);
+ }
+ } catch (TuttiBusinessException e) {
+ result.add(e.getMessage());
+ }
+ return result;
+ }
+
public void computeCatchBatchWeights(CatchBatch catchBatch,
BatchContainer<SpeciesBatch> rootSpeciesBatch,
BatchContainer<BenthosBatch> rootBenthosBatch,
@@ -165,7 +249,7 @@
catchBatch.setSpeciesTotalSortedComputedWeight(speciesTotalSortedWeight);
} else if (speciesTotalSortedWeight < speciesTotalComputedSortedWeight) {
- throw new TuttiBusinessException(_("tutti.service.catches.computeWeights.error.incoherentSpeciesTotalSorted"));
+ throw new TuttiBusinessException(_("tutti.service.operations.computeWeights.species.error.incoherentTotalSorted"));
}
catchBatch.setSpeciesTotalUnsortedComputedWeight(speciesTotalComputedUnsortedWeight);
@@ -219,7 +303,7 @@
catchBatch.setBenthosTotalSortedComputedWeight(benthosTotalSortedWeight);
} else if (benthosTotalSortedWeight < benthosTotalComputedSortedWeight) {
- throw new TuttiBusinessException(_("tutti.service.catches.computeWeights.error.incoherentBenthosTotalSorted"));
+ throw new TuttiBusinessException(_("tutti.service.operations.computeWeights.benthos.error.incoherentTotalSorted"));
}
catchBatch.setBenthosTotalUnsortedComputedWeight(benthosTotalComputedUnsortedWeight);
@@ -248,7 +332,7 @@
marineLitterTotalWeight = marineLitterTotalComputedWeight;
} else if (marineLitterTotalComputedWeight != null && marineLitterTotalWeight < marineLitterTotalComputedWeight) {
- throw new TuttiBusinessException(_("tutti.service.catches.computeWeights.error.incoherentMarineLitterTotal"));
+ throw new TuttiBusinessException(_("tutti.service.operations.computeWeights.marineLitter.error.incoherentTotal"));
}
// nothing to do with the marine litter weight, it is an isolated weight
@@ -267,7 +351,7 @@
if (rejectedWeight == null && totalWeight != null) {
if (!totalWeight.equals(totalUnsortedWeight
+ totalSortedWeight)) {
- throw new TuttiBusinessException(_("tutti.service.catches.computeWeights.error.incoherentTotal"));
+ throw new TuttiBusinessException(_("tutti.service.operations.computeWeights.error.incoherentTotal"));
} else {
catchBatch.setCatchTotalRejectedComputedWeight(totalWeight
@@ -285,7 +369,7 @@
+ rejectedWeight);
} else if (!totalWeight.equals(totalUnsortedWeight + totalSortedWeight + rejectedWeight)) {
- throw new TuttiBusinessException(_("tutti.service.catches.computeWeights.error.incoherentTotal"));
+ throw new TuttiBusinessException(_("tutti.service.operations.computeWeights.error.incoherentTotal"));
}
}
@@ -310,10 +394,13 @@
BatchContainer<BenthosBatch> rootBenthosBatch =
persistenceService.getRootBenthosBatch(operation.getId());
- List<BenthosBatch> roots = rootBenthosBatch.getChildren();
+ currentBenthosRowIndex = 0;
+ if (rootBenthosBatch != null) {
+ List<BenthosBatch> roots = rootBenthosBatch.getChildren();
- for (BenthosBatch batch : roots) {
- computeBenthosBatch(batch);
+ for (BenthosBatch batch : roots) {
+ computeBenthosBatch(batch);
+ }
}
return rootBenthosBatch;
@@ -324,7 +411,6 @@
BatchContainer<MarineLitterBatch> rootMarineLitterBatch =
persistenceService.getRootMarineLitterBatch(operation.getId());
-
return rootMarineLitterBatch;
}
@@ -358,7 +444,7 @@
batch.setSampleCategoryComputedWeight(sum);
} else if (categoryWeight < sum) {
- throw new TuttiBusinessException(_("tutti.service.catches.computeWeights.error.incoherentParentCategoryWeight"));
+ throw new TuttiBusinessException(_("tutti.service.operations.computeWeights.species.error.incoherentParentCategoryWeight"));
} else {
sum = categoryWeight;
@@ -391,7 +477,7 @@
}
if (categoryWeight == null && rowWeight != null) {
-// throw new TuttiBusinessException(_("tutti.service.catches.computeWeights.error.incoherentRowWeightCategory"));
+// throw new TuttiBusinessException(_("tutti.service.operations.computeWeights.error.incoherentRowWeightCategory"));
} else if (categoryWeight == null && frequencyWeight != null) {
// if the category weight is null and the frequencies have a weight,
@@ -405,13 +491,13 @@
// if the weight of the frequencies is different from the category
// weight, then set the weight of the sample
if (frequencyWeight > categoryWeight) {
- throw new TuttiBusinessException(_("tutti.service.catches.computeWeights.error.incoherentCategoryWeight"));
+ throw new TuttiBusinessException(_("tutti.service.operations.computeWeights.species.error.incoherentCategoryWeight"));
} else if (rowWeight == null) {
batch.setComputedWeight(frequencyWeight);
} else if (!rowWeight.equals(frequencyWeight)) {
- throw new TuttiBusinessException(_("tutti.service.catches.computeWeights.error.incoherentRowWeightFrequency"));
+ throw new TuttiBusinessException(_("tutti.service.operations.computeWeights.species.error.incoherentRowWeightFrequency"));
}
result = categoryWeight;
@@ -423,13 +509,18 @@
result = categoryWeight;
}
}
+ if (result == null && batch.getParentBatch() == null) {
+ throw new TuttiBusinessException(_("tutti.service.operations.computeWeights.species.error.noWeight"));
+ }
return result;
}
+ private int currentBenthosRowIndex;
protected Float computeBenthosBatch(BenthosBatch batch) {
Float result = null;
+ int thisIndex = currentBenthosRowIndex++;
Float categoryWeight = batch.getSampleCategoryWeight();
Float rowWeight = batch.getWeight();
@@ -458,12 +549,16 @@
batch.setSampleCategoryComputedWeight(sum);
} else if (categoryWeight < sum) {
- throw new TuttiBusinessException(_("tutti.service.catches.computeWeights.error.incoherentParentCategoryWeight"));
+ throw new TuttiWeightComputingException(
+ _("tutti.service.operations.computeWeights.benthos.error.incoherentParentCategoryWeight"),
+ TuttiWeightComputingException.CatchType.BENTHOS,
+ thisIndex);
} else {
sum = categoryWeight;
}
result = sum;
+
}
} else {// the row is a leaf
@@ -491,7 +586,7 @@
}
if (categoryWeight == null && rowWeight != null) {
-// throw new TuttiBusinessException(_("tutti.service.catches.computeWeights.error.incoherentRowWeightCategory"));
+// throw new TuttiBusinessException(_("tutti.service.operations.computeWeights.error.incoherentRowWeightCategory"));
} else if (categoryWeight == null && frequencyWeight != null) {
// if the category weight is null and the frequencies have a weight,
@@ -505,13 +600,19 @@
// if the weight of the frequencies is different from the category
// weight, then set the weight of the sample
if (frequencyWeight > categoryWeight) {
- throw new TuttiBusinessException(_("tutti.service.catches.computeWeights.error.incoherentCategoryWeight"));
+ throw new TuttiWeightComputingException(
+ _("tutti.service.operations.computeWeights.benthos.error.incoherentCategoryWeight"),
+ TuttiWeightComputingException.CatchType.BENTHOS,
+ thisIndex);
} else if (rowWeight == null) {
batch.setComputedWeight(frequencyWeight);
} else if (!rowWeight.equals(frequencyWeight)) {
- throw new TuttiBusinessException(_("tutti.service.catches.computeWeights.error.incoherentRowWeightFrequency"));
+ throw new TuttiWeightComputingException(
+ _("tutti.service.operations.computeWeights.benthos.error.incoherentRowWeightFrequency"),
+ TuttiWeightComputingException.CatchType.BENTHOS,
+ thisIndex);
}
result = categoryWeight;
@@ -523,6 +624,13 @@
result = categoryWeight;
}
}
+ if (result == null
+ && batch.getParentBatch() == null) {
+ throw new TuttiWeightComputingException(
+ _("tutti.service.operations.computeWeights.benthos.error.noWeight"),
+ TuttiWeightComputingException.CatchType.BENTHOS,
+ thisIndex);
+ }
return result;
}
Added: 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 (rev 0)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/ValidateCruiseOperationsService.java 2013-04-16 14:43:22 UTC (rev 805)
@@ -0,0 +1,55 @@
+package fr.ifremer.tutti.service.catches;
+
+import com.google.common.collect.Maps;
+import fr.ifremer.tutti.persistence.entities.data.FishingOperation;
+import fr.ifremer.tutti.service.*;
+import fr.ifremer.tutti.service.catches.TuttiWeightComputingService;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.nuiton.validator.NuitonValidatorResult;
+import org.nuiton.validator.NuitonValidatorScope;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author kmorin <kmorin(a)codelutin.com>
+ * @since 1.4
+ */
+public class ValidateCruiseOperationsService extends AbstractTuttiService {
+
+ private static final Log log =
+ LogFactory.getLog(TuttiWeightComputingService.class);
+
+ protected PersistenceService persistenceService;
+
+ protected ValidationService validationService;
+
+ protected TuttiWeightComputingService tuttiWeightComputingService;
+
+ @Override
+ public void setServiceContext(TuttiServiceContext context) {
+ super.setServiceContext(context);
+ persistenceService = getService(PersistenceService.class);
+ validationService = getService(ValidationService.class);
+ tuttiWeightComputingService = getService(TuttiWeightComputingService.class);
+ }
+
+ public Map<FishingOperation, NuitonValidatorResult> validateCruiseOperations() {
+ Map<FishingOperation, NuitonValidatorResult> result = Maps.newHashMap();
+
+ TuttiDataContext dataContext = context.getDataContext();
+ List<FishingOperation> operations = persistenceService.getAllFishingOperation(dataContext.getCruiseId());
+ for (FishingOperation operation : operations) {
+ NuitonValidatorResult validator = validationService.validateFishingOperation(operation, ValidationService.VALIDATION_CONTEXT_VALIDATE);
+
+ List<String> errors = tuttiWeightComputingService.checkOperation(operation);
+ Map<String, List<String>> errorMap = Maps.newHashMap();
+ errorMap.put("cacthes", errors);
+ validator.addMessagesForScope(NuitonValidatorScope.ERROR, errorMap);
+ result.put(operation, validator);
+ }
+
+ return result;
+ }
+}
Modified: trunk/tutti-service/src/main/resources/fr/ifremer/tutti/persistence/entities/data/BenthosBatch-error-validation.xml
===================================================================
--- trunk/tutti-service/src/main/resources/fr/ifremer/tutti/persistence/entities/data/BenthosBatch-error-validation.xml 2013-04-16 14:11:38 UTC (rev 804)
+++ trunk/tutti-service/src/main/resources/fr/ifremer/tutti/persistence/entities/data/BenthosBatch-error-validation.xml 2013-04-16 14:43:22 UTC (rev 805)
@@ -40,7 +40,7 @@
<param name="expression">
<![CDATA[ weight == null || sampleCategoryWeight == null || weight <= sampleCategoryWeight ]]>
</param>
- <message>tutti.service.catches.computeWeights.error.incoherentSampleWeight</message>
+ <message>tutti.service.catches.computeWeights.benthos.error.incoherentSampleWeight</message>
</field-validator>
</field>
Modified: trunk/tutti-service/src/main/resources/fr/ifremer/tutti/persistence/entities/data/SpeciesBatch-error-validation.xml
===================================================================
--- trunk/tutti-service/src/main/resources/fr/ifremer/tutti/persistence/entities/data/SpeciesBatch-error-validation.xml 2013-04-16 14:11:38 UTC (rev 804)
+++ trunk/tutti-service/src/main/resources/fr/ifremer/tutti/persistence/entities/data/SpeciesBatch-error-validation.xml 2013-04-16 14:43:22 UTC (rev 805)
@@ -40,7 +40,7 @@
<param name="expression">
<![CDATA[ weight == null || sampleCategoryWeight == null || weight <= sampleCategoryWeight ]]>
</param>
- <message>tutti.service.catches.computeWeights.error.incoherentSampleWeight</message>
+ <message>tutti.service.catches.computeWeights.species.error.incoherentSampleWeight</message>
</field-validator>
</field>
Modified: trunk/tutti-service/src/main/resources/i18n/tutti-service_en_GB.properties
===================================================================
--- trunk/tutti-service/src/main/resources/i18n/tutti-service_en_GB.properties 2013-04-16 14:11:38 UTC (rev 804)
+++ trunk/tutti-service/src/main/resources/i18n/tutti-service_en_GB.properties 2013-04-16 14:43:22 UTC (rev 805)
@@ -48,6 +48,7 @@
tutti.propety.no.vessel.name=
tutti.propety.no.zone=
tutti.propety.vessel.nation.registrationCode=
+tutti.service.catches.computeWeights.benthos.error.incoherentSampleWeight=
tutti.service.catches.computeWeights.error.incoherentBenthosTotalSorted=
tutti.service.catches.computeWeights.error.incoherentCategoryWeight=
tutti.service.catches.computeWeights.error.incoherentMarineLitterTotal=
@@ -57,8 +58,28 @@
tutti.service.catches.computeWeights.error.incoherentSampleWeight=
tutti.service.catches.computeWeights.error.incoherentSpeciesTotalSorted=
tutti.service.catches.computeWeights.error.incoherentTotal=
+tutti.service.catches.computeWeights.species.error.incoherentSampleWeight=
tutti.service.export.invalid.cruise=
tutti.service.export.invalid.fishingOperation=
+tutti.service.operations.computeWeights.benthos.error.incoherentCategoryWeight=
+tutti.service.operations.computeWeights.benthos.error.incoherentParentCategoryWeight=
+tutti.service.operations.computeWeights.benthos.error.incoherentRowWeightFrequency=
+tutti.service.operations.computeWeights.benthos.error.incoherentTotalSorted=
+tutti.service.operations.computeWeights.benthos.error.noWeight=
+tutti.service.operations.computeWeights.error.incoherentBenthosTotalSorted=
+tutti.service.operations.computeWeights.error.incoherentCategoryWeight=
+tutti.service.operations.computeWeights.error.incoherentMarineLitterTotal=
+tutti.service.operations.computeWeights.error.incoherentParentCategoryWeight=
+tutti.service.operations.computeWeights.error.incoherentRowWeightCategory=
+tutti.service.operations.computeWeights.error.incoherentRowWeightFrequency=
+tutti.service.operations.computeWeights.error.incoherentSpeciesTotalSorted=
+tutti.service.operations.computeWeights.error.incoherentTotal=
+tutti.service.operations.computeWeights.marineLitter.error.incoherentTotal=
+tutti.service.operations.computeWeights.species.error.incoherentCategoryWeight=
+tutti.service.operations.computeWeights.species.error.incoherentParentCategoryWeight=
+tutti.service.operations.computeWeights.species.error.incoherentRowWeightFrequency=
+tutti.service.operations.computeWeights.species.error.incoherentTotalSorted=
+tutti.service.operations.computeWeights.species.error.noWeight=
tutti.validator.error.comment.too.long=
tutti.validator.error.cruise.beginDate.required=
tutti.validator.error.cruise.dates.endBeforeStart=
Modified: trunk/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties
===================================================================
--- trunk/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties 2013-04-16 14:11:38 UTC (rev 804)
+++ trunk/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties 2013-04-16 14:43:22 UTC (rev 805)
@@ -44,17 +44,26 @@
tutti.propety.no.vessel.name=Nom inconnu
tutti.propety.no.zone=Pas de zone
tutti.propety.vessel.nation.registrationCode=%s (nat.)
-tutti.service.catches.computeWeights.error.incoherentBenthosTotalSorted=Le poids total Vrac du benthos est inférieur à la somme des poids Vrac triés, inerte trié et vivant non détaillé trié
-tutti.service.catches.computeWeights.error.incoherentCategoryWeight=Le poids total des mensurations est supérieur au poids de la catégorie
-tutti.service.catches.computeWeights.error.incoherentMarineLitterTotal=Le poids total des macro-déchets est inférieur à la somme des poids des macro-déchets saisis
-tutti.service.catches.computeWeights.error.incoherentParentCategoryWeight=Le poids de la catégorie est différent de la somme des poids de ses sous-catégories
-tutti.service.catches.computeWeights.error.incoherentRowWeightCategory=Le poids de la catégorie ne peut pas être nul si le poids de sous-échantillonage est renseigné
-tutti.service.catches.computeWeights.error.incoherentRowWeightFrequency=Le poids total des mensurations est différent du poids du sous-échantillon
-tutti.service.catches.computeWeights.error.incoherentSampleWeight=Le poids de sous-échantillonage est supérieur au poids de la catégorie
-tutti.service.catches.computeWeights.error.incoherentSpeciesTotalSorted=Le poids total Vrac des espèces est inférieur à la somme des poids Vrac triés, inerte trié et vivant non détaillé trié
-tutti.service.catches.computeWeights.error.incoherentTotal=Le poids total de la capture ne correspond pas à la somme des poids totaux Vrac, Hors Vrac et non triés
+tutti.service.catches.computeWeights.benthos.error.incoherentSampleWeight=
+tutti.service.catches.computeWeights.error.incoherentRowWeightCategory=
+tutti.service.catches.computeWeights.species.error.incoherentSampleWeight=
tutti.service.export.invalid.cruise=L'export de la campagne %s ne peut pas être réalisé suite aux erreurs rencontrées sur ses traits lors de l'élévation des poids \:\n%s
tutti.service.export.invalid.fishingOperation=L'élévation des poids ne peut pas être réalisé sur le trait %s, pour la raison suivante %s
+tutti.service.operations.computeWeights.benthos.error.incoherentCategoryWeight=Le poids total des mensurations d'un lot du benthos est supérieur au poids de la catégorie
+tutti.service.operations.computeWeights.benthos.error.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.benthos.error.incoherentRowWeightFrequency=Le poids total des mensurations d'un lot du benthos est différent du poids du sous-échantillon
+tutti.service.operations.computeWeights.benthos.error.incoherentSampleWeight=Le poids de sous-échantillonage d'un lot du benthos est supérieur au poids de la catégorie
+tutti.service.operations.computeWeights.benthos.error.incoherentTotalSorted=Le poids total Vrac du benthos est inférieur à la somme des poids Vrac triés, inerte trié et vivant non détaillé trié
+tutti.service.operations.computeWeights.benthos.error.noWeight=Un lot du benthos n'a pas de poids
+tutti.service.operations.computeWeights.error.incoherentRowWeightCategory=
+tutti.service.operations.computeWeights.error.incoherentTotal=Le poids total de la capture ne correspond pas à la somme des poids totaux Vrac, Hors Vrac et non triés
+tutti.service.operations.computeWeights.marineLitter.error.incoherentTotal=Le poids total des macro-déchets est inférieur à la somme des poids des macro-déchets saisis
+tutti.service.operations.computeWeights.species.error.incoherentCategoryWeight=Le poids total des mensurations d'un lot des espèces est supérieur au poids de la catégorie
+tutti.service.operations.computeWeights.species.error.incoherentParentCategoryWeight=Le poids de la catégorie d'un lot des espèces est différent de la somme des poids de ses sous-catégories
+tutti.service.operations.computeWeights.species.error.incoherentRowWeightFrequency=Le poids total des mensurations d'un lot des espèces est différent du poids du sous-échantillon
+tutti.service.operations.computeWeights.species.error.incoherentSampleWeight=Le poids de sous-échantillonage d'un lot des espèces est supérieur au poids de la catégorie
+tutti.service.operations.computeWeights.species.error.incoherentTotalSorted=Le poids total Vrac des espèces est inférieur à la somme des poids Vrac triés, inerte trié et vivant non détaillé trié
+tutti.service.operations.computeWeights.species.error.noWeight=Un lot des espèces n'a pas de poids
tutti.validator.error.comment.too.long=Taille de commentaire trop longue (limitée à %s caractères)
tutti.validator.error.cruise.beginDate.required=La date de début est obligatoire
tutti.validator.error.cruise.dates.endBeforeStart=La date de fin doit être après la date de début
Modified: trunk/tutti-ui-swing/src/main/filtered-resources/tutti-help-en.properties
===================================================================
--- trunk/tutti-ui-swing/src/main/filtered-resources/tutti-help-en.properties 2013-04-16 14:11:38 UTC (rev 804)
+++ trunk/tutti-ui-swing/src/main/filtered-resources/tutti-help-en.properties 2013-04-16 14:43:22 UTC (rev 805)
@@ -22,7 +22,7 @@
# #L%
###
#Generated by org.nuiton.jaxx.plugin.GenerateHelpIdsMojo
-#Thu Apr 11 16:29:39 CEST 2013
+#Fri Apr 12 10:46:52 CEST 2013
tutti.createAccidentalBatch.action.cancel.help=
tutti.createAccidentalBatch.action.save.help=
tutti.createAccidentalBatch.field.accidentalDeadOrAlive.help=
@@ -271,6 +271,7 @@
tutti.selectCruise.action.newProgram.help=selectCruise.html\#actions
tutti.selectCruise.action.newProtocol.help=selectCruise.html\#actions
tutti.selectCruise.action.validateCatches.help=selectCruise.html\#actions
+tutti.selectCruise.action.validateCruise.help=
tutti.selectCruise.field.cruise.help=selectCruise.html\#fields
tutti.selectCruise.field.program.help=selectCruise.html\#fields
tutti.selectCruise.field.protocol.help=selectCruise.html\#fields
Modified: trunk/tutti-ui-swing/src/main/filtered-resources/tutti-help-fr.properties
===================================================================
--- trunk/tutti-ui-swing/src/main/filtered-resources/tutti-help-fr.properties 2013-04-16 14:11:38 UTC (rev 804)
+++ trunk/tutti-ui-swing/src/main/filtered-resources/tutti-help-fr.properties 2013-04-16 14:43:22 UTC (rev 805)
@@ -22,7 +22,7 @@
# #L%
###
#Generated by org.nuiton.jaxx.plugin.GenerateHelpIdsMojo
-#Thu Apr 11 16:29:39 CEST 2013
+#Fri Apr 12 10:46:52 CEST 2013
tutti.createAccidentalBatch.action.cancel.help=
tutti.createAccidentalBatch.action.save.help=
tutti.createAccidentalBatch.field.accidentalDeadOrAlive.help=
@@ -280,6 +280,7 @@
tutti.selectCruise.action.newProgram.help=selectCruise.html\#actions
tutti.selectCruise.action.newProtocol.help=selectCruise.html\#actions
tutti.selectCruise.action.validateCatches.help=selectCruise.html\#actions
+tutti.selectCruise.action.validateCruise.help=
tutti.selectCruise.field.cruise.help=selectCruise.html\#fields
tutti.selectCruise.field.program.help=selectCruise.html\#fields
tutti.selectCruise.field.protocol.help=selectCruise.html\#fields
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiScreen.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiScreen.java 2013-04-16 14:11:38 UTC (rev 804)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiScreen.java 2013-04-16 14:43:22 UTC (rev 805)
@@ -80,9 +80,16 @@
*/
IMPORT_TEMPORARY_REFERENTIAL,
/**
- * To fill catches.
+ * To fill operations.
*
* @since 0.1
*/
- EDIT_FISHING_OPERATION
+ EDIT_FISHING_OPERATION,
+
+ /**
+ * To validate the cruise.
+ *
+ * @since 1.4
+ */
+ VALIDATE_CRUISE
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiUIContext.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiUIContext.java 2013-04-16 14:11:38 UTC (rev 804)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiUIContext.java 2013-04-16 14:43:22 UTC (rev 805)
@@ -30,12 +30,9 @@
import fr.ifremer.tutti.TuttiIOUtil;
import fr.ifremer.tutti.TuttiTechnicalException;
import fr.ifremer.tutti.persistence.RessourceClassLoader;
-import fr.ifremer.tutti.service.ClosedPersistenceService;
-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.*;
import fr.ifremer.tutti.service.catches.TuttiWeightComputingService;
+import fr.ifremer.tutti.service.catches.ValidateCruiseOperationsService;
import fr.ifremer.tutti.service.protocol.TuttiProtocolImportExportService;
import fr.ifremer.tutti.service.pupitri.TuttiPupitriImportExportService;
import fr.ifremer.tutti.service.referential.TuttiReferentialImportExportService;
@@ -522,6 +519,14 @@
return serviceContext.getService(TuttiWeightComputingService.class);
}
+ public ValidateCruiseOperationsService getValidateCruiseOperationsService() {
+ return serviceContext.getService(ValidateCruiseOperationsService.class);
+ }
+
+ public ValidationService getValidationService() {
+ return serviceContext.getService(ValidationService.class);
+ }
+
public boolean useRealPersistenceService() {
return isDbExist() && isDbLoaded();
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/EditSelectedCruiseCatchesAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/EditSelectedCruiseCatchesAction.java 2013-04-16 14:11:38 UTC (rev 804)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/EditSelectedCruiseCatchesAction.java 2013-04-16 14:43:22 UTC (rev 805)
@@ -31,7 +31,7 @@
import org.apache.commons.logging.LogFactory;
/**
- * Opens the catches edition screen to edit the selected catches.
+ * Opens the operations edition screen to edit the selected operations.
*
* @author tchemit <chemit(a)codelutin.com>
* @since 1.0
@@ -50,7 +50,7 @@
protected void doAction() throws Exception {
Preconditions.checkState(getContext().isCruiseFilled());
if (log.isInfoEnabled()) {
- log.info("Edit catches of cruise: " + getContext().getCruiseId());
+ log.info("Edit operations of cruise: " + getContext().getCruiseId());
}
getContext().setValidationContext(TuttiUIContext.VALIDATION_CONTEXT_EDIT);
super.doAction();
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/MainUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/MainUI.css 2013-04-16 14:11:38 UTC (rev 804)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/MainUI.css 2013-04-16 14:43:22 UTC (rev 805)
@@ -157,10 +157,7 @@
text: "tutti.main.action.editCatches";
toolTipText: "tutti.main.action.editCatches.tip";
i18nMnemonic: "tutti.main.action.editCatches.mnemonic";
- enabled: {(
- !TuttiUIContext.VALIDATION_CONTEXT_EDIT.equals(model.getValidationContext())
- || model.getScreen() != TuttiScreen.EDIT_FISHING_OPERATION
- ) && model.isCruiseFilled()};
+ enabled: {model.getScreen() != TuttiScreen.EDIT_FISHING_OPERATION && model.isCruiseFilled()};
_tuttiAction: {EditSelectedCruiseCatchesAction.class};
_help: {"tutti.main.menu.action.editCatches.help"};
}
@@ -170,10 +167,7 @@
text: "tutti.main.action.validateCatches";
toolTipText: "tutti.main.action.validateCatches.tip";
i18nMnemonic: "tutti.main.action.validateCatches.mnemonic";
- enabled: {(
- !TuttiUIContext.VALIDATION_CONTEXT_VALIDATE.equals(model.getValidationContext())
- || model.getScreen() != TuttiScreen.EDIT_FISHING_OPERATION
- ) && model.isCruiseFilled()};
+ enabled: {model.getScreen() != TuttiScreen.VALIDATE_CRUISE && model.isCruiseFilled()};
_tuttiAction: {ValidateSelectedCruiseCatchesAction.class};
_help: {"tutti.main.menu.action.validateCatches.help"};
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/MainUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/MainUIHandler.java 2013-04-16 14:11:38 UTC (rev 804)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/MainUIHandler.java 2013-04-16 14:43:22 UTC (rev 805)
@@ -36,6 +36,7 @@
import fr.ifremer.tutti.ui.swing.content.config.TuttiConfigUI;
import fr.ifremer.tutti.ui.swing.content.cruise.EditCruiseUI;
import fr.ifremer.tutti.ui.swing.content.cruise.EditCruiseUIHandler;
+import fr.ifremer.tutti.ui.swing.content.cruise.ValidateCruiseUI;
import fr.ifremer.tutti.ui.swing.content.db.DbManagerUI;
import fr.ifremer.tutti.ui.swing.content.db.OpenDbAction;
import fr.ifremer.tutti.ui.swing.content.home.SelectCruiseUI;
@@ -447,12 +448,12 @@
if (TuttiUIContext.VALIDATION_CONTEXT_EDIT.equals(validationContext)) {
- // edit catches
+ // edit operations
screenTitle = _("tutti.fishingOperations.title.edit.operations", getSelectedCruiseTitle());
icon = ui.getMenuActionEditCatches().getIcon();
} else {
- // validate catches
+ // validate operations
screenTitle = _("tutti.fishingOperations.title.validate.operations", getSelectedCruiseTitle());
icon = ui.getMenuActionValidateCatches().getIcon();
}
@@ -465,6 +466,15 @@
screenUI = new ManageTemporaryReferentialUI(ui);
icon = ui.getMenuImportTemporaryReferential().getIcon();
break;
+
+ case VALIDATE_CRUISE:
+ screenTitle = EditCruiseUIHandler.getTitle(
+ context.isCruiseFilled());
+
+ screenUI = new ValidateCruiseUI(ui);
+// rightDecoration = ((ValidateCruiseUI) screenUI).getTopToolBar();
+ icon = ui.getMenuActionEditCruise().getIcon();
+ break;
}
JButton showHelp = ui.getShowHelp();
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/ValidateSelectedCruiseCatchesAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/ValidateSelectedCruiseCatchesAction.java 2013-04-16 14:11:38 UTC (rev 804)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/ValidateSelectedCruiseCatchesAction.java 2013-04-16 14:43:22 UTC (rev 805)
@@ -31,7 +31,7 @@
import org.apache.commons.logging.LogFactory;
/**
- * Opens the catches validation screen to edit the selected catches.
+ * Opens the operations validation screen to edit the selected operations.
*
* @author tchemit <chemit(a)codelutin.com>
* @since 1.0
@@ -43,7 +43,7 @@
LogFactory.getLog(ValidateSelectedCruiseCatchesAction.class);
public ValidateSelectedCruiseCatchesAction(MainUIHandler handler) {
- super(handler, true, TuttiScreen.EDIT_FISHING_OPERATION);
+ super(handler, true, TuttiScreen.VALIDATE_CRUISE);
}
@Override
@@ -52,7 +52,7 @@
getContext().setValidationContext(TuttiUIContext.VALIDATION_CONTEXT_VALIDATE);
// getContext().setScreen(null);
if (log.isInfoEnabled()) {
- log.info("Validate catches of cruise: " + getContext().getCruiseId());
+ log.info("Validate operations of cruise: " + getContext().getCruiseId());
}
super.doAction();
}
Copied: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseFishingOperationAction.java (from rev 771, 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/cruise/EditCruiseFishingOperationAction.java (rev 0)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseFishingOperationAction.java 2013-04-16 14:43:22 UTC (rev 805)
@@ -0,0 +1,76 @@
+package fr.ifremer.tutti.ui.swing.content.cruise;
+
+import com.google.common.collect.Lists;
+import fr.ifremer.tutti.persistence.InvalidBatchModelException;
+import fr.ifremer.tutti.persistence.entities.TuttiBeanFactory;
+import fr.ifremer.tutti.persistence.entities.TuttiEntities;
+import fr.ifremer.tutti.persistence.entities.data.Attachment;
+import fr.ifremer.tutti.persistence.entities.data.CatchBatch;
+import fr.ifremer.tutti.persistence.entities.data.Cruise;
+import fr.ifremer.tutti.persistence.entities.data.FishingOperation;
+import fr.ifremer.tutti.persistence.entities.referential.Person;
+import fr.ifremer.tutti.persistence.entities.referential.TuttiLocation;
+import fr.ifremer.tutti.service.PersistenceService;
+import fr.ifremer.tutti.ui.swing.content.operation.*;
+import fr.ifremer.tutti.ui.swing.content.operation.catches.ComputeWeightsAction;
+import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUI;
+import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUIModel;
+import fr.ifremer.tutti.ui.swing.content.operation.catches.SaveCatchBatchAction;
+import fr.ifremer.tutti.ui.swing.content.operation.fishing.GearUseFeatureTabUI;
+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 org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.nuiton.util.decorator.Decorator;
+
+import javax.swing.*;
+import java.awt.*;
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
+import java.util.Collections;
+import java.util.List;
+
+import static org.nuiton.i18n.I18n._;
+
+/**
+ * To edit the given fishing operation.
+ *
+ * @author kmorin <morin(a)codelutin.com>
+ * @since 1.4
+ */
+public class EditCruiseFishingOperationAction extends AbstractTuttiAction<ValidateCruiseUIModel, ValidateCruiseUI, ValidateCruiseUIHandler> {
+
+ /** Logger. */
+ private static final Log log =
+ LogFactory.getLog(EditCruiseFishingOperationAction.class);
+
+ /**
+ * The incoming fishing operation to edit.
+ * <p/>
+ * Can be null (means do not edit any fishing operation), or with no id
+ * (means create a ne fishing operation), or with an id (means edit an
+ * existing fishing operation).
+ */
+ protected FishingOperation fishingOperation;
+
+ public EditCruiseFishingOperationAction(ValidateCruiseUIHandler handler) {
+ super(handler, true);
+ setActionDescription(_("tutti.editFishingOperation.action.editFishingOperation.tip"));
+ }
+
+ public void setFishingOperation(FishingOperation fishingOperation) {
+ this.fishingOperation = fishingOperation;
+ }
+
+ @Override
+ protected void doAction() throws Exception {
+ getUI().getOperationPanel().getModel().setSelectedFishingOperation(fishingOperation);
+ }
+
+ @Override
+ protected void releaseAction() {
+ super.releaseAction();
+ fishingOperation = null;
+ }
+}
Property changes on: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseFishingOperationAction.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/EditCruiseUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.jaxx 2013-04-16 14:11:38 UTC (rev 804)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.jaxx 2013-04-16 14:43:22 UTC (rev 805)
@@ -62,7 +62,7 @@
]]></script>
<EditCruiseUIHandler id='handler'
- initializer='getContextValue(EditCruiseUIHandler.class)'/>
+ initializer='getContextValue(EditCruiseUIHandler.class)'/>
<EditCruiseUIModel id='model'
initializer='getContextValue(EditCruiseUIModel.class)'/>
Added: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/ValidateCruiseUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/ValidateCruiseUI.css (rev 0)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/ValidateCruiseUI.css 2013-04-16 14:43:22 UTC (rev 805)
@@ -0,0 +1,3 @@
+#navigation {
+ rootVisible: false;
+}
\ No newline at end of file
Added: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/ValidateCruiseUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/ValidateCruiseUI.jaxx (rev 0)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/ValidateCruiseUI.jaxx 2013-04-16 14:43:22 UTC (rev 805)
@@ -0,0 +1,42 @@
+<JSplitPane id='splitPane' decorator='help'
+ implements='fr.ifremer.tutti.ui.swing.util.TuttiUI<ValidateCruiseUIModel, ValidateCruiseUIHandler>'>
+
+ <import>
+
+ fr.ifremer.tutti.ui.swing.TuttiHelpBroker
+ fr.ifremer.tutti.ui.swing.content.operation.FishingOperationsUI
+ fr.ifremer.tutti.ui.swing.util.TuttiUI
+
+ </import>
+ <script><![CDATA[
+
+ public ValidateCruiseUI(TuttiUI parentUI) {
+ JAXXUtil.initContext(this, parentUI);
+ ValidateCruiseUIHandler handler = new ValidateCruiseUIHandler(parentUI, this);
+ setContextValue(handler);
+ handler.beforeInitUI();
+ }
+
+ protected void $afterCompleteSetup() {
+ handler.afterInitUI();
+ }
+ ]]></script>
+
+ <ValidateCruiseUIHandler id='handler'
+ initializer='getContextValue(ValidateCruiseUIHandler.class)'/>
+
+ <ValidateCruiseUIModel id='model'
+ initializer='getContextValue(ValidateCruiseUIModel.class)'/>
+
+ <TuttiHelpBroker id='broker'
+ constructorParams='"tutti.validateCruise.help"'/>
+
+ <JScrollPane id='navigationPanel'>
+ <JTree id='navigation'/>
+ </JScrollPane>
+
+ <FishingOperationsUI id='operationPanel'
+ constructorParams='this'>
+ </FishingOperationsUI>
+
+</JSplitPane>
\ No newline at end of file
Added: 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 (rev 0)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/ValidateCruiseUIHandler.java 2013-04-16 14:43:22 UTC (rev 805)
@@ -0,0 +1,197 @@
+package fr.ifremer.tutti.ui.swing.content.cruise;
+
+import com.google.common.collect.ArrayListMultimap;
+import com.google.common.collect.LinkedListMultimap;
+import com.google.common.collect.Maps;
+import com.google.common.collect.Multimap;
+import fr.ifremer.tutti.persistence.entities.data.FishingOperation;
+import fr.ifremer.tutti.service.PersistenceService;
+import fr.ifremer.tutti.service.ValidationService;
+import fr.ifremer.tutti.ui.swing.TuttiUIContext;
+import fr.ifremer.tutti.ui.swing.content.operation.FishingOperationsUI;
+import fr.ifremer.tutti.ui.swing.util.AbstractTuttiUIHandler;
+import fr.ifremer.tutti.ui.swing.util.CloseableUI;
+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;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.jdesktop.swingx.tree.TreeUtilities;
+import org.nuiton.validator.NuitonValidatorResult;
+import org.nuiton.validator.NuitonValidatorScope;
+
+import javax.swing.*;
+import javax.swing.tree.*;
+import java.awt.*;
+import java.awt.event.MouseAdapter;
+import java.awt.event.MouseEvent;
+import java.util.*;
+import java.util.List;
+
+import static org.nuiton.i18n.I18n._;
+
+/**
+ * @author kmorin <kmorin(a)codelutin.com>
+ * @since 1.4
+ */
+public class ValidateCruiseUIHandler extends AbstractTuttiUIHandler<ValidateCruiseUIModel, ValidateCruiseUI> implements CloseableUI {
+
+ private final static Log log = LogFactory.getLog(ValidateCruiseUIHandler.class);
+
+ /**
+ * Persistence service.
+ */
+ private final PersistenceService persistenceService;
+
+ /**
+ * Validation service.
+ */
+ private final ValidationService validationService;
+
+ protected EditCruiseFishingOperationAction editFishingOperationAction;
+
+ protected Map<FishingOperation, NuitonValidatorResult> validator;
+
+ public ValidateCruiseUIHandler(TuttiUI parentUi, ValidateCruiseUI ui) {
+ super(parentUi.getHandler().getContext(), ui);
+ persistenceService = context.getPersistenceService();
+ validationService = context.getValidationService();
+ }
+
+ @Override
+ public void beforeInitUI() {
+ validator = context.getValidateCruiseOperationsService().validateCruiseOperations();
+
+ ValidateCruiseUIModel model = new ValidateCruiseUIModel();
+ ui.setContextValue(model);
+
+ }
+
+ @Override
+ public void afterInitUI() {
+ initUI(ui);
+
+ editFishingOperationAction = TuttiActionHelper.createLogicAction(this, EditCruiseFishingOperationAction.class);
+
+ ui.getOperationPanel().getModel().setSelectedFishingOperation(null);
+
+ DefaultMutableTreeNode root = new DefaultMutableTreeNode();
+ for (FishingOperation operation : validator.keySet()) {
+ operation = persistenceService.getFishingOperation(operation.getId());
+ NuitonValidatorResult result = validator.get(operation);
+
+ Multimap<NuitonValidatorScope, String> messages = LinkedListMultimap.create();
+ messages.putAll(NuitonValidatorScope.ERROR, result.getMessagesForScope(NuitonValidatorScope.ERROR));
+ messages.putAll(NuitonValidatorScope.WARNING, result.getMessagesForScope(NuitonValidatorScope.WARNING));
+
+ OperationTreeNode node = new OperationTreeNode(operation, messages);
+ root.add(node);
+ }
+ TreeModel model = new DefaultTreeModel(root);
+
+ final JTree navigation = ui.getNavigation();
+ navigation.setModel(model);
+ navigation.setCellRenderer(new ValidationTreeCellRenderer());
+ navigation.addMouseListener(new MouseAdapter() {
+ @Override
+ public void mouseClicked(MouseEvent e) {
+ if (e.getClickCount() == 2) {
+ Object[] paths = navigation.getSelectionPath().getPath();
+ FishingOperation operation = null;
+ for (Object o : paths) {
+ if (o != null && OperationTreeNode.class.isAssignableFrom(o.getClass())) {
+ operation = (FishingOperation) ((OperationTreeNode) o).getUserObject();
+ break;
+ }
+ }
+ editFishingOperationAction.setFishingOperation(operation);
+ AbstractTuttiAction.runAction(editFishingOperationAction);
+ }
+ }
+ });
+
+ FishingOperationsUI operationPanel = ui.getOperationPanel();
+ operationPanel.getTopPanel().setVisible(false);
+ }
+
+ @Override
+ public void onCloseUI() {
+ if (log.isDebugEnabled()) {
+ log.debug("closing: " + ui);
+ }
+ clearValidators();
+ }
+
+ @Override
+ public SwingValidator<ValidateCruiseUIModel> getValidator() {
+ return null; //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ protected JComponent getComponentToFocus() {
+ return null; //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public boolean quitUI() {
+ return true;
+ }
+
+ protected class ValidationTreeCellRenderer extends DefaultTreeCellRenderer {
+
+ @Override
+ public Component getTreeCellRendererComponent(JTree tree, Object value, boolean selected, boolean expanded, boolean leaf, int row, boolean hasFocus) {
+ JLabel label = (JLabel) super.getTreeCellRendererComponent(tree, value, selected, expanded, leaf, row, hasFocus);
+
+ if (value != null) {
+ if (value instanceof OperationTreeNode) {
+ OperationTreeNode node = (OperationTreeNode) value;
+ label.setText(getDecorator(FishingOperation.class, null).toString(node.getUserObject()));
+
+ } else if (value instanceof MessageTreeNode) {
+ MessageTreeNode node = (MessageTreeNode) value;
+ label.setText(_(String.valueOf(node.getUserObject())));
+ String iconName = node.getScope().toString().toLowerCase();
+ label.setIcon(SwingUtil.createImageIcon(iconName + ".png"));
+ }
+ }
+ return label;
+ }
+ }
+
+ protected class OperationTreeNode extends DefaultMutableTreeNode {
+
+ public OperationTreeNode(FishingOperation operation,
+ Multimap<NuitonValidatorScope, String> messages) {
+ super(operation);
+ setAllowsChildren(messages != null);
+ createChildren(messages);
+ }
+
+ public void createChildren(Multimap<NuitonValidatorScope, String> messages) {
+ for (NuitonValidatorScope scope: messages.keySet()) {
+ for (String message : messages.get(scope)) {
+ MessageTreeNode child = new MessageTreeNode(scope, message);
+ this.add(child);
+ }
+ }
+ }
+ }
+
+ protected class MessageTreeNode extends DefaultMutableTreeNode {
+
+ protected NuitonValidatorScope scope;
+
+ public MessageTreeNode(NuitonValidatorScope scope, String message) {
+ super(message);
+ this.scope = scope;
+ }
+
+ public NuitonValidatorScope getScope() {
+ return scope;
+ }
+
+ }
+}
Added: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/ValidateCruiseUIModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/ValidateCruiseUIModel.java (rev 0)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/ValidateCruiseUIModel.java 2013-04-16 14:43:22 UTC (rev 805)
@@ -0,0 +1,368 @@
+package fr.ifremer.tutti.ui.swing.content.cruise;
+
+import fr.ifremer.tutti.persistence.entities.CaracteristicMap;
+import fr.ifremer.tutti.persistence.entities.TuttiBeanFactory;
+import fr.ifremer.tutti.persistence.entities.data.*;
+import fr.ifremer.tutti.persistence.entities.referential.Gear;
+import fr.ifremer.tutti.persistence.entities.referential.Person;
+import fr.ifremer.tutti.persistence.entities.referential.TuttiLocation;
+import fr.ifremer.tutti.persistence.entities.referential.Vessel;
+import fr.ifremer.tutti.ui.swing.util.AbstractTuttiBeanUIModel;
+import fr.ifremer.tutti.ui.swing.util.attachment.AttachmentModelAware;
+import org.nuiton.util.beans.Binder;
+
+import java.util.Collection;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @author kmorin <kmorin(a)codelutin.com>
+ * @since 1.4
+ */
+public class ValidateCruiseUIModel extends AbstractTuttiBeanUIModel<FishingOperation, ValidateCruiseUIModel>
+ implements AttachmentModelAware, FishingOperation {
+
+ protected ValidateCruiseUIModel() {
+ super(FishingOperation.class, null, null);
+ }
+
+ /**
+ * Delegate edit object.
+ *
+ * @since 1.4
+ */
+ protected FishingOperation editObject = null;
+
+ public FishingOperation getEditFishingOperation() {
+ return editObject;
+ }
+
+ public void setEditFishingOperation(FishingOperation editObject) {
+ this.editObject = editObject;
+ }
+
+ @Override
+ protected FishingOperation newEntity() {
+ return null; //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public AttachementObjectTypeEnum getObjectType() {
+ return null; //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public String getObjectId() {
+ return null; //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public List<Attachment> getAttachment() {
+ return null; //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public void addAllAttachment(Collection<Attachment> attachments) {
+ //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public void addAttachment(Attachment attachment) {
+ //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public void removeAllAttachment(Collection<Attachment> attachments) {
+ //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public void removeAttachment(Attachment attachment) {
+ //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public String getStationNumber() {
+ return null; //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public void setStationNumber(String stationNumber) {
+ //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public Integer getFishingOperationNumber() {
+ return null; //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public void setFishingOperationNumber(Integer fishingOperationNumber) {
+ //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public Float getGearShootingStartLatitude() {
+ return null; //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public void setGearShootingStartLatitude(Float gearShootingStartLatitude) {
+ //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public Float getGearShootingStartLongitude() {
+ return null; //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public void setGearShootingStartLongitude(Float gearShootingStartLongitude) {
+ //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public Date getGearShootingStartDate() {
+ return null; //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public void setGearShootingStartDate(Date gearShootingStartDate) {
+ //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public Float getGearShootingEndLatitude() {
+ return null; //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public void setGearShootingEndLatitude(Float gearShootingEndLatitude) {
+ //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public Float getGearShootingEndLongitude() {
+ return null; //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public void setGearShootingEndLongitude(Float gearShootingEndLongitude) {
+ //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public Date getGearShootingEndDate() {
+ return null; //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public void setGearShootingEndDate(Date gearShootingEndDate) {
+ //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public boolean isFishingOperationRectiligne() {
+ return false; //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public void setFishingOperationRectiligne(boolean fishingOperationRectiligne) {
+ //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public Float getTrawlDistance() {
+ return null; //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public void setTrawlDistance(Float trawlDistance) {
+ //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public Boolean getFishingOperationValid() {
+ return null; //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public void setFishingOperationValid(Boolean fishingOperationValid) {
+ //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public boolean isPlanktonObserved() {
+ return false; //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public void setPlanktonObserved(boolean planktonObserved) {
+ //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public CaracteristicMap getVesselUseFeatures() {
+ return null; //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public void setVesselUseFeatures(CaracteristicMap vesselUseFeatures) {
+ //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public CaracteristicMap getGearUseFeatures() {
+ return null; //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public void setGearUseFeatures(CaracteristicMap gearUseFeatures) {
+ //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public boolean isAccidentalObserved() {
+ return false; //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public void setAccidentalObserved(boolean accidentalObserved) {
+ //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public String getMultirigAggregation() {
+ return null; //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public void setMultirigAggregation(String multirigAggregation) {
+ //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public String getComment() {
+ return null; //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public void setComment(String comment) {
+ //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public Cruise getCruise() {
+ return null; //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public void setCruise(Cruise cruise) {
+ //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public Person getRecorderPerson(int index) {
+ return null; //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public boolean isRecorderPersonEmpty() {
+ return false; //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public int sizeRecorderPerson() {
+ return 0; //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public void addRecorderPerson(Person recorderPerson) {
+ //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public void addAllRecorderPerson(Collection<Person> recorderPerson) {
+ //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public boolean removeRecorderPerson(Person recorderPerson) {
+ return false; //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public boolean removeAllRecorderPerson(Collection<Person> recorderPerson) {
+ return false; //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public boolean containsRecorderPerson(Person recorderPerson) {
+ return false; //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public boolean containsAllRecorderPerson(Collection<Person> recorderPerson) {
+ return false; //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public List<Person> getRecorderPerson() {
+ return null; //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public void setRecorderPerson(List<Person> recorderPerson) {
+ //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public Gear getGear() {
+ return null; //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public void setGear(Gear gear) {
+ //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public Vessel getVessel() {
+ return null; //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public void setVessel(Vessel vessel) {
+ //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public TuttiLocation getStrata() {
+ return null; //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public void setStrata(TuttiLocation strata) {
+ //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public TuttiLocation getSubStrata() {
+ return null; //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public void setSubStrata(TuttiLocation subStrata) {
+ //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public TuttiLocation getLocation() {
+ return null; //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public void setLocation(TuttiLocation location) {
+ //To change body of implemented methods use File | Settings | File Templates.
+ }
+}
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-04-16 14:11:38 UTC (rev 804)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/EditCatchesAction.java 2013-04-16 14:43:22 UTC (rev 805)
@@ -33,7 +33,7 @@
import org.apache.commons.logging.LogFactory;
/**
- * Opens the catches edition screen.
+ * Opens the operations edition screen.
*
* @author tchemit <chemit(a)codelutin.com>
* @since 1.0
@@ -52,7 +52,7 @@
Preconditions.checkState(getContext().isProgramFilled());
Preconditions.checkState(getContext().isCruiseFilled());
if (log.isInfoEnabled()) {
- log.info("Edit catches of cruise: " + getContext().getCruiseId());
+ log.info("Edit operations of cruise: " + getContext().getCruiseId());
}
getContext().setValidationContext(TuttiUIContext.VALIDATION_CONTEXT_EDIT);
super.doAction();
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUI.css 2013-04-16 14:11:38 UTC (rev 804)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUI.css 2013-04-16 14:43:22 UTC (rev 805)
@@ -210,4 +210,4 @@
_tuttiAction: {ValidateCatchesAction.class};
enabled: {model.isValid() && uiContext.isCruiseFilled()};
_help: {"tutti.selectCruise.action.validateCatches.help"};
-}
+}
\ No newline at end of file
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/ValidateCatchesAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/ValidateCatchesAction.java 2013-04-16 14:11:38 UTC (rev 804)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/ValidateCatchesAction.java 2013-04-16 14:43:22 UTC (rev 805)
@@ -33,7 +33,7 @@
import org.apache.commons.logging.LogFactory;
/**
- * Opens the catches validation screen.
+ * Opens the operations validation screen.
*
* @author tchemit <chemit(a)codelutin.com>
* @since 1.0
@@ -45,7 +45,7 @@
LogFactory.getLog(ValidateCatchesAction.class);
public ValidateCatchesAction(MainUIHandler handler) {
- super(handler, true, TuttiScreen.EDIT_FISHING_OPERATION);
+ super(handler, true, TuttiScreen.VALIDATE_CRUISE);
}
@Override
@@ -54,7 +54,7 @@
Preconditions.checkState(getContext().isCruiseFilled());
getContext().setValidationContext(TuttiUIContext.VALIDATION_CONTEXT_VALIDATE);
if (log.isInfoEnabled()) {
- log.info("Validate catches of cruise: " + getContext().getCruiseId());
+ log.info("Validate operations of cruise: " + getContext().getCruiseId());
}
super.doAction();
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/SaveFishingOperationAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/SaveFishingOperationAction.java 2013-04-16 14:11:38 UTC (rev 804)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/SaveFishingOperationAction.java 2013-04-16 14:43:22 UTC (rev 805)
@@ -31,6 +31,7 @@
import fr.ifremer.tutti.persistence.entities.data.CatchBatch;
import fr.ifremer.tutti.persistence.entities.data.FishingOperation;
import fr.ifremer.tutti.service.PersistenceService;
+import fr.ifremer.tutti.ui.swing.TuttiUIContext;
import fr.ifremer.tutti.ui.swing.content.operation.fishing.AbstractCaracteristicTabUIModel;
import fr.ifremer.tutti.ui.swing.content.operation.fishing.GearUseFeatureTabUIModel;
import fr.ifremer.tutti.ui.swing.content.operation.fishing.VesselUseFeatureTabUIModel;
@@ -128,8 +129,10 @@
saveFishingOperation(toSave);
- handler.getParentUi().getTabPane().setSelectedIndex(1);
- handler.getParentUi().getCatchesTabContent().getTabPane().setSelectedIndex(1);
+ if (TuttiUIContext.VALIDATION_CONTEXT_EDIT.equals(getContext().getValidationContext())) {
+ handler.getParentUi().getTabPane().setSelectedIndex(1);
+ handler.getParentUi().getCatchesTabContent().getTabPane().setSelectedIndex(1);
+ }
}
}
Added: trunk/tutti-ui-swing/src/main/resources/icons/error.png
===================================================================
(Binary files differ)
Property changes on: trunk/tutti-ui-swing/src/main/resources/icons/error.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/tutti-ui-swing/src/main/resources/icons/fatal.png
===================================================================
(Binary files differ)
Property changes on: trunk/tutti-ui-swing/src/main/resources/icons/fatal.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/tutti-ui-swing/src/main/resources/icons/info.png
===================================================================
(Binary files differ)
Property changes on: trunk/tutti-ui-swing/src/main/resources/icons/info.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/tutti-ui-swing/src/main/resources/icons/warning.png
===================================================================
(Binary files differ)
Property changes on: trunk/tutti-ui-swing/src/main/resources/icons/warning.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
1
0
r804 - trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol
by kmorin@users.forge.codelutin.com 16 Apr '13
by kmorin@users.forge.codelutin.com 16 Apr '13
16 Apr '13
Author: kmorin
Date: 2013-04-16 16:11:38 +0200 (Tue, 16 Apr 2013)
New Revision: 804
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/804
Log:
fixes #2314 [PROTOCOLE] quand je duplique un protocole, le texte de mise en garde sur le nom ne disparait pas apr?\195?\168s enregistrement
Modified:
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/SaveProtocolAction.java
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/SaveProtocolAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/SaveProtocolAction.java 2013-04-16 13:50:07 UTC (rev 803)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/SaveProtocolAction.java 2013-04-16 14:11:38 UTC (rev 804)
@@ -113,6 +113,7 @@
public void postSuccessAction() {
getContext().getMainUI().getHandler().setBodyTitle(
EditProtocolUIHandler.getTitle(true));
+ getUI().getSaveWarningContainer().setVisible(false);
}
}
1
0
r803 - in trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches: accidental/create individualobservation/create
by kmorin@users.forge.codelutin.com 16 Apr '13
by kmorin@users.forge.codelutin.com 16 Apr '13
16 Apr '13
Author: kmorin
Date: 2013-04-16 15:50:07 +0200 (Tue, 16 Apr 2013)
New Revision: 803
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/803
Log:
fixes #2305 [CAPTURE ACCIDENTELLE] ?\195?\160 la cr?\195?\169ation d'une deuxi?\195?\168me ligne dans le tableau les champs poids et taille sont pr?\195?\169-renseign?\195?\169s avec la ligne pr?\195?\169c?\195?\169dente
fixes #2307 [OBSERVATION INDIVIDUELLE] ?\195?\160 la cr?\195?\169ation d'une nouvelle ligne, les champs poids et taille sont renseign?\195?\169s avec la ligne pr?\195?\169c?\195?\169dente
Modified:
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/create/CreateAccidentalBatchUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/CreateIndividualObservationBatchUI.css
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/create/CreateAccidentalBatchUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/create/CreateAccidentalBatchUI.css 2013-04-16 13:43:20 UTC (rev 802)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/create/CreateAccidentalBatchUI.css 2013-04-16 13:50:07 UTC (rev 803)
@@ -71,6 +71,7 @@
useFloat: true;
numberPattern: {DECIMAL3_PATTERN};
bean: {model};
+ model: {model.getWeight()};
}
#accidentalSizeLabel {
@@ -85,6 +86,7 @@
useFloat: true;
numberPattern: {DECIMAL3_PATTERN};
bean: {model};
+ model: {model.getSize()};
}
#accidentalLengthStepCaracteristicLabel {
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/CreateIndividualObservationBatchUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/CreateIndividualObservationBatchUI.css 2013-04-16 13:43:20 UTC (rev 802)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/CreateIndividualObservationBatchUI.css 2013-04-16 13:50:07 UTC (rev 803)
@@ -59,6 +59,7 @@
useFloat: true;
numberPattern: {DECIMAL3_PATTERN};
bean: {model};
+ model: {model.getWeight()};
}
#individualObservationSizeLabel {
@@ -73,6 +74,7 @@
useFloat: true;
numberPattern: {DECIMAL3_PATTERN};
bean: {model};
+ model: {model.getSize()};
}
#individualObservationLengthStepCaracteristicLabel {
1
0
r802 - in trunk/tutti-ui-swing/src/main: java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/caracteristics resources/i18n
by kmorin@users.forge.codelutin.com 16 Apr '13
by kmorin@users.forge.codelutin.com 16 Apr '13
16 Apr '13
Author: kmorin
Date: 2013-04-16 15:43:20 +0200 (Tue, 16 Apr 2013)
New Revision: 802
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/802
Log:
fixes #2309 [OBSERVATION INDIVIDUELLE] saisie des autres caract?\195?\169ristiques, impossible de supprimer une ligne (clic droit ne fonctionne pas)
Modified:
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/caracteristics/CaracteristicMapEditorUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/caracteristics/CaracteristicMapEditorUIHandler.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/operation/catches/individualobservation/caracteristics/CaracteristicMapEditorUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/caracteristics/CaracteristicMapEditorUI.css 2013-04-16 13:39:58 UTC (rev 801)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/caracteristics/CaracteristicMapEditorUI.css 2013-04-16 13:43:20 UTC (rev 802)
@@ -41,6 +41,14 @@
sortable: false;
}
+#removeCaracteristicMenu {
+ actionIcon: batch-delete;
+ text: "tutti.editIndividualObservationCaracteristics.action.removeCaracteristic";
+ toolTipText: "tutti.editIndividualObservationCaracteristics.action.removeCaracteristic.tip";
+ i18nMnemonic: "tutti.editIndividualObservationCaracteristics.action.removeCaracteristic.mnemonic";
+ enabled: {model.isRemoveCaracteristicEnabled()};
+}
+
#cancelButton {
actionIcon: cancel;
text: "tutti.editIndividualObservationCaracteristics.action.cancel";
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/caracteristics/CaracteristicMapEditorUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/caracteristics/CaracteristicMapEditorUIHandler.java 2013-04-16 13:39:58 UTC (rev 801)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/caracteristics/CaracteristicMapEditorUIHandler.java 2013-04-16 13:43:20 UTC (rev 802)
@@ -94,6 +94,12 @@
}
@Override
+ protected void onAfterSelectedRowChanged(int oldRowIndex, CaracteristicMapEditorRowModel oldRow, int newRowIndex, CaracteristicMapEditorRowModel newRow) {
+ super.onAfterSelectedRowChanged(oldRowIndex, oldRow, newRowIndex, newRow);
+ getModel().setRemoveCaracteristicEnabled(newRowIndex >= 0);
+ }
+
+ @Override
protected void saveSelectedRowIfRequired(TuttiBeanMonitor<CaracteristicMapEditorRowModel> rowMonitor,
CaracteristicMapEditorRowModel row) {
if (row.isValid()) {
Modified: trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties
===================================================================
--- trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties 2013-04-16 13:39:58 UTC (rev 801)
+++ trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties 2013-04-16 13:43:20 UTC (rev 802)
@@ -574,6 +574,9 @@
tutti.editIndividualObservationCaracteristics.action.cancel=
tutti.editIndividualObservationCaracteristics.action.cancel.mnemonic=
tutti.editIndividualObservationCaracteristics.action.cancel.tip=
+tutti.editIndividualObservationCaracteristics.action.removeCaracteristic=
+tutti.editIndividualObservationCaracteristics.action.removeCaracteristic.mnemonic=
+tutti.editIndividualObservationCaracteristics.action.removeCaracteristic.tip=
tutti.editIndividualObservationCaracteristics.action.save=
tutti.editIndividualObservationCaracteristics.action.save.mnemonic=
tutti.editIndividualObservationCaracteristics.action.save.tip=
Modified: trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties
===================================================================
--- trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2013-04-16 13:39:58 UTC (rev 801)
+++ trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2013-04-16 13:43:20 UTC (rev 802)
@@ -576,6 +576,9 @@
tutti.editIndividualObservationCaracteristics.action.cancel=Annuler
tutti.editIndividualObservationCaracteristics.action.cancel.mnemonic=A
tutti.editIndividualObservationCaracteristics.action.cancel.tip=Annuler l'édition des caractéristiques de l'observation
+tutti.editIndividualObservationCaracteristics.action.removeCaracteristic=Supprimer la caractéristique sélectionnée
+tutti.editIndividualObservationCaracteristics.action.removeCaracteristic.mnemonic=S
+tutti.editIndividualObservationCaracteristics.action.removeCaracteristic.tip=Supprimer la caractéristique sélectionnée
tutti.editIndividualObservationCaracteristics.action.save=Enregistrer
tutti.editIndividualObservationCaracteristics.action.save.mnemonic=E
tutti.editIndividualObservationCaracteristics.action.save.tip=Enregistrer les caractéristiques de l'observation
@@ -816,7 +819,7 @@
tutti.error.errorpane.htmlmessage=<html><body><b>Une erreur s'est produite</b>\:<br/>%s</body></html>
tutti.error.ui.business.error=Erreur
tutti.error.ui.other.error=Erreur
-tutti.fishingOperations.action.newFishingOperation.mnemonic=C
+tutti.fishingOperations.action.newFishingOperation.mnemonic=N
tutti.fishingOperations.action.newFishingOperation.tip=Créer une nouvelle opération de pêche
tutti.fishingOperations.info.no.fishingOperation.selected=< Aucun trait sélectionné >
tutti.fishingOperations.title.edit.operations=Saisie des opérations de pêches (%s)
1
0
r801 - trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol
by kmorin@users.forge.codelutin.com 16 Apr '13
by kmorin@users.forge.codelutin.com 16 Apr '13
16 Apr '13
Author: kmorin
Date: 2013-04-16 15:39:58 +0200 (Tue, 16 Apr 2013)
New Revision: 801
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/801
Log:
fixes #2301 [PROTOCOLE] effacer les onglets plancton et accidental
Modified:
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUI.jaxx
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUI.jaxx 2013-04-16 13:11:58 UTC (rev 800)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUI.jaxx 2013-04-16 13:39:58 UTC (rev 801)
@@ -207,12 +207,12 @@
</Table>
</JPanel>
</tab>
- <tab title='tutti.editProtocol.tab.plankton' enabled='false'>
- <JLabel text='tutti.to.be.done' horizontalAlignment="{JLabel.CENTER}"/>
- </tab>
- <tab title='tutti.editProtocol.tab.accidental' enabled='false'>
- <JLabel text='tutti.to.be.done' horizontalAlignment="{JLabel.CENTER}"/>
- </tab>
+ <!--<tab title='tutti.editProtocol.tab.plankton' enabled='false'>-->
+ <!--<JLabel text='tutti.to.be.done' horizontalAlignment="{JLabel.CENTER}"/>-->
+ <!--</tab>-->
+ <!--<tab title='tutti.editProtocol.tab.accidental' enabled='false'>-->
+ <!--<JLabel text='tutti.to.be.done' horizontalAlignment="{JLabel.CENTER}"/>-->
+ <!--</tab>-->
</JTabbedPane>
<JPanel id='saveWarningContainer' layout='{new BorderLayout(10, 10)}'
1
0
r800 - trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental
by kmorin@users.forge.codelutin.com 16 Apr '13
by kmorin@users.forge.codelutin.com 16 Apr '13
16 Apr '13
Author: kmorin
Date: 2013-04-16 15:11:58 +0200 (Tue, 16 Apr 2013)
New Revision: 800
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/800
Log:
fixes #2303 [CAPTURE ACCIDENTELLE] cr?\195?\169ation lot, ne remonte pas la valeur du sexe et de "mort/vivant" dans le tableau
Modified:
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchUIHandler.java
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchUIHandler.java 2013-04-16 13:10:11 UTC (rev 799)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchUIHandler.java 2013-04-16 13:11:58 UTC (rev 800)
@@ -399,9 +399,11 @@
AccidentalBatchRowModel newRow = tableModel.createNewRow();
newRow.setSpecies(model.getSpecies());
+ newRow.setGender(model.getGender());
newRow.setWeight(model.getWeight());
newRow.setSize(model.getSize());
newRow.setLengthStepCaracteristic(model.getLengthStepCaracteristic());
+ newRow.setDeadOrAlive(model.getDeadOrAlive());
recomputeRowValidState(newRow);
1
0