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
23 Sep '13
Author: tchemit
Date: 2013-09-23 14:20:59 +0200 (Mon, 23 Sep 2013)
New Revision: 1205
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/1205
Log:
fix and optimize i18n
Modified:
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/TuttiMultiPostExportService.java
trunk/tutti-service/src/main/resources/i18n/tutti-service_en_GB.properties
trunk/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/DbManagerUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/DbManagerUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/ExportAndCleanDbAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/CreateBenthosMelagAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchTableModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/CreateSpeciesMelagAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/species/EnterMelagWeightDialog.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/species/EnterMelagWeightDialog.jaxx
trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties
trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/TuttiMultiPostExportService.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/TuttiMultiPostExportService.java 2013-09-23 11:37:47 UTC (rev 1204)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/TuttiMultiPostExportService.java 2013-09-23 12:20:59 UTC (rev 1205)
@@ -643,7 +643,7 @@
AttachmentRowModel csvAttachmentModel = new AttachmentRowModel(csvSeparator);
File attachmentDirectory = new File(directory, ATTACHMENTS_DIRECTORY);
- TuttiIOUtil.forceMkdir(attachmentDirectory, _("tutti.service.multipost.attachment.mkdirDir.error", attachmentDirectory));
+ TuttiIOUtil.forceMkdir(attachmentDirectory, _("tutti.service.multipost.attachment.mkdir.error", attachmentDirectory));
file2zip.add(attachmentDirectory);
for (AttachmentRow attachmentRow : attachmentRows) {
File attachmentFile = attachmentRow.getFile();
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-09-23 11:37:47 UTC (rev 1204)
+++ trunk/tutti-service/src/main/resources/i18n/tutti-service_en_GB.properties 2013-09-23 12:20:59 UTC (rev 1205)
@@ -81,7 +81,7 @@
tutti.service.exportSumatra.header.weight=
tutti.service.mkDir.error=
tutti.service.multipost.attachment.copy.error=
-tutti.service.multipost.attachment.mkdirDir.error=
+tutti.service.multipost.attachment.mkdir.error=
tutti.service.multipost.export.attachments.error=
tutti.service.multipost.export.batches.error=
tutti.service.multipost.export.deleteTempDirectory.error=
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-09-23 11:37:47 UTC (rev 1204)
+++ trunk/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties 2013-09-23 12:20:59 UTC (rev 1205)
@@ -82,7 +82,6 @@
tutti.service.mkDir.error=Erreur à la création du dossier %s
tutti.service.multipost.attachment.copy.error=Erreur lors de l'export de la pièce-jointe %s
tutti.service.multipost.attachment.mkdir.error=Impossible de créer le répertoire %s
-tutti.service.multipost.attachment.mkdirDir.error=
tutti.service.multipost.export.attachments.error=Erreur lors de l'export des pièces-jointes
tutti.service.multipost.export.batches.error=Erreur lors de l'export des lots
tutti.service.multipost.export.deleteTempDirectory.error=Erreur lors de la suppression du dossier temporaire
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/DbManagerUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/DbManagerUI.css 2013-09-23 11:37:47 UTC (rev 1204)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/DbManagerUI.css 2013-09-23 12:20:59 UTC (rev 1205)
@@ -43,7 +43,7 @@
actionIcon: install-db;
text: {handler.getInstallButtonText(model.isDbExist())};
toolTipText: {handler.getInstallButtonTip(model.isDbExist())};
- i18nMnemonic: {handler.getInstallButtonMnemonic(model.isDbExist())};
+ i18nMnemonic: "tutti.dbManager.action.installDb.mnemonic";
_tuttiAction: {InstallOrReinstallDbAction.class};
_help: {"tutti.dbManager.action.installDb.help"};
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/DbManagerUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/DbManagerUIHandler.java 2013-09-23 11:37:47 UTC (rev 1204)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/DbManagerUIHandler.java 2013-09-23 12:20:59 UTC (rev 1205)
@@ -27,10 +27,13 @@
import fr.ifremer.tutti.ui.swing.TuttiUIContext;
import fr.ifremer.tutti.ui.swing.util.AbstractTuttiUIHandler;
import jaxx.runtime.validator.swing.SwingValidator;
+import org.apache.commons.lang3.StringUtils;
import org.nuiton.util.Version;
import javax.swing.JComponent;
import javax.swing.SwingUtilities;
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
import static org.nuiton.i18n.I18n._;
@@ -81,6 +84,24 @@
initUI(ui);
+ getModel().addPropertyChangeListener(TuttiUIContext.PROPERTY_DB_EXIST, new PropertyChangeListener() {
+ @Override
+ public void propertyChange(PropertyChangeEvent evt) {
+
+ Boolean dbExist = (Boolean) evt.getNewValue();
+ String mnemonic;
+ if (dbExist) {
+ mnemonic = _("tutti.dbManager.action.reinstallDb.mnemonic");
+ } else {
+ mnemonic = _("tutti.dbManager.action.installDb.mnemonic");
+ }
+ if (StringUtils.isNotBlank(mnemonic)) {
+ ui.getInstallOrReinstallDbButton().setMnemonic(mnemonic.charAt(0));
+ }
+
+ }
+ });
+
SwingUtilities.invokeLater(
new Runnable() {
@Override
@@ -124,14 +145,4 @@
}
return result;
}
-
- public String getInstallButtonMnemonic(boolean dbExist) {
- String result;
- if (dbExist) {
- result = _("tutti.dbManager.action.reinstallDb.mnemonic");
- } else {
- result = _("tutti.dbManager.action.installDb.mnemonic");
- }
- return result;
- }
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/ExportAndCleanDbAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/ExportAndCleanDbAction.java 2013-09-23 11:37:47 UTC (rev 1204)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/ExportAndCleanDbAction.java 2013-09-23 12:20:59 UTC (rev 1205)
@@ -94,7 +94,7 @@
// close db
- progressionModel.setMessage(_("tutti.exportDb.closeDb"));
+ progressionModel.setMessage(_("tutti.exportDb.step.closeDb"));
// clear all caches
getContext().getPersistenceService().clearAllCaches();
@@ -111,14 +111,14 @@
// export db
progressionModel.increments(1);
- progressionModel.setMessage(_("tutti.exportDb.createArchive", file));
+ progressionModel.setMessage(_("tutti.exportDb.step.createArchive", file));
getContext().getPersistenceService().exportDb(file);
// clean files
progressionModel.increments(1);
- progressionModel.setMessage(_("tutti.exportDb.reloadApplication"));
+ progressionModel.setMessage(_("tutti.exportDb.step.reloadApplication"));
// Close the application, will exit and restart application
RunTutti.closeTutti(getHandler(), RunTutti.DELETE_DB_EXIT_CODE);
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/CreateBenthosMelagAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/CreateBenthosMelagAction.java 2013-09-23 11:37:47 UTC (rev 1204)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/CreateBenthosMelagAction.java 2013-09-23 12:20:59 UTC (rev 1205)
@@ -26,6 +26,7 @@
import com.google.common.collect.Maps;
import fr.ifremer.tutti.ui.swing.content.operation.catches.benthos.frequency.BenthosFrequencyRowModel;
+import fr.ifremer.tutti.ui.swing.util.WeightUnit;
import fr.ifremer.tutti.ui.swing.util.action.AbstractTuttiAction;
import fr.ifremer.tutti.ui.swing.util.species.EnterMelagWeightDialog;
import jaxx.runtime.SwingUtil;
@@ -51,8 +52,16 @@
protected Float sortedWeight = null;
+ /**
+ * Weight unit.
+ *
+ * @since 2.5
+ */
+ protected final WeightUnit weightUnit;
+
public CreateBenthosMelagAction(BenthosBatchUIHandler handler) {
super(handler, false);
+ weightUnit = getConfig().getBenthosWeightUnit();
}
@Override
@@ -127,8 +136,9 @@
protected Float openMelagWeightDialog() {
Frame frame = SwingUtil.getParentContainer(getUI(), Frame.class);
- final EnterMelagWeightDialog dialog = new EnterMelagWeightDialog(frame,
- getConfig().getShortcutClosePopup());
+ EnterMelagWeightDialog dialog = new EnterMelagWeightDialog(
+ frame, getConfig().getShortcutClosePopup());
+ dialog.setWeightUnit(weightUnit);
SwingUtil.center(frame, dialog);
dialog.pack();
dialog.setVisible(true);
@@ -142,16 +152,17 @@
@Override
public void doAction() throws Exception {
- String melagComment = _("tutti.createBenthosMelag.comment.part1");
+ String unitLabel = weightUnit.getShortLabel();
+ String melagComment = _("tutti.createBenthosMelag.comment.part1") + "\n";
for (BenthosBatchRowModel batch : selectedRows.keySet()) {
Float sampleWeight = selectedRows.get(batch);
if (sampleWeight != null) {
Float weight = sampleMelagWeight * sampleWeight / sortedWeight;
batch.getFinestCategory().setCategoryWeight(weight);
}
- melagComment += _("tutti.createBenthosMelag.comment.part2", sampleWeight, decorate(batch.getSpecies()));
+ melagComment += _("tutti.createBenthosMelag.comment.part2", sampleWeight, unitLabel, decorate(batch.getSpecies())) + "\n";
}
- melagComment += _("tutti.createBenthosMelag.comment.part3", melagWeight);
+ melagComment += _("tutti.createBenthosMelag.comment.part3", melagWeight, unitLabel);
for (BenthosBatchRowModel batch : selectedRows.keySet()) {
String comment = batch.getComment();
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchTableModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchTableModel.java 2013-09-23 11:37:47 UTC (rev 1204)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchTableModel.java 2013-09-23 12:20:59 UTC (rev 1205)
@@ -64,13 +64,13 @@
// public static final ColumnIdentifier<IndividualObservationBatchRowModel> CALCIFIED_PIECE_SAMPLING_CODE = ColumnIdentifier.newId(
// IndividualObservationBatchRowModel.PROPERTY_CALCIFIED_PIECE_SAMPLING_CODE,
-// n_("tutti.editIndividualObservationBatch.table.header.calcifiedPieceSamplingCode"),
-// n_("tutti.editIndividualObservationBatch.table.header.calcifiedPieceSamplingCode.tip"));
+// ("tutti.editIndividualObservationBatch.table.header.calcifiedPieceSamplingCode"),
+// ("tutti.editIndividualObservationBatch.table.header.calcifiedPieceSamplingCode.tip"));
//
// public static final ColumnIdentifier<IndividualObservationBatchRowModel> SAMPLING_CODE = ColumnIdentifier.newId(
// IndividualObservationBatchRowModel.PROPERTY_SAMPLING_CODE,
-// n_("tutti.editIndividualObservationBatch.table.header.samplingCode"),
-// n_("tutti.editIndividualObservationBatch.table.header.samplingCode.tip"));
+// ("tutti.editIndividualObservationBatch.table.header.samplingCode"),
+// ("tutti.editIndividualObservationBatch.table.header.samplingCode.tip"));
public static final ColumnIdentifier<IndividualObservationBatchRowModel> COMMENT = ColumnIdentifier.newId(
IndividualObservationBatchRowModel.PROPERTY_COMMENT,
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/CreateSpeciesMelagAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/CreateSpeciesMelagAction.java 2013-09-23 11:37:47 UTC (rev 1204)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/CreateSpeciesMelagAction.java 2013-09-23 12:20:59 UTC (rev 1205)
@@ -26,6 +26,7 @@
import com.google.common.collect.Maps;
import fr.ifremer.tutti.ui.swing.content.operation.catches.species.frequency.SpeciesFrequencyRowModel;
+import fr.ifremer.tutti.ui.swing.util.WeightUnit;
import fr.ifremer.tutti.ui.swing.util.action.AbstractTuttiAction;
import fr.ifremer.tutti.ui.swing.util.species.EnterMelagWeightDialog;
import jaxx.runtime.SwingUtil;
@@ -51,8 +52,16 @@
protected Float sortedWeight = null;
+ /**
+ * Weight unit.
+ *
+ * @since 2.5
+ */
+ protected final WeightUnit weightUnit;
+
public CreateSpeciesMelagAction(SpeciesBatchUIHandler handler) {
super(handler, false);
+ weightUnit = getConfig().getSpeciesWeightUnit();
}
@Override
@@ -127,8 +136,11 @@
protected Float openMelagWeightDialog() {
Frame frame = SwingUtil.getParentContainer(getUI(), Frame.class);
- final EnterMelagWeightDialog dialog = new EnterMelagWeightDialog(frame,
- getConfig().getShortcutClosePopup());
+ EnterMelagWeightDialog dialog = new EnterMelagWeightDialog(
+ frame, getConfig().getShortcutClosePopup());
+
+ dialog.setWeightUnit(weightUnit);
+
SwingUtil.center(frame, dialog);
dialog.pack();
dialog.setVisible(true);
@@ -142,16 +154,17 @@
@Override
public void doAction() throws Exception {
- String melagComment = _("tutti.createSpeciesMelag.comment.part1");
+ String unitLabel = weightUnit.getShortLabel();
+ String melagComment = _("tutti.createSpeciesMelag.comment.part1")+"\n";
for (SpeciesBatchRowModel batch : selectedRows.keySet()) {
Float sampleWeight = selectedRows.get(batch);
if (sampleWeight != null) {
Float weight = sampleMelagWeight * sampleWeight / sortedWeight;
batch.getFinestCategory().setCategoryWeight(weight);
}
- melagComment += _("tutti.createSpeciesMelag.comment.part2", sampleWeight, decorate(batch.getSpecies()));
+ melagComment += _("tutti.createSpeciesMelag.comment.part2", sampleWeight, unitLabel, decorate(batch.getSpecies()))+"\n";
}
- melagComment += _("tutti.createSpeciesMelag.comment.part3", melagWeight);
+ melagComment += _("tutti.createSpeciesMelag.comment.part3", melagWeight, unitLabel);
for (SpeciesBatchRowModel batch : selectedRows.keySet()) {
String comment = batch.getComment();
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/species/EnterMelagWeightDialog.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/species/EnterMelagWeightDialog.css 2013-09-23 11:37:47 UTC (rev 1204)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/species/EnterMelagWeightDialog.css 2013-09-23 12:20:59 UTC (rev 1205)
@@ -23,11 +23,11 @@
*/
#dialog {
- title: "tutti.createSpeciesMelag.title";
+ title: {_("tutti.createSpeciesMelag.title", weightUnit.getShortLabel())};
}
#message {
- text: "tutti.createSpeciesMelag.message";
+ text: {_("tutti.createSpeciesMelag.message", weightUnit.getShortLabel())};
horizontalAlignment: {JLabel.CENTER};
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/species/EnterMelagWeightDialog.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/species/EnterMelagWeightDialog.jaxx 2013-09-23 11:37:47 UTC (rev 1204)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/species/EnterMelagWeightDialog.jaxx 2013-09-23 12:20:59 UTC (rev 1205)
@@ -23,6 +23,8 @@
-->
<JDialog id='dialog' layout='{new BorderLayout()}'>
<import>
+ fr.ifremer.tutti.ui.swing.util.WeightUnit
+
java.awt.Component;
java.awt.event.WindowAdapter;
java.awt.event.WindowEvent;
@@ -53,6 +55,8 @@
]]></script>
+ <WeightUnit id='weightUnit' javaBean='WeightUnit.KG'/>
+
<Table id='table' fill='both' constraints='BorderLayout.CENTER'>
<row>
<cell insets='10, 10, 5, 10'>
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-09-23 11:37:47 UTC (rev 1204)
+++ trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties 2013-09-23 12:20:59 UTC (rev 1205)
@@ -47,13 +47,8 @@
tutti.attachmentEditor.none.tip=
tutti.attachmentEditor.saveAttachment.button=
tutti.attachmentEditor.saveAttachment.error.message=
-tutti.attachmentEditor.saveAttachment.fail.message=
-tutti.attachmentEditor.saveAttachment.fail.title=
tutti.attachmentEditor.saveAttachment.success.message=
tutti.attachmentEditor.saveAttachment.title=
-tutti.attachmentEditor.saveAttachment.warning.help=
-tutti.attachmentEditor.saveAttachment.warning.message=
-tutti.attachmentEditor.saveAttachment.warning.title=
tutti.attachmentEditor.text=
tutti.attachmentEditor.title=
tutti.caracteristicMapEditor.none.tip=
@@ -67,8 +62,6 @@
tutti.common.askBeforeDelete.help=
tutti.common.askBeforeEditProtocol.help=
tutti.common.askBeforeEditProtocol.title=
-tutti.common.askBeforeEditProtocole.help=
-tutti.common.askBeforeEditProtocole.title=
tutti.common.askBeforeImportProtocol.help=
tutti.common.askCancelEditBeforeLeaving.help=
tutti.common.askCancelEditBeforeLeaving.title=
@@ -79,9 +72,7 @@
tutti.common.askSaveBeforeLeaving.title=
tutti.common.cancel=
tutti.common.cancel.mnemonic=
-tutti.common.caracteristic.notFound=
tutti.common.datefield.tip=
-tutti.common.editProtocol.categories.not.compatible=
tutti.common.file.csv=
tutti.common.file.pdf=
tutti.common.file.protocol=
@@ -91,7 +82,6 @@
tutti.common.file.tuttiMarineLitter=
tutti.common.file.tuttiSpecies=
tutti.common.file.zip=
-tutti.common.protocol.categories.not.compatible=
tutti.common.unit=Unit
tutti.common.unit.g=Gramme
tutti.common.unit.kg=kilogram
@@ -102,12 +92,9 @@
tutti.config.action.reload.actions=
tutti.config.action.reload.application=
tutti.config.action.reload.ui=
-tutti.config.action.sampleOrder.tip=
tutti.config.application=
tutti.config.category.applications=
tutti.config.category.applications.description=
-tutti.config.category.sampleCategoryModel=
-tutti.config.category.sampleCategoryModel.description=
tutti.config.category.technical=
tutti.config.category.technical.description=
tutti.config.category.ui=
@@ -143,15 +130,8 @@
tutti.config.option.ui.weight.unit.species.description=
tutti.config.option.update.application.url.description=
tutti.config.option.update.db.url.description=
-tutti.config.option.update.url.description=
tutti.config.option.weights.rate.difference.totalAndSorted.description=
tutti.config.parse.error=
-tutti.config.sampleCategoryModel.passwordDialog.error.message=
-tutti.config.sampleCategoryModel.passwordDialog.error.title=
-tutti.config.sampleCategoryModel.passwordDialog.message=
-tutti.config.sampleCategoryModel.passwordDialog.title=
-tutti.config.sampleCategoryModel.title=
-tutti.config.sampleOrder.title=
tutti.config.save.error=
tutti.config.title=
tutti.context.helpPage.notFound=
@@ -159,9 +139,6 @@
tutti.createAccidentalBatch.action.cancel=
tutti.createAccidentalBatch.action.cancel.mnemonic=
tutti.createAccidentalBatch.action.cancel.tip=
-tutti.createAccidentalBatch.action.save=
-tutti.createAccidentalBatch.action.save.mnemonic=
-tutti.createAccidentalBatch.action.save.tip=
tutti.createAccidentalBatch.action.saveAndClose=
tutti.createAccidentalBatch.action.saveAndClose.mnemonic=
tutti.createAccidentalBatch.action.saveAndClose.tip=
@@ -187,9 +164,6 @@
tutti.createBenthosBatch.action.cancel=
tutti.createBenthosBatch.action.cancel.mnemonic=
tutti.createBenthosBatch.action.cancel.tip=
-tutti.createBenthosBatch.action.save=
-tutti.createBenthosBatch.action.save.mnemonic=
-tutti.createBenthosBatch.action.save.tip=
tutti.createBenthosBatch.action.saveAndClose=
tutti.createBenthosBatch.action.saveAndClose.mnemonic=
tutti.createBenthosBatch.action.saveAndClose.tip=
@@ -206,7 +180,6 @@
tutti.createBenthosBatch.field.sampleCategory.tip=
tutti.createBenthosBatch.field.sampleWeight=
tutti.createBenthosBatch.field.sampleWeight.tip=
-tutti.createBenthosBatch.field.sampleWeightField.tip=
tutti.createBenthosBatch.field.species=
tutti.createBenthosBatch.field.species.tip=
tutti.createBenthosBatch.title=
@@ -221,9 +194,6 @@
tutti.createIndividualObservationBatch.action.cancel=
tutti.createIndividualObservationBatch.action.cancel.mnemonic=
tutti.createIndividualObservationBatch.action.cancel.tip=
-tutti.createIndividualObservationBatch.action.save=
-tutti.createIndividualObservationBatch.action.save.mnemonic=
-tutti.createIndividualObservationBatch.action.save.tip=
tutti.createIndividualObservationBatch.action.saveAndClose=
tutti.createIndividualObservationBatch.action.saveAndClose.mnemonic=
tutti.createIndividualObservationBatch.action.saveAndClose.tip=
@@ -242,9 +212,6 @@
tutti.createMarineLitterBatch.action.cancel=
tutti.createMarineLitterBatch.action.cancel.mnemonic=
tutti.createMarineLitterBatch.action.cancel.tip=
-tutti.createMarineLitterBatch.action.save=
-tutti.createMarineLitterBatch.action.save.mnemonic=
-tutti.createMarineLitterBatch.action.save.tip=
tutti.createMarineLitterBatch.action.saveAndClose=
tutti.createMarineLitterBatch.action.saveAndClose.mnemonic=
tutti.createMarineLitterBatch.action.saveAndClose.tip=
@@ -266,9 +233,6 @@
tutti.createSpeciesBatch.action.cancel=
tutti.createSpeciesBatch.action.cancel.mnemonic=
tutti.createSpeciesBatch.action.cancel.tip=
-tutti.createSpeciesBatch.action.save=
-tutti.createSpeciesBatch.action.save.mnemonic=
-tutti.createSpeciesBatch.action.save.tip=
tutti.createSpeciesBatch.action.saveAndClose=
tutti.createSpeciesBatch.action.saveAndClose.mnemonic=
tutti.createSpeciesBatch.action.saveAndClose.tip=
@@ -305,12 +269,6 @@
tutti.dbManager.action.chooseDbBackupFile=
tutti.dbManager.action.chooseDbExportFile=
tutti.dbManager.action.chooseDbFile=
-tutti.dbManager.action.closeDb=
-tutti.dbManager.action.closeDb.mnemonic=
-tutti.dbManager.action.closeDb.tip=
-tutti.dbManager.action.exportAndCleanDb=
-tutti.dbManager.action.exportAndCleanDb.mnemonic=
-tutti.dbManager.action.exportAndCleanDb.tip=
tutti.dbManager.action.exportDb=
tutti.dbManager.action.exportDb.mnemonic=
tutti.dbManager.action.exportDb.tip=
@@ -318,7 +276,6 @@
tutti.dbManager.action.importDb.backup.db=
tutti.dbManager.action.importDb.mnemonic=
tutti.dbManager.action.importDb.tip=
-tutti.dbManager.action.importdb.backup.db=
tutti.dbManager.action.importdb.couldNotOpen=
tutti.dbManager.action.importdb.no.backup.db.choosen=
tutti.dbManager.action.importdb.no.import.file.choosen=
@@ -472,17 +429,12 @@
tutti.editBenthosFrequencies.action.generate=
tutti.editBenthosFrequencies.action.generate.mnemonic=
tutti.editBenthosFrequencies.action.generate.tip=
-tutti.editBenthosFrequencies.action.save=
-tutti.editBenthosFrequencies.action.save.mnemonic=
-tutti.editBenthosFrequencies.action.save.tip=
tutti.editBenthosFrequencies.action.saveAndClose=
tutti.editBenthosFrequencies.action.saveAndClose.mnemonic=
tutti.editBenthosFrequencies.action.saveAndClose.tip=
tutti.editBenthosFrequencies.action.saveAndContinue=
tutti.editBenthosFrequencies.action.saveAndContinue.mnemonic=
tutti.editBenthosFrequencies.action.saveAndContinue.tip=
-tutti.editBenthosFrequencies.batchCategory=
-tutti.editBenthosFrequencies.batchSpecies=
tutti.editBenthosFrequencies.error.length.doublon=
tutti.editBenthosFrequencies.field.lengthStepCaracteristic=
tutti.editBenthosFrequencies.field.lengthStepCaracteristic.tip=
@@ -728,8 +680,6 @@
tutti.editIndividualObservationBatch.action.removeBatch.confirm.title=
tutti.editIndividualObservationBatch.action.removeBatch.mnemonic=
tutti.editIndividualObservationBatch.action.removeBatch.tip=
-tutti.editIndividualObservationBatch.table.header.calcifiedPieceSamplingCode=
-tutti.editIndividualObservationBatch.table.header.calcifiedPieceSamplingCode.tip=
tutti.editIndividualObservationBatch.table.header.comment=
tutti.editIndividualObservationBatch.table.header.comment.tip=
tutti.editIndividualObservationBatch.table.header.file=
@@ -738,18 +688,12 @@
tutti.editIndividualObservationBatch.table.header.lengthStepCaracteristic.tip=
tutti.editIndividualObservationBatch.table.header.otherCaracteristics=
tutti.editIndividualObservationBatch.table.header.otherCaracteristics.tip=
-tutti.editIndividualObservationBatch.table.header.samplingCode=
-tutti.editIndividualObservationBatch.table.header.samplingCode.tip=
tutti.editIndividualObservationBatch.table.header.size=
tutti.editIndividualObservationBatch.table.header.size.tip=
tutti.editIndividualObservationBatch.table.header.species=
tutti.editIndividualObservationBatch.table.header.species.tip=
tutti.editIndividualObservationBatch.table.header.weight=
tutti.editIndividualObservationBatch.table.header.weight.tip=
-tutti.editIndividualObservationBatch.table.header.weightG=
-tutti.editIndividualObservationBatch.table.header.weightG.tip=
-tutti.editIndividualObservationBatch.table.header.weightKG=
-tutti.editIndividualObservationBatch.table.header.weightKG.tip=
tutti.editIndividualObservationCaracteristics.action.cancel=
tutti.editIndividualObservationCaracteristics.action.cancel.mnemonic=
tutti.editIndividualObservationCaracteristics.action.cancel.tip=
@@ -793,10 +737,6 @@
tutti.editMarineLitterBatch.table.header.number.tip=
tutti.editMarineLitterBatch.table.header.weight=
tutti.editMarineLitterBatch.table.header.weight.tip=
-tutti.editMarineLitterBatch.table.header.weightG=
-tutti.editMarineLitterBatch.table.header.weightG.tip=
-tutti.editMarineLitterBatch.table.header.weightKG=
-tutti.editMarineLitterBatch.table.header.weightKG.tip=
tutti.editProgram.action.closeEditProgram=
tutti.editProgram.action.closeEditProgram.mnemonic=
tutti.editProgram.action.closeEditProgram.tip=
@@ -903,9 +843,6 @@
tutti.editProtocol.warn.clean=
tutti.editProtocol.warn.clone=
tutti.editProtocol.warn.import=
-tutti.editSampleCategoryModel.action.cancel=
-tutti.editSampleCategoryModel.action.cancel.mnemonic=
-tutti.editSampleCategoryModel.action.cancel.tip=
tutti.editSampleCategoryModel.action.close=
tutti.editSampleCategoryModel.action.close.mnemonic=
tutti.editSampleCategoryModel.action.close.tip=
@@ -1011,17 +948,12 @@
tutti.editSpeciesFrequencies.action.generate=
tutti.editSpeciesFrequencies.action.generate.mnemonic=
tutti.editSpeciesFrequencies.action.generate.tip=
-tutti.editSpeciesFrequencies.action.save=
-tutti.editSpeciesFrequencies.action.save.mnemonic=
-tutti.editSpeciesFrequencies.action.save.tip=
tutti.editSpeciesFrequencies.action.saveAndClose=
tutti.editSpeciesFrequencies.action.saveAndClose.mnemonic=
tutti.editSpeciesFrequencies.action.saveAndClose.tip=
tutti.editSpeciesFrequencies.action.saveAndContinue=
tutti.editSpeciesFrequencies.action.saveAndContinue.mnemonic=
tutti.editSpeciesFrequencies.action.saveAndContinue.tip=
-tutti.editSpeciesFrequencies.batchCategory=
-tutti.editSpeciesFrequencies.batchSpecies=
tutti.editSpeciesFrequencies.error.length.doublon=
tutti.editSpeciesFrequencies.field.lengthStepCaracteristic=
tutti.editSpeciesFrequencies.field.lengthStepCaracteristic.tip=
@@ -1068,15 +1000,11 @@
tutti.exportCruise.action.success=
tutti.exportCruiseForSumatra.action.chooseFile=
tutti.exportCruiseForSumatra.action.success=
-tutti.exportCruiseForSumatra.choose.exportFile.default=
tutti.exportCruiseForSumatra.title.choose.exportFile=
-tutti.exportDb.closeDb=
-tutti.exportDb.createArchive=
-tutti.exportDb.openDb=
-tutti.exportDb.reloadApplication=
tutti.exportDb.step.closeDb=
tutti.exportDb.step.createArchive=
tutti.exportDb.step.openDb=
+tutti.exportDb.step.reloadApplication=
tutti.exportProgram.action.success=
tutti.exportProtocol.action.success=
tutti.fishingOperations.action.deleteFishingOperation.mnemonic=
@@ -1108,7 +1036,6 @@
tutti.flash.info.db.not.opened=
tutti.flash.info.db.opened=
tutti.flash.info.db.schema.updated=
-tutti.flash.info.db.schema.updating=
tutti.flash.info.programCreated=
tutti.flash.info.programSaved=
tutti.flash.info.protocolCreated=
@@ -1131,18 +1058,12 @@
tutti.help.mkDir.error=
tutti.i18n.deleteCache.error=
tutti.i18n.mkDir.error=
-tutti.importDb.openDb=
-tutti.importDb.step.backupDb=
tutti.importDb.step.check.dbContext=
tutti.importDb.step.checkSchemaVersion=
tutti.importDb.step.closeDb=
tutti.importDb.step.openDb=
tutti.importDb.step.unzipArchive=
tutti.importDb.step.will.migrateSchema=
-tutti.importDb.unzipArchive=
-tutti.importDbAtNextStart.step.backupDb=
-tutti.importDbAtNextStart.step.closeDb=
-tutti.importDbAtNextStart.step.reloadApplication=
tutti.importProtocol.action.success=
tutti.importPupitri.carrouselFile.extension=
tutti.importPupitri.carrouselFile.extension.description=
@@ -1153,9 +1074,6 @@
tutti.importPupitri.title=
tutti.importPupitri.trunkFile.extension=
tutti.importPupitri.trunkFile.extension.description=
-tutti.installDb.step.backupDb=
-tutti.installDb.step.closeDb=
-tutti.installDb.step.destroyDb=
tutti.label.tab.accidental=
tutti.label.tab.benthos=
tutti.label.tab.catches=
@@ -1325,11 +1243,6 @@
tutti.reinstallDb.step.backupDb=
tutti.reinstallDb.step.closeDb=
tutti.reinstallDb.step.reloadApplication=
-tutti.sampleCategoryModel.passwordDialog.error.message=
-tutti.sampleCategoryModel.passwordDialog.error.title=
-tutti.sampleCategoryModel.passwordDialog.message=
-tutti.sampleCategoryModel.passwordDialog.title=
-tutti.sampleOrder.caracteristicNotFound=
tutti.selectBenthos.title=
tutti.selectCruise.action.chooseCruiseExportFile=
tutti.selectCruise.action.chooseProgramExportFile=
@@ -1407,8 +1320,6 @@
tutti.splitBenthosBatch.field.category.tip=
tutti.splitBenthosBatch.field.sampleWeight=
tutti.splitBenthosBatch.field.sampleWeight.tip=
-tutti.splitBenthosBatch.field.species=
-tutti.splitBenthosBatch.field.speciesField.tip=
tutti.splitBenthosBatch.table.header.category=
tutti.splitBenthosBatch.table.header.selected=
tutti.splitBenthosBatch.table.header.weight=
@@ -1425,8 +1336,6 @@
tutti.splitSpeciesBatch.field.categoryField.tip=
tutti.splitSpeciesBatch.field.sampleWeight=
tutti.splitSpeciesBatch.field.sampleWeightField.tip=
-tutti.splitSpeciesBatch.field.species=
-tutti.splitSpeciesBatch.field.speciesField.tip=
tutti.splitSpeciesBatch.table.header.category=
tutti.splitSpeciesBatch.table.header.selected=
tutti.splitSpeciesBatch.table.header.weight=
@@ -1441,12 +1350,10 @@
tutti.updateApplication.message.success=
tutti.updateApplication.noUpdate=
tutti.updateApplication.title.success=
-tutti.validateCruise.action.export.all.chooseFile.defaultFile=
tutti.validateCruise.action.export.all.chooseFile.label=
tutti.validateCruise.action.export.all.chooseFile.title=
tutti.validateCruise.action.export.all.success=
tutti.validateCruise.action.export.all.tip=
-tutti.validateCruise.action.export.operation.chooseFile.defaultFile=
tutti.validateCruise.action.export.operation.chooseFile.label=
tutti.validateCruise.action.export.operation.chooseFile.title=
tutti.validateCruise.action.export.operation.success=
@@ -1499,4 +1406,3 @@
tutti.vesselUseFeatureTable.table.header.key=
tutti.vesselUseFeatureTable.table.header.value=
tutti.vesselUseFeatureTable.title=
-{handler.getInstallButtonMnemonic(model.isDbExist())}=
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-09-23 11:37:47 UTC (rev 1204)
+++ trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2013-09-23 12:20:59 UTC (rev 1205)
@@ -47,13 +47,8 @@
tutti.attachmentEditor.none.tip=Pas de pièce-jointes
tutti.attachmentEditor.saveAttachment.button=Enregistrer
tutti.attachmentEditor.saveAttachment.error.message=Erreur lors de l'enregistrement de la pièce jointe %1s dans le fichier %2s
-tutti.attachmentEditor.saveAttachment.fail.message=Une erreur est survenue lors de la sauvegarde du fichier
-tutti.attachmentEditor.saveAttachment.fail.title=Erreur de sauvegarde
tutti.attachmentEditor.saveAttachment.success.message=Le fichier %s a été sauvegardé sur votre machine
tutti.attachmentEditor.saveAttachment.title=Enregistrer la pièce-jointe
-tutti.attachmentEditor.saveAttachment.warning.help=Que voulez-vous faire ?<ul><li><strong>Non</strong> pour annuler la sauvegarde</li><li><strong>Oui</strong> pour écraser le fichier existant</li></ul>
-tutti.attachmentEditor.saveAttachment.warning.message=Vous êtes sur le point d'écraser un fichier existant
-tutti.attachmentEditor.saveAttachment.warning.title=Fichier existant
tutti.attachmentEditor.text=(%s)
tutti.attachmentEditor.title=Pièces jointes
tutti.caracteristicMapEditor.none.tip=Pas de caractéristiques
@@ -97,12 +92,9 @@
tutti.config.action.reload.actions=Recharger les actions
tutti.config.action.reload.application=Recharger l'application
tutti.config.action.reload.ui=Recharger l'interface graphique
-tutti.config.action.sampleOrder.tip=Réordonner les catégories d’échantillonnage
tutti.config.application=Configuration de l'application Tutti
tutti.config.category.applications=Application
tutti.config.category.applications.description=Application
-tutti.config.category.sampleCategoryModel=Catégories de captures
-tutti.config.category.sampleCategoryModel.description=Configurer les catégories de captures
tutti.config.category.technical=Technique
tutti.config.category.technical.description=Informations techniques
tutti.config.category.ui=Interface utilisateur
@@ -140,7 +132,6 @@
tutti.config.option.update.db.url.description=URL de mise à jour de la base de données
tutti.config.option.weights.rate.difference.totalAndSorted.description=Pourcentage de différence entre les Poids totaux VRAC triés et les poids totaux VRAC en dessous duquel on demande confirmation sur la saisie
tutti.config.parse.error=Erreur de parsing du fichier de configuration
-tutti.config.sampleOrder.title=Catégorie d'échantillonnage
tutti.config.save.error=Erreur lors de la sauvegarde de la configuration dans le fichier %s
tutti.config.title=Configuration
tutti.context.helpPage.notFound=La page d'aide %s n'a pas été trouvée
@@ -192,9 +183,9 @@
tutti.createBenthosBatch.field.species=Espèce du lot
tutti.createBenthosBatch.field.species.tip=Espèce du lot
tutti.createBenthosBatch.title=Créer un lot
-tutti.createBenthosMelag.comment.part1=Traitement issu d'un mélange composé de \:\n
-tutti.createBenthosMelag.comment.part2=- %skg de %s\n
-tutti.createBenthosMelag.comment.part3=avec un poids d'élévation de %skg
+tutti.createBenthosMelag.comment.part1=Traitement issu d'un mélange composé de \:
+tutti.createBenthosMelag.comment.part2=- %s%s de %s
+tutti.createBenthosMelag.comment.part3=avec un poids d'élévation de %s%s
tutti.createBenthosMelag.error.message=Erreur à la ligne %s \: le lot n'a pas de poids de sous échantillon ni de poids dans les mensurations
tutti.createBenthosMelag.error.title=Erreur
tutti.createIndividualObservationBatch.action.addSpecies=...
@@ -267,22 +258,17 @@
tutti.createSpeciesMelag.action.validate=Valider
tutti.createSpeciesMelag.action.validate.mnemonic=V
tutti.createSpeciesMelag.action.validate.tip=Valider la création du MELAG (mélange)
-tutti.createSpeciesMelag.comment.part1=Traitement issu d'un mélange composé de \:\n
-tutti.createSpeciesMelag.comment.part2=- %skg de %s\n
-tutti.createSpeciesMelag.comment.part3=avec un poids d'élévation de %skg
+tutti.createSpeciesMelag.comment.part1=Traitement issu d'un mélange composé de \:
+tutti.createSpeciesMelag.comment.part2=- %s%s de %s
+tutti.createSpeciesMelag.comment.part3=avec un poids d'élévation de %s%s
tutti.createSpeciesMelag.error.message=Erreur à la ligne %s \: le lot n'a pas de poids de sous échantillon ni de poids dans les mensurations
tutti.createSpeciesMelag.error.title=Erreur
-tutti.createSpeciesMelag.message=Combien pesait le MELAG (mélange) (kg) ?
-tutti.createSpeciesMelag.title=Poids du MELAG (mélange) (kg)
+tutti.createSpeciesMelag.message=Combien pesait le MELAG (mélange) (%s) ?
+tutti.createSpeciesMelag.title=Poids du MELAG (mélange) (%s)
tutti.dbMabager.title=Gérer les bases de données
tutti.dbManager.action.chooseDbBackupFile=Sauvegarder la base de données
tutti.dbManager.action.chooseDbExportFile=Exporter la base de données
tutti.dbManager.action.chooseDbFile=Choisir la base à importer
-tutti.dbManager.action.closeDb=Fermer la base
-tutti.dbManager.action.closeDb.mnemonic=F
-tutti.dbManager.action.closeDb.tip=Fermer la base en cours d'utilisation
-tutti.dbManager.action.exportAndCleanDb.mnemonic=s
-tutti.dbManager.action.exportAndCleanDb.tip=Exporter la base de données au format zip puis supprimer les fichiers de l'application
tutti.dbManager.action.exportDb=Exporter
tutti.dbManager.action.exportDb.mnemonic=x
tutti.dbManager.action.exportDb.tip=Exporter la base de données au format zip
@@ -290,7 +276,6 @@
tutti.dbManager.action.importDb.backup.db=Avant de pouvoir importer une nouvelle base, vous devez sauvegarder la base courante.
tutti.dbManager.action.importDb.mnemonic=i
tutti.dbManager.action.importDb.tip=Importer la base de données au format zip
-tutti.dbManager.action.importdb.backup.db=Avant de pouvoir importer une nouvelle base, vous devez sauvegarder la base courante.
tutti.dbManager.action.importdb.couldNotOpen=Impossible d'ouvrir la base importée
tutti.dbManager.action.importdb.no.backup.db.choosen=Import annulé (vous n'avez pas choisi de fichier de sauvegarde).
tutti.dbManager.action.importdb.no.import.file.choosen=Import annulé (vous n'avez pas choisi de fichier d'import).
@@ -306,7 +291,6 @@
tutti.dbManager.action.reinstallDb=Réinstaller
tutti.dbManager.action.reinstallDb.mnemonic=n
tutti.dbManager.action.reinstallDb.tip=Télécharger puis ré-installer la base de données
-tutti.dbManager.action.removeBatch.confirm.message=
tutti.dbManager.action.upgradeDb=Mettre à jour les référentiels
tutti.dbManager.action.upgradeDb.check=Recherche des mises à jour de la base
tutti.dbManager.action.upgradeDb.mnemonic=V
@@ -696,8 +680,6 @@
tutti.editIndividualObservationBatch.action.removeBatch.confirm.title=Suppression d'une observation individuelle
tutti.editIndividualObservationBatch.action.removeBatch.mnemonic=S
tutti.editIndividualObservationBatch.action.removeBatch.tip=Supprimer la ligne sélectionnée
-tutti.editIndividualObservationBatch.table.header.calcifiedPieceSamplingCode=
-tutti.editIndividualObservationBatch.table.header.calcifiedPieceSamplingCode.tip=Code de prélèvement pièce calcifiée
tutti.editIndividualObservationBatch.table.header.comment=Commentaire
tutti.editIndividualObservationBatch.table.header.comment.tip=Commentaire
tutti.editIndividualObservationBatch.table.header.file=Pièces jointes
@@ -706,8 +688,6 @@
tutti.editIndividualObservationBatch.table.header.lengthStepCaracteristic.tip=Classe de taille
tutti.editIndividualObservationBatch.table.header.otherCaracteristics=Autres caractéristiques
tutti.editIndividualObservationBatch.table.header.otherCaracteristics.tip=Autres caractéristiques
-tutti.editIndividualObservationBatch.table.header.samplingCode=
-tutti.editIndividualObservationBatch.table.header.samplingCode.tip=Code prélèvement autre
tutti.editIndividualObservationBatch.table.header.size=Taille
tutti.editIndividualObservationBatch.table.header.size.tip=Taille
tutti.editIndividualObservationBatch.table.header.species=Espèce
@@ -962,7 +942,6 @@
tutti.editSpeciesBatch.table.header.species=Espèce
tutti.editSpeciesBatch.table.header.toConfirm=A Confirmer
tutti.editSpeciesBatch.table.header.weight=Poids sous-échantillonné
-tutti.editSpeciesBatch.table.header.weight.tip=Poids sous-échantillonné
tutti.editSpeciesFrequencies.action.cancel=Annuler
tutti.editSpeciesFrequencies.action.cancel.mnemonic=A
tutti.editSpeciesFrequencies.action.cancel.tip=Annuler l'édition des mensurations
@@ -1006,7 +985,6 @@
tutti.editSpeciesFrequencies.table.header.lengthStep=Classe de taille
tutti.editSpeciesFrequencies.table.header.number=Nombre
tutti.editSpeciesFrequencies.table.header.weight=Poids observé
-tutti.editSpeciesFrequencies.table.header.weight.tip=Poids observé
tutti.editSpeciesFrequencies.title=Mensuration
tutti.error.about.could.not.reach.url=Récupération des versions de mises à jour impossible (l'url <strong>%s</strong> n'est pas joignable)
tutti.error.delete.startActionFile=Impossible de supprimer le fichier %s
@@ -1022,14 +1000,11 @@
tutti.exportCruise.action.success=La campagne <strong>%s</strong> a été exportée dans le fichier <strong>%s</strong>.
tutti.exportCruiseForSumatra.action.chooseFile=Choisir le fichier d'export
tutti.exportCruiseForSumatra.action.success=Les captures ont correctement été exporté dans le fichier %s
-tutti.exportCruiseForSumatra.choose.exportFile.default=sumatra_%s_%s
tutti.exportCruiseForSumatra.title.choose.exportFile=Exporter les captures de la campagne
-tutti.exportDb.closeDb=
-tutti.exportDb.createArchive=
-tutti.exportDb.reloadApplication=Redémarrage de l'application
tutti.exportDb.step.closeDb=Fermeture de la base courante
tutti.exportDb.step.createArchive=Création de l'archive %s
tutti.exportDb.step.openDb=Réouverture de la base courante
+tutti.exportDb.step.reloadApplication=Redémarrage de l'application
tutti.exportProgram.action.success=La série de campagne <strong>%s</strong> a été exportée dans le fichier <strong>%s</strong>.
tutti.exportProtocol.action.success=Protocole [%1s] exporté dans le fichier <strong>%2s</strong>.
tutti.fishingOperations.action.deleteFishingOperation.mnemonic=S
@@ -1099,7 +1074,6 @@
tutti.importPupitri.title=Import Pupitri
tutti.importPupitri.trunkFile.extension=tnk
tutti.importPupitri.trunkFile.extension.description=Fichier du trémie (.tnk)
-tutti.installDb.step.closeDb=Fermeture de la base <strong>%s</strong>
tutti.label.tab.accidental=Captures accidentelles
tutti.label.tab.benthos=Benthos
tutti.label.tab.catches=Captures
@@ -1346,12 +1320,9 @@
tutti.splitBenthosBatch.field.category.tip=Choisir le mode de catégorisation
tutti.splitBenthosBatch.field.sampleWeight=Poids total catégorisé
tutti.splitBenthosBatch.field.sampleWeight.tip=Somme des poids saisis ci-dessous
-tutti.splitBenthosBatch.field.species=Espèce
-tutti.splitBenthosBatch.field.speciesField.tip=Espèce du lot père
tutti.splitBenthosBatch.table.header.category=Catégorie
tutti.splitBenthosBatch.table.header.selected=Sélection
tutti.splitBenthosBatch.table.header.weight=Poids
-tutti.splitBenthosBatch.table.header.weight.tip=Poids
tutti.splitBenthosBatch.title=Catégorisation du lot
tutti.splitSpeciesBatch.action.cancel=Annuler
tutti.splitSpeciesBatch.action.cancel.mnemonic=A
@@ -1365,12 +1336,9 @@
tutti.splitSpeciesBatch.field.categoryField.tip=Choisir le mode de catégorisation
tutti.splitSpeciesBatch.field.sampleWeight=Poids total catégorisé
tutti.splitSpeciesBatch.field.sampleWeightField.tip=Somme des poids saisis ci-dessous
-tutti.splitSpeciesBatch.field.species=Espèce
-tutti.splitSpeciesBatch.field.speciesField.tip=Espèce du lot père
tutti.splitSpeciesBatch.table.header.category=Catégorie
tutti.splitSpeciesBatch.table.header.selected=Sélection
tutti.splitSpeciesBatch.table.header.weight=Poids
-tutti.splitSpeciesBatch.table.header.weight.tip=Poids
tutti.splitSpeciesBatch.title=Catégorisation du lot
tutti.timeeditor.H=H
tutti.update.db=Base de données
@@ -1438,4 +1406,3 @@
tutti.vesselUseFeatureTable.table.header.key=Caractéristique
tutti.vesselUseFeatureTable.table.header.value=Valeur
tutti.vesselUseFeatureTable.title=Autres paramètres
-{handler.getInstallButtonMnemonic(model.isDbExist())}=
1
0
Author: tchemit
Date: 2013-09-23 13:37:47 +0200 (Mon, 23 Sep 2013)
New Revision: 1204
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/1204
Log:
fixes #3293: Updates jaxx to 2.5.26
Modified:
trunk/pom.xml
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2013-09-23 09:39:50 UTC (rev 1203)
+++ trunk/pom.xml 2013-09-23 11:37:47 UTC (rev 1204)
@@ -131,7 +131,7 @@
<eugenePluginVersion>2.7</eugenePluginVersion>
<hibernateVersion>3.6.10.Final</hibernateVersion>
- <jaxxVersion>2.5.26-SNAPSHOT</jaxxVersion>
+ <jaxxVersion>2.5.26</jaxxVersion>
<swingXVersion>1.6.4</swingXVersion>
<xworkVersion>2.3.15.1</xworkVersion>
1
0
23 Sep '13
Author: tchemit
Date: 2013-09-23 11:39:50 +0200 (Mon, 23 Sep 2013)
New Revision: 1203
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/1203
Log:
fixes #3311: [MACRO-DECHET] Ajout du champs *Poids* sur l'?\195?\169cran de cr?\195?\169ation
fixes #3310: [CAPTURE] pouvoir choisir dans la configuration l'unit?\195?\169 de saisie des poids (esp?\195?\168ces benthos macro d?\195?\169chets) kg ou g et donc adapter les intitul?\195?\169s des colonnes
clean some code + fix doc typos...
Added:
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/WeightUnit.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/help/fr/editSampleCategory.html
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/config/TuttiApplicationConfig.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/config/TuttiApplicationConfigOption.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/category/EditSampleCategoryModelRowModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/config/TuttiConfigUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/ComputeWeightsAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/SaveCatchBatchAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/SelectedCategoryAble.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchRowModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchTableModel.java
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/create/CreateAccidentalBatchUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchRowModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchTableModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/create/CreateBenthosBatchUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/create/CreateBenthosBatchUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyRowModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyTableModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyUIModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/split/SplitBenthosBatchUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/split/SplitBenthosBatchUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/split/SplitBenthosBatchUIModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchRowModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchTableModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUIHandler.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/marinelitter/MarineLitterBatchRowModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/MarineLitterBatchTableModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/MarineLitterBatchUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/MarineLitterBatchUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/create/CreateMarineLitterBatchUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/create/CreateMarineLitterBatchUI.jaxx
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/create/CreateMarineLitterBatchUIModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/ImportPupitriAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchRowModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchTableModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/create/CreateSpeciesBatchUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/create/CreateSpeciesBatchUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyRowModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyTableModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/SplitSpeciesBatchUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/SplitSpeciesBatchUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/SplitSpeciesBatchUIModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiBeanUIModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/table/CaracteristicColumnIdentifier.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
trunk/tutti-ui-swing/src/test/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyRowModelTest.java
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-09-22 11:29:17 UTC (rev 1202)
+++ trunk/tutti-ui-swing/src/main/filtered-resources/tutti-help-en.properties 2013-09-23 09:39:50 UTC (rev 1203)
@@ -1,5 +1,5 @@
#Generated by org.nuiton.jaxx.plugin.GenerateHelpIdsMojo
-#Sat Sep 21 15:16:31 CEST 2013
+#Sun Sep 22 16:40:00 CEST 2013
tutti.config.help=config.html
tutti.createAccidentalBatch.action.cancel.help=editFishingOperation.html\#captureCapturesAccidentellesActions
tutti.createAccidentalBatch.action.saveAndClose.help=editFishingOperation.html\#captureCapturesAccidentellesActions
@@ -38,7 +38,9 @@
tutti.createMarineLitterBatch.action.saveAndContinue.help=editFishingOperation.html\#captureMacroDechetsActions
tutti.createMarineLitterBatch.field.marineLitterCategory.help=editFishingOperation.html\#captureMacroDechetsFields
tutti.createMarineLitterBatch.field.marineLitterSizeCategory.help=editFishingOperation.html\#captureMacroDechetsFields
+tutti.createMarineLitterBatch.field.marineLitterWeight.help=
tutti.createMarineLitterBatch.field.number.help=editFishingOperation.html\#captureMacroDechetsFields
+tutti.createMarineLitterBatch.field.weight.help=
tutti.createMarineLitterBatch.help=editFishingOperation.html\#captureMacroDechets
tutti.createSpeciesBatch.action.addSpecies.help=editFishingOperation.html\#captureEspecesCreeLotActions
tutti.createSpeciesBatch.action.cancel.help=editFishingOperation.html\#captureEspecesCreeLotActions
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-09-22 11:29:17 UTC (rev 1202)
+++ trunk/tutti-ui-swing/src/main/filtered-resources/tutti-help-fr.properties 2013-09-23 09:39:50 UTC (rev 1203)
@@ -1,5 +1,5 @@
#Generated by org.nuiton.jaxx.plugin.GenerateHelpIdsMojo
-#Sat Sep 21 15:16:31 CEST 2013
+#Sun Sep 22 16:40:00 CEST 2013
tutti.config.help=config.html
tutti.createAccidentalBatch.action.cancel.help=editFishingOperation.html\#captureCapturesAccidentellesActions
tutti.createAccidentalBatch.action.saveAndClose.help=editFishingOperation.html\#captureCapturesAccidentellesActions
@@ -37,7 +37,9 @@
tutti.createMarineLitterBatch.action.saveAndContinue.help=editFishingOperation.html\#captureMacroDechetsActions
tutti.createMarineLitterBatch.field.marineLitterCategory.help=editFishingOperation.html\#captureMacroDechetsFields
tutti.createMarineLitterBatch.field.marineLitterSizeCategory.help=editFishingOperation.html\#captureMacroDechetsFields
+tutti.createMarineLitterBatch.field.marineLitterWeight.help=
tutti.createMarineLitterBatch.field.number.help=editFishingOperation.html\#captureMacroDechetsFields
+tutti.createMarineLitterBatch.field.weight.help=
tutti.createMarineLitterBatch.help=editFishingOperation.html\#captureMacroDechets
tutti.createSpeciesBatch.action.addSpecies.help=editFishingOperation.html\#captureEspecesCreeLotActions
tutti.createSpeciesBatch.action.cancel.help=editFishingOperation.html\#captureEspecesCreeLotActions
Modified: trunk/tutti-ui-swing/src/main/help/fr/editSampleCategory.html
===================================================================
--- trunk/tutti-ui-swing/src/main/help/fr/editSampleCategory.html 2013-09-22 11:29:17 UTC (rev 1202)
+++ trunk/tutti-ui-swing/src/main/help/fr/editSampleCategory.html 2013-09-23 09:39:50 UTC (rev 1203)
@@ -1,3 +1,26 @@
+<!--
+ #%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%
+ -->
<!DOCTYPE html>
<html lang="fr">
Property changes on: trunk/tutti-ui-swing/src/main/help/fr/editSampleCategory.html
___________________________________________________________________
Modified: svn:keywords
- Author Date Id Revision
+ Author Date Id Revision HeadURL
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/config/TuttiApplicationConfig.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/config/TuttiApplicationConfig.java 2013-09-22 11:29:17 UTC (rev 1202)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/config/TuttiApplicationConfig.java 2013-09-23 09:39:50 UTC (rev 1203)
@@ -28,6 +28,7 @@
import fr.ifremer.tutti.TuttiTechnicalException;
import fr.ifremer.tutti.service.config.TuttiServiceConfig;
import fr.ifremer.tutti.service.config.TuttiServiceConfigOption;
+import fr.ifremer.tutti.ui.swing.util.WeightUnit;
import fr.ifremer.tutti.ui.swing.util.editor.CoordinateEditorType;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.builder.ReflectionToStringBuilder;
@@ -258,6 +259,26 @@
return applicationConfig.getOptionAsKeyStroke(TuttiApplicationConfigOption.SHORTCUT_CLOSE_POPUP.getKey());
}
+ public WeightUnit getSpeciesWeightUnit() {
+ return applicationConfig.getOption(WeightUnit.class, TuttiApplicationConfigOption.WEIGHT_UNIT_SPECIES.getKey());
+ }
+
+ public WeightUnit getBenthosWeightUnit() {
+ return applicationConfig.getOption(WeightUnit.class, TuttiApplicationConfigOption.WEIGHT_UNIT_BENTHOS.getKey());
+ }
+
+ public WeightUnit getMarineLitterWeightUnit() {
+ return applicationConfig.getOption(WeightUnit.class, TuttiApplicationConfigOption.WEIGHT_UNIT_MARINE_LITTER.getKey());
+ }
+
+ public WeightUnit getIndividualObservationWeightUnit() {
+ return applicationConfig.getOption(WeightUnit.class, TuttiApplicationConfigOption.WEIGHT_UNIT_INDIVIDUAL_OBSERVATION.getKey());
+ }
+
+ public WeightUnit getAccidentalCatchWeightUnit() {
+ return applicationConfig.getOption(WeightUnit.class, TuttiApplicationConfigOption.WEIGHT_UNIT_ACCIDENTAL_CATCH.getKey());
+ }
+
public KeyStroke getShortCut(String actionName) {
KeyStroke result = applicationConfig.getOptionAsKeyStroke(
"tutti.ui." + actionName);
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/config/TuttiApplicationConfigOption.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/config/TuttiApplicationConfigOption.java 2013-09-22 11:29:17 UTC (rev 1202)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/config/TuttiApplicationConfigOption.java 2013-09-23 09:39:50 UTC (rev 1203)
@@ -24,6 +24,7 @@
* #L%
*/
+import fr.ifremer.tutti.ui.swing.util.WeightUnit;
import fr.ifremer.tutti.ui.swing.util.editor.CoordinateEditorType;
import org.nuiton.config.ConfigOptionDef;
@@ -218,10 +219,45 @@
ADMIN_PASSWORD(
"tutti.admin.password",
- n_("tutti.config.option.ui.dateFormat.description"),
+ n_("tutti.config.option.ui.adminPassword.description"),
// "ifremer" by default
"ef399a6e6ec62c6e142440241a5b98f8",
String.class
+ ),
+
+ WEIGHT_UNIT_SPECIES(
+ "tutti.ui.weight.unit.species",
+ n_("tutti.config.option.ui.weight.unit.species.description"),
+ WeightUnit.KG.name(),
+ WeightUnit.class
+ ),
+
+ WEIGHT_UNIT_BENTHOS(
+ "tutti.ui.weight.unit.benthos",
+ n_("tutti.config.option.ui.weight.unit.benthos.description"),
+ WeightUnit.G.name(),
+ WeightUnit.class
+ ),
+
+ WEIGHT_UNIT_MARINE_LITTER(
+ "tutti.ui.weight.unit.marineLitter",
+ n_("tutti.config.option.ui.weight.unit.marineLitter.description"),
+ WeightUnit.KG.name(),
+ WeightUnit.class
+ ),
+
+ WEIGHT_UNIT_INDIVIDUAL_OBSERVATION(
+ "tutti.ui.weight.unit.individualObservation",
+ n_("tutti.config.option.ui.weight.unit.individualObservation.description"),
+ WeightUnit.G.name(),
+ WeightUnit.class
+ ),
+
+ WEIGHT_UNIT_ACCIDENTAL_CATCH(
+ "tutti.ui.weight.unit.accidentalCatch",
+ n_("tutti.config.option.ui.weight.unit.accidentalCatch.description"),
+ WeightUnit.KG.name(),
+ WeightUnit.class
);
/** Configuration key. */
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/category/EditSampleCategoryModelRowModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/category/EditSampleCategoryModelRowModel.java 2013-09-22 11:29:17 UTC (rev 1202)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/category/EditSampleCategoryModelRowModel.java 2013-09-23 09:39:50 UTC (rev 1203)
@@ -63,6 +63,10 @@
fromBean(entry);
}
+ //------------------------------------------------------------------------//
+ //-- AbstractTuttiBeanUIModel --//
+ //------------------------------------------------------------------------//
+
@Override
protected SampleCategoryModelEntry newEntity() {
return new SampleCategoryModelEntry();
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/config/TuttiConfigUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/config/TuttiConfigUIHandler.java 2013-09-22 11:29:17 UTC (rev 1202)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/config/TuttiConfigUIHandler.java 2013-09-23 09:39:50 UTC (rev 1203)
@@ -122,7 +122,7 @@
}
);
- // APPLICATION
+ // Application category
helper.addCategory(n_("tutti.config.category.applications"),
n_("tutti.config.category.applications.description"),
@@ -144,7 +144,7 @@
.setOptionRenderer(tuttiLocationTableCellComponent.getNewTableCellRenderer());
}
- // UI
+ // UI category
helper.addCategory(n_("tutti.config.category.ui"),
n_("tutti.config.category.ui.description"),
@@ -158,6 +158,19 @@
.addOption(TuttiApplicationConfigOption.DATE_FORMAT)
.addOption(TuttiApplicationConfigOption.COORDINATE_EDITOR_TYPE);
+ // Weight Unit category
+
+ helper.addCategory(n_("tutti.config.category.weightUnit"),
+ n_("tutti.config.category.weightUnit.description"),
+ CALLBACK_UI)
+ .addOption(TuttiApplicationConfigOption.WEIGHT_UNIT_SPECIES)
+ .addOption(TuttiApplicationConfigOption.WEIGHT_UNIT_BENTHOS)
+ .addOption(TuttiApplicationConfigOption.WEIGHT_UNIT_MARINE_LITTER)
+ .addOption(TuttiApplicationConfigOption.WEIGHT_UNIT_INDIVIDUAL_OBSERVATION)
+ .addOption(TuttiApplicationConfigOption.WEIGHT_UNIT_ACCIDENTAL_CATCH);
+
+ // Technical category
+
helper.addCategory(n_("tutti.config.category.technical"),
n_("tutti.config.category.technical.description"))
.addOption(TuttiServiceConfigOption.BASEDIR)
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationAction.java 2013-09-22 11:29:17 UTC (rev 1202)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationAction.java 2013-09-23 09:39:50 UTC (rev 1203)
@@ -462,7 +462,7 @@
editFishingOperationUIModel.setFishingOperation(bean);
- // update saisissuer selection
+ // update saisisseur selection
List<Person> saisisseur = editFishingOperationUIModel.getRecorderPerson();
ui.getRecorderPersonList().getHandler().setSelected(saisisseur);
@@ -581,7 +581,7 @@
}
}
- setCatch(bean,
+ setCatch(//bean,
attachments,
catchesUIModel,
catchBatchMonitor,
@@ -601,9 +601,9 @@
ui.getSpeciesTabContent().getHandler().selectFishingOperation(operationToLoad);
} catch (InvalidBatchModelException e) {
- // invalid sample category model
+ // invalid sample category model for species batches
if (log.isDebugEnabled()) {
- log.debug("Invalid sample category model", e);
+ log.debug("Invalid sample category model for species batches", e);
}
errorMessages.add(e.getMessage());
catchValid = false;
@@ -613,9 +613,9 @@
ui.getBenthosTabContent().getHandler().selectFishingOperation(operationToLoad);
} catch (InvalidBatchModelException e) {
- // invalid sample category model
+ // invalid sample category model for benthos batches
if (log.isDebugEnabled()) {
- log.debug("Invalid sample category model", e);
+ log.debug("Invalid sample category model for benthos batches", e);
}
errorMessages.add(e.getMessage());
catchValid = false;
@@ -632,7 +632,7 @@
} else {
// remove catch
- setCatch(bean,
+ setCatch(//bean,
Collections.<Attachment>emptyList(),
catchesUIModel,
catchBatchMonitor,
@@ -651,7 +651,7 @@
}
- protected void setCatch(FishingOperation bean,
+ protected void setCatch(//FishingOperation bean,
List<Attachment> attachments,
EditCatchesUIModel catchesUIModel,
TuttiBeanMonitor<EditCatchesUIModel> catchBatchMonitor,
@@ -664,9 +664,9 @@
getModel().setCatchNotFound(catchNotFound);
getModel().setSampleCatchModelValid(sampleModelValid);
- catchesUIModel.setCatchBatch(batch);
- catchesUIModel.setFishingOperation(bean);
- catchesUIModel.fromBean(batch);
+// catchesUIModel.setCatchBatch(batch);
+// catchesUIModel.setFishingOperation(bean);
+ catchesUIModel.fromEntity(batch);
catchesUIModel.addAllAttachment(attachments);
catchesUIModel.setModify(false);
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUIHandler.java 2013-09-22 11:29:17 UTC (rev 1202)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUIHandler.java 2013-09-23 09:39:50 UTC (rev 1203)
@@ -84,7 +84,11 @@
}
FishingOperationsUIModel model = new FishingOperationsUIModel();
- EditCatchesUIModel catchesUIModel = new EditCatchesUIModel();
+ EditCatchesUIModel catchesUIModel = new EditCatchesUIModel(
+ getConfig().getSpeciesWeightUnit(),
+ getConfig().getBenthosWeightUnit(),
+ getConfig().getMarineLitterWeightUnit(),
+ getConfig().getIndividualObservationWeightUnit());
// load existing cruise
Cruise cruise = getDataContext().getCruise();
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/ComputeWeightsAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/ComputeWeightsAction.java 2013-09-22 11:29:17 UTC (rev 1202)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/ComputeWeightsAction.java 2013-09-23 09:39:50 UTC (rev 1203)
@@ -57,6 +57,7 @@
super(handler, false);
}
+ //FIXME Do weightUnit conversion...
@Override
public void doAction() throws Exception {
PersistenceService persistenceService = getContext().getPersistenceService();
@@ -66,6 +67,10 @@
EditCatchesUIModel model = getModel();
model.setLoadingData(true);
+ // ---------
+ // Compute species batches
+ // ---------
+
BatchContainer<SpeciesBatch> computedSpeciesBatches;
Float totalSpeciesSortedWeight;
try {
@@ -89,6 +94,10 @@
throw e;
}
+ // ---------
+ // Compute benthos batches
+ // ---------
+
BatchContainer<BenthosBatch> computedBenthosBatches;
Float totalBenthosSortedWeight;
try {
@@ -112,6 +121,10 @@
throw e;
}
+ // ---------
+ // Compute marine litter batches
+ // ---------
+
BatchContainer<MarineLitterBatch> computedMarineLitterBatches;
try {
computedMarineLitterBatches =
@@ -124,6 +137,10 @@
throw e;
}
+ // ---------
+ // Check species rates
+ // ---------
+
Float rate = getConfig().getDifferenceRateBetweenSortedAndTotalWeights();
if (model.getSpeciesTotalSortedWeight() != null
&& model.getSpeciesTotalSortedWeight() >= totalSpeciesSortedWeight
@@ -153,6 +170,11 @@
model.setSpeciesTotalSortedComputedWeight(totalSpeciesSortedWeight);
}
}
+
+ // ---------
+ // Check benthos rates
+ // ---------
+
if (model.getBenthosTotalSortedWeight() != null
&& model.getBenthosTotalSortedWeight() >= totalBenthosSortedWeight
&& model.getBenthosTotalSortedWeight() < (1 + rate / 100) * totalBenthosSortedWeight) {
@@ -183,13 +205,13 @@
}
boolean modified = model.isModify();
- CatchBatch catchBatch = model.toBean();
+ CatchBatch catchBatch = model.toEntity();
tuttiWeightComputingService.computeCatchBatchWeights(catchBatch,
computedSpeciesBatches,
computedBenthosBatches,
computedMarineLitterBatches);
- model.setCatchBatch(catchBatch);
- model.fromBean(catchBatch);
+// model.setCatchBatch(catchBatch);
+ model.fromEntity(catchBatch);
model.setLoadingData(false);
model.setModify(modified);
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.css 2013-09-22 11:29:17 UTC (rev 1202)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.css 2013-09-23 09:39:50 UTC (rev 1203)
@@ -179,6 +179,7 @@
labelFor: {speciesTotalWeightField};
_strongStyle: true;
_help: {"tutti.editCatchBatch.field.speciesTotalWeight.help"};
+ _addWeightUnit: {handler.getConfig().getSpeciesWeightUnit()};
}
#speciesTotalWeightField {
@@ -191,6 +192,7 @@
toolTipText: {"tutti.editCatchBatch.field.speciesTotalSortedWeight.tip"};
labelFor: {speciesTotalSortedWeightField};
_help: {"tutti.editCatchBatch.field.speciesTotalSortedWeight.help"};
+ _addWeightUnit: {handler.getConfig().getSpeciesWeightUnit()};
}
#speciesTotalSortedWeightField {
@@ -203,6 +205,7 @@
toolTipText: {"tutti.editCatchBatch.field.speciesTotalSampleSortedWeight.tip"};
labelFor: {speciesTotalSampleSortedWeightField};
_help: {"tutti.editCatchBatch.field.speciesTotalSampleSortedWeight.help"};
+ _addWeightUnit: {handler.getConfig().getSpeciesWeightUnit()};
}
#speciesTotalSampleSortedWeightField {
@@ -215,6 +218,7 @@
toolTipText: {"tutti.editCatchBatch.field.speciesTotalUnsortedWeight.tip"};
labelFor: {speciesTotalUnsortedWeightField};
_help: {"tutti.editCatchBatch.field.speciesTotalUnsortedWeight.help"};
+ _addWeightUnit: {handler.getConfig().getSpeciesWeightUnit()};
}
#speciesTotalUnsortedWeightField {
@@ -236,6 +240,7 @@
labelFor: {benthosTotalWeightField};
_strongStyle: true;
_help: {"tutti.editCatchBatch.field.benthosTotalWeight.help"};
+ _addWeightUnit: {handler.getConfig().getBenthosWeightUnit()};
}
#benthosTotalWeightField {
@@ -248,6 +253,7 @@
toolTipText: {"tutti.editCatchBatch.field.benthosTotalSortedWeight.tip"};
labelFor: {benthosTotalSortedWeightField};
_help: {"tutti.editCatchBatch.field.benthosTotalSortedWeight.help"};
+ _addWeightUnit: {handler.getConfig().getBenthosWeightUnit()};
}
#benthosTotalSortedWeightField {
@@ -260,6 +266,7 @@
toolTipText: {"tutti.editCatchBatch.field.benthosTotalSampleSortedWeight.tip"};
labelFor: {benthosTotalSampleSortedWeightField};
_help: {"tutti.editCatchBatch.field.benthosTotalSampleSortedWeight.help"};
+ _addWeightUnit: {handler.getConfig().getBenthosWeightUnit()};
}
#benthosTotalSampleSortedWeightField {
@@ -272,6 +279,7 @@
toolTipText: {"tutti.editCatchBatch.field.benthosTotalUnsortedWeight.tip"};
labelFor: {benthosTotalUnsortedWeightField};
_help: {"tutti.editCatchBatch.field.benthosTotalUnsortedWeight.help"};
+ _addWeightUnit: {handler.getConfig().getBenthosWeightUnit()};
}
#benthosTotalUnsortedWeightField {
@@ -293,6 +301,7 @@
labelFor: {marineLitterTotalWeightField};
_strongStyle: true;
_help: {"tutti.editCatchBatch.field.marineLitterTotalWeight.help"};
+ _addWeightUnit: {handler.getConfig().getMarineLitterWeightUnit()};
}
#marineLitterTotalWeightField {
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIHandler.java 2013-09-22 11:29:17 UTC (rev 1202)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIHandler.java 2013-09-23 09:39:50 UTC (rev 1203)
@@ -58,6 +58,7 @@
import static org.nuiton.i18n.I18n.n_;
/**
+ * //FIXME Do weightUnit conversion...
* @author tchemit <chemit(a)codelutin.com>
* @since 0.3
*/
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIModel.java 2013-09-22 11:29:17 UTC (rev 1202)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIModel.java 2013-09-23 09:39:50 UTC (rev 1203)
@@ -28,6 +28,7 @@
import com.google.common.collect.HashMultimap;
import com.google.common.collect.Lists;
import com.google.common.collect.Multimap;
+import fr.ifremer.tutti.persistence.entities.TuttiBeanFactory;
import fr.ifremer.tutti.persistence.entities.data.AttachementObjectTypeEnum;
import fr.ifremer.tutti.persistence.entities.data.Attachment;
import fr.ifremer.tutti.persistence.entities.data.CatchBatch;
@@ -37,6 +38,7 @@
import fr.ifremer.tutti.ui.swing.util.AbstractTuttiBeanUIModel;
import fr.ifremer.tutti.ui.swing.util.TabContentModel;
import fr.ifremer.tutti.ui.swing.util.TuttiComputedOrNotData;
+import fr.ifremer.tutti.ui.swing.util.WeightUnit;
import fr.ifremer.tutti.ui.swing.util.attachment.AttachmentModelAware;
import org.apache.commons.collections.CollectionUtils;
import org.nuiton.util.beans.Binder;
@@ -109,7 +111,7 @@
protected FishingOperation fishingOperation;
- protected CatchBatch catchBatch;
+ protected final CatchBatch editObject = TuttiBeanFactory.newCatchBatch();
protected final List<Attachment> attachment = Lists.newArrayList();
@@ -131,8 +133,53 @@
protected boolean loadingData;
- public EditCatchesUIModel() {
+ /**
+ * Catch weight unit.
+ *
+ * @since 2.5
+ */
+ protected final WeightUnit catchWeightUnit;
+
+ /**
+ * Species weight unit.
+ *
+ * @since 2.5
+ */
+ protected final WeightUnit speciesWeightUnit;
+
+ /**
+ * Benthos weight unit.
+ *
+ * @since 2.5
+ */
+ protected final WeightUnit benthosWeightUnit;
+
+ /**
+ * Marine Litter weight unit.
+ *
+ * @since 2.5
+ */
+ protected final WeightUnit marineLitterWeightUnit;
+
+ /**
+ * Indivudual observation weight unit.
+ *
+ * @since 2.5
+ */
+ protected final WeightUnit individualObservationWeightUnit;
+
+ public EditCatchesUIModel(WeightUnit speciesWeightUnit,
+ WeightUnit benthosWeightUnit,
+ WeightUnit marineLitterWeightUnit,
+ WeightUnit individualObservationWeightUnit) {
super(CatchBatch.class, fromBeanBinder, toBeanBinder);
+ //FIXME See if this can be configurable or guess from other weightUnits
+ this.catchWeightUnit = WeightUnit.KG;
+ this.speciesWeightUnit = speciesWeightUnit;
+ this.benthosWeightUnit = benthosWeightUnit;
+ this.marineLitterWeightUnit = marineLitterWeightUnit;
+ this.individualObservationWeightUnit = individualObservationWeightUnit;
+
speciesTotalSortedComputedOrNotWeight.addPropagateListener(
PROPERTY_SPECIES_TOTAL_SORTED_WEIGHT, this);
speciesTotalInertComputedOrNotWeight.addPropagateListener(
@@ -171,10 +218,118 @@
@Override
protected CatchBatch newEntity() {
- return catchBatch;
+// return editObject;
+ return TuttiBeanFactory.newCatchBatch();
}
@Override
+ public void fromEntity(CatchBatch entity) {
+
+ Object oldObjectId = getObjectId();
+
+ super.fromEntity(entity);
+// setCatchBatch(entity);
+
+// Object oldValue = this.editObject;
+// Object oldObjectId = getObjectId();
+// this.editObject = entity;
+ firePropertyChange(PROPERTY_CATCH_BATCH, null, entity);
+ firePropertyChange(PROPERTY_OBJECT_ID, oldObjectId, getObjectId());
+
+ setFishingOperation(entity == null ? null : entity.getFishingOperation());
+
+ if (entity != null) {
+
+ // convert total weights
+
+ setCatchTotalComputedWeight(catchWeightUnit.fromEntity(entity.getCatchTotalComputedWeight()));
+ setCatchTotalRejectedComputedWeight(catchWeightUnit.fromEntity(entity.getCatchTotalRejectedComputedWeight()));
+ setCatchTotalRejectedWeight(catchWeightUnit.fromEntity(entity.getCatchTotalRejectedWeight()));
+ setCatchTotalSortedCarousselWeight(catchWeightUnit.fromEntity(entity.getCatchTotalSortedCarousselWeight()));
+ setCatchTotalSortedComputedWeight(catchWeightUnit.fromEntity(entity.getCatchTotalSortedComputedWeight()));
+ setCatchTotalSortedTremisWeight(catchWeightUnit.fromEntity(entity.getCatchTotalSortedTremisWeight()));
+ setCatchTotalUnsortedComputedWeight(catchWeightUnit.fromEntity(entity.getCatchTotalUnsortedComputedWeight()));
+ setCatchTotalWeight(catchWeightUnit.fromEntity(entity.getCatchTotalWeight()));
+
+ // convert species weights
+
+ setSpeciesTotalComputedWeight(speciesWeightUnit.fromEntity(entity.getSpeciesTotalComputedWeight()));
+ setSpeciesTotalInertComputedWeight(speciesWeightUnit.fromEntity(entity.getSpeciesTotalInertComputedWeight()));
+ setSpeciesTotalInertWeight(speciesWeightUnit.fromEntity(entity.getSpeciesTotalInertWeight()));
+ setSpeciesTotalLivingNotItemizedComputedWeight(speciesWeightUnit.fromEntity(entity.getSpeciesTotalLivingNotItemizedComputedWeight()));
+ setSpeciesTotalLivingNotItemizedWeight(speciesWeightUnit.fromEntity(entity.getSpeciesTotalLivingNotItemizedWeight()));
+ setSpeciesTotalSampleSortedComputedWeight(speciesWeightUnit.fromEntity(entity.getSpeciesTotalSampleSortedComputedWeight()));
+ setSpeciesTotalSortedComputedWeight(speciesWeightUnit.fromEntity(entity.getSpeciesTotalSortedComputedWeight()));
+ setSpeciesTotalSortedWeight(speciesWeightUnit.fromEntity(entity.getSpeciesTotalSortedWeight()));
+ setSpeciesTotalUnsortedComputedWeight(speciesWeightUnit.fromEntity(entity.getSpeciesTotalUnsortedComputedWeight()));
+
+ // convert benthos weights
+
+ setBenthosTotalComputedWeight(benthosWeightUnit.fromEntity(entity.getBenthosTotalComputedWeight()));
+ setBenthosTotalInertComputedWeight(benthosWeightUnit.fromEntity(entity.getBenthosTotalInertComputedWeight()));
+ setBenthosTotalInertWeight(benthosWeightUnit.fromEntity(entity.getBenthosTotalInertWeight()));
+ setBenthosTotalLivingNotItemizedComputedWeight(benthosWeightUnit.fromEntity(entity.getBenthosTotalLivingNotItemizedComputedWeight()));
+ setBenthosTotalLivingNotItemizedWeight(benthosWeightUnit.fromEntity(entity.getBenthosTotalLivingNotItemizedWeight()));
+ setBenthosTotalSampleSortedComputedWeight(benthosWeightUnit.fromEntity(entity.getBenthosTotalSampleSortedComputedWeight()));
+ setBenthosTotalSortedComputedWeight(benthosWeightUnit.fromEntity(entity.getBenthosTotalSortedComputedWeight()));
+ setBenthosTotalSortedWeight(benthosWeightUnit.fromEntity(entity.getBenthosTotalSortedWeight()));
+ setBenthosTotalUnsortedComputedWeight(benthosWeightUnit.fromEntity(entity.getBenthosTotalUnsortedComputedWeight()));
+
+ // convert marine litter weights
+
+ setMarineLitterTotalComputedWeight(marineLitterWeightUnit.fromEntity(entity.getMarineLitterTotalComputedWeight()));
+ setMarineLitterTotalWeight(marineLitterWeightUnit.fromEntity(entity.getMarineLitterTotalWeight()));
+ }
+ }
+
+ @Override
+ public CatchBatch toEntity() {
+ CatchBatch result = super.toEntity();
+
+ // convert total weights
+
+ result.setCatchTotalComputedWeight(catchWeightUnit.toEntity(getCatchTotalComputedWeight()));
+ result.setCatchTotalRejectedComputedWeight(catchWeightUnit.toEntity(getCatchTotalRejectedComputedWeight()));
+ result.setCatchTotalRejectedWeight(catchWeightUnit.toEntity(getCatchTotalRejectedWeight()));
+ result.setCatchTotalSortedCarousselWeight(catchWeightUnit.toEntity(getCatchTotalSortedCarousselWeight()));
+ result.setCatchTotalSortedComputedWeight(catchWeightUnit.toEntity(getCatchTotalSortedComputedWeight()));
+ result.setCatchTotalSortedTremisWeight(catchWeightUnit.toEntity(getCatchTotalSortedTremisWeight()));
+ result.setCatchTotalUnsortedComputedWeight(catchWeightUnit.toEntity(getCatchTotalUnsortedComputedWeight()));
+ result.setCatchTotalWeight(catchWeightUnit.toEntity(getCatchTotalWeight()));
+
+ // convert species weights
+
+ result.setSpeciesTotalComputedWeight(speciesWeightUnit.toEntity(getSpeciesTotalComputedWeight()));
+ result.setSpeciesTotalInertComputedWeight(speciesWeightUnit.toEntity(getSpeciesTotalInertComputedWeight()));
+ result.setSpeciesTotalInertWeight(speciesWeightUnit.toEntity(getSpeciesTotalInertWeight()));
+ result.setSpeciesTotalLivingNotItemizedComputedWeight(speciesWeightUnit.toEntity(getSpeciesTotalLivingNotItemizedComputedWeight()));
+ result.setSpeciesTotalLivingNotItemizedWeight(speciesWeightUnit.toEntity(getSpeciesTotalLivingNotItemizedWeight()));
+ result.setSpeciesTotalSampleSortedComputedWeight(speciesWeightUnit.toEntity(getSpeciesTotalSampleSortedComputedWeight()));
+ result.setSpeciesTotalSortedComputedWeight(speciesWeightUnit.toEntity(getSpeciesTotalSortedComputedWeight()));
+ result.setSpeciesTotalSortedWeight(speciesWeightUnit.toEntity(getSpeciesTotalSortedWeight()));
+ result.setSpeciesTotalUnsortedComputedWeight(speciesWeightUnit.toEntity(getSpeciesTotalUnsortedComputedWeight()));
+
+ // convert benthos weights
+
+ result.setBenthosTotalComputedWeight(benthosWeightUnit.toEntity(getBenthosTotalComputedWeight()));
+ result.setBenthosTotalInertComputedWeight(benthosWeightUnit.toEntity(getBenthosTotalInertComputedWeight()));
+ result.setBenthosTotalInertWeight(benthosWeightUnit.toEntity(getBenthosTotalInertWeight()));
+ result.setBenthosTotalLivingNotItemizedComputedWeight(benthosWeightUnit.toEntity(getBenthosTotalLivingNotItemizedComputedWeight()));
+ result.setBenthosTotalLivingNotItemizedWeight(benthosWeightUnit.toEntity(getBenthosTotalLivingNotItemizedWeight()));
+ result.setBenthosTotalSampleSortedComputedWeight(benthosWeightUnit.toEntity(getBenthosTotalSampleSortedComputedWeight()));
+ result.setBenthosTotalSortedComputedWeight(benthosWeightUnit.toEntity(getBenthosTotalSortedComputedWeight()));
+ result.setBenthosTotalSortedWeight(benthosWeightUnit.toEntity(getBenthosTotalSortedWeight()));
+ result.setBenthosTotalUnsortedComputedWeight(benthosWeightUnit.toEntity(getBenthosTotalUnsortedComputedWeight()));
+
+ // convert marine litter weights
+
+ result.setMarineLitterTotalComputedWeight(marineLitterWeightUnit.toEntity(getMarineLitterTotalComputedWeight()));
+ result.setMarineLitterTotalWeight(marineLitterWeightUnit.toEntity(getMarineLitterTotalWeight()));
+
+ return result;
+ }
+
+ @Override
public boolean isEmpty() {
return getCatchTotalWeight() == null
&& getCatchTotalRejectedWeight() == null
@@ -186,18 +341,18 @@
return null;
}
- public CatchBatch getCatchBatch() {
- return catchBatch;
- }
+// public CatchBatch getCatchBatch() {
+// return editObject;
+// }
+//
+// public void setCatchBatch(CatchBatch catchBatch) {
+// Object oldValue = this.editObject;
+// Object oldObjectId = getObjectId();
+// this.editObject = catchBatch;
+// firePropertyChange(PROPERTY_CATCH_BATCH, oldValue, catchBatch);
+// firePropertyChange(PROPERTY_OBJECT_ID, oldObjectId, getObjectId());
+// }
- public void setCatchBatch(CatchBatch catchBatch) {
- Object oldValue = getCatchBatch();
- Object oldObjectId = getObjectId();
- this.catchBatch = catchBatch;
- firePropertyChange(PROPERTY_CATCH_BATCH, oldValue, catchBatch);
- firePropertyChange(PROPERTY_OBJECT_ID, oldObjectId, getObjectId());
- }
-
@Override
public FishingOperation getFishingOperation() {
return fishingOperation;
@@ -645,7 +800,7 @@
@Override
public Integer getObjectId() {
- return catchBatch == null ? null : catchBatch.getIdAsInt();
+ return editObject == null ? null : editObject.getIdAsInt();
}
@Override
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/SaveCatchBatchAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/SaveCatchBatchAction.java 2013-09-22 11:29:17 UTC (rev 1202)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/SaveCatchBatchAction.java 2013-09-23 09:39:50 UTC (rev 1203)
@@ -82,7 +82,7 @@
PersistenceService persistenceService =
getContext().getPersistenceService();
- CatchBatch catchBatch = beanToSave.toBean();
+ CatchBatch catchBatch = beanToSave.toEntity();
if (log.isInfoEnabled()) {
log.info("FishingOperation " + catchBatch.getId() +
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/SelectedCategoryAble.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/SelectedCategoryAble.java 2013-09-22 11:29:17 UTC (rev 1202)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/SelectedCategoryAble.java 2013-09-23 09:39:50 UTC (rev 1203)
@@ -1,5 +1,29 @@
package fr.ifremer.tutti.ui.swing.content.operation.catches;
+/*
+ * #%L
+ * Tutti :: UI
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2012 - 2013 Ifremer
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/gpl-3.0.html>.
+ * #L%
+ */
+
import fr.ifremer.tutti.persistence.entities.data.SampleCategoryModelEntry;
/**
Property changes on: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/SelectedCategoryAble.java
___________________________________________________________________
Modified: svn:keywords
- Author Date Id Revision
+ Author Date Id Revision HeadURL
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchRowModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchRowModel.java 2013-09-22 11:29:17 UTC (rev 1202)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchRowModel.java 2013-09-23 09:39:50 UTC (rev 1203)
@@ -35,6 +35,7 @@
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 fr.ifremer.tutti.ui.swing.util.WeightUnit;
import fr.ifremer.tutti.ui.swing.util.attachment.AttachmentModelAware;
import fr.ifremer.tutti.ui.swing.util.caracteristics.CaracteristicMapColumnRowModel;
import org.nuiton.util.beans.Binder;
@@ -69,6 +70,13 @@
*/
protected final List<Attachment> attachment = Lists.newArrayList();
+ /**
+ * Weight unit.
+ *
+ * @since 2.5
+ */
+ protected final WeightUnit weightUnit;
+
protected static final Binder<AccidentalBatch, AccidentalBatchRowModel> fromBeanBinder =
BinderFactory.newBinder(AccidentalBatch.class,
AccidentalBatchRowModel.class);
@@ -77,20 +85,43 @@
BinderFactory.newBinder(AccidentalBatchRowModel.class,
AccidentalBatch.class);
- public AccidentalBatchRowModel() {
+ public AccidentalBatchRowModel(WeightUnit weightUnit) {
super(AccidentalBatch.class, fromBeanBinder, toBeanBinder);
+ this.weightUnit = weightUnit;
}
- public AccidentalBatchRowModel(AccidentalBatch aBatch) {
- this();
- fromBean(aBatch);
+ public AccidentalBatchRowModel(WeightUnit weightUnit,
+ AccidentalBatch entity) {
+ this(weightUnit);
+ fromEntity(entity);
}
+ //------------------------------------------------------------------------//
+ //-- AbstractTuttiBeanUIModel --//
+ //------------------------------------------------------------------------//
+
@Override
protected AccidentalBatch newEntity() {
return TuttiBeanFactory.newAccidentalBatch();
}
+ @Override
+ public void fromEntity(AccidentalBatch entity) {
+ super.fromEntity(entity);
+
+ // convert weight
+ setWeight(weightUnit.fromEntity(getWeight()));
+ }
+
+ @Override
+ public AccidentalBatch toEntity() {
+ AccidentalBatch result = super.toEntity();
+
+ // convert weight
+ result.setWeight(weightUnit.toEntity(getWeight()));
+ return result;
+ }
+
//------------------------------------------------------------------------//
//-- AccidentalBatch --//
//------------------------------------------------------------------------//
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchTableModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchTableModel.java 2013-09-22 11:29:17 UTC (rev 1202)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchTableModel.java 2013-09-23 09:39:50 UTC (rev 1203)
@@ -25,6 +25,7 @@
*/
import fr.ifremer.tutti.ui.swing.content.operation.catches.individualobservation.IndividualObservationBatchRowModel;
+import fr.ifremer.tutti.ui.swing.util.WeightUnit;
import fr.ifremer.tutti.ui.swing.util.table.AbstractTuttiTableModel;
import fr.ifremer.tutti.ui.swing.util.table.ColumnIdentifier;
import org.jdesktop.swingx.table.TableColumnModelExt;
@@ -84,16 +85,23 @@
n_("tutti.editAccidentalBatch.table.header.file"),
n_("tutti.editAccidentalBatch.table.header.file.tip"));
+ /**
+ * Weight unit.
+ *
+ * @since 2.5
+ */
+ protected final WeightUnit weightUnit;
- public AccidentalBatchTableModel(TableColumnModelExt columnModel) {
+ public AccidentalBatchTableModel(WeightUnit weightUnit,
+ TableColumnModelExt columnModel) {
super(columnModel, false, false);
-
+ this.weightUnit = weightUnit;
setNoneEditableCols();
}
@Override
public AccidentalBatchRowModel createNewRow() {
- AccidentalBatchRowModel result = new AccidentalBatchRowModel();
+ AccidentalBatchRowModel result = new AccidentalBatchRowModel(weightUnit);
// by default empty row is not valid
result.setValid(false);
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-09-22 11:29:17 UTC (rev 1202)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchUIHandler.java 2013-09-23 09:39:50 UTC (rev 1203)
@@ -45,6 +45,7 @@
import fr.ifremer.tutti.ui.swing.util.TuttiBeanMonitor;
import fr.ifremer.tutti.ui.swing.util.TuttiUI;
import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil;
+import fr.ifremer.tutti.ui.swing.util.WeightUnit;
import fr.ifremer.tutti.ui.swing.util.attachment.AttachmentCellEditor;
import fr.ifremer.tutti.ui.swing.util.attachment.AttachmentCellRenderer;
import fr.ifremer.tutti.ui.swing.util.caracteristics.CaracteristicMapCellComponent;
@@ -87,6 +88,13 @@
protected ValidationService validationService = getContext().getValidationService();
+ /**
+ * Weight unit.
+ *
+ * @since 2.5
+ */
+ protected final WeightUnit weightUnit;
+
public AccidentalBatchUIHandler(TuttiUI<?, ?> parentUi,
AccidentalBatchUI ui) {
super(parentUi, ui,
@@ -99,6 +107,8 @@
AccidentalBatchRowModel.PROPERTY_CARACTERISTICS,
AccidentalBatchRowModel.PROPERTY_COMMENT,
AccidentalBatchRowModel.PROPERTY_ATTACHMENT);
+
+ weightUnit = getConfig().getAccidentalCatchWeightUnit();
}
//------------------------------------------------------------------------//
@@ -143,7 +153,7 @@
protected AccidentalBatchRowModel loadBatch(AccidentalBatch aBatch) {
AccidentalBatchRowModel newRow =
- new AccidentalBatchRowModel(aBatch);
+ new AccidentalBatchRowModel(weightUnit, aBatch);
List<Attachment> attachments =
persistenceService.getAllAttachments(newRow.getObjectType(),
@@ -330,12 +340,12 @@
}
-
{ // Weight column
addFloatColumnToModel(columnModel,
AccidentalBatchTableModel.WEIGHT,
- TuttiUI.DECIMAL3_PATTERN);
+ TuttiUI.DECIMAL3_PATTERN,
+ weightUnit);
}
{ // Size column
@@ -392,7 +402,7 @@
// create table model
AccidentalBatchTableModel tableModel =
- new AccidentalBatchTableModel(columnModel);
+ new AccidentalBatchTableModel(weightUnit, columnModel);
table.setModel(tableModel);
table.setColumnModel(columnModel);
@@ -434,6 +444,7 @@
//------------------------------------------------------------------------//
//-- Public methods --//
//------------------------------------------------------------------------//
+
public void createBatch() {
EditCatchesUI parent = SwingUtil.getParentContainer(ui, EditCatchesUI.class);
@@ -488,20 +499,20 @@
protected void saveRow(AccidentalBatchRowModel row) {
- AccidentalBatch catchBean = row.toBean();
+ AccidentalBatch entityToSave = row.toEntity();
FishingOperation fishingOperation = getModel().getFishingOperation();
- catchBean.setFishingOperation(fishingOperation);
+ entityToSave.setFishingOperation(fishingOperation);
if (log.isDebugEnabled()) {
log.debug("Selected fishingOperation: " + fishingOperation.getId());
}
- if (TuttiEntities.isNew(catchBean)) {
+ if (TuttiEntities.isNew(entityToSave)) {
- persistenceService.createAccidentalBatch(catchBean);
- row.setId(catchBean.getId());
+ persistenceService.createAccidentalBatch(entityToSave);
+ row.setId(entityToSave.getId());
} else {
- persistenceService.saveAccidentalBatch(catchBean);
+ persistenceService.saveAccidentalBatch(entityToSave);
}
getModel().fireBatchUpdated(row);
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-09-22 11:29:17 UTC (rev 1202)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/create/CreateAccidentalBatchUI.css 2013-09-23 09:39:50 UTC (rev 1203)
@@ -64,6 +64,7 @@
toolTipText: "tutti.createAccidentalBatch.field.accidentalWeight.tip";
labelFor: {accidentalWeightField};
_help: {"tutti.createAccidentalBatch.field.accidentalWeight.help"};
+ _addWeightUnit: {handler.getConfig().getAccidentalCatchWeightUnit()};
}
#accidentalWeightField {
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchRowModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchRowModel.java 2013-09-22 11:29:17 UTC (rev 1202)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchRowModel.java 2013-09-23 09:39:50 UTC (rev 1203)
@@ -24,6 +24,7 @@
* #L%
*/
+import com.google.common.base.Preconditions;
import com.google.common.collect.Lists;
import fr.ifremer.tutti.persistence.entities.TuttiBeanFactory;
import fr.ifremer.tutti.persistence.entities.data.AttachementObjectTypeEnum;
@@ -40,6 +41,7 @@
import fr.ifremer.tutti.ui.swing.util.AbstractTuttiBeanUIModel;
import fr.ifremer.tutti.ui.swing.util.TuttiComputedOrNotData;
import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil;
+import fr.ifremer.tutti.ui.swing.util.WeightUnit;
import fr.ifremer.tutti.ui.swing.util.attachment.AttachmentModelAware;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.ObjectUtils;
@@ -168,8 +170,20 @@
*/
protected List<BenthosBatchRowModel> childBatch;
+ /**
+ * Model of sample categories.
+ *
+ * @since 2.4
+ */
protected final SampleCategoryModel sampleCategoryModel;
+ /**
+ * Weight unit.
+ *
+ * @since 2.5
+ */
+ protected final WeightUnit weightUnit;
+
protected static final Binder<BenthosBatch, BenthosBatchRowModel> fromBeanBinder =
BinderFactory.newBinder(BenthosBatch.class,
BenthosBatchRowModel.class);
@@ -178,8 +192,10 @@
BinderFactory.newBinder(BenthosBatchRowModel.class,
BenthosBatch.class);
- public BenthosBatchRowModel(SampleCategoryModel sampleCategoryModel) {
+ public BenthosBatchRowModel(WeightUnit weightUnit,
+ SampleCategoryModel sampleCategoryModel) {
super(BenthosBatch.class, fromBeanBinder, toBeanBinder);
+ this.weightUnit = weightUnit;
this.sampleCategoryModel = sampleCategoryModel;
categories = new SampleCategory[sampleCategoryModel.getNbSampling()];
@@ -196,22 +212,61 @@
computedOrNotNumber.addPropagateListener(PROPERTY_COMPUTED_NUMBER, this);
}
- public BenthosBatchRowModel(SampleCategoryModel sampleCategoryModel,
- BenthosBatch aBatch,
+
+ public BenthosBatchRowModel(WeightUnit weightUnit,
+ SampleCategoryModel sampleCategoryModel,
+ BenthosBatch entity,
List<BenthosBatchFrequency> frequencies) {
- this(sampleCategoryModel);
- fromBean(aBatch);
+ this(weightUnit, sampleCategoryModel);
+
+ fromEntity(entity);
+
List<BenthosFrequencyRowModel> frequencyRows =
- BenthosFrequencyRowModel.fromBeans(frequencies);
+ BenthosFrequencyRowModel.fromEntity(weightUnit,
+ frequencies);
frequency.addAll(frequencyRows);
Collections.sort(frequency);
}
+ //------------------------------------------------------------------------//
+ //-- AbstractTuttiBeanUIModel --//
+ //------------------------------------------------------------------------//
+
@Override
protected BenthosBatch newEntity() {
return TuttiBeanFactory.newBenthosBatch();
}
+ @Override
+ public void fromEntity(BenthosBatch entity) {
+ super.fromEntity(entity);
+
+ // convert weight
+ setWeight(weightUnit.fromEntity(getWeight()));
+ }
+
+ @Override
+ public BenthosBatch toEntity() {
+ BenthosBatch result = super.toEntity();
+
+ // convert weight
+ result.setWeight(weightUnit.toEntity(getWeight()));
+
+ SampleCategory<?> sampleCategory = getFinestCategory();
+ Preconditions.checkNotNull(sampleCategory);
+ Preconditions.checkNotNull(sampleCategory.getCategoryId());
+ Preconditions.checkNotNull(sampleCategory.getCategoryValue());
+
+ // apply sample category
+ result.setSampleCategoryId(sampleCategory.getCategoryId());
+ result.setSampleCategoryValue(sampleCategory.getCategoryValue());
+
+ // convert sample category weight
+ Float categoryWeight = sampleCategory.getCategoryWeight();
+ result.setSampleCategoryWeight(weightUnit.toEntity(categoryWeight));
+ return result;
+ }
+
//------------------------------------------------------------------------//
//-- SampleCategoryAble --//
//------------------------------------------------------------------------//
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchTableModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchTableModel.java 2013-09-22 11:29:17 UTC (rev 1202)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchTableModel.java 2013-09-23 09:39:50 UTC (rev 1203)
@@ -29,6 +29,7 @@
import fr.ifremer.tutti.persistence.entities.data.SampleCategoryModel;
import fr.ifremer.tutti.persistence.entities.referential.Species;
import fr.ifremer.tutti.ui.swing.content.operation.catches.SampleCategoryColumnIdentifier;
+import fr.ifremer.tutti.ui.swing.util.WeightUnit;
import fr.ifremer.tutti.ui.swing.util.table.AbstractTuttiTableModel;
import fr.ifremer.tutti.ui.swing.util.table.ColumnIdentifier;
import org.apache.commons.logging.Log;
@@ -97,11 +98,25 @@
*/
protected final Set<SampleCategoryColumnIdentifier<BenthosBatchRowModel>> sampleCols;
+ /**
+ * Sample categories model.
+ *
+ * @since 2.4
+ */
protected final SampleCategoryModel sampleCategoryModel;
- public BenthosBatchTableModel(SampleCategoryModel sampleCategoryModel,
+ /**
+ * Weight unit.
+ *
+ * @since 2.5
+ */
+ protected final WeightUnit weightUnit;
+
+ public BenthosBatchTableModel(WeightUnit weightUnit,
+ SampleCategoryModel sampleCategoryModel,
TableColumnModelExt columnModel) {
super(columnModel, false, false);
+ this.weightUnit = weightUnit;
this.sampleCategoryModel = sampleCategoryModel;
setNoneEditableCols(SPECIES);
@@ -124,7 +139,8 @@
@Override
public BenthosBatchRowModel createNewRow() {
- BenthosBatchRowModel result = new BenthosBatchRowModel(sampleCategoryModel);
+ BenthosBatchRowModel result =
+ new BenthosBatchRowModel(weightUnit, sampleCategoryModel);
// by default empty row is not valid
result.setValid(false);
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchUI.css 2013-09-22 11:29:17 UTC (rev 1202)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchUI.css 2013-09-23 09:39:50 UTC (rev 1203)
@@ -52,29 +52,12 @@
borderPainted: false;
}
-#importMultiPostButton {
- actionIcon: import;
- text: "tutti.editBenthosBatch.action.importMultiPost";
- toolTipText: "tutti.editBenthosBatch.action.importMultiPost.tip";
- i18nMnemonic: "tutti.editBenthosBatch.action.importMultiPost.mnemonic";
- _tuttiAction: {ImportMultiPostAction.class};
- _help: {"tutti.editBenthosBatch.action.importMultiPost.help"};
-}
-
-#exportMultiPostButton {
- actionIcon: export;
- text: "tutti.editBenthosBatch.action.exportMultiPost";
- toolTipText: "tutti.editBenthosBatch.action.exportMultiPost.tip";
- i18nMnemonic: "tutti.editBenthosBatch.action.exportMultiPost.mnemonic";
- _tuttiAction: {ExportMultiPostAction.class};
- _help: {"tutti.editBenthosBatch.action.exportMultiPost.help"};
-}
-
#benthosTotalWeightLabel {
text: "tutti.editBenthosBatch.field.benthosTotalWeight";
toolTipText: "tutti.editBenthosBatch.field.benthosTotalWeight.tip";
labelFor: {benthosTotalWeightField};
_help: {"tutti.editBenthosBatch.field.benthosTotalWeight.help"};
+ _addWeightUnit: {handler.getConfig().getBenthosWeightUnit()};
}
#benthosTotalWeightField {
@@ -87,6 +70,7 @@
toolTipText: "tutti.editBenthosBatch.field.benthosTotalSortedWeight.tip";
labelFor: {benthosTotalSortedWeightField};
_help: {"tutti.editBenthosBatch.field.benthosTotalSortedWeight.help"};
+ _addWeightUnit: {handler.getConfig().getBenthosWeightUnit()};
}
#benthosTotalSortedWeightField {
@@ -99,6 +83,7 @@
toolTipText: "tutti.editBenthosBatch.field.benthosTotalSampleSortedWeight.tip";
labelFor: {benthosTotalSampleSortedWeightField};
_help: {"tutti.editBenthosBatch.field.benthosTotalSampleSortedWeight.help"};
+ _addWeightUnit: {handler.getConfig().getBenthosWeightUnit()};
}
#benthosTotalSampleSortedWeightField {
@@ -111,6 +96,7 @@
toolTipText: "tutti.editBenthosBatch.field.benthosTotalUnsortedWeight.tip";
labelFor: {benthosTotalUnsortedWeightField};
_help: {"tutti.editBenthosBatch.field.benthosTotalUnsortedWeight.help"};
+ _addWeightUnit: {handler.getConfig().getBenthosWeightUnit()};
}
#benthosTotalUnsortedWeightField {
@@ -123,6 +109,7 @@
toolTipText: "tutti.editBenthosBatch.field.benthosTotalInertWeight.tip";
labelFor: {benthosTotalInertWeightField};
_help: {"tutti.editBenthosBatch.field.benthosTotalInertWeight.help"};
+ _addWeightUnit: {handler.getConfig().getBenthosWeightUnit()};
}
#benthosTotalInertWeightField {
@@ -135,6 +122,7 @@
toolTipText: "tutti.editBenthosBatch.field.benthosTotalLivingNotItemizedWeight.tip";
labelFor: {benthosTotalLivingNotItemizedWeightField};
_help: {"tutti.editBenthosBatch.field.benthosTotalLivingNotItemizedWeight.help"};
+ _addWeightUnit: {handler.getConfig().getBenthosWeightUnit()};
}
#benthosTotalLivingNotItemizedWeightField {
@@ -238,6 +226,33 @@
_help: {"tutti.editBenthosBatch.action.createMelag.help"};
}
+#editFrequenciesMenu {
+ actionIcon: show-frequency;
+ text: "tutti.editBenthosBatch.action.editFrequencies";
+ toolTipText: "tutti.editBenthosBatch.action.editFrequencies.tip";
+ i18nMnemonic: "tutti.editBenthosBatch.action.editFrequencies.mnemonic";
+ enabled: {model.isTableViewModeAll() && model.isEditFrequenciesEnabled()};
+ _help: {"tutti.editBenthosBatch.action.editFrequencies.help"};
+}
+
+#importMultiPostButton {
+ actionIcon: import;
+ text: "tutti.editBenthosBatch.action.importMultiPost";
+ toolTipText: "tutti.editBenthosBatch.action.importMultiPost.tip";
+ i18nMnemonic: "tutti.editBenthosBatch.action.importMultiPost.mnemonic";
+ _tuttiAction: {ImportMultiPostAction.class};
+ _help: {"tutti.editBenthosBatch.action.importMultiPost.help"};
+}
+
+#exportMultiPostButton {
+ actionIcon: export;
+ text: "tutti.editBenthosBatch.action.exportMultiPost";
+ toolTipText: "tutti.editBenthosBatch.action.exportMultiPost.tip";
+ i18nMnemonic: "tutti.editBenthosBatch.action.exportMultiPost.mnemonic";
+ _tuttiAction: {ExportMultiPostAction.class};
+ _help: {"tutti.editBenthosBatch.action.exportMultiPost.help"};
+}
+
#createBenthosBatchButton {
actionIcon: batch-create;
text: "tutti.editBenthosBatch.action.createBatch";
@@ -246,12 +261,3 @@
enabled: {model.isCreateBatchEnabled()};
_help: {"tutti.editBenthosBatch.action.createBatch.help"};
}
-
-#editFrequenciesMenu {
- actionIcon: show-frequency;
- text: "tutti.editBenthosBatch.action.editFrequencies";
- toolTipText: "tutti.editBenthosBatch.action.editFrequencies.tip";
- i18nMnemonic: "tutti.editBenthosBatch.action.editFrequencies.mnemonic";
- enabled: {model.isTableViewModeAll() && model.isEditFrequenciesEnabled()};
- _help: {"tutti.editBenthosBatch.action.editFrequencies.help"};
-}
\ No newline at end of file
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchUIHandler.java 2013-09-22 11:29:17 UTC (rev 1202)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchUIHandler.java 2013-09-23 09:39:50 UTC (rev 1203)
@@ -57,6 +57,7 @@
import fr.ifremer.tutti.ui.swing.util.TuttiBeanMonitor;
import fr.ifremer.tutti.ui.swing.util.TuttiUI;
import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil;
+import fr.ifremer.tutti.ui.swing.util.WeightUnit;
import fr.ifremer.tutti.ui.swing.util.attachment.AttachmentCellEditor;
import fr.ifremer.tutti.ui.swing.util.attachment.AttachmentCellRenderer;
import fr.ifremer.tutti.ui.swing.util.comment.CommentCellEditor;
@@ -118,6 +119,13 @@
protected final SampleCategoryModel sampleCategoryModel;
+ /**
+ * Weight unit.
+ *
+ * @since 2.5
+ */
+ protected final WeightUnit weightUnit;
+
public BenthosBatchUIHandler(TuttiUI<?, ?> parentUi,
BenthosBatchUI ui) {
super(parentUi, ui,
@@ -130,6 +138,8 @@
SpeciesBatchRowModel.PROPERTY_FREQUENCY,
SpeciesBatchRowModel.PROPERTY_SPECIES_TO_CONFIRM);
+ weightUnit = getConfig().getBenthosWeightUnit();
+
sampleCategoryModel = getDataContext().getSampleCategoryModel();
tableFilters = new EnumMap<TableViewMode, RowFilter<BenthosBatchTableModel, Integer>>(TableViewMode.class);
@@ -245,7 +255,7 @@
@Override
protected boolean isRowValid(BenthosBatchRowModel row) {
- BenthosBatch batch = convertRowToBean(row, true);
+ BenthosBatch batch = convertRowToEntity(row, true);
NuitonValidatorResult validator = validationService.validateBenthosBatch(batch);
boolean result = !validator.hasErrorMessagess();
@@ -254,7 +264,9 @@
getContext().getValidationContext())
&& row.isBatchLeaf()) {
List<BenthosBatchFrequency> frequencies =
- BenthosFrequencyRowModel.toBeans(row.getFrequency(), batch);
+ BenthosFrequencyRowModel.toEntity(
+ row.getFrequency(),
+ batch);
result = TuttiProtocols.isBenthosBatchValid(
getDataContext().getProtocol(),
batch,
@@ -534,7 +546,8 @@
addSampleCategoryColumnToModel(columnModel,
columnIdentifier,
caracteristicDecorator,
- defaultRenderer);
+ defaultRenderer,
+ weightUnit);
}
{ // Weight column
@@ -544,7 +557,8 @@
Float.class, false, true, 3, computedDataColor),
TuttiComputedOrNotDataTableCell.newRender(
defaultRenderer, true, 3, computedDataColor),
- BenthosBatchTableModel.WEIGHT);
+ BenthosBatchTableModel.WEIGHT,
+ weightUnit);
}
{ // Number column (from frequencies)
@@ -580,7 +594,9 @@
// create table model
BenthosBatchTableModel tableModel =
- new BenthosBatchTableModel(sampleCategoryModel, columnModel);
+ new BenthosBatchTableModel(weightUnit,
+ sampleCategoryModel,
+ columnModel);
table.setModel(tableModel);
table.setColumnModel(columnModel);
@@ -785,7 +801,6 @@
BenthosBatchUIModel model = getModel();
model.setLeafNumber(model.getLeafNumber() + newBatches.size() - 1);
-
recomputeBatchActionEnable();
}
@@ -818,28 +833,37 @@
protected void saveRow(BenthosBatchRowModel row) {
FishingOperation fishingOperation = getModel().getFishingOperation();
+
Preconditions.checkNotNull(fishingOperation);
-
Preconditions.checkNotNull(row.getSpecies());
- SampleCategory<?> sampleCategory = row.getFinestCategory();
- Preconditions.checkNotNull(sampleCategory);
- Preconditions.checkNotNull(sampleCategory.getCategoryId());
- Preconditions.checkNotNull(sampleCategory.getCategoryValue());
+ Preconditions.checkNotNull(row.getFinestCategory());
+ Preconditions.checkNotNull(row.getFinestCategory().getCategoryId());
+ Preconditions.checkNotNull(row.getFinestCategory().getCategoryValue());
- BenthosBatch catchBean = row.toBean();
- catchBean.setFishingOperation(fishingOperation);
+// SampleCategory<?> sampleCategory = row.getFinestCategory();
+// Preconditions.checkNotNull(sampleCategory);
+// Preconditions.checkNotNull(sampleCategory.getCategoryId());
+// Preconditions.checkNotNull(sampleCategory.getCategoryValue());
+ BenthosBatch entityToSave = row.toEntity();
+
+ entityToSave.setFishingOperation(fishingOperation);
+
BenthosBatchRowModel parent = row.getParentBatch();
if (parent != null) {
- catchBean.setParentBatch(parent.toBean());
+ //FIXME Check no need to convert parent weight ? :(
+ entityToSave.setParentBatch(parent.toBean());
}
- // apply sample category
- catchBean.setSampleCategoryId(sampleCategory.getCategoryId());
- catchBean.setSampleCategoryValue(sampleCategory.getCategoryValue());
- catchBean.setSampleCategoryWeight(sampleCategory.getCategoryWeight());
+// // apply sample category
+// entityToSave.setSampleCategoryId(sampleCategory.getCategoryId());
+// entityToSave.setSampleCategoryValue(sampleCategory.getCategoryValue());
+//
+// // convert sample category weight
+// Float categoryWeight = sampleCategory.getCategoryWeight();
+// entityToSave.setSampleCategoryWeight(weightUnit.toEntity(categoryWeight));
- if (TuttiEntities.isNew(catchBean)) {
+ if (TuttiEntities.isNew(entityToSave)) {
BenthosBatchRowModel batchParent = row.getParentBatch();
String parentBatchId = null;
@@ -852,29 +876,31 @@
log.info("Persist new species batch with parentId: " +
parentBatchId);
}
- catchBean = persistenceService.createBenthosBatch(catchBean,
- parentBatchId);
- row.setId(catchBean.getId());
+ entityToSave = persistenceService.createBenthosBatch(entityToSave,
+ parentBatchId);
+ row.setId(entityToSave.getId());
} else {
if (log.isInfoEnabled()) {
- log.info("Persist existing species batch: " + catchBean.getId() + " (parent : " + catchBean.getParentBatch() + ")");
+ log.info("Persist existing species batch: " + entityToSave.getId() + " (parent : " + entityToSave.getParentBatch() + ")");
}
- persistenceService.saveBenthosBatch(catchBean);
+ persistenceService.saveBenthosBatch(entityToSave);
}
List<BenthosFrequencyRowModel> frequencyRows = row.getFrequency();
List<BenthosBatchFrequency> frequency =
- BenthosFrequencyRowModel.toBeans(frequencyRows, catchBean);
+ BenthosFrequencyRowModel.toEntity(
+ frequencyRows,
+ entityToSave);
if (log.isInfoEnabled()) {
log.info("Will save " + frequency.size() + " frequencies.");
}
frequency = persistenceService.saveBenthosBatchFrequency(
- catchBean.getId(), frequency);
+ entityToSave.getId(), frequency);
// push it back to row model
- frequencyRows = BenthosFrequencyRowModel.fromBeans(frequency);
+ frequencyRows = BenthosFrequencyRowModel.fromEntity(weightUnit, frequency);
row.setFrequency(frequencyRows);
getModel().fireBatchUpdated(row);
@@ -1010,7 +1036,8 @@
persistenceService.getAllBenthosBatchFrequency(id);
BenthosBatchRowModel newRow =
- new BenthosBatchRowModel(sampleCategoryModel,
+ new BenthosBatchRowModel(weightUnit,
+ sampleCategoryModel,
aBatch,
frequencies);
@@ -1041,8 +1068,8 @@
newRow,
sampleCategoryId,
aBatch.getSampleCategoryValue(),
- aBatch.getSampleCategoryWeight(),
- aBatch.getSampleCategoryComputedWeight());
+ weightUnit.fromEntity(aBatch.getSampleCategoryWeight()),
+ weightUnit.fromEntity(aBatch.getSampleCategoryComputedWeight()));
rows.add(newRow);
@@ -1120,14 +1147,16 @@
protected <C extends Serializable> void addSampleCategoryColumnToModel(TableColumnModel columnModel,
ColumnIdentifier<BenthosBatchRowModel> columnIdentifier,
Decorator<C> decorator,
- TableCellRenderer defaultRenderer) {
+ TableCellRenderer defaultRenderer,
+ WeightUnit weightUnit) {
addColumnToModel(
columnModel,
SampleCategoryComponent.newEditor(decorator),
SampleCategoryComponent.newRender(defaultRenderer,
decorator,
getConfig().getColorComputedWeights()),
- columnIdentifier);
+ columnIdentifier,
+ weightUnit);
}
public void removeFromSpeciesUsed(BenthosBatchRowModel row) {
@@ -1175,7 +1204,7 @@
return model.getSelectedSpecies();
}
- protected BenthosBatch convertRowToBean(BenthosBatchRowModel row, boolean convertParent) {
+ protected BenthosBatch convertRowToEntity(BenthosBatchRowModel row, boolean convertParent) {
SampleCategory<?> sampleCategory = row.getFinestCategory();
Preconditions.checkNotNull(sampleCategory);
Preconditions.checkNotNull(sampleCategory.getCategoryId());
@@ -1183,13 +1212,20 @@
BenthosBatch catchBean = row.toBean();
+ // convert weight
+ Float weight = catchBean.getWeight();
+ catchBean.setWeight(weightUnit.toEntity(weight));
+
// apply sample category
catchBean.setSampleCategoryId(sampleCategory.getCategoryId());
catchBean.setSampleCategoryValue(sampleCategory.getCategoryValue());
- catchBean.setSampleCategoryWeight(sampleCategory.getCategoryWeight());
+ // convert sample category weight
+ Float categoryWeight = sampleCategory.getCategoryWeight();
+ catchBean.setSampleCategoryWeight(weightUnit.toEntity(categoryWeight));
+
if (convertParent && row.getParentBatch() != null) {
- BenthosBatch parent = convertRowToBean(row.getParentBatch(), true);
+ BenthosBatch parent = convertRowToEntity(row.getParentBatch(), true);
catchBean.setParentBatch(parent);
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/create/CreateBenthosBatchUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/create/CreateBenthosBatchUI.css 2013-09-22 11:29:17 UTC (rev 1202)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/create/CreateBenthosBatchUI.css 2013-09-23 09:39:50 UTC (rev 1203)
@@ -72,6 +72,7 @@
toolTipText: "tutti.createBenthosBatch.field.batchWeight.tip";
labelFor: {batchWeightField};
_help: {"tutti.createBenthosBatch.field.batchWeight.help"};
+ _addWeightUnit: {handler.getConfig().getBenthosWeightUnit()};
}
#batchWeightField {
@@ -99,7 +100,7 @@
#categoryLabel {
text: "tutti.createBenthosBatch.field.category";
- toolTipText: "tutti.createBenthosBatch.field.categoryField.tip";
+ toolTipText: "tutti.createBenthosBatch.field.category.tip";
labelFor: {categoryComboBox};
_help: {"tutti.createBenthosBatch.field.categoryField.help"};
}
@@ -115,9 +116,10 @@
#sampleWeightLabel {
text: "tutti.createBenthosBatch.field.sampleWeight";
- toolTipText: "tutti.createBenthosBatch.field.sampleWeightField.tip";
+ toolTipText: "tutti.createBenthosBatch.field.sampleWeight.tip";
labelFor: {sampleWeightField};
_help: {"tutti.createBenthosBatch.field.sampleWeightField.help"};
+ _addWeightUnit: {handler.getConfig().getBenthosWeightUnit()};
}
#sampleWeightField {
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/create/CreateBenthosBatchUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/create/CreateBenthosBatchUIHandler.java 2013-09-22 11:29:17 UTC (rev 1202)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/create/CreateBenthosBatchUIHandler.java 2013-09-23 09:39:50 UTC (rev 1203)
@@ -515,7 +515,8 @@
addFloatColumnToModel(columnModel,
SplitBenthosBatchTableModel.WEIGHT,
- TuttiUI.DECIMAL3_PATTERN);
+ TuttiUI.DECIMAL3_PATTERN,
+ getConfig().getBenthosWeightUnit());
}
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyRowModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyRowModel.java 2013-09-22 11:29:17 UTC (rev 1202)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyRowModel.java 2013-09-23 09:39:50 UTC (rev 1203)
@@ -31,6 +31,7 @@
import fr.ifremer.tutti.persistence.entities.data.BenthosBatchFrequency;
import fr.ifremer.tutti.persistence.entities.referential.Caracteristic;
import fr.ifremer.tutti.ui.swing.util.AbstractTuttiBeanUIModel;
+import fr.ifremer.tutti.ui.swing.util.WeightUnit;
import org.nuiton.util.beans.Binder;
import org.nuiton.util.beans.BinderFactory;
@@ -82,6 +83,13 @@
*/
protected Caracteristic lengthStepCaracteristic;
+ /**
+ * Weight unit.
+ *
+ * @since 2.5
+ */
+ protected final WeightUnit weightUnit;
+
protected static final Binder<BenthosBatchFrequency, BenthosFrequencyRowModel> fromBeanBinder =
BinderFactory.newBinder(BenthosBatchFrequency.class,
BenthosFrequencyRowModel.class);
@@ -92,33 +100,71 @@
private static final Ordering<Float> ordering = Ordering.natural().nullsFirst();
- public static List<BenthosFrequencyRowModel> fromBeans(List<BenthosBatchFrequency> frequency) {
+ //------------------------------------------------------------------------//
+ //-- Factory methods --//
+ //------------------------------------------------------------------------//
+
+ public static List<BenthosFrequencyRowModel> fromEntity(WeightUnit weightUnit,
+ List<BenthosBatchFrequency> entities) {
List<BenthosFrequencyRowModel> result = Lists.newArrayList();
- for (BenthosBatchFrequency b : frequency) {
- BenthosFrequencyRowModel model = new BenthosFrequencyRowModel();
- fromBeanBinder.copy(b, model);
- result.add(model);
+ for (BenthosBatchFrequency entity : entities) {
+
+ BenthosFrequencyRowModel row =
+ new BenthosFrequencyRowModel(weightUnit);
+ row.fromEntity(entity);
+ result.add(row);
}
return result;
}
- public static List<BenthosBatchFrequency> toBeans(List<BenthosFrequencyRowModel> frequency, BenthosBatch batch) {
+ public static List<BenthosBatchFrequency> toEntity(List<BenthosFrequencyRowModel> rows,
+ BenthosBatch batch) {
List<BenthosBatchFrequency> result = Lists.newArrayList();
- for (BenthosFrequencyRowModel b : frequency) {
- BenthosBatchFrequency model =
- TuttiBeanFactory.newBenthosBatchFrequency();
- toBeanBinder.copy(b, model);
+ for (BenthosFrequencyRowModel row : rows) {
+ BenthosBatchFrequency model = row.toEntity();
+
model.setBatch(batch);
result.add(model);
}
return result;
}
- public BenthosFrequencyRowModel() {
+ public BenthosFrequencyRowModel(WeightUnit weightUnit) {
super(BenthosBatchFrequency.class, fromBeanBinder, toBeanBinder);
+ this.weightUnit = weightUnit;
}
+ //------------------------------------------------------------------------//
+ //-- AbstractTuttiBeanUIModel --//
+ //------------------------------------------------------------------------//
+
@Override
+ protected BenthosBatchFrequency newEntity() {
+ return TuttiBeanFactory.newBenthosBatchFrequency();
+ }
+
+ @Override
+ public void fromEntity(BenthosBatchFrequency entity) {
+ super.fromEntity(entity);
+
+ // convert weight
+ setWeight(weightUnit.fromEntity(getWeight()));
+ }
+
+ @Override
+ public BenthosBatchFrequency toEntity() {
+ BenthosBatchFrequency result = super.toEntity();
+
+ // convert weight
+ result.setWeight(weightUnit.toEntity(getWeight()));
+ return result;
+ }
+
+ //------------------------------------------------------------------------//
+ //-- BenthosBatchFrequency --//
+ //------------------------------------------------------------------------//
+
+ @Override
public Float getLengthStep() {
return lengthStep;
}
@@ -182,11 +228,6 @@
}
@Override
- protected BenthosBatchFrequency newEntity() {
- return TuttiBeanFactory.newBenthosBatchFrequency();
- }
-
- @Override
public Integer getRankOrder() {
return null;
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyTableModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyTableModel.java 2013-09-22 11:29:17 UTC (rev 1202)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyTableModel.java 2013-09-23 09:39:50 UTC (rev 1203)
@@ -25,6 +25,7 @@
*/
import com.google.common.collect.Maps;
+import fr.ifremer.tutti.ui.swing.util.WeightUnit;
import fr.ifremer.tutti.ui.swing.util.table.AbstractTuttiTableModel;
import fr.ifremer.tutti.ui.swing.util.table.ColumnIdentifier;
import org.jdesktop.swingx.table.TableColumnModelExt;
@@ -65,9 +66,18 @@
private final Map<Float, BenthosFrequencyRowModel> rowCache;
- public BenthosFrequencyTableModel(TableColumnModelExt columnModel,
+ /**
+ * Weight unit.
+ *
+ * @since 2.5
+ */
+ protected final WeightUnit weightUnit;
+
+ public BenthosFrequencyTableModel(WeightUnit weightUnit,
+ TableColumnModelExt columnModel,
BenthosFrequencyUIModel uiModel) {
super(columnModel, true, true);
+ this.weightUnit = weightUnit;
this.uiModel = uiModel;
this.rowCache = Maps.newTreeMap();
setNoneEditableCols();
@@ -87,7 +97,8 @@
lengthStep + uiModel.getStep());
}
}
- BenthosFrequencyRowModel result = new BenthosFrequencyRowModel();
+ BenthosFrequencyRowModel result =
+ new BenthosFrequencyRowModel(weightUnit);
result.addPropertyChangeListener(BenthosFrequencyRowModel.PROPERTY_LENGTH_STEP,
new PropertyChangeListener() {
@Override
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyUI.css 2013-09-22 11:29:17 UTC (rev 1202)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyUI.css 2013-09-23 09:39:50 UTC (rev 1203)
@@ -76,6 +76,7 @@
labelFor: {totalWeightField};
enabled: {model.getTotalWeight() != null};
_help: {"tutti.editBenthosFrequencies.field.totalWeight.help"};
+ _addWeightUnit: {handler.getConfig().getBenthosWeightUnit()};
}
#totalWeightField {
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyUIHandler.java 2013-09-22 11:29:17 UTC (rev 1202)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyUIHandler.java 2013-09-23 09:39:50 UTC (rev 1203)
@@ -42,6 +42,7 @@
import fr.ifremer.tutti.ui.swing.util.TuttiBeanMonitor;
import fr.ifremer.tutti.ui.swing.util.TuttiUI;
import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil;
+import fr.ifremer.tutti.ui.swing.util.WeightUnit;
import fr.ifremer.tutti.ui.swing.util.table.AbstractSelectTableAction;
import fr.ifremer.tutti.ui.swing.util.table.AbstractTuttiTableUIHandler;
import jaxx.runtime.SwingUtil;
@@ -88,12 +89,21 @@
protected Set<BenthosFrequencyRowModel> withWeightRows = Sets.newHashSet();
+ /**
+ * Weight unit.
+ *
+ * @since 2.5
+ */
+ protected final WeightUnit weightUnit;
+
public BenthosFrequencyUIHandler(TuttiUIContext context,
BenthosFrequencyUI ui) {
super(context, ui,
BenthosFrequencyRowModel.PROPERTY_LENGTH_STEP,
BenthosFrequencyRowModel.PROPERTY_NUMBER,
BenthosFrequencyRowModel.PROPERTY_WEIGHT);
+
+ this.weightUnit = context.getConfig().getBenthosWeightUnit();
}
//------------------------------------------------------------------------//
@@ -204,7 +214,7 @@
getDataContext().getSampleCategoryModel();
BenthosFrequencyUIModel model =
- new BenthosFrequencyUIModel(sampleCategoryModel);
+ new BenthosFrequencyUIModel(weightUnit, sampleCategoryModel);
ui.setContextValue(model);
}
@@ -314,12 +324,16 @@
addFloatColumnToModel(columnModel,
BenthosFrequencyTableModel.WEIGHT,
- TuttiUI.DECIMAL3_PATTERN);
+ TuttiUI.DECIMAL3_PATTERN,
+ weightUnit);
}
// create table model
BenthosFrequencyTableModel tableModel =
- new BenthosFrequencyTableModel(columnModel, model);
+ new BenthosFrequencyTableModel(
+ weightUnit,
+ columnModel,
+ model);
JXTable table = getTable();
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyUIModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyUIModel.java 2013-09-22 11:29:17 UTC (rev 1202)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyUIModel.java 2013-09-23 09:39:50 UTC (rev 1203)
@@ -28,6 +28,7 @@
import fr.ifremer.tutti.persistence.entities.data.SampleCategoryModel;
import fr.ifremer.tutti.persistence.entities.referential.Caracteristic;
import fr.ifremer.tutti.ui.swing.content.operation.catches.benthos.BenthosBatchRowModel;
+import fr.ifremer.tutti.ui.swing.util.WeightUnit;
import fr.ifremer.tutti.ui.swing.util.table.AbstractTuttiTableUIModel;
import java.util.List;
@@ -152,14 +153,34 @@
protected Set<BenthosFrequencyRowModel> emptyRows;
- protected SampleCategoryModel sampleCategoryModel;
+ /**
+ * Sample categories model.
+ *
+ * @since 2.4
+ */
+ protected final SampleCategoryModel sampleCategoryModel;
- public BenthosFrequencyUIModel(SampleCategoryModel sampleCategoryModel) {
+ /**
+ * Weight unit.
+ *
+ * @since 2.5
+ */
+ protected final WeightUnit weightUnit;
+
+ public BenthosFrequencyUIModel(WeightUnit weightUnit,
+ SampleCategoryModel sampleCategoryModel) {
super(BenthosBatchRowModel.class, null, null);
+ this.weightUnit = weightUnit;
this.sampleCategoryModel = sampleCategoryModel;
setEmptyRows(Sets.<BenthosFrequencyRowModel>newHashSet());
}
+ @Override
+ protected BenthosBatchRowModel newEntity() {
+ return new BenthosBatchRowModel(weightUnit, sampleCategoryModel);
+ }
+
+ @Override
public void setRows(List<BenthosFrequencyRowModel> rows) {
super.setRows(rows);
setEmptyRows(Sets.<BenthosFrequencyRowModel>newHashSet());
@@ -317,9 +338,4 @@
emptyRows.remove(row);
firePropertyChange(PROPERTY_EMPTY_ROWS, null, emptyRows);
}
-
- @Override
- protected BenthosBatchRowModel newEntity() {
- return new BenthosBatchRowModel(sampleCategoryModel);
- }
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/split/SplitBenthosBatchUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/split/SplitBenthosBatchUI.css 2013-09-22 11:29:17 UTC (rev 1202)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/split/SplitBenthosBatchUI.css 2013-09-23 09:39:50 UTC (rev 1203)
@@ -32,7 +32,7 @@
#categoryLabel {
text: "tutti.splitBenthosBatch.field.category";
- toolTipText: "tutti.splitBenthosBatch.field.categoryField.tip";
+ toolTipText: "tutti.splitBenthosBatch.field.category.tip";
labelFor: {categoryComboBox};
_help: {"tutti.splitBenthosBatch.field.categoryField.help"};
}
@@ -43,9 +43,10 @@
#batchWeightLabel {
text: "tutti.splitBenthosBatch.field.batchWeight";
- toolTipText: "tutti.splitBenthosBatch.field.batchWeightField.tip";
+ toolTipText: "tutti.splitBenthosBatch.field.batchWeight.tip";
labelFor: {batchWeightField};
_help: {"tutti.splitBenthosBatch.field.batchWeightField.help"};
+ _addWeightUnit: {handler.getConfig().getBenthosWeightUnit()};
}
#batchWeightField {
@@ -56,7 +57,7 @@
#sampleWeightLabel {
text: "tutti.splitBenthosBatch.field.sampleWeight";
- toolTipText: "tutti.splitBenthosBatch.field.sampleWeightField.tip";
+ toolTipText: "tutti.splitBenthosBatch.field.sampleWeight.tip";
labelFor: {sampleWeightField};
_help: {"tutti.splitBenthosBatch.field.sampleWeightField.help"};
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/split/SplitBenthosBatchUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/split/SplitBenthosBatchUIHandler.java 2013-09-22 11:29:17 UTC (rev 1202)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/split/SplitBenthosBatchUIHandler.java 2013-09-23 09:39:50 UTC (rev 1203)
@@ -153,7 +153,8 @@
SampleCategoryModel sampleCategoryModel =
getDataContext().getSampleCategoryModel();
- SplitBenthosBatchUIModel model = new SplitBenthosBatchUIModel(sampleCategoryModel);
+ SplitBenthosBatchUIModel model = new SplitBenthosBatchUIModel(
+ getConfig().getBenthosWeightUnit(), sampleCategoryModel);
ui.setContextValue(model);
}
@@ -389,7 +390,8 @@
addFloatColumnToModel(columnModel,
SplitBenthosBatchTableModel.WEIGHT,
- TuttiUI.DECIMAL3_PATTERN);
+ TuttiUI.DECIMAL3_PATTERN,
+ getConfig().getBenthosWeightUnit());
}
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/split/SplitBenthosBatchUIModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/split/SplitBenthosBatchUIModel.java 2013-09-22 11:29:17 UTC (rev 1202)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/split/SplitBenthosBatchUIModel.java 2013-09-23 09:39:50 UTC (rev 1203)
@@ -28,6 +28,7 @@
import fr.ifremer.tutti.persistence.entities.data.SampleCategoryModelEntry;
import fr.ifremer.tutti.ui.swing.content.operation.catches.SelectedCategoryAble;
import fr.ifremer.tutti.ui.swing.content.operation.catches.benthos.BenthosBatchRowModel;
+import fr.ifremer.tutti.ui.swing.util.WeightUnit;
import fr.ifremer.tutti.ui.swing.util.table.AbstractTuttiTableUIModel;
import java.util.List;
@@ -79,13 +80,32 @@
*/
protected Float sampleWeight;
+ /**
+ * Model of sample categories.
+ *
+ * @since 2.4
+ */
protected SampleCategoryModel sampleCategoryModel;
- public SplitBenthosBatchUIModel(SampleCategoryModel sampleCategoryModel) {
+ /**
+ * Weight unit.
+ *
+ * @since 2.5
+ */
+ protected final WeightUnit weightUnit;
+
+ public SplitBenthosBatchUIModel(WeightUnit weightUnit,
+ SampleCategoryModel sampleCategoryModel) {
super(BenthosBatchRowModel.class, null, null);
+ this.weightUnit = weightUnit;
this.sampleCategoryModel = sampleCategoryModel;
}
+ @Override
+ protected BenthosBatchRowModel newEntity() {
+ return new BenthosBatchRowModel(weightUnit, sampleCategoryModel);
+ }
+
public BenthosBatchRowModel getBatch() {
return batch;
}
@@ -132,11 +152,6 @@
firePropertyChange(PROPERTY_SAMPLE_WEIGHT, oldValue, sampleWeight);
}
- @Override
- protected BenthosBatchRowModel newEntity() {
- return new BenthosBatchRowModel(sampleCategoryModel);
- }
-
public SampleCategoryModel getSampleCategoryModel() {
return sampleCategoryModel;
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchRowModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchRowModel.java 2013-09-22 11:29:17 UTC (rev 1202)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchRowModel.java 2013-09-23 09:39:50 UTC (rev 1203)
@@ -32,6 +32,7 @@
import fr.ifremer.tutti.persistence.entities.referential.Caracteristic;
import fr.ifremer.tutti.persistence.entities.referential.Species;
import fr.ifremer.tutti.ui.swing.util.AbstractTuttiBeanUIModel;
+import fr.ifremer.tutti.ui.swing.util.WeightUnit;
import fr.ifremer.tutti.ui.swing.util.attachment.AttachmentModelAware;
import fr.ifremer.tutti.ui.swing.util.caracteristics.CaracteristicMapColumnRowModel;
import org.nuiton.util.beans.Binder;
@@ -74,6 +75,13 @@
*/
protected CaracteristicMap defaultCaracteristics = new CaracteristicMap();
+ /**
+ * Weight unit.
+ *
+ * @since 2.5
+ */
+ protected final WeightUnit weightUnit;
+
protected static final Binder<IndividualObservationBatch, IndividualObservationBatchRowModel> fromBeanBinder =
BinderFactory.newBinder(IndividualObservationBatch.class,
IndividualObservationBatchRowModel.class);
@@ -82,18 +90,18 @@
BinderFactory.newBinder(IndividualObservationBatchRowModel.class,
IndividualObservationBatch.class);
- public IndividualObservationBatchRowModel() {
+ public IndividualObservationBatchRowModel(WeightUnit weightUnit) {
super(IndividualObservationBatch.class, fromBeanBinder, toBeanBinder);
+ this.weightUnit = weightUnit;
}
- public IndividualObservationBatchRowModel(IndividualObservationBatch aBatch,
+ public IndividualObservationBatchRowModel(WeightUnit weightUnit,
+ IndividualObservationBatch entity,
Collection<Caracteristic> defaultCaracteristicsSet) {
- this();
- fromBean(aBatch);
- Float weightInG = getWeight();
- if (weightInG != null) {
- setWeight(weightInG * 1000.0f);
- }
+ this(weightUnit);
+
+ fromEntity(entity);
+
if (getCaracteristics() == null) {
setCaracteristics(new CaracteristicMap());
}
@@ -108,6 +116,10 @@
}
}
+ //------------------------------------------------------------------------//
+ //-- Public methods --//
+ //------------------------------------------------------------------------//
+
public CaracteristicMap getDefaultCaracteristics() {
return defaultCaracteristics;
}
@@ -122,6 +134,23 @@
//------------------------------------------------------------------------//
@Override
+ public void fromEntity(IndividualObservationBatch entity) {
+ super.fromEntity(entity);
+
+ // convert weight
+ setWeight(weightUnit.fromEntity(getWeight()));
+ }
+
+ @Override
+ public IndividualObservationBatch toEntity() {
+ IndividualObservationBatch result = super.toEntity();
+
+ // convert weight
+ result.setWeight(weightUnit.toEntity(getWeight()));
+ return result;
+ }
+
+ @Override
protected IndividualObservationBatch newEntity() {
return TuttiBeanFactory.newIndividualObservationBatch();
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchTableModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchTableModel.java 2013-09-22 11:29:17 UTC (rev 1202)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchTableModel.java 2013-09-23 09:39:50 UTC (rev 1203)
@@ -22,6 +22,7 @@
* #L%
*/
+import fr.ifremer.tutti.ui.swing.util.WeightUnit;
import fr.ifremer.tutti.ui.swing.util.table.AbstractTuttiTableModel;
import fr.ifremer.tutti.ui.swing.util.table.ColumnIdentifier;
import org.jdesktop.swingx.table.TableColumnModelExt;
@@ -81,15 +82,25 @@
n_("tutti.editIndividualObservationBatch.table.header.file"),
n_("tutti.editIndividualObservationBatch.table.header.file.tip"));
- public IndividualObservationBatchTableModel(TableColumnModelExt columnModel) {
+ /**
+ * Weight unit.
+ *
+ * @since 2.5
+ */
+ protected final WeightUnit weightUnit;
+
+ public IndividualObservationBatchTableModel(WeightUnit weightUnit,
+ TableColumnModelExt columnModel) {
super(columnModel, false, false);
+ this.weightUnit = weightUnit;
setNoneEditableCols();
}
@Override
public IndividualObservationBatchRowModel createNewRow() {
- IndividualObservationBatchRowModel result = new IndividualObservationBatchRowModel();
+ IndividualObservationBatchRowModel result =
+ new IndividualObservationBatchRowModel(weightUnit);
// by default empty row is not valid
result.setValid(false);
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUI.css 2013-09-22 11:29:17 UTC (rev 1202)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUI.css 2013-09-23 09:39:50 UTC (rev 1203)
@@ -32,6 +32,17 @@
borderPainted: false;
}
+#tablePopup {
+ label: "tutti.editIndividualObservationBatch.title.batchActions";
+}
+
+#table {
+ selectionMode: {ListSelectionModel.SINGLE_SELECTION};
+ /*selectionBackground: {null};*/
+ selectionForeground: {Color.BLACK};
+ sortable: false;
+}
+
#importMultiPostButton {
actionIcon: import;
text: "tutti.editIndividualObservationBatch.action.importMultiPost";
@@ -50,17 +61,6 @@
_help: {"tutti.editIndividualObservationBatch.action.exportMultiPost.help"};
}
-#tablePopup {
- label: "tutti.editIndividualObservationBatch.title.batchActions";
-}
-
-#table {
- selectionMode: {ListSelectionModel.SINGLE_SELECTION};
- /*selectionBackground: {null};*/
- selectionForeground: {Color.BLACK};
- sortable: false;
-}
-
#createIndividualObservationBatchButton {
actionIcon: batch-create;
text: "tutti.editIndividualObservationBatch.action.createBatch";
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-09-22 11:29:17 UTC (rev 1202)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUIHandler.java 2013-09-23 09:39:50 UTC (rev 1203)
@@ -43,6 +43,7 @@
import fr.ifremer.tutti.ui.swing.util.TuttiBeanMonitor;
import fr.ifremer.tutti.ui.swing.util.TuttiUI;
import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil;
+import fr.ifremer.tutti.ui.swing.util.WeightUnit;
import fr.ifremer.tutti.ui.swing.util.attachment.AttachmentCellEditor;
import fr.ifremer.tutti.ui.swing.util.attachment.AttachmentCellRenderer;
import fr.ifremer.tutti.ui.swing.util.caracteristics.CaracteristicMapCellComponent;
@@ -89,6 +90,13 @@
protected ValidationService validationService = getContext().getValidationService();
+ /**
+ * Weight unit.
+ *
+ * @since 2.5
+ */
+ protected final WeightUnit weightUnit;
+
public IndividualObservationBatchUIHandler(TuttiUI<?, ?> parentUi, IndividualObservationBatchUI ui) {
super(parentUi, ui,
IndividualObservationBatchRowModel.PROPERTY_SPECIES,
@@ -101,6 +109,8 @@
// IndividualObservationBatchRowModel.PROPERTY_SAMPLING_CODE,
IndividualObservationBatchRowModel.PROPERTY_COMMENT,
IndividualObservationBatchRowModel.PROPERTY_ATTACHMENT);
+
+ weightUnit = getConfig().getIndividualObservationWeightUnit();
}
//------------------------------------------------------------------------//
@@ -155,7 +165,9 @@
IndividualObservationBatchRowModel newRow =
new IndividualObservationBatchRowModel(
- aBatch, getModel().getDefaultCaracteristic());
+ weightUnit,
+ aBatch,
+ getModel().getDefaultCaracteristic());
List<Attachment> attachments =
persistenceService.getAllAttachments(newRow.getObjectType(),
@@ -328,7 +340,9 @@
DefaultTableColumnModelExt columnModel =
new DefaultTableColumnModelExt();
Decorator<Caracteristic> caracteristicDecorator =
- getDecorator(Caracteristic.class, null);
+ getDecorator(Caracteristic.class, DecoratorService.CARACTERISTIC_PARAMETER_ONLY_WITH_UNIT);
+ Decorator<Caracteristic> caracteristicTipDecorator =
+ getDecorator(Caracteristic.class, DecoratorService.CARACTERISTIC_WITH_UNIT);
Decorator<CaracteristicQualitativeValue> caracteristicQualitativeDecorator =
getDecorator(CaracteristicQualitativeValue.class, null);
@@ -346,7 +360,8 @@
addFloatColumnToModel(columnModel,
IndividualObservationBatchTableModel.WEIGHT,
- TuttiUI.DECIMAL3_PATTERN);
+ TuttiUI.DECIMAL3_PATTERN,
+ weightUnit);
}
{ // Size column
@@ -360,7 +375,8 @@
addComboDataColumnToModel(columnModel,
IndividualObservationBatchTableModel.LENGTH_STEP_CARACTERISTIC,
- caracteristicDecorator, getDataContext().getLengthStepCaracteristics());
+ getDecorator(Caracteristic.class, null),
+ getDataContext().getLengthStepCaracteristics());
}
@@ -370,12 +386,13 @@
for (Caracteristic caracteristic : defaultCaracteristic) {
String header = caracteristicDecorator.toString(caracteristic);
+ String headerTip = caracteristicTipDecorator.toString(caracteristic);
CaracteristicColumnIdentifier id = CaracteristicColumnIdentifier.newCaracteristicId(
caracteristic,
IndividualObservationBatchRowModel.PROPERTY_DEFAULT_CARACTERISTICS,
header,
- header
+ headerTip
);
switch (caracteristic.getCaracteristicType()) {
@@ -446,7 +463,8 @@
// create table model
IndividualObservationBatchTableModel tableModel =
- new IndividualObservationBatchTableModel(columnModel);
+ new IndividualObservationBatchTableModel(weightUnit,
+ columnModel);
table.setModel(tableModel);
table.setColumnModel(columnModel);
@@ -515,7 +533,9 @@
saveRow(newRow);
tableModel.addNewRow(newRow);
- AbstractSelectTableAction.doSelectCell(getTable(), tableModel.getRowCount() - 1, 0);
+ AbstractSelectTableAction.doSelectCell(getTable(),
+ tableModel.getRowCount() - 1,
+ 0);
}
recomputeBatchActionEnable();
@@ -542,12 +562,12 @@
protected void saveRow(IndividualObservationBatchRowModel row) {
- IndividualObservationBatch catchBean = row.toBean();
+ IndividualObservationBatch entityToSave = row.toEntity();
CaracteristicMap caracteristics = new CaracteristicMap();
- catchBean.setCaracteristics(caracteristics);
+ entityToSave.setCaracteristics(caracteristics);
- // push back not null caracteristics
+ // push back not null extra caracteristics
for (Map.Entry<Caracteristic, Serializable> entry : row.getCaracteristics().entrySet()) {
Serializable value = entry.getValue();
if (value != null) {
@@ -564,24 +584,18 @@
}
FishingOperation fishingOperation = getModel().getFishingOperation();
- catchBean.setFishingOperation(fishingOperation);
+ entityToSave.setFishingOperation(fishingOperation);
- // convert grams into kilograms
- Float weightInG = catchBean.getWeight();
- if (weightInG != null) {
- catchBean.setWeight(weightInG / 1000.0f);
- }
-
if (log.isInfoEnabled()) {
log.info("Selected fishingOperation: " + fishingOperation.getId());
}
- if (TuttiEntities.isNew(catchBean)) {
+ if (TuttiEntities.isNew(entityToSave)) {
- catchBean = persistenceService.createIndividualObservationBatch(catchBean);
- row.setId(catchBean.getId());
+ entityToSave = persistenceService.createIndividualObservationBatch(entityToSave);
+ row.setId(entityToSave.getId());
} else {
- persistenceService.saveIndividualObservationBatch(catchBean);
+ persistenceService.saveIndividualObservationBatch(entityToSave);
}
getModel().fireBatchUpdated(row);
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-09-22 11:29:17 UTC (rev 1202)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/CreateIndividualObservationBatchUI.css 2013-09-23 09:39:50 UTC (rev 1203)
@@ -52,6 +52,7 @@
toolTipText: "tutti.createIndividualObservationBatch.field.individualObservationWeight.tip";
labelFor: {individualObservationWeightField};
_help: {"tutti.createIndividualObservationBatch.field.individualObservationWeight.help"};
+ _addWeightUnit: {handler.getConfig().getIndividualObservationWeightUnit()};
}
#individualObservationWeightField {
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/MarineLitterBatchRowModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/MarineLitterBatchRowModel.java 2013-09-22 11:29:17 UTC (rev 1202)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/MarineLitterBatchRowModel.java 2013-09-23 09:39:50 UTC (rev 1203)
@@ -32,6 +32,7 @@
import fr.ifremer.tutti.persistence.entities.data.MarineLitterBatch;
import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValue;
import fr.ifremer.tutti.ui.swing.util.AbstractTuttiBeanUIModel;
+import fr.ifremer.tutti.ui.swing.util.WeightUnit;
import fr.ifremer.tutti.ui.swing.util.attachment.AttachmentModelAware;
import org.nuiton.util.beans.Binder;
import org.nuiton.util.beans.BinderFactory;
@@ -64,6 +65,13 @@
*/
protected final List<Attachment> attachment = Lists.newArrayList();
+ /**
+ * Weight unit.
+ *
+ * @since 2.5
+ */
+ protected final WeightUnit weightUnit;
+
protected static final Binder<MarineLitterBatch, MarineLitterBatchRowModel> fromBeanBinder =
BinderFactory.newBinder(MarineLitterBatch.class,
MarineLitterBatchRowModel.class);
@@ -72,20 +80,43 @@
BinderFactory.newBinder(MarineLitterBatchRowModel.class,
MarineLitterBatch.class);
- public MarineLitterBatchRowModel() {
+ public MarineLitterBatchRowModel(WeightUnit weightUnit) {
super(MarineLitterBatch.class, fromBeanBinder, toBeanBinder);
+ this.weightUnit = weightUnit;
}
- public MarineLitterBatchRowModel(MarineLitterBatch aBatch) {
- this();
- fromBean(aBatch);
+ public MarineLitterBatchRowModel(WeightUnit weightUnit,
+ MarineLitterBatch entity) {
+ this(weightUnit);
+ fromEntity(entity);
}
+ //------------------------------------------------------------------------//
+ //-- AbstractTuttiBeanUIModel --//
+ //------------------------------------------------------------------------//
+
@Override
protected MarineLitterBatch newEntity() {
return TuttiBeanFactory.newMarineLitterBatch();
}
+ @Override
+ public void fromEntity(MarineLitterBatch entity) {
+ super.fromEntity(entity);
+
+ // convert weight
+ setWeight(weightUnit.fromEntity(getWeight()));
+ }
+
+ @Override
+ public MarineLitterBatch toEntity() {
+ MarineLitterBatch result = super.toEntity();
+
+ // convert weight
+ result.setWeight(weightUnit.toEntity(getWeight()));
+ return result;
+ }
+
//------------------------------------------------------------------------//
//-- MarineLitterBatch --//
//------------------------------------------------------------------------//
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/MarineLitterBatchTableModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/MarineLitterBatchTableModel.java 2013-09-22 11:29:17 UTC (rev 1202)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/MarineLitterBatchTableModel.java 2013-09-23 09:39:50 UTC (rev 1203)
@@ -24,6 +24,7 @@
* #L%
*/
+import fr.ifremer.tutti.ui.swing.util.WeightUnit;
import fr.ifremer.tutti.ui.swing.util.table.AbstractTuttiTableModel;
import fr.ifremer.tutti.ui.swing.util.table.ColumnIdentifier;
import org.jdesktop.swingx.table.TableColumnModelExt;
@@ -68,15 +69,25 @@
n_("tutti.editMarineLitterBatch.table.header.file"),
n_("tutti.editMarineLitterBatch.table.header.file.tip"));
- public MarineLitterBatchTableModel(TableColumnModelExt columnModel) {
+ /**
+ * Weight unit.
+ *
+ * @since 2.5
+ */
+ protected final WeightUnit weightUnit;
+
+ public MarineLitterBatchTableModel(WeightUnit weightUnit,
+ TableColumnModelExt columnModel) {
super(columnModel, false, false);
+ this.weightUnit = weightUnit;
setNoneEditableCols(MACRO_WASTE_CATEGORY, MACRO_WASTE_SIZE_CATEGORY);
}
@Override
public MarineLitterBatchRowModel createNewRow() {
- MarineLitterBatchRowModel result = new MarineLitterBatchRowModel();
+ MarineLitterBatchRowModel result =
+ new MarineLitterBatchRowModel(weightUnit);
// by default empty row is not valid
result.setValid(false);
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/MarineLitterBatchUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/MarineLitterBatchUI.css 2013-09-22 11:29:17 UTC (rev 1202)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/MarineLitterBatchUI.css 2013-09-23 09:39:50 UTC (rev 1203)
@@ -65,6 +65,7 @@
toolTipText: "tutti.editMarineLitterBatch.field.marineLitterTotalWeight.tip";
labelFor: {marineLitterTotalWeightField};
_help: {"tutti.editMarineLitterBatch.field.marineLitterTotalWeight.help"};
+ _addWeightUnit: {handler.getConfig().getMarineLitterWeightUnit()};
}
#marineLitterTotalWeightField {
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/MarineLitterBatchUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/MarineLitterBatchUIHandler.java 2013-09-22 11:29:17 UTC (rev 1202)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/MarineLitterBatchUIHandler.java 2013-09-23 09:39:50 UTC (rev 1203)
@@ -43,6 +43,7 @@
import fr.ifremer.tutti.ui.swing.util.TuttiBeanMonitor;
import fr.ifremer.tutti.ui.swing.util.TuttiUI;
import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil;
+import fr.ifremer.tutti.ui.swing.util.WeightUnit;
import fr.ifremer.tutti.ui.swing.util.attachment.AttachmentCellEditor;
import fr.ifremer.tutti.ui.swing.util.attachment.AttachmentCellRenderer;
import fr.ifremer.tutti.ui.swing.util.comment.CommentCellEditor;
@@ -78,6 +79,13 @@
protected ValidationService validationService = getContext().getValidationService();
+ /**
+ * Weight unit.
+ *
+ * @since 2.5
+ */
+ protected final WeightUnit weightUnit;
+
public MarineLitterBatchUIHandler(TuttiUI<?, ?> parentUi, MarineLitterBatchUI ui) {
super(parentUi, ui,
MarineLitterBatchRowModel.PROPERTY_MARINE_LITTER_CATEGORY,
@@ -85,6 +93,8 @@
MarineLitterBatchRowModel.PROPERTY_WEIGHT,
MarineLitterBatchRowModel.PROPERTY_NUMBER,
MarineLitterBatchRowModel.PROPERTY_COMMENT);
+
+ weightUnit = getConfig().getMarineLitterWeightUnit();
}
//------------------------------------------------------------------------//
@@ -128,7 +138,8 @@
protected MarineLitterBatchRowModel loadBatch(MarineLitterBatch aBatch) {
- MarineLitterBatchRowModel newRow = new MarineLitterBatchRowModel(aBatch);
+ MarineLitterBatchRowModel newRow =
+ new MarineLitterBatchRowModel(weightUnit, aBatch);
List<Attachment> attachments =
persistenceService.getAllAttachments(newRow.getObjectType(),
@@ -337,7 +348,8 @@
addFloatColumnToModel(columnModel,
MarineLitterBatchTableModel.WEIGHT,
- TuttiUI.DECIMAL3_PATTERN);
+ TuttiUI.DECIMAL3_PATTERN,
+ weightUnit);
}
{ // Comment column
@@ -358,7 +370,7 @@
// create table model
MarineLitterBatchTableModel tableModel =
- new MarineLitterBatchTableModel(columnModel);
+ new MarineLitterBatchTableModel(weightUnit, columnModel);
table.setModel(tableModel);
table.setColumnModel(columnModel);
@@ -401,6 +413,7 @@
newRow.setMarineLitterCategory(model.getMarineLitterCategory());
newRow.setMarineLitterSizeCategory(model.getMarineLitterSizeCategory());
newRow.setNumber(model.getNumber());
+ newRow.setWeight(model.getWeight());
recomputeRowValidState(newRow);
@@ -437,20 +450,20 @@
protected void saveRow(MarineLitterBatchRowModel row) {
- MarineLitterBatch catchBean = row.toBean();
+ MarineLitterBatch entityToSave = row.toEntity();
FishingOperation fishingOperation = getModel().getFishingOperation();
- catchBean.setFishingOperation(fishingOperation);
+ entityToSave.setFishingOperation(fishingOperation);
if (log.isInfoEnabled()) {
log.info("Selected fishingOperation: " + fishingOperation.getId());
}
- if (TuttiEntities.isNew(catchBean)) {
+ if (TuttiEntities.isNew(entityToSave)) {
- catchBean = persistenceService.createMarineLitterBatch(catchBean);
- row.setId(catchBean.getId());
+ entityToSave = persistenceService.createMarineLitterBatch(entityToSave);
+ row.setId(entityToSave.getId());
} else {
- persistenceService.saveMarineLitterBatch(catchBean);
+ persistenceService.saveMarineLitterBatch(entityToSave);
}
getModel().fireBatchUpdated(row);
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/create/CreateMarineLitterBatchUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/create/CreateMarineLitterBatchUI.css 2013-09-22 11:29:17 UTC (rev 1202)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/create/CreateMarineLitterBatchUI.css 2013-09-23 09:39:50 UTC (rev 1203)
@@ -31,6 +31,7 @@
autoPopup: {handler.getConfig().isAutoPopupNumberEditor()};
showPopupButton: {handler.getConfig().isShowNumberEditorButton()};
showReset: true;
+ bean: {model};
}
#createMarineLitterBatchTopPanel {
@@ -61,21 +62,35 @@
selectedItem: {model.getMarineLitterSizeCategory()};
}
-#numberLabel {
+#marineLitterNumberLabel {
text: "tutti.createMarineLitterBatch.field.number";
toolTipText: "tutti.createMarineLitterBatch.field.number.tip";
- labelFor: {numberField};
+ labelFor: {marineLitterNumberField};
_help: {"tutti.createMarineLitterBatch.field.number.help"};
}
-#numberField {
+#marineLitterNumberField {
property: number;
model: {model.getNumber()};
useFloat: true;
numberPattern: {DECIMAL3_PATTERN};
- bean: {model};
}
+#marineLitterWeightLabel {
+ text: "tutti.createMarineLitterBatch.field.weight";
+ toolTipText: "tutti.createMarineLitterBatch.field.weight.tip";
+ labelFor: {marineLitterWeightField};
+ _help: {"tutti.createMarineLitterBatch.field.weight.help"};
+ _addWeightUnit: {handler.getConfig().getMarineLitterWeightUnit()};
+}
+
+#marineLitterWeightField {
+ property: weight;
+ model: {model.getWeight()};
+ useFloat: true;
+ numberPattern: {DECIMAL3_PATTERN};
+}
+
#saveAndContinueButton {
actionIcon: save;
text: "tutti.createMarineLitterBatch.action.saveAndContinue";
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/create/CreateMarineLitterBatchUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/create/CreateMarineLitterBatchUI.jaxx 2013-09-22 11:29:17 UTC (rev 1202)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/create/CreateMarineLitterBatchUI.jaxx 2013-09-23 09:39:50 UTC (rev 1203)
@@ -61,7 +61,8 @@
component='marineLitterCategoryComboBox'/>
<field name='marineLitterSizeCategory'
component='marineLitterSizeCategoryComboBox'/>
- <field name='number' component='numberField'/>
+ <field name='number' component='marineLitterNumberField'/>
+ <field name='weight' component='marineLitterWeightField'/>
</BeanValidator>
<TuttiHelpBroker id='broker'
@@ -96,13 +97,23 @@
<!-- MarineLitter number -->
<row>
<cell anchor='west'>
- <JLabel id='numberLabel'/>
+ <JLabel id='marineLitterNumberLabel'/>
</cell>
<cell weightx='1.0' columns='2'>
- <NumberEditor id='numberField' constructorParams='this'/>
+ <NumberEditor id='marineLitterNumberField' constructorParams='this'/>
</cell>
</row>
+ <!-- MarineLitter weight -->
+ <row>
+ <cell anchor='west'>
+ <JLabel id='marineLitterWeightLabel'/>
+ </cell>
+ <cell weightx='1.0' columns='2'>
+ <NumberEditor id='marineLitterWeightField' constructorParams='this'/>
+ </cell>
+ </row>
+
</Table>
<!-- Form Actions -->
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/create/CreateMarineLitterBatchUIModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/create/CreateMarineLitterBatchUIModel.java 2013-09-22 11:29:17 UTC (rev 1202)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/create/CreateMarineLitterBatchUIModel.java 2013-09-23 09:39:50 UTC (rev 1203)
@@ -91,6 +91,16 @@
firePropertyChange(MarineLitterBatch.PROPERTY_NUMBER, oldValue, number);
}
+ public Float getWeight() {
+ return editObject.getWeight();
+ }
+
+ public void setWeight(Float weight) {
+ Object oldValue = getWeight();
+ editObject.setWeight(weight);
+ firePropertyChange(MarineLitterBatch.PROPERTY_WEIGHT, oldValue, weight);
+ }
+
public Multimap<CaracteristicQualitativeValue, CaracteristicQualitativeValue> getMarineLitterCategoryUsed() {
return marineLitterCategoryUsed;
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/ImportPupitriAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/ImportPupitriAction.java 2013-09-22 11:29:17 UTC (rev 1202)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/ImportPupitriAction.java 2013-09-23 09:39:50 UTC (rev 1203)
@@ -144,7 +144,7 @@
EditCatchesUIModel model = getUI().getHandler().getParentUi().getModel();
FishingOperation operation = model.getFishingOperation();
- CatchBatch catchBatch = model.getCatchBatch();
+ CatchBatch catchBatch = model.toEntity();
// import
int rejectedSpeciesNb =
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchRowModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchRowModel.java 2013-09-22 11:29:17 UTC (rev 1202)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchRowModel.java 2013-09-23 09:39:50 UTC (rev 1203)
@@ -24,6 +24,7 @@
* #L%
*/
+import com.google.common.base.Preconditions;
import com.google.common.collect.Lists;
import fr.ifremer.tutti.persistence.entities.TuttiBeanFactory;
import fr.ifremer.tutti.persistence.entities.data.AttachementObjectTypeEnum;
@@ -40,6 +41,7 @@
import fr.ifremer.tutti.ui.swing.util.AbstractTuttiBeanUIModel;
import fr.ifremer.tutti.ui.swing.util.TuttiComputedOrNotData;
import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil;
+import fr.ifremer.tutti.ui.swing.util.WeightUnit;
import fr.ifremer.tutti.ui.swing.util.attachment.AttachmentModelAware;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.ObjectUtils;
@@ -136,8 +138,20 @@
*/
protected List<SpeciesBatchRowModel> childBatch;
+ /**
+ * Sample categories model.
+ *
+ * @since 2.4
+ */
protected final SampleCategoryModel sampleCategoryModel;
+ /**
+ * Weight unit.
+ *
+ * @since 2.5
+ */
+ protected final WeightUnit weightUnit;
+
protected static final Binder<SpeciesBatch, SpeciesBatchRowModel> fromBeanBinder =
BinderFactory.newBinder(SpeciesBatch.class,
SpeciesBatchRowModel.class);
@@ -146,8 +160,10 @@
BinderFactory.newBinder(SpeciesBatchRowModel.class,
SpeciesBatch.class);
- public SpeciesBatchRowModel(SampleCategoryModel sampleCategoryModel) {
+ public SpeciesBatchRowModel(WeightUnit weightUnit,
+ SampleCategoryModel sampleCategoryModel) {
super(SpeciesBatch.class, fromBeanBinder, toBeanBinder);
+ this.weightUnit = weightUnit;
this.sampleCategoryModel = sampleCategoryModel;
categories = new SampleCategory[sampleCategoryModel.getNbSampling()];
@@ -163,22 +179,60 @@
computedOrNotNumber.addPropagateListener(PROPERTY_COMPUTED_NUMBER, this);
}
- public SpeciesBatchRowModel(SampleCategoryModel sampleCategoryModel,
+ public SpeciesBatchRowModel(WeightUnit weightUnit,
+ SampleCategoryModel sampleCategoryModel,
SpeciesBatch aBatch,
List<SpeciesBatchFrequency> frequencies) {
- this(sampleCategoryModel);
- fromBean(aBatch);
+ this(weightUnit, sampleCategoryModel);
+
+ fromEntity(aBatch);
+
List<SpeciesFrequencyRowModel> frequencyRows =
- SpeciesFrequencyRowModel.fromBeans(frequencies);
+ SpeciesFrequencyRowModel.fromEntity(weightUnit, frequencies);
frequency.addAll(frequencyRows);
Collections.sort(frequency);
}
+ //------------------------------------------------------------------------//
+ //-- AbstractTuttiBeanUIModel --//
+ //------------------------------------------------------------------------//
+
@Override
protected SpeciesBatch newEntity() {
return TuttiBeanFactory.newSpeciesBatch();
}
+ @Override
+ public void fromEntity(SpeciesBatch entity) {
+ super.fromEntity(entity);
+
+ // convert weight
+ setWeight(weightUnit.fromEntity(getWeight()));
+ }
+
+ @Override
+ public SpeciesBatch toEntity() {
+ SpeciesBatch result = super.toEntity();
+
+ // convert weight
+ result.setWeight(weightUnit.toEntity(getWeight()));
+
+ SampleCategory<?> sampleCategory = getFinestCategory();
+ Preconditions.checkNotNull(sampleCategory);
+ Preconditions.checkNotNull(sampleCategory.getCategoryId());
+ Preconditions.checkNotNull(sampleCategory.getCategoryValue());
+
+ // apply sample category
+ result.setSampleCategoryId(sampleCategory.getCategoryId());
+ result.setSampleCategoryValue(sampleCategory.getCategoryValue());
+
+ // convert sample category weight
+ Float categoryWeight = sampleCategory.getCategoryWeight();
+ result.setSampleCategoryWeight(weightUnit.toEntity(categoryWeight));
+
+ return result;
+ }
+
//------------------------------------------------------------------------//
//-- SpeciesBatch --//
//------------------------------------------------------------------------//
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchTableModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchTableModel.java 2013-09-22 11:29:17 UTC (rev 1202)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchTableModel.java 2013-09-23 09:39:50 UTC (rev 1203)
@@ -29,6 +29,7 @@
import fr.ifremer.tutti.persistence.entities.data.SampleCategoryModel;
import fr.ifremer.tutti.persistence.entities.referential.Species;
import fr.ifremer.tutti.ui.swing.content.operation.catches.SampleCategoryColumnIdentifier;
+import fr.ifremer.tutti.ui.swing.util.WeightUnit;
import fr.ifremer.tutti.ui.swing.util.table.AbstractTuttiTableModel;
import fr.ifremer.tutti.ui.swing.util.table.ColumnIdentifier;
import org.apache.commons.logging.Log;
@@ -91,17 +92,31 @@
protected final Set<ColumnIdentifier<SpeciesBatchRowModel>> frequencyCols;
/**
- * Columns implies in the sample category definition.
+ * Columns implied in the sample category definition.
*
* @since 0.2
*/
protected final Set<SampleCategoryColumnIdentifier<SpeciesBatchRowModel>> sampleCols;
+ /**
+ * Sample categories model.
+ *
+ * @since 2.4
+ */
protected final SampleCategoryModel sampleCategoryModel;
- public SpeciesBatchTableModel(SampleCategoryModel sampleCategoryModel,
+ /**
+ * Weight unit.
+ *
+ * @since 2.5
+ */
+ protected final WeightUnit weightUnit;
+
+ public SpeciesBatchTableModel(WeightUnit weightUnit,
+ SampleCategoryModel sampleCategoryModel,
TableColumnModelExt columnModel) {
super(columnModel, false, false);
+ this.weightUnit = weightUnit;
this.sampleCategoryModel = sampleCategoryModel;
setNoneEditableCols(SPECIES);
@@ -123,7 +138,8 @@
@Override
public SpeciesBatchRowModel createNewRow() {
- SpeciesBatchRowModel result = new SpeciesBatchRowModel(sampleCategoryModel);
+ SpeciesBatchRowModel result =
+ new SpeciesBatchRowModel(weightUnit, sampleCategoryModel);
// by default empty row is not valid
result.setValid(false);
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUI.css 2013-09-22 11:29:17 UTC (rev 1202)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUI.css 2013-09-23 09:39:50 UTC (rev 1203)
@@ -84,6 +84,7 @@
toolTipText: "tutti.editSpeciesBatch.field.speciesTotalWeight.tip";
labelFor: {speciesTotalWeightField};
_help: {"tutti.editSpeciesBatch.field.speciesTotalWeight.help"};
+ _addWeightUnit: {handler.getConfig().getSpeciesWeightUnit()};
}
#speciesTotalWeightField {
@@ -96,6 +97,7 @@
toolTipText: "tutti.editSpeciesBatch.field.speciesTotalSortedWeight.tip";
labelFor: {speciesTotalSortedWeightField};
_help: {"tutti.editSpeciesBatch.field.speciesTotalSortedWeight.help"};
+ _addWeightUnit: {handler.getConfig().getSpeciesWeightUnit()};
}
#speciesTotalSortedWeightField {
@@ -108,6 +110,7 @@
toolTipText: "tutti.editSpeciesBatch.field.speciesTotalSampleSortedWeight.tip";
labelFor: {speciesTotalSampleSortedWeightField};
_help: {"tutti.editSpeciesBatch.field.speciesTotalSampleSortedWeight.help"};
+ _addWeightUnit: {handler.getConfig().getSpeciesWeightUnit()};
}
#speciesTotalSampleSortedWeightField {
@@ -120,6 +123,7 @@
toolTipText: "tutti.editSpeciesBatch.field.speciesTotalUnsortedWeight.tip";
labelFor: {speciesTotalUnsortedWeightField};
_help: {"tutti.editSpeciesBatch.field.speciesTotalUnsortedWeight.help"};
+ _addWeightUnit: {handler.getConfig().getSpeciesWeightUnit()};
}
#speciesTotalUnsortedWeightField {
@@ -132,6 +136,7 @@
toolTipText: "tutti.editSpeciesBatch.field.speciesTotalInertWeight.tip";
labelFor: {speciesTotalInertWeightField};
_help: {"tutti.editSpeciesBatch.field.speciesTotalInertWeight.help"};
+ _addWeightUnit: {handler.getConfig().getSpeciesWeightUnit()};
}
#speciesTotalInertWeightField {
@@ -144,6 +149,7 @@
toolTipText: "tutti.editSpeciesBatch.field.speciesTotalLivingNotItemizedWeight.tip";
labelFor: {speciesTotalLivingNotItemizedWeightField};
_help: {"tutti.editSpeciesBatch.field.speciesTotalLivingNotItemizedWeight.help"};
+ _addWeightUnit: {handler.getConfig().getSpeciesWeightUnit()};
}
#speciesTotalLivingNotItemizedWeightField {
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIHandler.java 2013-09-22 11:29:17 UTC (rev 1202)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIHandler.java 2013-09-23 09:39:50 UTC (rev 1203)
@@ -55,6 +55,7 @@
import fr.ifremer.tutti.ui.swing.content.operation.catches.species.split.SplitSpeciesBatchUI;
import fr.ifremer.tutti.ui.swing.util.TuttiBeanMonitor;
import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil;
+import fr.ifremer.tutti.ui.swing.util.WeightUnit;
import fr.ifremer.tutti.ui.swing.util.attachment.AttachmentCellEditor;
import fr.ifremer.tutti.ui.swing.util.attachment.AttachmentCellRenderer;
import fr.ifremer.tutti.ui.swing.util.comment.CommentCellEditor;
@@ -118,6 +119,13 @@
protected final SampleCategoryModel sampleCategoryModel;
+ /**
+ * Weight unit.
+ *
+ * @since 2.5
+ */
+ protected final WeightUnit weightUnit;
+
public SpeciesBatchUIHandler(EditCatchesUI parentUi,
SpeciesBatchUI ui) {
super(parentUi, ui,
@@ -130,6 +138,8 @@
SpeciesBatchRowModel.PROPERTY_FREQUENCY,
SpeciesBatchRowModel.PROPERTY_SPECIES_TO_CONFIRM);
+ weightUnit = getConfig().getSpeciesWeightUnit();
+
sampleCategoryModel = getDataContext().getSampleCategoryModel();
this.parentUi = parentUi;
@@ -251,7 +261,7 @@
@Override
protected boolean isRowValid(SpeciesBatchRowModel row) {
- SpeciesBatch batch = convertRowToBean(row, true);
+ SpeciesBatch batch = convertRowToEntity(row, true);
NuitonValidatorResult validator = validationService.validateSpeciesBatch(batch);
boolean result = !validator.hasErrorMessagess();
@@ -261,7 +271,9 @@
&& row.isBatchLeaf()) {
List<SpeciesBatchFrequency> frequencies =
- SpeciesFrequencyRowModel.toBeans(row.getFrequency(), batch);
+ SpeciesFrequencyRowModel.toEntity(
+ row.getFrequency(),
+ batch);
result = TuttiProtocols.isSpeciesBatchValid(getDataContext().getProtocol(),
batch,
frequencies);
@@ -535,7 +547,8 @@
addSampleCategoryColumnToModel(columnModel,
columnIdentifier,
caracteristicDecorator,
- defaultRenderer);
+ defaultRenderer,
+ weightUnit);
}
{ // Weight column
@@ -545,7 +558,8 @@
Float.class, false, true, 3, computedDataColor),
TuttiComputedOrNotDataTableCell.newRender(
defaultRenderer, true, 3, computedDataColor),
- SpeciesBatchTableModel.WEIGHT);
+ SpeciesBatchTableModel.WEIGHT,
+ weightUnit);
}
{ // Number column (from frequencies)
@@ -581,7 +595,9 @@
// create table model
SpeciesBatchTableModel tableModel =
- new SpeciesBatchTableModel(sampleCategoryModel, columnModel);
+ new SpeciesBatchTableModel(weightUnit,
+ sampleCategoryModel,
+ columnModel);
table.setModel(tableModel);
table.setColumnModel(columnModel);
@@ -788,7 +804,6 @@
model.setLeafNumber(model.getLeafNumber() + newBatches.size() - 1);
recomputeBatchActionEnable();
-
}
public void updateTotalFromFrequencies(SpeciesBatchRowModel row) {
@@ -829,18 +844,27 @@
Preconditions.checkNotNull(sampleCategory.getCategoryValue());
SpeciesBatch catchBean = row.toBean();
+
+ // convert weight
+ Float weight = catchBean.getWeight();
+ catchBean.setWeight(weightUnit.toEntity(weight));
+
catchBean.setFishingOperation(fishingOperation);
SpeciesBatchRowModel parent = row.getParentBatch();
if (parent != null) {
+ //FIXME Check no need to convert parent weight ? :(
catchBean.setParentBatch(parent.toBean());
}
// apply sample category
catchBean.setSampleCategoryId(sampleCategory.getCategoryId());
catchBean.setSampleCategoryValue(sampleCategory.getCategoryValue());
- catchBean.setSampleCategoryWeight(sampleCategory.getCategoryWeight());
+ // convert sample category weight
+ Float categoryWeight = sampleCategory.getCategoryWeight();
+ catchBean.setSampleCategoryWeight(weightUnit.toEntity(categoryWeight));
+
if (TuttiEntities.isNew(catchBean)) {
String parentBatchId = null;
@@ -865,7 +889,9 @@
List<SpeciesFrequencyRowModel> frequencyRows = row.getFrequency();
List<SpeciesBatchFrequency> frequency =
- SpeciesFrequencyRowModel.toBeans(frequencyRows, catchBean);
+ SpeciesFrequencyRowModel.toEntity(
+ frequencyRows,
+ catchBean);
if (log.isInfoEnabled()) {
log.info("Will save " + frequency.size() + " frequencies.");
@@ -874,7 +900,8 @@
catchBean.getId(), frequency);
// push it back to row model
- frequencyRows = SpeciesFrequencyRowModel.fromBeans(frequency);
+ frequencyRows = SpeciesFrequencyRowModel.fromEntity(weightUnit,
+ frequency);
row.setFrequency(frequencyRows);
getModel().fireBatchUpdated(row);
@@ -1009,7 +1036,8 @@
persistenceService.getAllSpeciesBatchFrequency(id);
SpeciesBatchRowModel newRow =
- new SpeciesBatchRowModel(sampleCategoryModel,
+ new SpeciesBatchRowModel(weightUnit,
+ sampleCategoryModel,
aBatch,
frequencies);
@@ -1040,8 +1068,8 @@
newRow,
sampleCategoryId,
aBatch.getSampleCategoryValue(),
- aBatch.getSampleCategoryWeight(),
- aBatch.getSampleCategoryComputedWeight());
+ weightUnit.fromEntity(aBatch.getSampleCategoryWeight()),
+ weightUnit.fromEntity(aBatch.getSampleCategoryComputedWeight()));
rows.add(newRow);
@@ -1120,14 +1148,16 @@
protected <C extends Serializable> void addSampleCategoryColumnToModel(TableColumnModel columnModel,
ColumnIdentifier<SpeciesBatchRowModel> columnIdentifier,
Decorator<C> decorator,
- TableCellRenderer defaultRenderer) {
+ TableCellRenderer defaultRenderer,
+ WeightUnit weightUnit) {
addColumnToModel(
columnModel,
SampleCategoryComponent.newEditor(decorator),
SampleCategoryComponent.newRender(defaultRenderer,
decorator,
getConfig().getColorComputedWeights()),
- columnIdentifier);
+ columnIdentifier,
+ weightUnit);
}
public void removeFromSpeciesUsed(SpeciesBatchRowModel row) {
@@ -1175,21 +1205,29 @@
return model.getSelectedSpecies();
}
- protected SpeciesBatch convertRowToBean(SpeciesBatchRowModel row, boolean convertParent) {
- SampleCategory<?> sampleCategory = row.getFinestCategory();
- Preconditions.checkNotNull(sampleCategory);
- Preconditions.checkNotNull(sampleCategory.getCategoryId());
- Preconditions.checkNotNull(sampleCategory.getCategoryValue());
+ protected SpeciesBatch convertRowToEntity(SpeciesBatchRowModel row,
+ boolean convertParent) {
+ Preconditions.checkNotNull(row.getFinestCategory());
+ Preconditions.checkNotNull(row.getFinestCategory().getCategoryId());
+ Preconditions.checkNotNull(row.getFinestCategory().getCategoryValue());
- SpeciesBatch catchBean = row.toBean();
+// SampleCategory<?> sampleCategory = row.getFinestCategory();
+// Preconditions.checkNotNull(sampleCategory);
+// Preconditions.checkNotNull(sampleCategory.getCategoryId());
+// Preconditions.checkNotNull(sampleCategory.getCategoryValue());
- // apply sample category
- catchBean.setSampleCategoryId(sampleCategory.getCategoryId());
- catchBean.setSampleCategoryValue(sampleCategory.getCategoryValue());
- catchBean.setSampleCategoryWeight(sampleCategory.getCategoryWeight());
+ SpeciesBatch catchBean = row.toEntity();
+// // apply sample category
+// catchBean.setSampleCategoryId(sampleCategory.getCategoryId());
+// catchBean.setSampleCategoryValue(sampleCategory.getCategoryValue());
+//
+// // convert sample category weight
+// Float categoryWeight = sampleCategory.getCategoryWeight();
+// catchBean.setSampleCategoryWeight(weightUnit.toEntity(categoryWeight));
+
if (convertParent && row.getParentBatch() != null) {
- SpeciesBatch parent = convertRowToBean(row.getParentBatch(), true);
+ SpeciesBatch parent = convertRowToEntity(row.getParentBatch(), true);
catchBean.setParentBatch(parent);
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/create/CreateSpeciesBatchUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/create/CreateSpeciesBatchUI.css 2013-09-22 11:29:17 UTC (rev 1202)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/create/CreateSpeciesBatchUI.css 2013-09-23 09:39:50 UTC (rev 1203)
@@ -72,6 +72,7 @@
toolTipText: "tutti.createSpeciesBatch.field.batchWeight.tip";
labelFor: {batchWeightField};
_help: {"tutti.createSpeciesBatch.field.batchWeight.help"};
+ _addWeightUnit: {handler.getConfig().getSpeciesWeightUnit()};
}
#batchWeightField {
@@ -99,7 +100,7 @@
#categoryLabel {
text: "tutti.createSpeciesBatch.field.category";
- toolTipText: "tutti.createSpeciesBatch.field.categoryField.tip";
+ toolTipText: "tutti.createSpeciesBatch.field.category.tip";
labelFor: {categoryComboBox};
_help: {"tutti.createSpeciesBatch.field.categoryField.help"};
}
@@ -115,9 +116,10 @@
#sampleWeightLabel {
text: "tutti.createSpeciesBatch.field.sampleWeight";
- toolTipText: "tutti.createSpeciesBatch.field.sampleWeightField.tip";
+ toolTipText: "tutti.createSpeciesBatch.field.sampleWeight.tip";
labelFor: {sampleWeightField};
_help: {"tutti.createSpeciesBatch.field.sampleWeightField.help"};
+ _addWeightUnit: {handler.getConfig().getSpeciesWeightUnit()};
}
#sampleWeightField {
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/create/CreateSpeciesBatchUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/create/CreateSpeciesBatchUIHandler.java 2013-09-22 11:29:17 UTC (rev 1202)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/create/CreateSpeciesBatchUIHandler.java 2013-09-23 09:39:50 UTC (rev 1203)
@@ -498,7 +498,8 @@
editableCategoryValue = true;
addFloatColumnToModel(columnModel,
SplitSpeciesBatchTableModel.EDITABLE_CATEGORY_VALUE,
- TuttiUI.DECIMAL1_PATTERN);
+ TuttiUI.DECIMAL1_PATTERN,
+ getConfig().getSpeciesWeightUnit());
}
if (data != null) {
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyRowModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyRowModel.java 2013-09-22 11:29:17 UTC (rev 1202)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyRowModel.java 2013-09-23 09:39:50 UTC (rev 1203)
@@ -31,6 +31,7 @@
import fr.ifremer.tutti.persistence.entities.data.SpeciesBatchFrequency;
import fr.ifremer.tutti.persistence.entities.referential.Caracteristic;
import fr.ifremer.tutti.ui.swing.util.AbstractTuttiBeanUIModel;
+import fr.ifremer.tutti.ui.swing.util.WeightUnit;
import org.nuiton.util.beans.Binder;
import org.nuiton.util.beans.BinderFactory;
@@ -82,6 +83,13 @@
*/
protected Caracteristic lengthStepCaracteristic;
+ /**
+ * Weight unit.
+ *
+ * @since 2.5
+ */
+ protected final WeightUnit weightUnit;
+
protected static final Binder<SpeciesBatchFrequency, SpeciesFrequencyRowModel> fromBeanBinder =
BinderFactory.newBinder(SpeciesBatchFrequency.class,
SpeciesFrequencyRowModel.class);
@@ -92,33 +100,71 @@
private static final Ordering<Float> ordering = Ordering.natural().nullsFirst();
- public static List<SpeciesFrequencyRowModel> fromBeans(List<SpeciesBatchFrequency> frequency) {
+ //------------------------------------------------------------------------//
+ //-- Factory methods --//
+ //------------------------------------------------------------------------//
+
+ public static List<SpeciesFrequencyRowModel> fromEntity(WeightUnit weightUnit,
+ List<SpeciesBatchFrequency> entities) {
List<SpeciesFrequencyRowModel> result = Lists.newArrayList();
- for (SpeciesBatchFrequency b : frequency) {
- SpeciesFrequencyRowModel model = new SpeciesFrequencyRowModel();
- fromBeanBinder.copy(b, model);
- result.add(model);
+ for (SpeciesBatchFrequency entity : entities) {
+
+ SpeciesFrequencyRowModel row =
+ new SpeciesFrequencyRowModel(weightUnit);
+ row.fromEntity(entity);
+ result.add(row);
}
return result;
}
- public static List<SpeciesBatchFrequency> toBeans(List<SpeciesFrequencyRowModel> frequency, SpeciesBatch batch) {
+ public static List<SpeciesBatchFrequency> toEntity(List<SpeciesFrequencyRowModel> rows,
+ SpeciesBatch batch) {
List<SpeciesBatchFrequency> result = Lists.newArrayList();
- for (SpeciesFrequencyRowModel b : frequency) {
- SpeciesBatchFrequency model =
- TuttiBeanFactory.newSpeciesBatchFrequency();
- toBeanBinder.copy(b, model);
- model.setBatch(batch);
- result.add(model);
+ for (SpeciesFrequencyRowModel row : rows) {
+
+ SpeciesBatchFrequency entity = row.toEntity();
+ entity.setBatch(batch);
+ result.add(entity);
}
return result;
}
- public SpeciesFrequencyRowModel() {
+ public SpeciesFrequencyRowModel(WeightUnit weightUnit) {
super(SpeciesBatchFrequency.class, fromBeanBinder, toBeanBinder);
+ this.weightUnit = weightUnit;
}
+ //------------------------------------------------------------------------//
+ //-- AbstractTuttiBeanUIModel --//
+ //------------------------------------------------------------------------//
+
@Override
+ protected SpeciesBatchFrequency newEntity() {
+ return TuttiBeanFactory.newSpeciesBatchFrequency();
+ }
+
+ @Override
+ public void fromEntity(SpeciesBatchFrequency entity) {
+ super.fromEntity(entity);
+
+ // convert weight
+ setWeight(weightUnit.fromEntity(getWeight()));
+ }
+
+ @Override
+ public SpeciesBatchFrequency toEntity() {
+ SpeciesBatchFrequency result = super.toEntity();
+
+ // convert weight
+ result.setWeight(weightUnit.toEntity(getWeight()));
+ return result;
+ }
+
+ //------------------------------------------------------------------------//
+ //-- SpeciesBatchFrequency --//
+ //------------------------------------------------------------------------//
+
+ @Override
public Float getLengthStep() {
return lengthStep;
}
@@ -182,11 +228,6 @@
}
@Override
- protected SpeciesBatchFrequency newEntity() {
- return TuttiBeanFactory.newSpeciesBatchFrequency();
- }
-
- @Override
public Integer getRankOrder() {
return null;
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyTableModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyTableModel.java 2013-09-22 11:29:17 UTC (rev 1202)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyTableModel.java 2013-09-23 09:39:50 UTC (rev 1203)
@@ -25,6 +25,7 @@
*/
import com.google.common.collect.Maps;
+import fr.ifremer.tutti.ui.swing.util.WeightUnit;
import fr.ifremer.tutti.ui.swing.util.table.AbstractTuttiTableModel;
import fr.ifremer.tutti.ui.swing.util.table.ColumnIdentifier;
import org.jdesktop.swingx.table.TableColumnModelExt;
@@ -65,9 +66,18 @@
private final Map<Float, SpeciesFrequencyRowModel> rowCache;
- public SpeciesFrequencyTableModel(TableColumnModelExt columnModel,
+ /**
+ * Weight unit.
+ *
+ * @since 2.5
+ */
+ protected final WeightUnit weightUnit;
+
+ public SpeciesFrequencyTableModel(WeightUnit weightUnit,
+ TableColumnModelExt columnModel,
SpeciesFrequencyUIModel uiModel) {
super(columnModel, true, true);
+ this.weightUnit = weightUnit;
this.uiModel = uiModel;
this.rowCache = Maps.newTreeMap();
setNoneEditableCols();
@@ -87,7 +97,8 @@
lengthStep + uiModel.getStep());
}
}
- SpeciesFrequencyRowModel result = new SpeciesFrequencyRowModel();
+ SpeciesFrequencyRowModel result =
+ new SpeciesFrequencyRowModel(weightUnit);
result.addPropertyChangeListener(SpeciesFrequencyRowModel.PROPERTY_LENGTH_STEP,
new PropertyChangeListener() {
@Override
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUI.css 2013-09-22 11:29:17 UTC (rev 1202)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUI.css 2013-09-23 09:39:50 UTC (rev 1203)
@@ -76,6 +76,7 @@
labelFor: {totalWeightField};
enabled: {model.getTotalWeight() != null};
_help: {"tutti.editSpeciesFrequencies.field.totalWeight.help"};
+ _addWeightUnit: {handler.getConfig().getSpeciesWeightUnit()};
}
#totalWeightField {
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIHandler.java 2013-09-22 11:29:17 UTC (rev 1202)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIHandler.java 2013-09-23 09:39:50 UTC (rev 1203)
@@ -43,6 +43,7 @@
import fr.ifremer.tutti.ui.swing.util.TuttiBeanMonitor;
import fr.ifremer.tutti.ui.swing.util.TuttiUI;
import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil;
+import fr.ifremer.tutti.ui.swing.util.WeightUnit;
import fr.ifremer.tutti.ui.swing.util.table.AbstractSelectTableAction;
import fr.ifremer.tutti.ui.swing.util.table.AbstractTuttiTableUIHandler;
import jaxx.runtime.SwingUtil;
@@ -89,12 +90,20 @@
protected Set<SpeciesFrequencyRowModel> withWeightRows = Sets.newHashSet();
+ /**
+ * Weight unit.
+ *
+ * @since 2.5
+ */
+ protected final WeightUnit weightUnit;
+
public SpeciesFrequencyUIHandler(TuttiUIContext context,
SpeciesFrequencyUI ui) {
super(context, ui,
SpeciesFrequencyRowModel.PROPERTY_LENGTH_STEP,
SpeciesFrequencyRowModel.PROPERTY_NUMBER,
SpeciesFrequencyRowModel.PROPERTY_WEIGHT);
+ this.weightUnit = context.getConfig().getSpeciesWeightUnit();
}
//------------------------------------------------------------------------//
@@ -202,7 +211,8 @@
SampleCategoryModel sampleCategoryModel =
getDataContext().getSampleCategoryModel();
- SpeciesFrequencyUIModel model = new SpeciesFrequencyUIModel(sampleCategoryModel);
+ SpeciesFrequencyUIModel model = new SpeciesFrequencyUIModel(
+ weightUnit, sampleCategoryModel);
ui.setContextValue(model);
}
@@ -312,12 +322,16 @@
addFloatColumnToModel(columnModel,
SpeciesFrequencyTableModel.WEIGHT,
- TuttiUI.DECIMAL3_PATTERN);
+ TuttiUI.DECIMAL3_PATTERN,
+ weightUnit);
}
// create table model
SpeciesFrequencyTableModel tableModel =
- new SpeciesFrequencyTableModel(columnModel, model);
+ new SpeciesFrequencyTableModel(
+ weightUnit,
+ columnModel,
+ model);
JXTable table = getTable();
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIModel.java 2013-09-22 11:29:17 UTC (rev 1202)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIModel.java 2013-09-23 09:39:50 UTC (rev 1203)
@@ -28,6 +28,7 @@
import fr.ifremer.tutti.persistence.entities.data.SampleCategoryModel;
import fr.ifremer.tutti.persistence.entities.referential.Caracteristic;
import fr.ifremer.tutti.ui.swing.content.operation.catches.species.SpeciesBatchRowModel;
+import fr.ifremer.tutti.ui.swing.util.WeightUnit;
import fr.ifremer.tutti.ui.swing.util.table.AbstractTuttiTableUIModel;
import java.util.List;
@@ -152,14 +153,34 @@
protected Set<SpeciesFrequencyRowModel> emptyRows;
- protected SampleCategoryModel sampleCategoryModel;
+ /**
+ * Sample categories model.
+ *
+ * @since 2.4
+ */
+ protected final SampleCategoryModel sampleCategoryModel;
- public SpeciesFrequencyUIModel(SampleCategoryModel sampleCategoryModel) {
+ /**
+ * Weight unit.
+ *
+ * @since 2.5
+ */
+ protected final WeightUnit weightUnit;
+
+ public SpeciesFrequencyUIModel(WeightUnit weightUnit,
+ SampleCategoryModel sampleCategoryModel) {
super(SpeciesBatchRowModel.class, null, null);
+ this.weightUnit = weightUnit;
this.sampleCategoryModel = sampleCategoryModel;
setEmptyRows(Sets.<SpeciesFrequencyRowModel>newHashSet());
}
+ @Override
+ protected SpeciesBatchRowModel newEntity() {
+ return new SpeciesBatchRowModel(weightUnit, sampleCategoryModel);
+ }
+
+ @Override
public void setRows(List<SpeciesFrequencyRowModel> rows) {
super.setRows(rows);
setEmptyRows(Sets.<SpeciesFrequencyRowModel>newHashSet());
@@ -317,9 +338,4 @@
emptyRows.remove(row);
firePropertyChange(PROPERTY_EMPTY_ROWS, null, emptyRows);
}
-
- @Override
- protected SpeciesBatchRowModel newEntity() {
- return new SpeciesBatchRowModel(sampleCategoryModel);
- }
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/SplitSpeciesBatchUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/SplitSpeciesBatchUI.css 2013-09-22 11:29:17 UTC (rev 1202)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/SplitSpeciesBatchUI.css 2013-09-23 09:39:50 UTC (rev 1203)
@@ -46,6 +46,7 @@
toolTipText: "tutti.splitSpeciesBatch.field.batchWeightField.tip";
labelFor: {batchWeightField};
_help: {"tutti.splitSpeciesBatch.field.batchWeightField.help"};
+ _addWeightUnit: {handler.getConfig().getSpeciesWeightUnit()};
}
#batchWeightField {
@@ -59,6 +60,7 @@
toolTipText: "tutti.splitSpeciesBatch.field.sampleWeightField.tip";
labelFor: {sampleWeightField};
_help: {"tutti.splitSpeciesBatch.field.sampleWeightField.help"};
+ _addWeightUnit: {handler.getConfig().getSpeciesWeightUnit()};
}
#sampleWeightField {
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/SplitSpeciesBatchUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/SplitSpeciesBatchUIHandler.java 2013-09-22 11:29:17 UTC (rev 1202)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/SplitSpeciesBatchUIHandler.java 2013-09-23 09:39:50 UTC (rev 1203)
@@ -155,7 +155,8 @@
SampleCategoryModel sampleCategoryModel =
getDataContext().getSampleCategoryModel();
- SplitSpeciesBatchUIModel model = new SplitSpeciesBatchUIModel(sampleCategoryModel);
+ SplitSpeciesBatchUIModel model = new SplitSpeciesBatchUIModel(
+ getConfig().getSpeciesWeightUnit(), sampleCategoryModel);
ui.setContextValue(model);
}
@@ -392,7 +393,8 @@
addFloatColumnToModel(columnModel,
SplitSpeciesBatchTableModel.WEIGHT,
- TuttiUI.DECIMAL3_PATTERN);
+ TuttiUI.DECIMAL3_PATTERN,
+ getConfig().getSpeciesWeightUnit());
}
}
@@ -424,7 +426,7 @@
if (data != null) {
- // add a row for each qualitive value
+ // add a row for each qualitative value
for (CaracteristicQualitativeValue qualitativeValue : data.getQualitativeValue()) {
if (log.isDebugEnabled()) {
log.debug("Add QV: " + qualitativeValue);
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/SplitSpeciesBatchUIModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/SplitSpeciesBatchUIModel.java 2013-09-22 11:29:17 UTC (rev 1202)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/SplitSpeciesBatchUIModel.java 2013-09-23 09:39:50 UTC (rev 1203)
@@ -28,6 +28,7 @@
import fr.ifremer.tutti.persistence.entities.data.SampleCategoryModelEntry;
import fr.ifremer.tutti.ui.swing.content.operation.catches.SelectedCategoryAble;
import fr.ifremer.tutti.ui.swing.content.operation.catches.species.SpeciesBatchRowModel;
+import fr.ifremer.tutti.ui.swing.util.WeightUnit;
import fr.ifremer.tutti.ui.swing.util.table.AbstractTuttiTableUIModel;
import java.util.List;
@@ -86,11 +87,25 @@
*/
protected SampleCategoryModel sampleCategoryModel;
- public SplitSpeciesBatchUIModel(SampleCategoryModel sampleCategoryModel) {
+ /**
+ * Weight unit.
+ *
+ * @since 2.5
+ */
+ protected final WeightUnit weightUnit;
+
+ public SplitSpeciesBatchUIModel(WeightUnit weightUnit,
+ SampleCategoryModel sampleCategoryModel) {
super(SpeciesBatchRowModel.class, null, null);
+ this.weightUnit = weightUnit;
this.sampleCategoryModel = sampleCategoryModel;
}
+ @Override
+ protected SpeciesBatchRowModel newEntity() {
+ return new SpeciesBatchRowModel(weightUnit, sampleCategoryModel);
+ }
+
public SpeciesBatchRowModel getBatch() {
return batch;
}
@@ -136,11 +151,6 @@
firePropertyChange(PROPERTY_SAMPLE_WEIGHT, oldValue, sampleWeight);
}
- @Override
- protected SpeciesBatchRowModel newEntity() {
- return new SpeciesBatchRowModel(sampleCategoryModel);
- }
-
public SampleCategoryModel getSampleCategoryModel() {
return sampleCategoryModel;
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiBeanUIModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiBeanUIModel.java 2013-09-22 11:29:17 UTC (rev 1202)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiBeanUIModel.java 2013-09-23 09:39:50 UTC (rev 1203)
@@ -55,8 +55,6 @@
protected boolean valid;
-// private final Class<E> entityType;
-
private final Binder<E, B> fromBeanBinder;
private final Binder<B, E> toBeanBinder;
@@ -64,11 +62,18 @@
protected AbstractTuttiBeanUIModel(Class<E> entityType,
Binder<E, B> fromBeanBinder,
Binder<B, E> toBeanBinder) {
-// this.entityType = entityType;
this.fromBeanBinder = fromBeanBinder;
this.toBeanBinder = toBeanBinder;
}
+ public void fromEntity(E entity) {
+ fromBean(entity);
+ }
+
+ public E toEntity() {
+ return toBean();
+ }
+
public final void fromBean(E bean) {
fromBeanBinder.copy(bean, (B) this);
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiUIHandler.java 2013-09-22 11:29:17 UTC (rev 1202)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiUIHandler.java 2013-09-23 09:39:50 UTC (rev 1203)
@@ -437,6 +437,15 @@
style |= Font.ITALIC;
}
jLabel.setFont(font.deriveFont(style));
+
+ WeightUnit weightUnit = (WeightUnit) jLabel.getClientProperty("addWeightUnit");
+ if (weightUnit != null) {
+ String text = weightUnit.decorateLabel(jLabel.getText());
+ jLabel.setText(text);
+
+ String tip = weightUnit.decorateTip(jLabel.getToolTipText());
+ jLabel.setToolTipText(tip);
+ }
}
protected void initButtonAttachment(ButtonAttachment component) {
@@ -821,17 +830,34 @@
validator.setBean(bean);
}
-
protected <R extends AbstractTuttiBeanUIModel> void addColumnToModel(TableColumnModel model,
TableCellEditor editor,
TableCellRenderer renderer,
ColumnIdentifier<R> identifier) {
+ addColumnToModel(model, editor, renderer, identifier, null);
+ }
+
+
+ protected <R extends AbstractTuttiBeanUIModel> void addColumnToModel(TableColumnModel model,
+ TableCellEditor editor,
+ TableCellRenderer renderer,
+ ColumnIdentifier<R> identifier,
+ WeightUnit weightUnit) {
+
TableColumnExt col = new TableColumnExt(model.getColumnCount());
col.setCellEditor(editor);
col.setCellRenderer(renderer);
- col.setHeaderValue(_(identifier.getHeaderI18nKey()));
- col.setToolTipText(_(identifier.getHeaderTipI18nKey()));
+ String label = _(identifier.getHeaderI18nKey());
+ if (weightUnit != null) {
+ label = weightUnit.decorateLabel(label);
+ }
+ col.setHeaderValue(label);
+ String tip = _(identifier.getHeaderTipI18nKey());
+ if (weightUnit != null) {
+ tip = weightUnit.decorateTip(tip);
+ }
+ col.setToolTipText(tip);
col.setIdentifier(identifier);
model.addColumn(col);
@@ -840,7 +866,7 @@
protected <R extends AbstractTuttiBeanUIModel> void addColumnToModel(TableColumnModel model,
ColumnIdentifier<R> identifier) {
- addColumnToModel(model, null, null, identifier);
+ addColumnToModel(model, null, null, identifier, null);
}
protected <R extends AbstractTuttiBeanUIModel> void addFloatColumnToModel(TableColumnModel model,
@@ -853,8 +879,21 @@
editor.getNumberEditor().getTextField().setBorder(new LineBorder(Color.GRAY, 2));
editor.getNumberEditor().setNumberPattern(numberPattern);
- addColumnToModel(model, editor, null, identifier);
+ addColumnToModel(model, editor, null, identifier, null);
+ }
+ protected <R extends AbstractTuttiBeanUIModel> void addFloatColumnToModel(TableColumnModel model,
+ ColumnIdentifier<R> identifier,
+ String numberPattern,
+ WeightUnit weightUnit) {
+
+ NumberCellEditor<Float> editor =
+ JAXXWidgetUtil.newNumberTableCellEditor(Float.class, false);
+ editor.getNumberEditor().setSelectAllTextOnError(true);
+ editor.getNumberEditor().getTextField().setBorder(new LineBorder(Color.GRAY, 2));
+ editor.getNumberEditor().setNumberPattern(numberPattern);
+
+ addColumnToModel(model, editor, null, identifier, weightUnit);
}
protected <R extends AbstractTuttiBeanUIModel> void addIntegerColumnToModel(TableColumnModel model,
@@ -867,7 +906,7 @@
editor.getNumberEditor().getTextField().setBorder(new LineBorder(Color.GRAY, 2));
editor.getNumberEditor().setNumberPattern(numberPattern);
- addColumnToModel(model, editor, null, identifier);
+ addColumnToModel(model, editor, null, identifier, null);
}
protected <R extends AbstractTuttiBeanUIModel> void addBooleanColumnToModel(TableColumnModel model,
@@ -877,7 +916,8 @@
addColumnToModel(model,
table.getDefaultEditor(Boolean.class),
table.getDefaultRenderer(Boolean.class),
- identifier);
+ identifier,
+ null);
}
protected <R extends AbstractTuttiBeanUIModel, B> void addComboDataColumnToModel(TableColumnModel model,
@@ -902,7 +942,8 @@
addColumnToModel(model,
editor,
newTableCellRender(decorator),
- identifier);
+ identifier,
+ null);
}
protected <O> TableCellRenderer newTableCellRender(Class<O> type) {
Added: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/WeightUnit.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/WeightUnit.java (rev 0)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/WeightUnit.java 2013-09-23 09:39:50 UTC (rev 1203)
@@ -0,0 +1,103 @@
+package fr.ifremer.tutti.ui.swing.util;
+
+/*
+ * #%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 static org.nuiton.i18n.I18n._;
+import static org.nuiton.i18n.I18n.n_;
+
+/**
+ * Different types of weight unit.
+ * <p/>
+ * Created on 09/22/13.
+ *
+ * @author Tony Chemit <chemit(a)codelutin.com>
+ * @since 2.5
+ */
+public enum WeightUnit {
+ G(n_("tutti.common.unit.g"), n_("tutti.common.unit.short.g")) {
+ @Override
+ public Float fromEntity(Float weight) {
+ return weight == null ? null : weight * 1000;
+ }
+
+ @Override
+ public Float toEntity(Float weight) {
+ return weight == null ? null : weight / 1000.0f;
+ }
+ },
+ KG(n_("tutti.common.unit.kg"), n_("tutti.common.unit.short.kg")) {
+ @Override
+ public Float fromEntity(Float weight) {
+ return weight;
+ }
+
+ @Override
+ public Float toEntity(Float weight) {
+ return weight;
+ }
+ };
+
+ private final String i18nShortKey;
+
+ private final String i18nKey;
+
+ WeightUnit(String i18nKey, String i18nShortKey) {
+ this.i18nKey = i18nKey;
+ this.i18nShortKey = i18nShortKey;
+ }
+
+ public String getLabel() {
+ return _(i18nKey);
+ }
+
+ public String getShortLabel() {
+ return _(i18nShortKey);
+ }
+
+ /**
+ * Transform the given {@code weight} coming from db to ui.
+ *
+ * @param weight weigth to transform
+ * @return the ui representation of the given {@code weight}.
+ */
+ public abstract Float fromEntity(Float weight);
+
+ /**
+ * Transform the given {@code weight} coming from ui to db.
+ *
+ * @param weight weigth to transform
+ * @return the db representation of the given {@code weight}.
+ */
+ public abstract Float toEntity(Float weight);
+
+ public String decorateLabel(String label) {
+ return String.format("%s (%s)", label, getShortLabel());
+ }
+
+ public String decorateTip(String tip) {
+ String unit = _("tutti.common.unit");
+ return String.format("%s (%s %s)", tip, unit, getLabel());
+ }
+}
Property changes on: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/WeightUnit.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/util/table/CaracteristicColumnIdentifier.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/table/CaracteristicColumnIdentifier.java 2013-09-22 11:29:17 UTC (rev 1202)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/table/CaracteristicColumnIdentifier.java 2013-09-23 09:39:50 UTC (rev 1203)
@@ -1,5 +1,29 @@
package fr.ifremer.tutti.ui.swing.util.table;
+/*
+ * #%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.base.Preconditions;
import fr.ifremer.tutti.persistence.entities.CaracteristicMap;
import fr.ifremer.tutti.persistence.entities.referential.Caracteristic;
Property changes on: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/table/CaracteristicColumnIdentifier.java
___________________________________________________________________
Modified: svn:keywords
- Author Date Id Revision
+ Author Date Id Revision HeadURL
Modified: trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties
===================================================================
--- trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties 2013-09-22 11:29:17 UTC (rev 1202)
+++ trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties 2013-09-23 09:39:50 UTC (rev 1203)
@@ -92,6 +92,11 @@
tutti.common.file.tuttiSpecies=
tutti.common.file.zip=
tutti.common.protocol.categories.not.compatible=
+tutti.common.unit=Unit
+tutti.common.unit.g=Gramme
+tutti.common.unit.kg=kilogram
+tutti.common.unit.short.g=g
+tutti.common.unit.short.kg=Kg
tutti.common.validate=
tutti.common.validate.mnemonic=
tutti.config.action.reload.actions=
@@ -107,6 +112,8 @@
tutti.config.category.technical.description=
tutti.config.category.ui=
tutti.config.category.ui.description=
+tutti.config.category.weightUnit=
+tutti.config.category.weightUnit.description=
tutti.config.option.cruiseId.description=
tutti.config.option.help.directory.description=
tutti.config.option.i18n.directory.description=
@@ -116,6 +123,7 @@
tutti.config.option.protocolId.description=
tutti.config.option.startActionFile.description=
tutti.config.option.tremieCarousselVessel.description=
+tutti.config.option.ui.adminPassword.description=
tutti.config.option.ui.autoPopupNumberEditor.description=
tutti.config.option.ui.color.blockingLayer.description=
tutti.config.option.ui.color.cellWithValue.description=
@@ -128,6 +136,11 @@
tutti.config.option.ui.dateFormat.description=
tutti.config.option.ui.shortcut.closePopup.description=
tutti.config.option.ui.showNumberEditorButton.description=
+tutti.config.option.ui.weight.unit.accidentalCatch.description=
+tutti.config.option.ui.weight.unit.benthos.description=
+tutti.config.option.ui.weight.unit.individualObservation.description=
+tutti.config.option.ui.weight.unit.marineLitter.description=
+tutti.config.option.ui.weight.unit.species.description=
tutti.config.option.update.application.url.description=
tutti.config.option.update.db.url.description=
tutti.config.option.update.url.description=
@@ -188,10 +201,11 @@
tutti.createBenthosBatch.field.batchWeight=
tutti.createBenthosBatch.field.batchWeight.tip=
tutti.createBenthosBatch.field.category=
-tutti.createBenthosBatch.field.categoryField.tip=
+tutti.createBenthosBatch.field.category.tip=
tutti.createBenthosBatch.field.sampleCategory=
tutti.createBenthosBatch.field.sampleCategory.tip=
tutti.createBenthosBatch.field.sampleWeight=
+tutti.createBenthosBatch.field.sampleWeight.tip=
tutti.createBenthosBatch.field.sampleWeightField.tip=
tutti.createBenthosBatch.field.species=
tutti.createBenthosBatch.field.species.tip=
@@ -243,6 +257,8 @@
tutti.createMarineLitterBatch.field.marineLitterSizeCategory.tip=
tutti.createMarineLitterBatch.field.number=
tutti.createMarineLitterBatch.field.number.tip=
+tutti.createMarineLitterBatch.field.weight=
+tutti.createMarineLitterBatch.field.weight.tip=
tutti.createMarineLitterBatch.title=
tutti.createSpeciesBatch.action.addSpecies=
tutti.createSpeciesBatch.action.addSpecies.mnemonic=
@@ -264,11 +280,11 @@
tutti.createSpeciesBatch.field.batchWeight=
tutti.createSpeciesBatch.field.batchWeight.tip=
tutti.createSpeciesBatch.field.category=
-tutti.createSpeciesBatch.field.categoryField.tip=
+tutti.createSpeciesBatch.field.category.tip=
tutti.createSpeciesBatch.field.sampleCategory=
tutti.createSpeciesBatch.field.sampleCategory.tip=
tutti.createSpeciesBatch.field.sampleWeight=
-tutti.createSpeciesBatch.field.sampleWeightField.tip=
+tutti.createSpeciesBatch.field.sampleWeight.tip=
tutti.createSpeciesBatch.field.species=
tutti.createSpeciesBatch.field.species.tip=
tutti.createSpeciesBatch.title=
@@ -730,6 +746,10 @@
tutti.editIndividualObservationBatch.table.header.species.tip=
tutti.editIndividualObservationBatch.table.header.weight=
tutti.editIndividualObservationBatch.table.header.weight.tip=
+tutti.editIndividualObservationBatch.table.header.weightG=
+tutti.editIndividualObservationBatch.table.header.weightG.tip=
+tutti.editIndividualObservationBatch.table.header.weightKG=
+tutti.editIndividualObservationBatch.table.header.weightKG.tip=
tutti.editIndividualObservationCaracteristics.action.cancel=
tutti.editIndividualObservationCaracteristics.action.cancel.mnemonic=
tutti.editIndividualObservationCaracteristics.action.cancel.tip=
@@ -773,6 +793,10 @@
tutti.editMarineLitterBatch.table.header.number.tip=
tutti.editMarineLitterBatch.table.header.weight=
tutti.editMarineLitterBatch.table.header.weight.tip=
+tutti.editMarineLitterBatch.table.header.weightG=
+tutti.editMarineLitterBatch.table.header.weightG.tip=
+tutti.editMarineLitterBatch.table.header.weightKG=
+tutti.editMarineLitterBatch.table.header.weightKG.tip=
tutti.editProgram.action.closeEditProgram=
tutti.editProgram.action.closeEditProgram.mnemonic=
tutti.editProgram.action.closeEditProgram.tip=
@@ -1378,11 +1402,11 @@
tutti.splitBenthosBatch.action.save.mnemonic=
tutti.splitBenthosBatch.action.save.tip=
tutti.splitBenthosBatch.field.batchWeight=
-tutti.splitBenthosBatch.field.batchWeightField.tip=
+tutti.splitBenthosBatch.field.batchWeight.tip=
tutti.splitBenthosBatch.field.category=
-tutti.splitBenthosBatch.field.categoryField.tip=
+tutti.splitBenthosBatch.field.category.tip=
tutti.splitBenthosBatch.field.sampleWeight=
-tutti.splitBenthosBatch.field.sampleWeightField.tip=
+tutti.splitBenthosBatch.field.sampleWeight.tip=
tutti.splitBenthosBatch.field.species=
tutti.splitBenthosBatch.field.speciesField.tip=
tutti.splitBenthosBatch.table.header.category=
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-09-22 11:29:17 UTC (rev 1202)
+++ trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2013-09-23 09:39:50 UTC (rev 1203)
@@ -77,7 +77,6 @@
tutti.common.askSaveBeforeLeaving.title=Modifications non enregistrées
tutti.common.cancel=Annuler
tutti.common.cancel.mnemonic=A
-tutti.common.caracteristic.notFound=Caractéristique inconnue
tutti.common.datefield.tip=Format attendu \: %s
tutti.common.file.csv=Extension d'un fichier csv
tutti.common.file.pdf=Extension d'un fichier pdf
@@ -88,6 +87,11 @@
tutti.common.file.tuttiMarineLitter=Fichier d'import/export des lots de déchets
tutti.common.file.tuttiSpecies=Fichier d'import/export des lots d'espèces
tutti.common.file.zip=Extension d'une archive zip
+tutti.common.unit=Unité
+tutti.common.unit.g=Gramme
+tutti.common.unit.kg=Kilogramme
+tutti.common.unit.short.g=g
+tutti.common.unit.short.kg=kg
tutti.common.validate=Valider
tutti.common.validate.mnemonic=V
tutti.config.action.reload.actions=Recharger les actions
@@ -103,6 +107,8 @@
tutti.config.category.technical.description=Informations techniques
tutti.config.category.ui=Interface utilisateur
tutti.config.category.ui.description=Options de l'interface utilisateur
+tutti.config.category.weightUnit=Unité des poids
+tutti.config.category.weightUnit.description=Configurer les Unités des poids capturés selon de type de capture (espèce, benthos, ...)
tutti.config.option.cruiseId.description=Identifiant de la dernière campagne utilisée
tutti.config.option.help.directory.description=Répertoire des fichiers d'aide
tutti.config.option.i18n.directory.description=Répertoire des fichiers de traductions
@@ -112,6 +118,7 @@
tutti.config.option.protocolId.description=Identifiant du dernier protocole utilisé
tutti.config.option.startActionFile.description=Fichier
tutti.config.option.tremieCarousselVessel.description=Navire ayant un carrousel et une trémie (ex. Thalassa)
+tutti.config.option.ui.adminPassword.description=MD5 du mot de passe des zones sensibles
tutti.config.option.ui.autoPopupNumberEditor.description=Toujours afficher le pavé numérique lors de l'édition d'un nombre
tutti.config.option.ui.color.blockingLayer.description=Couleur utilisée pour bloquer l'interface lors d'une action longue
tutti.config.option.ui.color.cellWithValue.description=Couleur d'une cellule avec des données
@@ -124,6 +131,11 @@
tutti.config.option.ui.dateFormat.description=Format de dates
tutti.config.option.ui.shortcut.closePopup.description=Fermer une popup
tutti.config.option.ui.showNumberEditorButton.description=Afficher le pavé numérique de saisie
+tutti.config.option.ui.weight.unit.accidentalCatch.description=Unité de poids à utiliser dans la saisies des captures accidentelles
+tutti.config.option.ui.weight.unit.benthos.description=Unité de poids à utiliser dans la saisies du benthos
+tutti.config.option.ui.weight.unit.individualObservation.description=Unité de poids à utiliser dans la saisies des données individuelles
+tutti.config.option.ui.weight.unit.marineLitter.description=Unité de poids à utiliser dans la saisies des macro-déchêts
+tutti.config.option.ui.weight.unit.species.description=Unité de poids à utiliser dans la saisies des espèces
tutti.config.option.update.application.url.description=URL de mise à jour des applicatifs
tutti.config.option.update.db.url.description=URL de mise à jour de la base de données
tutti.config.option.weights.rate.difference.totalAndSorted.description=Pourcentage de différence entre les Poids totaux VRAC triés et les poids totaux VRAC en dessous duquel on demande confirmation sur la saisie
@@ -152,8 +164,8 @@
tutti.createAccidentalBatch.field.accidentalSize.tip=Taille
tutti.createAccidentalBatch.field.accidentalSpecies=Espèce
tutti.createAccidentalBatch.field.accidentalSpecies.tip=Espèce
-tutti.createAccidentalBatch.field.accidentalWeight=Poids (kg)
-tutti.createAccidentalBatch.field.accidentalWeight.tip=Poids (kg)
+tutti.createAccidentalBatch.field.accidentalWeight=Poids
+tutti.createAccidentalBatch.field.accidentalWeight.tip=Poids
tutti.createAccidentalBatch.title=Créer une capture accidentelle
tutti.createBenthosBatch.action.addSpecies=...
tutti.createBenthosBatch.action.addSpecies.mnemonic=.
@@ -169,14 +181,14 @@
tutti.createBenthosBatch.action.saveAndContinue.tip=Enregistrer la création du lot espèce et en saisir un autre
tutti.createBenthosBatch.field.batchCount=Nombre
tutti.createBenthosBatch.field.batchCount.tip=Saisir le nombre d'individus dans le lot
-tutti.createBenthosBatch.field.batchWeight=Poids du lot (kg)
-tutti.createBenthosBatch.field.batchWeight.tip=Poids du lot (kg)
+tutti.createBenthosBatch.field.batchWeight=Poids du lot
+tutti.createBenthosBatch.field.batchWeight.tip=Poids du lot
tutti.createBenthosBatch.field.category=Catégorie
-tutti.createBenthosBatch.field.categoryField.tip=Choisir le mode de catégorisation
+tutti.createBenthosBatch.field.category.tip=Choisir le mode de catégorisation
tutti.createBenthosBatch.field.sampleCategory=V / HV
tutti.createBenthosBatch.field.sampleCategory.tip=Catégorie Vrac / Hors Vrac
-tutti.createBenthosBatch.field.sampleWeight=Poids total catégorisé (kg)
-tutti.createBenthosBatch.field.sampleWeightField.tip=Somme des poids saisis ci-dessous (kg)
+tutti.createBenthosBatch.field.sampleWeight=Poids total catégorisé
+tutti.createBenthosBatch.field.sampleWeight.tip=Somme des poids saisis ci-dessous
tutti.createBenthosBatch.field.species=Espèce du lot
tutti.createBenthosBatch.field.species.tip=Espèce du lot
tutti.createBenthosBatch.title=Créer un lot
@@ -203,7 +215,7 @@
tutti.createIndividualObservationBatch.field.individualObservationSize.tip=Taille
tutti.createIndividualObservationBatch.field.individualObservationSpecies=Espèce
tutti.createIndividualObservationBatch.field.individualObservationSpecies.tip=Espèce
-tutti.createIndividualObservationBatch.field.individualObservationWeight=Poids (g)
+tutti.createIndividualObservationBatch.field.individualObservationWeight=Poids
tutti.createIndividualObservationBatch.field.individualObservationWeight.tip=Poids
tutti.createIndividualObservationBatch.title=Créer une observation
tutti.createMarineLitterBatch.action.cancel=Annuler
@@ -221,6 +233,8 @@
tutti.createMarineLitterBatch.field.marineLitterSizeCategory.tip=Classe de taille des déchets observés
tutti.createMarineLitterBatch.field.number=Nombre
tutti.createMarineLitterBatch.field.number.tip=Nombre d'objets dans la catégorie
+tutti.createMarineLitterBatch.field.weight=Poids
+tutti.createMarineLitterBatch.field.weight.tip=Poids
tutti.createMarineLitterBatch.title=Créer un lot
tutti.createSpeciesBatch.action.addSpecies=...
tutti.createSpeciesBatch.action.addSpecies.mnemonic=.
@@ -236,14 +250,14 @@
tutti.createSpeciesBatch.action.saveAndContinue.tip=Enregistrer la création du lot espèce et en saisir un autre
tutti.createSpeciesBatch.field.batchCount=Nombre
tutti.createSpeciesBatch.field.batchCount.tip=Saisir le nombre d'individus dans le lot
-tutti.createSpeciesBatch.field.batchWeight=Poids du lot (kg)
+tutti.createSpeciesBatch.field.batchWeight=Poids du lot
tutti.createSpeciesBatch.field.batchWeight.tip=Poids du lot (non obligatoire à ce stade)
tutti.createSpeciesBatch.field.category=Catégorie
-tutti.createSpeciesBatch.field.categoryField.tip=Choisir le mode de catégorisation
+tutti.createSpeciesBatch.field.category.tip=Choisir le mode de catégorisation
tutti.createSpeciesBatch.field.sampleCategory=V / HV
tutti.createSpeciesBatch.field.sampleCategory.tip=Catégorie Vrac / Hors Vrac
-tutti.createSpeciesBatch.field.sampleWeight=Poids total catégorisé (kg)
-tutti.createSpeciesBatch.field.sampleWeightField.tip=Somme des poids saisis ci-dessous (kg)
+tutti.createSpeciesBatch.field.sampleWeight=Poids total catégorisé
+tutti.createSpeciesBatch.field.sampleWeight.tip=Somme des poids saisis ci-dessous
tutti.createSpeciesBatch.field.species=Espèce du lot
tutti.createSpeciesBatch.field.species.tip=Code campagne ou Code Rubin – Nom scientifique du lot à créer
tutti.createSpeciesBatch.title=Créer un lot
@@ -351,7 +365,7 @@
tutti.editAccidentalBatch.table.header.size.tip=Taille (l'unité dépend de la classe de taille)
tutti.editAccidentalBatch.table.header.species=Espèce
tutti.editAccidentalBatch.table.header.species.tip=Espèce
-tutti.editAccidentalBatch.table.header.weight=Poids observé (kg)
+tutti.editAccidentalBatch.table.header.weight=Poids observé
tutti.editAccidentalBatch.table.header.weight.tip=Poids observé
tutti.editBenthosBatch.action.createBatch=Créer un lot pour une espèce
tutti.editBenthosBatch.action.createBatch.mnemonic=C
@@ -390,17 +404,17 @@
tutti.editBenthosBatch.action.splitBatch=Catégoriser le lot
tutti.editBenthosBatch.action.splitBatch.mnemonic=C
tutti.editBenthosBatch.action.splitBatch.tip=Catégoriser le lot courant (celui de la ligne sélectionné)
-tutti.editBenthosBatch.field.benthosTotalInertWeight=Poids inerte trié (kg)
+tutti.editBenthosBatch.field.benthosTotalInertWeight=Poids inerte trié
tutti.editBenthosBatch.field.benthosTotalInertWeight.tip=Poids de la fraction inerte restante après le tri du benthos (cailloux, vase, débris coquilliers, etc.)
-tutti.editBenthosBatch.field.benthosTotalLivingNotItemizedWeight=Poids vivant non détaillé trié (kg)
+tutti.editBenthosBatch.field.benthosTotalLivingNotItemizedWeight=Poids vivant non détaillé trié
tutti.editBenthosBatch.field.benthosTotalLivingNotItemizedWeight.tip=Poids de la fraction vivante restante après le tri du benthos (algues, matières vivantes non reconnaissable, etc.)
-tutti.editBenthosBatch.field.benthosTotalSampleSortedWeight=Poids VRAC trié (kg)
+tutti.editBenthosBatch.field.benthosTotalSampleSortedWeight=Poids VRAC trié
tutti.editBenthosBatch.field.benthosTotalSampleSortedWeight.tip=Poids total du benthos trié
-tutti.editBenthosBatch.field.benthosTotalSortedWeight=Poids total VRAC (kg)
+tutti.editBenthosBatch.field.benthosTotalSortedWeight=Poids total VRAC
tutti.editBenthosBatch.field.benthosTotalSortedWeight.tip=Poids total VRAC des espèces de type benthos dans la capture
-tutti.editBenthosBatch.field.benthosTotalUnsortedWeight=Poids total HORS VRAC (kg)
+tutti.editBenthosBatch.field.benthosTotalUnsortedWeight=Poids total HORS VRAC
tutti.editBenthosBatch.field.benthosTotalUnsortedWeight.tip=Poids total HORS VRAC des espèces de type benthos dans la capture
-tutti.editBenthosBatch.field.benthosTotalWeight=Poids TOTAL (kg)
+tutti.editBenthosBatch.field.benthosTotalWeight=Poids TOTAL
tutti.editBenthosBatch.field.benthosTotalWeight.tip=Poids total des espèces de type benthos dans la capture (Vrac + Hors Vrac)
tutti.editBenthosBatch.filterBatch=Filtre
tutti.editBenthosBatch.filterBatch.mode.all=Aucun
@@ -423,7 +437,7 @@
tutti.editBenthosBatch.table.header.species.tip=Code campagne ou code Rubin – Nom scientifique
tutti.editBenthosBatch.table.header.toConfirm=A Confirmer
tutti.editBenthosBatch.table.header.toConfirm.tip=Case à cocher si il y a un doute sur l'identification de l'espèce
-tutti.editBenthosBatch.table.header.weight=Poids sous-échantillonné (kg)
+tutti.editBenthosBatch.table.header.weight=Poids sous-échantillonné
tutti.editBenthosBatch.table.header.weight.tip=Poids du lot mesuré ou dénombré
tutti.editBenthosFrequencies.action.cancel=Annuler
tutti.editBenthosFrequencies.action.cancel.mnemonic=A
@@ -461,8 +475,8 @@
tutti.editBenthosFrequencies.field.step.tip=Pas de la classe de taille pour cette espèce (ex. \: 1 cm, 0,5 cm, 1 mm etc.)
tutti.editBenthosFrequencies.field.totalNumber=Nombre total
tutti.editBenthosFrequencies.field.totalNumber.tip=Nombre total d'individus des lignes valides
-tutti.editBenthosFrequencies.field.totalWeight=Poids total (kg)
-tutti.editBenthosFrequencies.field.totalWeight.tip=Poids total des lignes valides (kg)
+tutti.editBenthosFrequencies.field.totalWeight=Poids total
+tutti.editBenthosFrequencies.field.totalWeight.tip=Poids total des lignes valides
tutti.editBenthosFrequencies.label.no.configuration=< Pas de configuration >
tutti.editBenthosFrequencies.simpleCountingAndFrequencies=Des mensurations ont été saisies dans le tableau. Saisir un simple dénombrement les effacera.
tutti.editBenthosFrequencies.title=Mensuration
@@ -482,36 +496,36 @@
tutti.editCatchBatch.action.saveCatchBatch.tip=Enregistrer la capture
tutti.editCatchBatch.askCancelEditBeforeLeaving.cancelEditCatchBatch=La capture n'est pas valide et ne peut pas être enregistrée
tutti.editCatchBatch.askSaveBeforeLeaving.saveCatchBatch=Des modifications sur la capture n'ont pas été enregistrées
-tutti.editCatchBatch.field.benthosTotalSampleSortedWeight=Poids VRAC trié (kg)
-tutti.editCatchBatch.field.benthosTotalSampleSortedWeight.tip=Poids du VRAC trié dans le benthos (kg)
-tutti.editCatchBatch.field.benthosTotalSortedWeight=Poids total VRAC (kg)
-tutti.editCatchBatch.field.benthosTotalSortedWeight.tip=Poids total du VRAC benthos (kg)
-tutti.editCatchBatch.field.benthosTotalUnsortedWeight=Poids total HORS VRAC (kg)
-tutti.editCatchBatch.field.benthosTotalUnsortedWeight.tip=Poids total du HORS VRAC benthos (kg)
-tutti.editCatchBatch.field.benthosTotalWeight=Poids TOTAL (kg)
-tutti.editCatchBatch.field.benthosTotalWeight.tip=Poids total du benthos dans la capture (\= poids total Vrac + poids total Hors Vrac) (kg)
-tutti.editCatchBatch.field.catchTotalRejectedWeight=Poids total NON TRIÉ (kg)
-tutti.editCatchBatch.field.catchTotalRejectedWeight.tip=Poids de la fraction non triée à bord (kg)
-tutti.editCatchBatch.field.catchTotalSortedCarousselWeight=Carrousel observé (kg)
-tutti.editCatchBatch.field.catchTotalSortedCarousselWeight.tip=Sur Thalassa, poids total de la capture pesé sur la balance carrousel (kg)
-tutti.editCatchBatch.field.catchTotalSortedTremisWeight=Trémie (kg)
-tutti.editCatchBatch.field.catchTotalSortedTremisWeight.tip=Sur Thalassa, poids total de la capture pesé sur la balance trémie et envoyée sur la chaîne de tri (kg)
-tutti.editCatchBatch.field.catchTotalSortedWeight=Poids total VRAC (kg)
-tutti.editCatchBatch.field.catchTotalSortedWeight.tip=Poids total VRAC des espèces dans la capture (sans les captures accidentelles) (kg)
-tutti.editCatchBatch.field.catchTotalUnsortedWeight=Poids total HORS VRAC (kg)
-tutti.editCatchBatch.field.catchTotalUnsortedWeight.tip=Poids total HORS VRAC des espèces dans la capture (sans les captures accidentelles) (kg)
-tutti.editCatchBatch.field.catchTotalWeight=Poids TOTAL (kg)
-tutti.editCatchBatch.field.catchTotalWeight.tip=Poids total de la capture (sauf macro déchets et captures accidentelles) (kg)
-tutti.editCatchBatch.field.marineLitterTotalWeight=Poids TOTAL (kg)
-tutti.editCatchBatch.field.marineLitterTotalWeight.tip=Poids total des macro déchets dans la capture (kg)
-tutti.editCatchBatch.field.speciesTotalSampleSortedWeight=Poids VRAC trié (kg)
-tutti.editCatchBatch.field.speciesTotalSampleSortedWeight.tip=Poids total des espèces triées (poissons, crustacés etc.) (kg)
-tutti.editCatchBatch.field.speciesTotalSortedWeight=Poids total VRAC (kg)
-tutti.editCatchBatch.field.speciesTotalSortedWeight.tip=Poids total VRAC des espèces dans la capture (poissons, crustacés etc.) (kg)
-tutti.editCatchBatch.field.speciesTotalUnsortedWeight=Poids total HORS VRAC (kg)
-tutti.editCatchBatch.field.speciesTotalUnsortedWeight.tip=Poids total HORS VRAC des espèces dans la capture (poissons, crustacés etc.) (kg)
-tutti.editCatchBatch.field.speciesTotalWeight=Poids TOTAL (kg)
-tutti.editCatchBatch.field.speciesTotalWeight.tip=Poids total des espèces dans la capture (poissons, crustacés etc.) (kg)
+tutti.editCatchBatch.field.benthosTotalSampleSortedWeight=Poids VRAC trié
+tutti.editCatchBatch.field.benthosTotalSampleSortedWeight.tip=Poids du VRAC trié dans le benthos
+tutti.editCatchBatch.field.benthosTotalSortedWeight=Poids total VRAC
+tutti.editCatchBatch.field.benthosTotalSortedWeight.tip=Poids total du VRAC benthos
+tutti.editCatchBatch.field.benthosTotalUnsortedWeight=Poids total HORS VRAC
+tutti.editCatchBatch.field.benthosTotalUnsortedWeight.tip=Poids total du HORS VRAC benthos
+tutti.editCatchBatch.field.benthosTotalWeight=Poids TOTAL
+tutti.editCatchBatch.field.benthosTotalWeight.tip=Poids total du benthos dans la capture (\= poids total Vrac + poids total Hors Vrac)
+tutti.editCatchBatch.field.catchTotalRejectedWeight=Poids total NON TRIÉ
+tutti.editCatchBatch.field.catchTotalRejectedWeight.tip=Poids de la fraction non triée à bord
+tutti.editCatchBatch.field.catchTotalSortedCarousselWeight=Carrousel observé
+tutti.editCatchBatch.field.catchTotalSortedCarousselWeight.tip=Sur Thalassa, poids total de la capture pesé sur la balance carrousel
+tutti.editCatchBatch.field.catchTotalSortedTremisWeight=Trémie
+tutti.editCatchBatch.field.catchTotalSortedTremisWeight.tip=Sur Thalassa, poids total de la capture pesé sur la balance trémie et envoyée sur la chaîne de tri
+tutti.editCatchBatch.field.catchTotalSortedWeight=Poids total VRAC
+tutti.editCatchBatch.field.catchTotalSortedWeight.tip=Poids total VRAC des espèces dans la capture (sans les captures accidentelles)
+tutti.editCatchBatch.field.catchTotalUnsortedWeight=Poids total HORS VRAC
+tutti.editCatchBatch.field.catchTotalUnsortedWeight.tip=Poids total HORS VRAC des espèces dans la capture (sans les captures accidentelles)
+tutti.editCatchBatch.field.catchTotalWeight=Poids TOTAL
+tutti.editCatchBatch.field.catchTotalWeight.tip=Poids total de la capture (sauf macro déchets et captures accidentelles)
+tutti.editCatchBatch.field.marineLitterTotalWeight=Poids TOTAL
+tutti.editCatchBatch.field.marineLitterTotalWeight.tip=Poids total des macro déchets dans la capture
+tutti.editCatchBatch.field.speciesTotalSampleSortedWeight=Poids VRAC trié
+tutti.editCatchBatch.field.speciesTotalSampleSortedWeight.tip=Poids total des espèces triées (poissons, crustacés etc.)
+tutti.editCatchBatch.field.speciesTotalSortedWeight=Poids total VRAC
+tutti.editCatchBatch.field.speciesTotalSortedWeight.tip=Poids total VRAC des espèces dans la capture (poissons, crustacés etc.)
+tutti.editCatchBatch.field.speciesTotalUnsortedWeight=Poids total HORS VRAC
+tutti.editCatchBatch.field.speciesTotalUnsortedWeight.tip=Poids total HORS VRAC des espèces dans la capture (poissons, crustacés etc.)
+tutti.editCatchBatch.field.speciesTotalWeight=Poids TOTAL
+tutti.editCatchBatch.field.speciesTotalWeight.tip=Poids total des espèces dans la capture (poissons, crustacés etc.)
tutti.editCatchBatch.legend.benthos=Benthos
tutti.editCatchBatch.legend.marineLitter=Macro déchets
tutti.editCatchBatch.legend.species=Espèces
@@ -682,7 +696,7 @@
tutti.editIndividualObservationBatch.action.removeBatch.confirm.title=Suppression d'une observation individuelle
tutti.editIndividualObservationBatch.action.removeBatch.mnemonic=S
tutti.editIndividualObservationBatch.action.removeBatch.tip=Supprimer la ligne sélectionnée
-tutti.editIndividualObservationBatch.table.header.calcifiedPieceSamplingCode=Code de prélèvement pièce calcifiée
+tutti.editIndividualObservationBatch.table.header.calcifiedPieceSamplingCode=
tutti.editIndividualObservationBatch.table.header.calcifiedPieceSamplingCode.tip=Code de prélèvement pièce calcifiée
tutti.editIndividualObservationBatch.table.header.comment=Commentaire
tutti.editIndividualObservationBatch.table.header.comment.tip=Commentaire
@@ -692,14 +706,14 @@
tutti.editIndividualObservationBatch.table.header.lengthStepCaracteristic.tip=Classe de taille
tutti.editIndividualObservationBatch.table.header.otherCaracteristics=Autres caractéristiques
tutti.editIndividualObservationBatch.table.header.otherCaracteristics.tip=Autres caractéristiques
-tutti.editIndividualObservationBatch.table.header.samplingCode=Code prélèvement autre
+tutti.editIndividualObservationBatch.table.header.samplingCode=
tutti.editIndividualObservationBatch.table.header.samplingCode.tip=Code prélèvement autre
tutti.editIndividualObservationBatch.table.header.size=Taille
tutti.editIndividualObservationBatch.table.header.size.tip=Taille
tutti.editIndividualObservationBatch.table.header.species=Espèce
tutti.editIndividualObservationBatch.table.header.species.tip=Espèce
-tutti.editIndividualObservationBatch.table.header.weight=Poids (g)
-tutti.editIndividualObservationBatch.table.header.weight.tip=Poids (g)
+tutti.editIndividualObservationBatch.table.header.weight=Poids
+tutti.editIndividualObservationBatch.table.header.weight.tip=Poids
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
@@ -729,8 +743,8 @@
tutti.editMarineLitterBatch.action.removeBatch.confirm.title=Suppression d'un lot de déchets
tutti.editMarineLitterBatch.action.removeBatch.mnemonic=S
tutti.editMarineLitterBatch.action.removeBatch.tip=Supprimer la ligne sélectionnée
-tutti.editMarineLitterBatch.field.marineLitterTotalWeight=Poids total (kg)
-tutti.editMarineLitterBatch.field.marineLitterTotalWeight.tip=Poids total (kg)
+tutti.editMarineLitterBatch.field.marineLitterTotalWeight=Poids total
+tutti.editMarineLitterBatch.field.marineLitterTotalWeight.tip=Poids total
tutti.editMarineLitterBatch.table.header.comment=Commentaire
tutti.editMarineLitterBatch.table.header.comment.tip=Commentaire
tutti.editMarineLitterBatch.table.header.file=Pièces jointes
@@ -741,8 +755,8 @@
tutti.editMarineLitterBatch.table.header.marineLitterSizeCategory.tip=Catégorie de taille
tutti.editMarineLitterBatch.table.header.number=Nombre
tutti.editMarineLitterBatch.table.header.number.tip=Nombre d'objets
-tutti.editMarineLitterBatch.table.header.weight=Poids (kg)
-tutti.editMarineLitterBatch.table.header.weight.tip=Poids (kg)
+tutti.editMarineLitterBatch.table.header.weight=Poids
+tutti.editMarineLitterBatch.table.header.weight.tip=Poids
tutti.editProgram.action.closeEditProgram=Fermer
tutti.editProgram.action.closeEditProgram.mnemonic=r
tutti.editProgram.action.closeEditProgram.tip=Annuler l'édition (ou la création) de la série de campagne, ou fermer l'éditeur suite à un enregistrement
@@ -919,18 +933,18 @@
tutti.editSpeciesBatch.action.splitBatch=Catégoriser le lot
tutti.editSpeciesBatch.action.splitBatch.mnemonic=C
tutti.editSpeciesBatch.action.splitBatch.tip=Catégoriser le lot courant (celui de la ligne sélectionné)
-tutti.editSpeciesBatch.field.speciesTotalInertWeight=Poids inerte trié (kg)
-tutti.editSpeciesBatch.field.speciesTotalInertWeight.tip=Poids de la fraction inerte restante après le tri des espèces (cailloux, vase, débris coquilliers, etc.) (kg)
-tutti.editSpeciesBatch.field.speciesTotalLivingNotItemizedWeight=Poids vivant non détaillé trié (kg)
-tutti.editSpeciesBatch.field.speciesTotalLivingNotItemizedWeight.tip=Poids de la fraction vivante restante après le tri des espèces (algues, matières vivantes non reconnaissable, etc.) (kg)
-tutti.editSpeciesBatch.field.speciesTotalSampleSortedWeight=Poids VRAC trié (kg)
-tutti.editSpeciesBatch.field.speciesTotalSampleSortedWeight.tip=Poids total des espèces triées (poissons, crustacés etc.) (kg)
-tutti.editSpeciesBatch.field.speciesTotalSortedWeight=Poids total VRAC (kg)
-tutti.editSpeciesBatch.field.speciesTotalSortedWeight.tip=Poids total VRAC des espèces dans la capture (poissons, crustacés etc.) (kg)
-tutti.editSpeciesBatch.field.speciesTotalUnsortedWeight=Poids total HORS VRAC (kg)
-tutti.editSpeciesBatch.field.speciesTotalUnsortedWeight.tip=Poids total HORS VRAC des espèces dans la capture (sans les captures accidentelles) (kg)
-tutti.editSpeciesBatch.field.speciesTotalWeight=Poids TOTAL (kg)
-tutti.editSpeciesBatch.field.speciesTotalWeight.tip=Poids total des espèces dans la capture (poissons, crustacés etc.) (kg)
+tutti.editSpeciesBatch.field.speciesTotalInertWeight=Poids inerte trié
+tutti.editSpeciesBatch.field.speciesTotalInertWeight.tip=Poids de la fraction inerte restante après le tri des espèces (cailloux, vase, débris coquilliers, etc.)
+tutti.editSpeciesBatch.field.speciesTotalLivingNotItemizedWeight=Poids vivant non détaillé trié
+tutti.editSpeciesBatch.field.speciesTotalLivingNotItemizedWeight.tip=Poids de la fraction vivante restante après le tri des espèces (algues, matières vivantes non reconnaissable, etc.)
+tutti.editSpeciesBatch.field.speciesTotalSampleSortedWeight=Poids VRAC trié
+tutti.editSpeciesBatch.field.speciesTotalSampleSortedWeight.tip=Poids total des espèces triées (poissons, crustacés etc.)
+tutti.editSpeciesBatch.field.speciesTotalSortedWeight=Poids total VRAC
+tutti.editSpeciesBatch.field.speciesTotalSortedWeight.tip=Poids total VRAC des espèces dans la capture (poissons, crustacés etc.)
+tutti.editSpeciesBatch.field.speciesTotalUnsortedWeight=Poids total HORS VRAC
+tutti.editSpeciesBatch.field.speciesTotalUnsortedWeight.tip=Poids total HORS VRAC des espèces dans la capture (sans les captures accidentelles)
+tutti.editSpeciesBatch.field.speciesTotalWeight=Poids TOTAL
+tutti.editSpeciesBatch.field.speciesTotalWeight.tip=Poids total des espèces dans la capture (poissons, crustacés etc.)
tutti.editSpeciesBatch.filterBatch=Filtre
tutti.editSpeciesBatch.filterBatch.mode.all=Aucun
tutti.editSpeciesBatch.filterBatch.mode.all.tip=Pas de filtre (tous les lots sont visibles)
@@ -947,7 +961,8 @@
tutti.editSpeciesBatch.table.header.file=Pièces jointes
tutti.editSpeciesBatch.table.header.species=Espèce
tutti.editSpeciesBatch.table.header.toConfirm=A Confirmer
-tutti.editSpeciesBatch.table.header.weight=Poids sous-échantillonné (kg)
+tutti.editSpeciesBatch.table.header.weight=Poids sous-échantillonné
+tutti.editSpeciesBatch.table.header.weight.tip=Poids sous-échantillonné
tutti.editSpeciesFrequencies.action.cancel=Annuler
tutti.editSpeciesFrequencies.action.cancel.mnemonic=A
tutti.editSpeciesFrequencies.action.cancel.tip=Annuler l'édition des mensurations
@@ -984,13 +999,14 @@
tutti.editSpeciesFrequencies.field.step.tip=Pas de la classe de taille pour cette espèce (ex. \: 1 cm, 0,5 cm, 1 mm etc.)
tutti.editSpeciesFrequencies.field.totalNumber=Nombre total
tutti.editSpeciesFrequencies.field.totalNumber.tip=Nombre total d'individus des lignes valides
-tutti.editSpeciesFrequencies.field.totalWeight=Poids total (kg)
-tutti.editSpeciesFrequencies.field.totalWeight.tip=Poids total des lignes valides (kg)
+tutti.editSpeciesFrequencies.field.totalWeight=Poids total
+tutti.editSpeciesFrequencies.field.totalWeight.tip=Poids total des lignes valides
tutti.editSpeciesFrequencies.label.no.configuration=< Pas de configuration >
tutti.editSpeciesFrequencies.simpleCountingAndFrequencies=Des mensurations ont été saisies dans le tableau. Saisir un simple dénombrement les effacera.
tutti.editSpeciesFrequencies.table.header.lengthStep=Classe de taille
tutti.editSpeciesFrequencies.table.header.number=Nombre
-tutti.editSpeciesFrequencies.table.header.weight=Poids observé (kg)
+tutti.editSpeciesFrequencies.table.header.weight=Poids observé
+tutti.editSpeciesFrequencies.table.header.weight.tip=Poids observé
tutti.editSpeciesFrequencies.title=Mensuration
tutti.error.about.could.not.reach.url=Récupération des versions de mises à jour impossible (l'url <strong>%s</strong> n'est pas joignable)
tutti.error.delete.startActionFile=Impossible de supprimer le fichier %s
@@ -1324,17 +1340,18 @@
tutti.splitBenthosBatch.action.save=Enregistrer
tutti.splitBenthosBatch.action.save.mnemonic=E
tutti.splitBenthosBatch.action.save.tip=Sauver le sous-échantillonnage
-tutti.splitBenthosBatch.field.batchWeight=Poids total à catégoriser (kg)
-tutti.splitBenthosBatch.field.batchWeightField.tip=Poids du lot père (si renseigné) (kg)
+tutti.splitBenthosBatch.field.batchWeight=Poids total à catégoriser
+tutti.splitBenthosBatch.field.batchWeight.tip=Poids du lot père (si renseigné)
tutti.splitBenthosBatch.field.category=Catégorie
-tutti.splitBenthosBatch.field.categoryField.tip=Choisir le mode de catégorisation
-tutti.splitBenthosBatch.field.sampleWeight=Poids total catégorisé (kg)
-tutti.splitBenthosBatch.field.sampleWeightField.tip=Somme des poids saisis ci-dessous (kg)
+tutti.splitBenthosBatch.field.category.tip=Choisir le mode de catégorisation
+tutti.splitBenthosBatch.field.sampleWeight=Poids total catégorisé
+tutti.splitBenthosBatch.field.sampleWeight.tip=Somme des poids saisis ci-dessous
tutti.splitBenthosBatch.field.species=Espèce
tutti.splitBenthosBatch.field.speciesField.tip=Espèce du lot père
tutti.splitBenthosBatch.table.header.category=Catégorie
tutti.splitBenthosBatch.table.header.selected=Sélection
-tutti.splitBenthosBatch.table.header.weight=Poids (kg)
+tutti.splitBenthosBatch.table.header.weight=Poids
+tutti.splitBenthosBatch.table.header.weight.tip=Poids
tutti.splitBenthosBatch.title=Catégorisation du lot
tutti.splitSpeciesBatch.action.cancel=Annuler
tutti.splitSpeciesBatch.action.cancel.mnemonic=A
@@ -1342,17 +1359,18 @@
tutti.splitSpeciesBatch.action.save=Enregistrer
tutti.splitSpeciesBatch.action.save.mnemonic=E
tutti.splitSpeciesBatch.action.save.tip=Sauver le sous-échantillonnage
-tutti.splitSpeciesBatch.field.batchWeight=Poids total à catégoriser (kg)
-tutti.splitSpeciesBatch.field.batchWeightField.tip=Poids du lot père (si renseigné) (kg)
+tutti.splitSpeciesBatch.field.batchWeight=Poids total à catégoriser
+tutti.splitSpeciesBatch.field.batchWeightField.tip=Poids du lot père (si renseigné)
tutti.splitSpeciesBatch.field.category=Catégorie
tutti.splitSpeciesBatch.field.categoryField.tip=Choisir le mode de catégorisation
-tutti.splitSpeciesBatch.field.sampleWeight=Poids total catégorisé (kg)
-tutti.splitSpeciesBatch.field.sampleWeightField.tip=Somme des poids saisis ci-dessous (kg)
+tutti.splitSpeciesBatch.field.sampleWeight=Poids total catégorisé
+tutti.splitSpeciesBatch.field.sampleWeightField.tip=Somme des poids saisis ci-dessous
tutti.splitSpeciesBatch.field.species=Espèce
tutti.splitSpeciesBatch.field.speciesField.tip=Espèce du lot père
tutti.splitSpeciesBatch.table.header.category=Catégorie
tutti.splitSpeciesBatch.table.header.selected=Sélection
-tutti.splitSpeciesBatch.table.header.weight=Poids (kg)
+tutti.splitSpeciesBatch.table.header.weight=Poids
+tutti.splitSpeciesBatch.table.header.weight.tip=Poids
tutti.splitSpeciesBatch.title=Catégorisation du lot
tutti.timeeditor.H=H
tutti.update.db=Base de données
Modified: trunk/tutti-ui-swing/src/test/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyRowModelTest.java
===================================================================
--- trunk/tutti-ui-swing/src/test/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyRowModelTest.java 2013-09-22 11:29:17 UTC (rev 1202)
+++ trunk/tutti-ui-swing/src/test/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyRowModelTest.java 2013-09-23 09:39:50 UTC (rev 1203)
@@ -24,6 +24,7 @@
* #L%
*/
+import fr.ifremer.tutti.ui.swing.util.WeightUnit;
import org.junit.Assert;
import org.junit.Test;
@@ -36,8 +37,8 @@
@Test
public void compareTo() throws Exception {
- SpeciesFrequencyRowModel s0 = new SpeciesFrequencyRowModel();
- SpeciesFrequencyRowModel s1 = new SpeciesFrequencyRowModel();
+ SpeciesFrequencyRowModel s0 = new SpeciesFrequencyRowModel(WeightUnit.KG);
+ SpeciesFrequencyRowModel s1 = new SpeciesFrequencyRowModel(WeightUnit.KG);
// s0=null, s1=null
Assert.assertTrue(s0.compareTo(s1) == 0);
1
0
r1202 - in trunk: tutti-service/src/main/java/fr/ifremer/tutti/service tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create
by tchemit@users.forge.codelutin.com 22 Sep '13
by tchemit@users.forge.codelutin.com 22 Sep '13
22 Sep '13
Author: tchemit
Date: 2013-09-22 13:29:17 +0200 (Sun, 22 Sep 2013)
New Revision: 1202
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/1202
Log:
fixes #3297: [DONNEES INDIVIDUELLES] g?\195?\169rer les colonnes du tableau dans le protocole
Modified:
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/DecoratorService.java
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/create/CreateIndividualObservationBatchUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/CreateIndividualObservationBatchUIModel.java
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/DecoratorService.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/DecoratorService.java 2013-09-21 17:45:55 UTC (rev 1201)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/DecoratorService.java 2013-09-22 11:29:17 UTC (rev 1202)
@@ -54,6 +54,7 @@
public class DecoratorService extends AbstractTuttiService {
public static final String CARACTERISTIC_WITH_UNIT = "withUnit";
+ public static final String CARACTERISTIC_PARAMETER_ONLY_WITH_UNIT = "parameterOnlyWithUnit";
public static final String CARACTERISTIC_PARAMETER_ONLY = "parameterOnly";
@@ -104,8 +105,7 @@
registerTuttiDecorator(Person.class, "${firstName}$s#${lastName}$s#${department}$s", SEPARATOR, " ");
registerTuttiDecorator(Caracteristic.class, "${parameterName}$s#${matrixName}$s#${fractionName}$s#${methodName}$s", SEPARATOR, " - ");
registerTuttiDecorator(Caracteristic.class, CARACTERISTIC_PARAMETER_ONLY, "${parameterName}$s", SEPARATOR, " - ");
-// registerMultiJXPathDecorator(Caracteristic.class, CARACTERISTIC_WITH_UNIT, "${parameterName}$s#${matrixName}$s#${fractionName}$s#${methodName}$s (${unit}$s)", SEPARATOR, " - ");
-// registerTuttiDecorator(CaracteristicQualitativeValue.class, "${name}$s", SEPARATOR, " - ");
+ registerTuttiDecorator(Caracteristic.class, CARACTERISTIC_PARAMETER_ONLY_WITH_UNIT, "${parameterName}$s (${unit}$s)", SEPARATOR, " - ");
registerTuttiDecorator(CaracteristicQualitativeValue.class, "${description}$s", SEPARATOR, " - ");
registerTuttiDecorator(SpeciesProtocol.class, "${speciesReferenceTaxonId}", SEPARATOR, " - ");
registerTuttiDecorator(Attachment.class, "${name}$s", SEPARATOR, " - ");
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-09-21 17:45:55 UTC (rev 1201)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUIHandler.java 2013-09-22 11:29:17 UTC (rev 1202)
@@ -308,13 +308,6 @@
new IndividualObservationBatchUIModel(catchesUIModel,
defaultCaracteristic);
ui.setContextValue(model);
-
-// // propagate when value is changing
-// PropagatePropertyChangeListener.listenAndPropagate(
-// catchesUIModel,
-// model,
-// EditCatchesUIModel.PROPERTY_MARINE_LITTER_TOTAL_WEIGHT,
-// EditCatchesUIModel.PROPERTY_MARINE_LITTER_TOTAL_WEIGHT);
}
@Override
@@ -551,19 +544,25 @@
IndividualObservationBatch catchBean = row.toBean();
- // use a new instance of caracteristicMap
- CaracteristicMap caracteristics = CaracteristicMap.copy(catchBean.getCaracteristics());
+ CaracteristicMap caracteristics = new CaracteristicMap();
catchBean.setCaracteristics(caracteristics);
- // push back default caracteristics
- CaracteristicMap defaultCaracteristics = row.getDefaultCaracteristics();
- for (Map.Entry<Caracteristic, Serializable> entry : defaultCaracteristics.entrySet()) {
+ // push back not null caracteristics
+ for (Map.Entry<Caracteristic, Serializable> entry : row.getCaracteristics().entrySet()) {
Serializable value = entry.getValue();
if (value != null) {
caracteristics.put(entry.getKey(), value);
}
}
+ // push back not null default caracteristics
+ for (Map.Entry<Caracteristic, Serializable> entry : row.getDefaultCaracteristics().entrySet()) {
+ Serializable value = entry.getValue();
+ if (value != null) {
+ caracteristics.put(entry.getKey(), value);
+ }
+ }
+
FishingOperation fishingOperation = getModel().getFishingOperation();
catchBean.setFishingOperation(fishingOperation);
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-09-21 17:45:55 UTC (rev 1201)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/CreateIndividualObservationBatchUIHandler.java 2013-09-22 11:29:17 UTC (rev 1202)
@@ -31,6 +31,7 @@
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.service.DecoratorService;
import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUI;
@@ -45,13 +46,20 @@
import fr.ifremer.tutti.ui.swing.util.species.SelectSpeciesUI;
import fr.ifremer.tutti.ui.swing.util.species.SelectSpeciesUIModel;
import jaxx.runtime.SwingUtil;
+import jaxx.runtime.swing.Table;
+import jaxx.runtime.swing.editor.NumberEditor;
+import jaxx.runtime.swing.editor.bean.BeanFilterableComboBox;
import jaxx.runtime.validator.swing.SwingValidator;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.nuiton.decorator.Decorator;
import javax.swing.JComponent;
+import javax.swing.JLabel;
import java.awt.Dimension;
+import java.awt.GridBagConstraints;
+import java.awt.Insets;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.util.List;
@@ -90,6 +98,7 @@
listModelIsModify(model);
}
+
@Override
public void afterInitUI() {
@@ -105,7 +114,7 @@
Lists.newArrayList(lengthStepCaracteristics),
null);
- if (context.isProtocolFilled()) {
+ if (getDataContext().isProtocolFilled()) {
// get loaded protocol
TuttiProtocol protocol = getDataContext().getProtocol();
@@ -134,9 +143,102 @@
}
}
});
+
+ // add default caracteristic editors
+ List<Caracteristic> caracteristics =
+ getDataContext().getDefaultIndividualObservationCaracteristics();
+
+ Table configurationPanel = ui.getConfigurationPanel();
+
+ Decorator<Caracteristic> caracteristicDecorator =
+ getDecorator(Caracteristic.class, DecoratorService.CARACTERISTIC_PARAMETER_ONLY_WITH_UNIT);
+
+ Decorator<Caracteristic> caracteristicTipDecorator =
+ getDecorator(Caracteristic.class, DecoratorService.CARACTERISTIC_WITH_UNIT);
+
+ int index = 4;
+ for (Caracteristic caracteristic : caracteristics) {
+
+ final CreateIndividualObservationBatchUIModel.CaracteristicMapPropertyEditor editorModel =
+ getModel().newCaracteristicEditor(caracteristic);
+
+ JComponent editor = null;
+
+ switch (caracteristic.getCaracteristicType()) {
+
+ case NUMBER: {
+ final NumberEditor numberEditor = new NumberEditor(ui);
+
+ String name = caracteristic.getId() + "CaracteristicField";
+ numberEditor.setName(name);
+ numberEditor.setProperty(CreateIndividualObservationBatchUIModel.CaracteristicMapPropertyEditor.PROPERTY_PROPERTY);
+ numberEditor.setUseFloat(true);
+ numberEditor.setShowReset(true);
+ numberEditor.setBean(editorModel);
+ numberEditor.setAutoPopup(getConfig().isAutoPopupNumberEditor());
+ numberEditor.setShowPopupButton(getConfig().isShowNumberEditorButton());
+ numberEditor.setNumberPattern(TuttiUI.DECIMAL3_PATTERN);
+
+ editorModel.addPropertyChangeListener(CreateIndividualObservationBatchUIModel.CaracteristicMapPropertyEditor.PROPERTY_PROPERTY, new PropertyChangeListener() {
+ @Override
+ public void propertyChange(PropertyChangeEvent evt) {
+ numberEditor.setModel((Number) evt.getNewValue());
+ }
+ });
+
+ editor = numberEditor;
+ ui.get$objectMap().put(name, editor);
+
+ initNumberEditor(numberEditor);
+ }
+ break;
+ case QUALITATIVE:
+
+ {
+ final BeanFilterableComboBox<CaracteristicQualitativeValue> qualitativeValuesEditor = new BeanFilterableComboBox<CaracteristicQualitativeValue>(ui);
+
+ String name = caracteristic.getId() + "CaracteristicComboBox";
+ qualitativeValuesEditor.setName(name);
+ qualitativeValuesEditor.setI18nPrefix("tutti.property.");
+ qualitativeValuesEditor.setProperty(CreateIndividualObservationBatchUIModel.CaracteristicMapPropertyEditor.PROPERTY_PROPERTY);
+ qualitativeValuesEditor.setShowReset(true);
+ qualitativeValuesEditor.setBeanType(CaracteristicQualitativeValue.class);
+
+ qualitativeValuesEditor.setBean(editorModel);
+
+ editorModel.addPropertyChangeListener(CreateIndividualObservationBatchUIModel.CaracteristicMapPropertyEditor.PROPERTY_PROPERTY, new PropertyChangeListener() {
+ @Override
+ public void propertyChange(PropertyChangeEvent evt) {
+ qualitativeValuesEditor.setSelectedItem(evt.getNewValue());
+ }
+ });
+
+ editor = qualitativeValuesEditor;
+ ui.get$objectMap().put(name, editor);
+
+ initBeanFilterableComboBox(qualitativeValuesEditor,
+ Lists.newArrayList(caracteristic.getQualitativeValue()),
+ null);
+ }
+
+ break;
+ case TEXT:
+ break;
+ }
+ JLabel jLabel = new JLabel();
+ jLabel.setText(caracteristicDecorator.toString(caracteristic));
+ jLabel.setToolTipText(caracteristicTipDecorator.toString(caracteristic));
+ jLabel.setLabelFor(editor);
+ jLabel.putClientProperty("help", "tutti.createIndividualObservationBatch.field.defaultCaracteristic.help");
+ ui.registerHelpId(ui.getBroker(), jLabel, "tutti.createIndividualObservationBatch.field.defaultCaracteristic.help");
+
+ configurationPanel.add(jLabel, new GridBagConstraints(0, index, 1, 1, 0.0, 0.0, 17, 1, new Insets(3, 3, 3, 3), 0, 0));
+ configurationPanel.add(SwingUtil.boxComponentWithJxLayer(editor), new GridBagConstraints(1, index, 2, 1, 1.0, 0.0, 10, 1, new Insets(3, 3, 3, 3), 0, 0));
+ index++;
+ }
}
- listenValidatorValid(ui.getValidator(), getModel());
+ listenValidatorValid(getValidator(), getModel());
}
@Override
@@ -152,7 +254,7 @@
}
// evict model from validator
- ui.getValidator().setBean(null);
+ getValidator().setBean(null);
// when canceling always invalid model
getModel().setValid(false);
@@ -187,7 +289,7 @@
CreateIndividualObservationBatchUIModel model = getModel();
// connect model to validator
- ui.getValidator().setBean(model);
+ getValidator().setBean(model);
model.reset();
@@ -196,9 +298,6 @@
List<Species> speciesListWithSurveyCode =
getDataContext().getReferentSpeciesWithSurveyCode();
-// Map<String, Species> speciesMap =
-// TuttiEntities.splitById(speciesListWithSurveyCode);
-
List<Species> speciesList;
EditCatchesUI parent =
@@ -267,18 +366,6 @@
// set last species filled here
Species lastSpeciesUsed = batchModel.getLastSpeciesUsed();
model.setSpecies(lastSpeciesUsed);
-// if (lastSpeciesUsed != null) {
-//
-// // use the version with surveycode
-// Species species = speciesMap.get(lastSpeciesUsed.getId());
-// if (species == null) {
-//
-// speciesMap = TuttiEntities.splitById(speciesList);
-// species = speciesMap.get(lastSpeciesUsed.getId());
-// }
-//
-// model.setSpecies(lastSpeciesUsed);
-// }
model.setLengthStepCaracteristic(batchModel.getLastLengthStepCaracteristicUsed());
}
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-09-21 17:45:55 UTC (rev 1201)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/CreateIndividualObservationBatchUIModel.java 2013-09-22 11:29:17 UTC (rev 1202)
@@ -29,9 +29,12 @@
import fr.ifremer.tutti.persistence.entities.referential.Caracteristic;
import fr.ifremer.tutti.persistence.entities.referential.Species;
import fr.ifremer.tutti.ui.swing.util.AbstractTuttiBeanUIModel;
+import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.jdesktop.beans.AbstractSerializableBean;
+import java.io.Serializable;
import java.util.List;
/**
@@ -46,6 +49,8 @@
public static final String PROPERTY_AVAILABLE_SPECIES = "availableSpecies";
+ public static final String PROPERTY_CARACTERISTICS = "caracteristics";
+
/**
* All available species (sets by protocol).
*
@@ -68,6 +73,14 @@
*/
protected final List<Caracteristic> defaultCaracteristic;
+ /**
+ * Default caracteristics editors.
+ *
+ * @since 2.5
+ */
+ protected final List<CaracteristicMapPropertyEditor> caracteristicEditors =
+ Lists.newArrayList();
+
public CreateIndividualObservationBatchUIModel(List<Caracteristic> defaultCaracteristic) {
super(IndividualObservationBatch.class, null, null);
this.defaultCaracteristic = defaultCaracteristic;
@@ -118,6 +131,13 @@
return editObject.getCaracteristics();
}
+ public void setCaracteristics(CaracteristicMap caracteristics) {
+
+ editObject.setCaracteristics(caracteristics);
+ firePropertyChange(IndividualObservationBatch.PROPERTY_CARACTERISTICS, null, caracteristics);
+
+ }
+
public List<Species> getAvailableSpecies() {
if (log.isDebugEnabled()) {
log.debug("getAvailableSpecies " + availableSpecies);
@@ -145,6 +165,52 @@
setWeight(null);
setSize(null);
setLengthStepCaracteristic(null);
+ for (CaracteristicMapPropertyEditor editor : caracteristicEditors) {
+ editor.setProperty(null);
+ }
getCaracteristics().clear();
}
+
+ public CaracteristicMapPropertyEditor newCaracteristicEditor(Caracteristic caracteristic) {
+ CaracteristicMapPropertyEditor editor = new CaracteristicMapPropertyEditor(caracteristic);
+ caracteristicEditors.add(editor);
+ return editor;
+ }
+
+ /**
+ * Model to edit a caracteristic and flush it in the caracteristc map of
+ * the global model.
+ * <p/>
+ * Acts as a bean for the given caracteristic.
+ *
+ * @since 2.5
+ */
+ public class CaracteristicMapPropertyEditor extends AbstractSerializableBean {
+
+ private static final long serialVersionUID = 1L;
+
+ public static final String PROPERTY_PROPERTY = "property";
+
+ private final Caracteristic caracteristic;
+
+ protected Serializable property;
+
+ public Serializable getProperty() {
+ return property;
+ }
+
+ public void setProperty(Serializable property) {
+ Object oldValue = getProperty();
+ this.property = property;
+ getCaracteristics().put(caracteristic, property);
+ if (ObjectUtils.notEqual(oldValue, property)) {
+ firePropertyChange(PROPERTY_PROPERTY, oldValue, property);
+ CreateIndividualObservationBatchUIModel.this.firePropertyChanged(PROPERTY_CARACTERISTICS, null, getCaracteristics());
+ }
+ }
+
+ public CaracteristicMapPropertyEditor(Caracteristic caracteristic) {
+ this.caracteristic = caracteristic;
+ }
+ }
}
1
0
r1201 - in trunk/tutti-service/src: main/java/fr/ifremer/tutti/service test/java/fr/ifremer/tutti/service/catches/multipost test/java/fr/ifremer/tutti/service/export
by tchemit@users.forge.codelutin.com 21 Sep '13
by tchemit@users.forge.codelutin.com 21 Sep '13
21 Sep '13
Author: tchemit
Date: 2013-09-21 19:45:55 +0200 (Sat, 21 Sep 2013)
New Revision: 1201
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/1201
Log:
fix tests
Modified:
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiCsvUtil.java
trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/catches/multipost/TuttiMultiPostExportServiceTest.java
trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/export/TuttiExportServiceTest.java
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiCsvUtil.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiCsvUtil.java 2013-09-21 15:14:00 UTC (rev 1200)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiCsvUtil.java 2013-09-21 17:45:55 UTC (rev 1201)
@@ -482,7 +482,11 @@
}
// qualitive value
CaracteristicQualitativeValue qv = (CaracteristicQualitativeValue) value;
- return qv.getName();
+ String result = qv.getName();
+ if (!result.equals(qv.getDescription())) {
+ result += " - " + qv.getDescription();
+ }
+ return result;
}
}
Modified: trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/catches/multipost/TuttiMultiPostExportServiceTest.java
===================================================================
--- trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/catches/multipost/TuttiMultiPostExportServiceTest.java 2013-09-21 15:14:00 UTC (rev 1200)
+++ trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/catches/multipost/TuttiMultiPostExportServiceTest.java 2013-09-21 17:45:55 UTC (rev 1201)
@@ -105,10 +105,12 @@
public static final String ACCIDENTAL_CATCH_ATTACHMENT_CONTENT = "batchId;name;comment;file";
- public static final String INDIVIDUAL_OBSERVATION_CONTENT = "batchId;species;weight;size;lengthStepCaracteristic;samplingCode;calcifiedPieceSamplingCode;comment\n" +
- "IndividualObservationRow_1;11242;0.1;10.0;307;A20;10;P1;";
+ public static final String INDIVIDUAL_OBSERVATION_CONTENT = "batchId;species;weight;size;lengthStepCaracteristic;comment\n" +
+ "IndividualObservationRow_1;11242;0.1;10.0;307;P1;";
public static final String INDIVIDUAL_OBSERVATION_CARACTERISTIC_CONTENT = "batchId;caracteristic;value\n" +
+ "IndividualObservationRow_1;1436;10;\n" +
+ "IndividualObservationRow_1;1435;A20;\n" +
"IndividualObservationRow_1;101;10.0;\n" +
"IndividualObservationRow_1;46;168;\n" +
"IndividualObservationRow_1;1388;5.0;";
Modified: trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/export/TuttiExportServiceTest.java
===================================================================
--- trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/export/TuttiExportServiceTest.java 2013-09-21 15:14:00 UTC (rev 1200)
+++ trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/export/TuttiExportServiceTest.java 2013-09-21 17:45:55 UTC (rev 1201)
@@ -145,11 +145,11 @@
public static final String INDIVIDUAL_OBSERVATION_CONTENT =
"Annee;Serie;Serie_Partielle;Engin;Id_Operation;NumOrdre_Station;Poche;Navire;BatchId;ReferenceTaxonId;ReferenceTaxonName;Commentaire;CaracteristicId;CaracteristicValue\n" +
- "2013;Campagne CGFS;;GOV 19.7/25.9;A;1;1;278970;100000;11242;Aaptos;P1;1435;A20;\n" +
- "2013;Campagne CGFS;;GOV 19.7/25.9;A;1;1;278970;100000;11242;Aaptos;P1;1436;10;\n" +
"2013;Campagne CGFS;;GOV 19.7/25.9;A;1;1;278970;100000;11242;Aaptos;P1;220;0.1;\n" +
"2013;Campagne CGFS;;GOV 19.7/25.9;A;1;1;278970;100000;11242;Aaptos;P1;1433;307;\n" +
"2013;Campagne CGFS;;GOV 19.7/25.9;A;1;1;278970;100000;11242;Aaptos;P1;307;10.0;\n" +
+ "2013;Campagne CGFS;;GOV 19.7/25.9;A;1;1;278970;100000;11242;Aaptos;P1;1436;10;\n" +
+ "2013;Campagne CGFS;;GOV 19.7/25.9;A;1;1;278970;100000;11242;Aaptos;P1;1435;A20;\n" +
"2013;Campagne CGFS;;GOV 19.7/25.9;A;1;1;278970;100000;11242;Aaptos;P1;101;10.0;\n" +
"2013;Campagne CGFS;;GOV 19.7/25.9;A;1;1;278970;100000;11242;Aaptos;P1;46;0L - 0 VMS - 1 LB;\n" +
"2013;Campagne CGFS;;GOV 19.7/25.9;A;1;1;278970;100000;11242;Aaptos;P1;1388;5.0;";
1
0
See <http://ci.nuiton.org/jenkins/job/tutti/993/changes>
Changes:
[Tony Chemit] refs #3297: [DONNEES INDIVIDUELLES] gérer les colonnes du tableau dans le protocole (tableau dynamique ok)
fixes #3304: [DONNEES INDIVIDUELLES] Utilisation du code campagne sur les espèces
fixes #3303: [DONNEES INDIVIDUELLES] liste des espèces possibles. Saisie au km
[Tony Chemit] - improve i18n keys
- refs #3297: [DONNEES INDIVIDUELLES] gérer les colonnes du tableau dans le protocole (ne plus utiliser PMFM_ID_SAMPLE_ID et PMFM_ID_OTOLITHE_ID)
[Tony Chemit] fixes #3306: [DONNEES INDIVIDUELLES] L'ordre de saisie n'est pas conservé
fixes #3308: [CAPTURES ACCIDENTELLES] L'ordre de saisie n'est pas conservé
------------------------------------------
Started by an SCM change
Building on master in workspace <http://ci.nuiton.org/jenkins/job/tutti/ws/>
Updating https://forge.codelutin.com/svn/tutti/trunk at revision '2013-09-21T16:55:42.380 +0200'
U tutti-service/src/main/java/fr/ifremer/tutti/service/export/IndividualObservationExportModel.java
U tutti-service/src/main/java/fr/ifremer/tutti/service/export/TuttiExportService.java
U tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java
U tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiDataContext.java
D tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/TuttiMultiPostImportExportService.java
U tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/TuttiMultiPostImportService.java
U tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/TuttiMultiPostExportService.java
U tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/IndividualObservationRowModel.java
U tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/IndividualObservationRow.java
U tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchUIHandler.java
U tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/ImportMultiPostAction.java
U tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/ImportMultiPostAction.java
U tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/ImportMultiPostAction.java
U tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchRowModel.java
U tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchTableModel.java
U tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUIHandler.java
U tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/CreateIndividualObservationBatchUI.css
U tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/CreateIndividualObservationBatchUI.jaxx
U tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/CreateIndividualObservationBatchUIHandler.java
U tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/CreateIndividualObservationBatchUIModel.java
U tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUIModel.java
AU tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/table/CaracteristicColumnIdentifier.java
U tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/caracteristics/CaracteristicMapCellComponent.java
U tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/caracteristics/CaracteristicMapEditorUIHandler.java
U tutti-ui-swing/src/main/filtered-resources/tutti-help-fr.properties
U tutti-ui-swing/src/main/filtered-resources/tutti-help-en.properties
G tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties
U tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties
U tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceImpl.java
U tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceServiceImpl.java
U tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/IndividualObservationBatchPersistenceServiceImpl.java
U tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/TuttiEnumerationFile.java
U tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceService.java
U tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceNoDbImpl.java
U tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/protocol/TuttiProtocols.java
U tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/config/SampleCategoryModelConverter.java
U tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistence.java
U tutti-persistence/src/main/resources/i18n/tutti-persistence_en_GB.properties
U tutti-persistence/src/main/resources/i18n/tutti-persistence_fr_FR.properties
U tutti-persistence/src/main/resources/queries-override.hbm.xml
U tutti-persistence/src/main/xmi/tutti-persistence.zargo
At revision 1198
Parsing POMs
[trunk] $ /opt/jdk/bin/java -Xmx256m -XX:-UseGCOverheadLimit -cp /var/local/jenkins/data/plugins/maven-plugin/WEB-INF/lib/maven3-agent-1.3.jar:/opt/maven3/boot/plexus-classworlds-2.4.jar org.jvnet.hudson.maven3.agent.Maven3Main /opt/maven3 /opt/repository/apache-tomcat-7.0.42/webapps/jenkins/WEB-INF/lib/remoting-2.28.jar /var/local/jenkins/data/plugins/maven-plugin/WEB-INF/lib/maven3-interceptor-1.3.jar 35640
<===[JENKINS REMOTING CAPACITY]===> channel started
log4j:WARN No appenders could be found for logger (org.apache.commons.beanutils.converters.BooleanConverter).
log4j:WARN Please initialize the log4j system properly.
Executing Maven: -B -f <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/pom.xml> -U -e clean install
[INFO] Error stacktraces are turned on.
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Build Order:
[INFO]
[INFO] Tutti
[INFO] Tutti :: Persistence
[INFO] Tutti :: Service
[INFO] Tutti :: UI
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building Tutti 2.5-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ tutti ---
[INFO] Deleting <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/target>
[INFO]
[INFO] --- maven-enforcer-plugin:1.3.1:enforce (check-project-files) @ tutti ---
[INFO]
[INFO] --- maven-antrun-plugin:1.7:run (generate-surefire-workdir) @ tutti ---
[INFO] Executing tasks
main:
[mkdir] Created dir: <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/target/surefire-workdir>
[INFO] Executed tasks
[INFO]
[INFO] --- maven-site-plugin:3.3:attach-descriptor (attach-descriptor) @ tutti ---
[INFO]
[INFO] --- maven-install-plugin:2.5:install (default-install) @ tutti ---
[INFO] Installing <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/pom.xml> to /var/local/maven/data/repository/fr/ifremer/tutti/2.5-SNAPSHOT/tutti-2.5-SNAPSHOT.pom
[INFO] Installing <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/target/tutti-2.5-SNAPSHOT-s…> to /var/local/maven/data/repository/fr/ifremer/tutti/2.5-SNAPSHOT/tutti-2.5-SNAPSHOT-site_fr.xml
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building Tutti :: Persistence 2.5-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ tutti-persistence ---
[INFO] Deleting <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-persistence/target>
[INFO]
[INFO] --- maven-enforcer-plugin:1.3.1:enforce (check-project-files) @ tutti-persistence ---
[INFO]
[INFO] --- eugene-maven-plugin:2.7:generate (default) @ tutti-persistence ---
[INFO] Process phase [zargo] for one entry.
[INFO] Expanding 1 xmi file(s) from <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-persistence/src/main/…>
[INFO] Will generate <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-persistence/target/ge…>
[INFO] Copy file <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-persistence/src/main/…> to <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-persistence/target/ge…>
[INFO] Generate one file in 13.825ms.
[INFO] Process phase [xmi] for one entry.
[INFO] Processing XSL tranformation on <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-persistence/target/ge…> for 1 file(s).
[INFO] Will generate <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-persistence/target/ge…>
[INFO] Copy file <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-persistence/target/ge…> to <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-persistence/target/ge…>
[INFO] Generate one file in 978.904ms.
[INFO] Process phase [model] for one entry.
WARN [pool-1-thread-1] (AbstractObjectModelReader.java:126) beforeReadFile - No properties provider filled, will instanciate a new default one
WARN [pool-1-thread-1] (AbstractObjectModelReader.java:294) loadModelTagValue - Invalid model tag value [model.tagvalue.simpleBeanExtractInterface] : the tagvalue 'simpleBeanExtractInterface' is unkown.
INFO [pool-1-thread-1] (AbstractObjectModelReader.java:270) loadModelProperties - 24 tag values were succesfull imported from <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-persistence/target/ge…>
[INFO] No file generated.
[INFO] Apply generator JavaInterfaceTransformer
INFO [pool-1-thread-1] (ObjectModelTransformerToJava.java:995) isInClassPath - Will not generate [fr.ifremer.tutti.persistence.entities.TuttiEntity], already found in class-path.
[INFO] Apply generator SimpleJavaBeanTransformer
[INFO] Apply generator JavaEnumerationTransformer
INFO [pool-1-thread-1] (ObjectModelTransformerToJava.java:995) isInClassPath - Will not generate [fr.ifremer.tutti.persistence.entities.data.AttachementObjectTypeEnum], already found in class-path.
[INFO] Add compile source root : <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-persistence/target/ge…>
[INFO] Add resource root :Resource {targetPath: null, filtering: false, FileSet {directory: <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-persistence/target/ge…,> PatternSet [includes: {}, excludes: {**/*.java}]}}
[INFO]
[INFO] --- i18n-maven-plugin:2.5.2:parserJava (scan-sources) @ tutti-persistence ---
[INFO]
[INFO] --- i18n-maven-plugin:2.5.2:get (get) @ tutti-persistence ---
[INFO] Copying tutti-persistence.properties to <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-persistence/target/ge…>
[INFO] Copying tutti-persistence.properties to <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-persistence/target/ge…>
[INFO]
[INFO] --- i18n-maven-plugin:2.5.2:gen (scan-sources) @ tutti-persistence ---
[WARNING] bundle en_GB contains 59/59 empty entries! (use -Di18n.showEmpty to see these entries)
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ tutti-persistence ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 9 resources
[INFO] Copying 0 resource
[INFO]
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ tutti-persistence ---
[INFO] Compiling 133 source files to <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-persistence/target/cl…>
[WARNING] bootstrap class path not set in conjunction with -source 1.6
[WARNING] <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-persistence/src/main/…>: Some input files use unchecked or unsafe operations.
[WARNING] <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-persistence/src/main/…>: Recompile with -Xlint:unchecked for details.
[INFO]
[INFO] --- maven-antrun-plugin:1.7:run (generate-surefire-workdir) @ tutti-persistence ---
[INFO] Executing tasks
main:
[mkdir] Created dir: <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-persistence/target/su…>
[INFO] Executed tasks
[INFO]
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ tutti-persistence ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 5 resources
[INFO]
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ tutti-persistence ---
[INFO] Compiling 31 source files to <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-persistence/target/te…>
[INFO] -------------------------------------------------------------
[WARNING] COMPILATION WARNING :
[INFO] -------------------------------------------------------------
[WARNING] bootstrap class path not set in conjunction with -source 1.6
[INFO] 1 warning
[INFO] -------------------------------------------------------------
[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-persistence/src/test/…>:[112,39] cannot find symbol
symbol: method setSamplingCode(java.lang.String)
location: variable fullIndividualObservationBatch of type fr.ifremer.tutti.persistence.entities.data.IndividualObservationBatch
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-persistence/src/test/…>:[113,39] cannot find symbol
symbol: method setCalcifiedPieceSamplingCode(java.lang.String)
location: variable fullIndividualObservationBatch of type fr.ifremer.tutti.persistence.entities.data.IndividualObservationBatch
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-persistence/src/test/…>:[143,39] cannot find symbol
symbol: method setSamplingCode(java.lang.String)
location: variable fullIndividualObservationBatch of type fr.ifremer.tutti.persistence.entities.data.IndividualObservationBatch
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-persistence/src/test/…>:[144,39] cannot find symbol
symbol: method setCalcifiedPieceSamplingCode(java.lang.String)
location: variable fullIndividualObservationBatch of type fr.ifremer.tutti.persistence.entities.data.IndividualObservationBatch
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-persistence/src/test/…>:[197,37] cannot find symbol
symbol: method getSamplingCode()
location: variable expected of type fr.ifremer.tutti.persistence.entities.data.IndividualObservationBatch
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-persistence/src/test/…>:[197,63] cannot find symbol
symbol: method getSamplingCode()
location: variable actual of type fr.ifremer.tutti.persistence.entities.data.IndividualObservationBatch
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-persistence/src/test/…>:[198,37] cannot find symbol
symbol: method getCalcifiedPieceSamplingCode()
location: variable expected of type fr.ifremer.tutti.persistence.entities.data.IndividualObservationBatch
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-persistence/src/test/…>:[198,77] cannot find symbol
symbol: method getCalcifiedPieceSamplingCode()
location: variable actual of type fr.ifremer.tutti.persistence.entities.data.IndividualObservationBatch
[INFO] 8 errors
[INFO] -------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO]
[INFO] Tutti ............................................. SUCCESS [2.248s]
[INFO] Tutti :: Persistence .............................. FAILURE [5.900s]
[INFO] Tutti :: Service .................................. SKIPPED
[INFO] Tutti :: UI ....................................... SKIPPED
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 8.755s
[INFO] Finished at: Sat Sep 21 16:55:56 CEST 2013
[INFO] Final Memory: 32M/232M
[INFO] ------------------------------------------------------------------------
[JENKINS] Archiving <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-service/pom.xml> to /var/local/jenkins/data/jobs/tutti/modules/fr.ifremer.tutti$tutti-service/builds/2013-09-21_16-55-45/archive/fr.ifremer.tutti/tutti-service/2.5-SNAPSHOT/tutti-service-2.5-SNAPSHOT.pom
[JENKINS] Archiving <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/pom.xml> to /var/local/jenkins/data/jobs/tutti/modules/fr.ifremer.tutti$tutti-ui-swing/builds/2013-09-21_16-55-45/archive/fr.ifremer.tutti/tutti-ui-swing/2.5-SNAPSHOT/tutti-ui-swing-2.5-SNAPSHOT.pom
[JENKINS] Archiving <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/pom.xml> to /var/local/jenkins/data/jobs/tutti/modules/fr.ifremer$tutti/builds/2013-09-21_16-55-45/archive/fr.ifremer/tutti/2.5-SNAPSHOT/tutti-2.5-SNAPSHOT.pom
[JENKINS] Archiving <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/target/tutti-2.5-SNAPSHOT-s…> to /var/local/jenkins/data/jobs/tutti/modules/fr.ifremer$tutti/builds/2013-09-21_16-55-45/archive/fr.ifremer/tutti/2.5-SNAPSHOT/tutti-2.5-SNAPSHOT-site_fr.xml
[JENKINS] Archiving <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-persistence/pom.xml> to /var/local/jenkins/data/jobs/tutti/modules/fr.ifremer.tutti$tutti-persistence/builds/2013-09-21_16-55-45/archive/fr.ifremer.tutti/tutti-persistence/2.5-SNAPSHOT/tutti-persistence-2.5-SNAPSHOT.pom
Waiting for Jenkins to finish collecting data
mavenExecutionResult exceptions not empty
message : Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:testCompile (default-testCompile) on project tutti-persistence: Compilation failure
cause : Compilation failure
Stack trace :
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:testCompile (default-testCompile) on project tutti-persistence: 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:606)
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:174)
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.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:724)
Caused by: org.apache.maven.plugin.compiler.CompilationFailureException: Compilation failure
at org.apache.maven.plugin.compiler.AbstractCompilerMojo.execute(AbstractCompilerMojo.java:858)
at org.apache.maven.plugin.compiler.TestCompilerMojo.execute(TestCompilerMojo.java:152)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209)
... 26 more
Sending e-mails to: tutti-commits(a)list.forge.codelutin.com chemit(a)codelutin.com
channel stopped
1
2
21 Sep '13
See <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-persistence/9…>
Changes:
[Tony Chemit] - improve i18n keys
- refs #3297: [DONNEES INDIVIDUELLES] gérer les colonnes du tableau dans le protocole (ne plus utiliser PMFM_ID_SAMPLE_ID et PMFM_ID_OTOLITHE_ID)
[Tony Chemit] fixes #3306: [DONNEES INDIVIDUELLES] L'ordre de saisie n'est pas conservé
fixes #3308: [CAPTURES ACCIDENTELLES] L'ordre de saisie n'est pas conservé
------------------------------------------
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building Tutti :: Persistence 2.5-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ tutti-persistence ---
[INFO] Deleting <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-persistence/w…>
[INFO]
[INFO] --- maven-enforcer-plugin:1.3.1:enforce (check-project-files) @ tutti-persistence ---
[INFO]
[INFO] --- eugene-maven-plugin:2.7:generate (default) @ tutti-persistence ---
[INFO] Process phase [zargo] for one entry.
[INFO] Expanding 1 xmi file(s) from <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-persistence/w…>
[INFO] Will generate <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-persistence/w…>
[INFO] Copy file <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-persistence/w…> to <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-persistence/w…>
[INFO] Generate one file in 13.825ms.
[INFO] Process phase [xmi] for one entry.
[INFO] Processing XSL tranformation on <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-persistence/w…> for 1 file(s).
[INFO] Will generate <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-persistence/w…>
[INFO] Copy file <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-persistence/w…> to <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-persistence/w…>
[INFO] Generate one file in 978.904ms.
[INFO] Process phase [model] for one entry.
WARN [pool-1-thread-1] (AbstractObjectModelReader.java:126) beforeReadFile - No properties provider filled, will instanciate a new default one
WARN [pool-1-thread-1] (AbstractObjectModelReader.java:294) loadModelTagValue - Invalid model tag value [model.tagvalue.simpleBeanExtractInterface] : the tagvalue 'simpleBeanExtractInterface' is unkown.
INFO [pool-1-thread-1] (AbstractObjectModelReader.java:270) loadModelProperties - 24 tag values were succesfull imported from <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-persistence/w…>
[INFO] No file generated.
[INFO] Apply generator JavaInterfaceTransformer
INFO [pool-1-thread-1] (ObjectModelTransformerToJava.java:995) isInClassPath - Will not generate [fr.ifremer.tutti.persistence.entities.TuttiEntity], already found in class-path.
[INFO] Apply generator SimpleJavaBeanTransformer
[INFO] Apply generator JavaEnumerationTransformer
INFO [pool-1-thread-1] (ObjectModelTransformerToJava.java:995) isInClassPath - Will not generate [fr.ifremer.tutti.persistence.entities.data.AttachementObjectTypeEnum], already found in class-path.
[INFO] Add compile source root : <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-persistence/w…>
[INFO] Add resource root :Resource {targetPath: null, filtering: false, FileSet {directory: <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-persistence/w…,> PatternSet [includes: {}, excludes: {**/*.java}]}}
[INFO]
[INFO] --- i18n-maven-plugin:2.5.2:parserJava (scan-sources) @ tutti-persistence ---
[INFO]
[INFO] --- i18n-maven-plugin:2.5.2:get (get) @ tutti-persistence ---
[INFO] Copying tutti-persistence.properties to <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-persistence/w…>
[INFO] Copying tutti-persistence.properties to <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-persistence/w…>
[INFO]
[INFO] --- i18n-maven-plugin:2.5.2:gen (scan-sources) @ tutti-persistence ---
[WARNING] bundle en_GB contains 59/59 empty entries! (use -Di18n.showEmpty to see these entries)
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ tutti-persistence ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 9 resources
[INFO] Copying 0 resource
[INFO]
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ tutti-persistence ---
[INFO] Compiling 133 source files to <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-persistence/w…>
[WARNING] bootstrap class path not set in conjunction with -source 1.6
[WARNING] <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-persistence/w…>: Some input files use unchecked or unsafe operations.
[WARNING] <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-persistence/w…>: Recompile with -Xlint:unchecked for details.
[INFO]
[INFO] --- maven-antrun-plugin:1.7:run (generate-surefire-workdir) @ tutti-persistence ---
[INFO] Executing tasks
main:
[mkdir] Created dir: <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-persistence/w…>
[INFO] Executed tasks
[INFO]
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ tutti-persistence ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 5 resources
[INFO]
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ tutti-persistence ---
[INFO] Compiling 31 source files to <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-persistence/w…>
[INFO] -------------------------------------------------------------
[WARNING] COMPILATION WARNING :
[INFO] -------------------------------------------------------------
[WARNING] bootstrap class path not set in conjunction with -source 1.6
[INFO] 1 warning
[INFO] -------------------------------------------------------------
[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-persistence/w…>:[112,39] cannot find symbol
symbol: method setSamplingCode(java.lang.String)
location: variable fullIndividualObservationBatch of type fr.ifremer.tutti.persistence.entities.data.IndividualObservationBatch
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-persistence/w…>:[113,39] cannot find symbol
symbol: method setCalcifiedPieceSamplingCode(java.lang.String)
location: variable fullIndividualObservationBatch of type fr.ifremer.tutti.persistence.entities.data.IndividualObservationBatch
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-persistence/w…>:[143,39] cannot find symbol
symbol: method setSamplingCode(java.lang.String)
location: variable fullIndividualObservationBatch of type fr.ifremer.tutti.persistence.entities.data.IndividualObservationBatch
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-persistence/w…>:[144,39] cannot find symbol
symbol: method setCalcifiedPieceSamplingCode(java.lang.String)
location: variable fullIndividualObservationBatch of type fr.ifremer.tutti.persistence.entities.data.IndividualObservationBatch
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-persistence/w…>:[197,37] cannot find symbol
symbol: method getSamplingCode()
location: variable expected of type fr.ifremer.tutti.persistence.entities.data.IndividualObservationBatch
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-persistence/w…>:[197,63] cannot find symbol
symbol: method getSamplingCode()
location: variable actual of type fr.ifremer.tutti.persistence.entities.data.IndividualObservationBatch
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-persistence/w…>:[198,37] cannot find symbol
symbol: method getCalcifiedPieceSamplingCode()
location: variable expected of type fr.ifremer.tutti.persistence.entities.data.IndividualObservationBatch
[ERROR] <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-persistence/w…>:[198,77] cannot find symbol
symbol: method getCalcifiedPieceSamplingCode()
location: variable actual of type fr.ifremer.tutti.persistence.entities.data.IndividualObservationBatch
[INFO] 8 errors
[INFO] -------------------------------------------------------------
1
2
r1200 - in trunk/tutti-persistence/src: main/java/fr/ifremer/tutti/persistence/test test/java/fr/ifremer/tutti/persistence/service
by tchemit@users.forge.codelutin.com 21 Sep '13
by tchemit@users.forge.codelutin.com 21 Sep '13
21 Sep '13
Author: tchemit
Date: 2013-09-21 17:14:00 +0200 (Sat, 21 Sep 2013)
New Revision: 1200
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/1200
Log:
fix tests
Modified:
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/test/DatabaseFixtures.java
trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/IndividualObservationBatchPersistenceServiceWriteTest.java
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/test/DatabaseFixtures.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/test/DatabaseFixtures.java 2013-09-21 15:00:19 UTC (rev 1199)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/test/DatabaseFixtures.java 2013-09-21 15:14:00 UTC (rev 1200)
@@ -103,7 +103,7 @@
}
public int refNbCaracteristic() {
- return 481;
+ return 485;
}
public int refNbSpecies() {
Modified: trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/IndividualObservationBatchPersistenceServiceWriteTest.java
===================================================================
--- trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/IndividualObservationBatchPersistenceServiceWriteTest.java 2013-09-21 15:00:19 UTC (rev 1199)
+++ trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/IndividualObservationBatchPersistenceServiceWriteTest.java 2013-09-21 15:14:00 UTC (rev 1200)
@@ -109,8 +109,8 @@
caracteristicMap.put(stringCaracteristic, "Un texte!");
fullIndividualObservationBatch.setComment("IndividualObservationBatch-full");
- fullIndividualObservationBatch.setSamplingCode("SamplingCode");
- fullIndividualObservationBatch.setCalcifiedPieceSamplingCode("CalcifiedPieceSamplingCode");
+// fullIndividualObservationBatch.setSamplingCode("SamplingCode");
+// fullIndividualObservationBatch.setCalcifiedPieceSamplingCode("CalcifiedPieceSamplingCode");
fullIndividualObservationBatch.setLengthStepCaracteristic(referentialService.getCaracteristic(dbResource.getFixtures().refNumericalPmfmId()));
fullIndividualObservationBatch.setSize(10.0f);
@@ -140,8 +140,8 @@
modifiedIndividualObservationBatch.setSize(15f);
modifiedIndividualObservationBatch.setWeight(35f);
fullIndividualObservationBatch.setComment("IndividualObservationBatch-modified");
- fullIndividualObservationBatch.setSamplingCode("SamplingCode");
- fullIndividualObservationBatch.setCalcifiedPieceSamplingCode("CalcifiedPieceSamplingCode");
+// fullIndividualObservationBatch.setSamplingCode("SamplingCode");
+// fullIndividualObservationBatch.setCalcifiedPieceSamplingCode("CalcifiedPieceSamplingCode");
modifiedIndividualObservationBatch.getCaracteristics().clear();
IndividualObservationBatch savedIndividualObservationBatch = service.saveIndividualObservationBatch(modifiedIndividualObservationBatch);
@@ -194,8 +194,8 @@
Assert.assertEquals(expected.getId(), actual.getId());
Assert.assertEquals(expected.getSize(), actual.getSize());
Assert.assertEquals(expected.getComment(), actual.getComment());
- Assert.assertEquals(expected.getSamplingCode(), actual.getSamplingCode());
- Assert.assertEquals(expected.getCalcifiedPieceSamplingCode(), actual.getCalcifiedPieceSamplingCode());
+// Assert.assertEquals(expected.getSamplingCode(), actual.getSamplingCode());
+// Assert.assertEquals(expected.getCalcifiedPieceSamplingCode(), actual.getCalcifiedPieceSamplingCode());
Assert.assertEquals(expected.getLengthStepCaracteristic(), actual.getLengthStepCaracteristic());
Assert.assertEquals(expected.getWeight(), actual.getWeight());
Assert.assertEquals(expected.getCaracteristics(), actual.getCaracteristics());
1
0
r1199 - trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation
by tchemit@users.forge.codelutin.com 21 Sep '13
by tchemit@users.forge.codelutin.com 21 Sep '13
21 Sep '13
Author: tchemit
Date: 2013-09-21 17:00:19 +0200 (Sat, 21 Sep 2013)
New Revision: 1199
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/1199
Log:
fixes #3309: [DONNEES INDIVIDUELLES] Ligne ?\195?\160 supprimer non s?\195?\169lectionn?\195?\169e
Modified:
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUI.css
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUI.css 2013-09-21 14:47:57 UTC (rev 1198)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUI.css 2013-09-21 15:00:19 UTC (rev 1199)
@@ -56,7 +56,7 @@
#table {
selectionMode: {ListSelectionModel.SINGLE_SELECTION};
- selectionBackground: {null};
+ /*selectionBackground: {null};*/
selectionForeground: {Color.BLACK};
sortable: false;
}
1
0
21 Sep '13
Author: tchemit
Date: 2013-09-21 16:47:57 +0200 (Sat, 21 Sep 2013)
New Revision: 1198
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/1198
Log:
refs #3297: [DONNEES INDIVIDUELLES] g?\195?\169rer les colonnes du tableau dans le protocole (tableau dynamique ok)
fixes #3304: [DONNEES INDIVIDUELLES] Utilisation du code campagne sur les esp?\195?\168ces
fixes #3303: [DONNEES INDIVIDUELLES] liste des esp?\195?\168ces possibles. Saisie au km
Added:
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/table/CaracteristicColumnIdentifier.java
Removed:
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/TuttiMultiPostImportExportService.java
Modified:
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiDataContext.java
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/IndividualObservationRow.java
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/IndividualObservationRowModel.java
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/TuttiMultiPostExportService.java
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/TuttiMultiPostImportService.java
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/IndividualObservationExportModel.java
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/TuttiExportService.java
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/accidental/AccidentalBatchUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/ImportMultiPostAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchRowModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchTableModel.java
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/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/ImportMultiPostAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/ImportMultiPostAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/caracteristics/CaracteristicMapCellComponent.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/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-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java 2013-09-21 14:45:35 UTC (rev 1197)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java 2013-09-21 14:47:57 UTC (rev 1198)
@@ -485,17 +485,17 @@
return driver.getDeadOrAliveCaracteristic();
}
- @Override
- public Caracteristic getSampleIdCaracteristic() {
- return driver.getSampleIdCaracteristic();
- }
+// @Override
+// public Caracteristic getSampleIdCaracteristic() {
+// return driver.getSampleIdCaracteristic();
+// }
+//
+// @Override
+// public Caracteristic getOtolitheIdCaracteristic() {
+// return driver.getOtolitheIdCaracteristic();
+// }
@Override
- public Caracteristic getOtolitheIdCaracteristic() {
- return driver.getOtolitheIdCaracteristic();
- }
-
- @Override
public Caracteristic getPmfmIdCaracteristic() {
return driver.getPmfmIdCaracteristic();
}
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiDataContext.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiDataContext.java 2013-09-21 14:45:35 UTC (rev 1197)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiDataContext.java 2013-09-21 14:47:57 UTC (rev 1198)
@@ -154,6 +154,8 @@
protected List<Gear> scientificGears;
+ protected List<Caracteristic> defaultIndividualObservationCaracteristics;
+
protected PersistenceService service;
TuttiDataContext() {
@@ -684,6 +686,31 @@
return scientificGears;
}
+ public List<Caracteristic> getDefaultIndividualObservationCaracteristics() {
+ if (defaultIndividualObservationCaracteristics == null) {
+
+ if (log.isInfoEnabled()) {
+ log.info("Loading defaultIndividualObservationCaracteristics");
+ }
+ List<Caracteristic> list ;
+ if (isProtocolFilled()) {
+ List<String> individualObservationPmfmId = getProtocol().getIndividualObservationPmfmId();
+ list = Lists.newArrayListWithCapacity(individualObservationPmfmId.size());
+ for (String id : individualObservationPmfmId) {
+ Caracteristic caracteristic = service.getCaracteristic(Integer.valueOf(id));
+ list.add(caracteristic);
+ }
+ } else {
+ // no default caracteristics to use
+ list = Lists.newArrayList();
+ }
+
+ defaultIndividualObservationCaracteristics =
+ Collections.unmodifiableList(list);
+ }
+ return defaultIndividualObservationCaracteristics;
+ }
+
public void resetCruise() {
cruise = null;
}
@@ -691,6 +718,7 @@
public void resetProtocol() {
protocol = null;
lengthStepCaracteristics = null;
+ defaultIndividualObservationCaracteristics=null;
}
public void resetGears() {
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/IndividualObservationRow.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/IndividualObservationRow.java 2013-09-21 14:45:35 UTC (rev 1197)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/IndividualObservationRow.java 2013-09-21 14:47:57 UTC (rev 1198)
@@ -47,10 +47,10 @@
public static final String LENGTH_STEP_CARACTERISTIC = "lengthStepCaracteristic";
- public static final String SAMPLING_CODE = "samplingCode";
+// public static final String SAMPLING_CODE = "samplingCode";
+//
+// public static final String CALCIFIED_PIECE_SAMPLING_CODE = "calcifiedPieceSamplingCode";
- public static final String CALCIFIED_PIECE_SAMPLING_CODE = "calcifiedPieceSamplingCode";
-
public static final String COMMENT = "comment";
protected String batchId;
@@ -63,10 +63,10 @@
protected Caracteristic lengthStepCaracteristic;
- protected String samplingCode;
+// protected String samplingCode;
+//
+// protected String calcifiedPieceSamplingCode;
- protected String calcifiedPieceSamplingCode;
-
protected String comment;
public String getBatchId() {
@@ -109,22 +109,22 @@
this.lengthStepCaracteristic = lengthStepCaracteristic;
}
- public String getSamplingCode() {
- return samplingCode;
- }
+// public String getSamplingCode() {
+// return samplingCode;
+// }
+//
+// public void setSamplingCode(String samplingCode) {
+// this.samplingCode = samplingCode;
+// }
+//
+// public String getCalcifiedPieceSamplingCode() {
+// return calcifiedPieceSamplingCode;
+// }
+//
+// public void setCalcifiedPieceSamplingCode(String calcifiedPieceSamplingCode) {
+// this.calcifiedPieceSamplingCode = calcifiedPieceSamplingCode;
+// }
- public void setSamplingCode(String samplingCode) {
- this.samplingCode = samplingCode;
- }
-
- public String getCalcifiedPieceSamplingCode() {
- return calcifiedPieceSamplingCode;
- }
-
- public void setCalcifiedPieceSamplingCode(String calcifiedPieceSamplingCode) {
- this.calcifiedPieceSamplingCode = calcifiedPieceSamplingCode;
- }
-
public String getComment() {
return comment;
}
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/IndividualObservationRowModel.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/IndividualObservationRowModel.java 2013-09-21 14:45:35 UTC (rev 1197)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/IndividualObservationRowModel.java 2013-09-21 14:47:57 UTC (rev 1198)
@@ -92,10 +92,10 @@
Caracteristic.PROPERTY_ID,
caracteristicMap);
- newColumnForImportExport(IndividualObservationRow.SAMPLING_CODE);
+// newColumnForImportExport(IndividualObservationRow.SAMPLING_CODE);
+//
+// newColumnForImportExport(IndividualObservationRow.CALCIFIED_PIECE_SAMPLING_CODE);
- newColumnForImportExport(IndividualObservationRow.CALCIFIED_PIECE_SAMPLING_CODE);
-
newColumnForImportExport(IndividualObservationRow.COMMENT);
}
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/TuttiMultiPostExportService.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/TuttiMultiPostExportService.java 2013-09-21 14:45:35 UTC (rev 1197)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/TuttiMultiPostExportService.java 2013-09-21 14:47:57 UTC (rev 1198)
@@ -318,8 +318,8 @@
row.setWeight(batch.getWeight());
row.setSize(batch.getSize());
row.setLengthStepCaracteristic(batch.getLengthStepCaracteristic());
- row.setSamplingCode(batch.getSamplingCode());
- row.setCalcifiedPieceSamplingCode(batch.getCalcifiedPieceSamplingCode());
+// row.setSamplingCode(batch.getSamplingCode());
+// row.setCalcifiedPieceSamplingCode(batch.getCalcifiedPieceSamplingCode());
row.setComment(batch.getComment());
rows.add(row);
Deleted: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/TuttiMultiPostImportExportService.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/TuttiMultiPostImportExportService.java 2013-09-21 14:45:35 UTC (rev 1197)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/TuttiMultiPostImportExportService.java 2013-09-21 14:47:57 UTC (rev 1198)
@@ -1,1647 +0,0 @@
-package fr.ifremer.tutti.service.catches.multipost;
-
-/*
- * #%L
- * Tutti :: Service
- * $Id$
- * $HeadURL$
- * %%
- * Copyright (C) 2012 - 2013 Ifremer
- * %%
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public
- * License along with this program. If not, see
- * <http://www.gnu.org/licenses/gpl-3.0.html>.
- * #L%
- */
-
-import com.google.common.base.Charsets;
-import com.google.common.base.Function;
-import com.google.common.collect.ArrayListMultimap;
-import com.google.common.collect.ListMultimap;
-import com.google.common.collect.Lists;
-import com.google.common.collect.Maps;
-import com.google.common.io.Files;
-import fr.ifremer.tutti.TuttiBusinessException;
-import fr.ifremer.tutti.TuttiIOUtil;
-import fr.ifremer.tutti.TuttiTechnicalException;
-import fr.ifremer.tutti.persistence.entities.CaracteristicMap;
-import fr.ifremer.tutti.persistence.entities.TuttiBeanFactory;
-import fr.ifremer.tutti.persistence.entities.TuttiEntities;
-import fr.ifremer.tutti.persistence.entities.data.AccidentalBatch;
-import fr.ifremer.tutti.persistence.entities.data.AttachementObjectTypeEnum;
-import fr.ifremer.tutti.persistence.entities.data.Attachment;
-import fr.ifremer.tutti.persistence.entities.data.BatchContainer;
-import fr.ifremer.tutti.persistence.entities.data.BenthosBatch;
-import fr.ifremer.tutti.persistence.entities.data.BenthosBatchFrequency;
-import fr.ifremer.tutti.persistence.entities.data.CatchBatch;
-import fr.ifremer.tutti.persistence.entities.data.FishingOperation;
-import fr.ifremer.tutti.persistence.entities.data.IndividualObservationBatch;
-import fr.ifremer.tutti.persistence.entities.data.MarineLitterBatch;
-import fr.ifremer.tutti.persistence.entities.data.SpeciesBatch;
-import fr.ifremer.tutti.persistence.entities.data.SpeciesBatchFrequency;
-import fr.ifremer.tutti.persistence.entities.referential.Caracteristic;
-import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValue;
-import fr.ifremer.tutti.persistence.entities.referential.Species;
-import fr.ifremer.tutti.service.AbstractTuttiService;
-import fr.ifremer.tutti.service.DecoratorService;
-import fr.ifremer.tutti.service.PersistenceService;
-import fr.ifremer.tutti.service.TuttiDataContext;
-import fr.ifremer.tutti.service.TuttiServiceContext;
-import org.apache.commons.io.IOUtils;
-import org.apache.commons.lang3.ObjectUtils;
-import org.apache.commons.lang3.StringUtils;
-import org.apache.commons.lang3.tuple.Pair;
-import org.nuiton.csv.Export;
-import org.nuiton.csv.Import;
-import org.nuiton.util.ZipUtil;
-
-import java.io.BufferedWriter;
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.io.Reader;
-import java.io.Serializable;
-import java.io.Writer;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.UUID;
-
-import static org.nuiton.i18n.I18n._;
-
-/**
- * Service to export batches from a satellite post or import batches into a master post.
- *
- * @author kmorin <kmorin(a)codelutin.com>
- * @since 2.2
- * @deprecated since 2.5, too long, too bad :(
- */
-@Deprecated
-public class TuttiMultiPostImportExportService extends AbstractTuttiService {
-
-// private static final Log log =
-// LogFactory.getLog(TuttiMultiPostImportExportService.class);
-
- public static final String BATCHES_KEY = "batchesKey";
-
- protected static final String ATTACHMENTS_DIRECTORY = "attachments";
-
- protected static final String ATTACHMENTS_FILE = "attachments.csv";
-
- protected static final String SPECIES_FILE = "species.csv";
-
- protected static final String BENTHOS_FILE = "benthos.csv";
-
- protected static final String MARINE_LITTER_FILE = "marineLitter.csv";
-
- protected static final String INDIVIDUAL_OBSERVATION_FILE = "individualObservation.csv";
-
- protected static final String ACCIDENTAL_CATCHES_FILE = "accidentalCatches.csv";
-
- protected static final String FREQUENCIES_FILE = "frequencies.csv";
-
- protected static final String CARACTERISTIC_FILE = "caracteristics.csv";
-
- protected static final String WEIGHTS_FILE = "weights.csv";
-
- protected PersistenceService persistenceService;
-
- protected DecoratorService decoratorService;
-
- protected char csvSeparator;
-
-// protected List<SampleCategoryEnum> samplingOrder;
-
- @Override
- public void setServiceContext(TuttiServiceContext context) {
- super.setServiceContext(context);
- persistenceService = getService(PersistenceService.class);
- decoratorService = getService(DecoratorService.class);
-
- csvSeparator = context.getConfig().getCsvSeparator();
-
-// Map<Integer, SampleCategoryEnum> idMapping = SampleCategoryEnum.toIdMapping();
-//
-// samplingOrder = Lists.newArrayList();
-//
-// // always first sampling category
-// samplingOrder.add(SampleCategoryEnum.sortedUnsorted);
-//
-// for (Integer categoryId : context.getConfig().getSamplingOrderIds()) {
-// SampleCategoryEnum categoryEnum = idMapping.get(categoryId);
-// if (SampleCategoryEnum.sortedUnsorted != categoryEnum) {
-// samplingOrder.add(categoryEnum);
-// }
-// }
- }
-
- /**
- * Export species batches.
- *
- * @param file the file to export the batches into
- * @param operation the operation to export
- */
- public void exportSpecies(File file, FishingOperation operation) {
-
- String operationId = operation.getId();
- if (persistenceService.isFishingOperationWithCatchBatch(operationId)) {
-
- BatchContainer<SpeciesBatch> speciesBatchContainer =
- persistenceService.getRootSpeciesBatch(operationId, null);
-
- List<CatchRow> rows = Lists.newArrayList();
- List<CatchFrequencyRow> frequencyRows = Lists.newArrayList();
- List<AttachmentRow> attachmentRows = Lists.newArrayList();
-
- for (SpeciesBatch batch : speciesBatchContainer.getChildren()) {
- createSpeciesRow(batch, null, rows, frequencyRows, attachmentRows);
- }
-
- // export weights
- CatchBatch catchBatch = persistenceService.getCatchBatchFromFishingOperation(operationId);
- CatchWeightsRow weights = new CatchWeightsRow();
- weights.setTotalSortedWeight(catchBatch.getSpeciesTotalSortedWeight());
- weights.setInertWeight(catchBatch.getSpeciesTotalInertWeight());
- weights.setLivingNotItemizedWeight(catchBatch.getSpeciesTotalLivingNotItemizedWeight());
- exportOperation(weights, operation);
-
- exportCatches(file, SPECIES_FILE, weights, rows, frequencyRows, attachmentRows);
- }
- }
-
- /**
- * Export benthos batches.
- *
- * @param file the file to export the batches into
- * @param operation the operation to export
- */
- public void exportBenthos(File file, FishingOperation operation) {
-
- String operationId = operation.getId();
- if (persistenceService.isFishingOperationWithCatchBatch(operationId)) {
-
- BatchContainer<BenthosBatch> benthosBatchContainer =
- persistenceService.getRootBenthosBatch(operationId, null);
-
- List<CatchRow> rows = Lists.newArrayList();
- List<CatchFrequencyRow> frequencyRows = Lists.newArrayList();
- List<AttachmentRow> attachmentRows = Lists.newArrayList();
-
- for (BenthosBatch batch : benthosBatchContainer.getChildren()) {
- createBenthosRow(batch, null, rows, frequencyRows, attachmentRows);
- }
-
- // export weights
- CatchBatch catchBatch = persistenceService.getCatchBatchFromFishingOperation(operationId);
- CatchWeightsRow weights = new CatchWeightsRow();
- weights.setTotalSortedWeight(catchBatch.getBenthosTotalSortedWeight());
- weights.setInertWeight(catchBatch.getBenthosTotalInertWeight());
- weights.setLivingNotItemizedWeight(catchBatch.getBenthosTotalLivingNotItemizedWeight());
- exportOperation(weights, operation);
-
- exportCatches(file, BENTHOS_FILE, weights, rows, frequencyRows, attachmentRows);
- }
- }
-
- /**
- * Export marine litter batches.
- *
- * @param file the file to export the batches into
- * @param operation the operation to export
- */
- public void exportMarineLitter(File file, FishingOperation operation) {
-
- String operationId = operation.getId();
- if (persistenceService.isFishingOperationWithCatchBatch(operationId)) {
-
- BatchContainer<MarineLitterBatch> marineLitterBatchContainer =
- persistenceService.getRootMarineLitterBatch(operationId);
-
- List<MarineLitterRow> rows = Lists.newArrayList();
- List<AttachmentRow> attachmentRows = Lists.newArrayList();
-
- for (MarineLitterBatch batch : marineLitterBatchContainer.getChildren()) {
- MarineLitterRow row = new MarineLitterRow();
-
- String id = UUID.randomUUID().toString();
- row.setBatchId(id);
-
- row.setCategory(batch.getMarineLitterCategory());
- row.setSizeCategory(batch.getMarineLitterSizeCategory());
- row.setNumber(batch.getNumber());
- row.setWeight(batch.getWeight());
- row.setComment(batch.getComment());
-
- rows.add(row);
-
- addAttachments(id, batch.getIdAsInt(), AttachementObjectTypeEnum.BATCH, attachmentRows);
- }
-
- MarineLitterRowModel csvModel = new MarineLitterRowModel(csvSeparator);
-
- BufferedWriter writer = null;
- File directory = Files.createTempDir();
- List<File> file2zip = Lists.newArrayList();
-
- File speciesFile = new File(directory, MARINE_LITTER_FILE);
- file2zip.add(speciesFile);
- try {
- writer = Files.newWriter(speciesFile, Charsets.UTF_8);
- Export export = Export.newExport(csvModel, rows);
- export.write(writer);
- writer.close();
- } catch (Exception e) {
- throw new TuttiTechnicalException(_("tutti.service.multipost.export.batches.error", speciesFile), e);
- } finally {
- IOUtils.closeQuietly(writer);
- }
-
- // export weight
- CatchBatch catchBatch = persistenceService.getCatchBatchFromFishingOperation(operationId);
- MarineLitterWeightRow weight = new MarineLitterWeightRow();
- weight.setTotalWeight(catchBatch.getMarineLitterTotalWeight());
- exportOperation(weight, operation);
-
- MarineLitterWeightRowModel weightModel = new MarineLitterWeightRowModel(csvSeparator);
-
- File weightFile = new File(directory, WEIGHTS_FILE);
- file2zip.add(weightFile);
- try {
- writer = Files.newWriter(weightFile, Charsets.UTF_8);
- Export export = Export.newExport(weightModel, Lists.newArrayList(weight));
- export.write(writer);
- writer.close();
- } catch (Exception e) {
- throw new TuttiTechnicalException(_("tutti.service.multipost.export.weight.error", weightFile), e);
- } finally {
- IOUtils.closeQuietly(writer);
- }
-
- exportAttachments(directory, file2zip, attachmentRows);
-
- try {
- ZipUtil.compressFiles(file, directory, file2zip);
-
- } catch (IOException e) {
- throw new TuttiTechnicalException(_("tutti.service.multipost.export.error", file), e);
-
- } finally {
- TuttiIOUtil.deleteDirectory(directory, _("tutti.service.multipost.export.deleteTempDirectory.error", file));
- }
- }
- }
-
- /**
- * Export individual observation batches.
- *
- * @param file the file to export the batches into
- * @param operation the operation to export
- */
- public void exportIndividualObservation(File file, FishingOperation operation) {
- List<IndividualObservationBatch> individualObservations =
- persistenceService.getAllIndividualObservationBatch(operation.getId());
-
- List<IndividualObservationRow> rows = Lists.newArrayList();
- List<CaracteristicRow> caracteristicRows = Lists.newArrayList();
- List<AttachmentRow> attachmentRows = Lists.newArrayList();
-
- for (IndividualObservationBatch batch : individualObservations) {
- IndividualObservationRow row = new IndividualObservationRow();
-
- String id = UUID.randomUUID().toString();
- row.setBatchId(id);
-
- row.setSpecies(batch.getSpecies());
- row.setWeight(batch.getWeight());
- row.setSize(batch.getSize());
- row.setLengthStepCaracteristic(batch.getLengthStepCaracteristic());
- row.setSamplingCode(batch.getSamplingCode());
- row.setCalcifiedPieceSamplingCode(batch.getCalcifiedPieceSamplingCode());
- row.setComment(batch.getComment());
-
- rows.add(row);
-
- CaracteristicMap caracteristicMap = batch.getCaracteristics();
- for (Caracteristic caracteristic : caracteristicMap.keySet()) {
- CaracteristicRow caracteristicRow = new CaracteristicRow();
- caracteristicRow.setBatchId(id);
- caracteristicRow.setCaracteristic(caracteristic);
- caracteristicRow.setValue(caracteristicMap.get(caracteristic));
- caracteristicRows.add(caracteristicRow);
- }
-
- addAttachments(id, batch.getIdAsInt(), AttachementObjectTypeEnum.SAMPLE, attachmentRows);
- }
-
- IndividualObservationRowModel csvModel = new IndividualObservationRowModel(csvSeparator);
-
- BufferedWriter writer = null;
- File directory = Files.createTempDir();
- List<File> file2zip = Lists.newArrayList();
-
- File individualObservationFile = new File(directory, INDIVIDUAL_OBSERVATION_FILE);
- file2zip.add(individualObservationFile);
- try {
- writer = Files.newWriter(individualObservationFile, Charsets.UTF_8);
- Export export = Export.newExport(csvModel, rows);
- export.write(writer);
- writer.close();
- } catch (Exception e) {
- throw new TuttiTechnicalException(_("tutti.service.multipost.export.batches.error", file), e);
- } finally {
- IOUtils.closeQuietly(writer);
- }
-
- CaracteristicRowModel caracteristicCsvModel = new CaracteristicRowModel(csvSeparator);
- File caracteristicFile = new File(directory, CARACTERISTIC_FILE);
- file2zip.add(caracteristicFile);
- try {
- writer = Files.newWriter(caracteristicFile, Charsets.UTF_8);
- Export export = Export.newExport(caracteristicCsvModel, caracteristicRows);
- export.write(writer);
- writer.close();
- } catch (Exception e) {
- throw new TuttiTechnicalException(_("tutti.service.multipost.export.batches.error", caracteristicFile), e);
- } finally {
- IOUtils.closeQuietly(writer);
- }
-
- // export operation
- FishingOperationRow foRow = new FishingOperationRow();
- exportOperation(foRow, operation);
-
- FishingOperationRowModel foRowModel = new FishingOperationRowModel(csvSeparator);
-
- File weightFile = new File(directory, WEIGHTS_FILE);
- file2zip.add(weightFile);
- try {
- writer = Files.newWriter(weightFile, Charsets.UTF_8);
- Export export = Export.newExport(foRowModel, Lists.newArrayList(foRow));
- export.write(writer);
- writer.close();
- } catch (Exception e) {
- throw new TuttiTechnicalException(_("tutti.service.multipost.export.operation.error", weightFile), e);
- } finally {
- IOUtils.closeQuietly(writer);
- }
-
- exportAttachments(directory, file2zip, attachmentRows);
-
- try {
- ZipUtil.compressFiles(file, directory, file2zip);
-
- } catch (IOException e) {
- throw new TuttiTechnicalException(_("tutti.service.multipost.export.error", file), e);
-
- } finally {
- TuttiIOUtil.deleteDirectory(directory, _("tutti.service.multipost.export.deleteTempDirectory.error", file));
- }
- }
-
- /**
- * Export accidental catch batches.
- *
- * @param file the file to export the batches into
- * @param operation the operation to export
- */
- public void exportAccidentalCatch(File file, FishingOperation operation) {
- List<AccidentalBatch> accidentalCatches =
- persistenceService.getAllAccidentalBatch(operation.getId());
-
- List<AccidentalCatchRow> rows = Lists.newArrayList();
- List<CaracteristicRow> caracteristicRows = Lists.newArrayList();
- List<AttachmentRow> attachmentRows = Lists.newArrayList();
-
- for (AccidentalBatch batch : accidentalCatches) {
- AccidentalCatchRow row = new AccidentalCatchRow();
-
- String id = UUID.randomUUID().toString();
- row.setBatchId(id);
-
- row.setSpecies(batch.getSpecies());
- row.setGender(batch.getGender());
- row.setWeight(batch.getWeight());
- row.setSize(batch.getSize());
- row.setLengthStepCaracteristic(batch.getLengthStepCaracteristic());
- row.setDeadOrAlive(batch.getDeadOrAlive());
- row.setComment(batch.getComment());
-
- rows.add(row);
-
- CaracteristicMap caracteristicMap = batch.getCaracteristics();
- for (Caracteristic caracteristic : caracteristicMap.keySet()) {
- CaracteristicRow caracteristicRow = new CaracteristicRow();
- caracteristicRow.setBatchId(id);
- caracteristicRow.setCaracteristic(caracteristic);
- caracteristicRow.setValue(caracteristicMap.get(caracteristic));
- caracteristicRows.add(caracteristicRow);
- }
-
- addAttachments(id, batch.getIdAsInt(), AttachementObjectTypeEnum.SAMPLE, attachmentRows);
- }
-
- AccidentalCatchRowModel csvModel = new AccidentalCatchRowModel(csvSeparator);
-
- BufferedWriter writer = null;
- File directory = Files.createTempDir();
- List<File> file2zip = Lists.newArrayList();
-
- File accidentalCatchesFile = new File(directory, ACCIDENTAL_CATCHES_FILE);
- file2zip.add(accidentalCatchesFile);
- try {
- writer = Files.newWriter(accidentalCatchesFile, Charsets.UTF_8);
- Export export = Export.newExport(csvModel, rows);
- export.write(writer);
- writer.close();
- } catch (Exception e) {
- throw new TuttiTechnicalException(_("tutti.service.multipost.export.batches.error", file), e);
- } finally {
- IOUtils.closeQuietly(writer);
- }
-
- CaracteristicRowModel caracteristicCsvModel = new CaracteristicRowModel(csvSeparator);
- File caracteristicFile = new File(directory, CARACTERISTIC_FILE);
- file2zip.add(caracteristicFile);
- try {
- writer = Files.newWriter(caracteristicFile, Charsets.UTF_8);
- Export export = Export.newExport(caracteristicCsvModel, caracteristicRows);
- export.write(writer);
- writer.close();
- } catch (Exception e) {
- throw new TuttiTechnicalException(_("tutti.service.multipost.export.batches.error", caracteristicFile), e);
- } finally {
- IOUtils.closeQuietly(writer);
- }
-
- // export operation
- FishingOperationRow foRow = new FishingOperationRow();
- exportOperation(foRow, operation);
-
- FishingOperationRowModel foRowModel = new FishingOperationRowModel(csvSeparator);
-
- File weightFile = new File(directory, WEIGHTS_FILE);
- file2zip.add(weightFile);
- try {
- writer = Files.newWriter(weightFile, Charsets.UTF_8);
- Export export = Export.newExport(foRowModel, Lists.newArrayList(foRow));
- export.write(writer);
- writer.close();
- } catch (Exception e) {
- throw new TuttiTechnicalException(_("tutti.service.multipost.export.operation.error", weightFile), e);
- } finally {
- IOUtils.closeQuietly(writer);
- }
-
- exportAttachments(directory, file2zip, attachmentRows);
-
- try {
- ZipUtil.compressFiles(file, directory, file2zip);
-
- } catch (IOException e) {
- throw new TuttiTechnicalException(_("tutti.service.multipost.export.error", file), e);
-
- } finally {
- TuttiIOUtil.deleteDirectory(directory, _("tutti.service.multipost.export.deleteTempDirectory.error", file));
- }
- }
-
- /**
- * Import species batches from a satellite post
- *
- * @param file the file to import the batches from
- * @param operation the operation in which to add the batches
- * @return the list of the species which have not been imported, because there were concurrent batches
- */
- public Map<String, Object> importSpecies(File file, FishingOperation operation) {
-
- Map<String, Object> notImportedData = Maps.newHashMap();
- final Map<String, SpeciesBatch> notImportedBatches = Maps.newLinkedHashMap();
-
- BatchContainer<SpeciesBatch> speciesBatches =
- persistenceService.getRootSpeciesBatch(operation.getId(), null);
-
- TuttiDataContext dataContext = context.getDataContext();
- List<Species> speciesList = dataContext.getReferentSpecies();
-
- // map containing the batches by their persistence id
- final Map<String, SpeciesBatch> batches = Maps.newHashMap();
-
- File tempDir = Files.createTempDir();
-
- try {
- ZipUtil.uncompress(file, tempDir);
- } catch (IOException e) {
- throw new TuttiTechnicalException(_("tutti.service.multipost.uncompress.error", file));
- }
-
- //check operation
- CatchWeightsRowModel weightsModel = new CatchWeightsRowModel(csvSeparator);
- checkSameOperation(tempDir, weightsModel, operation);
-
- // Import batches
-
- File speciesFile = new File(tempDir, SPECIES_FILE);
-
- Reader reader = null;
- try {
- reader = Files.newReader(speciesFile, Charsets.UTF_8);
-
- } catch (FileNotFoundException e) {
- throw new TuttiTechnicalException(_("tutti.service.multipost.import.batches.error", speciesFile), e);
- }
-
- CatchRowModel csvModel = new CatchRowModel(csvSeparator,
- speciesList);
-
- Import<CatchRow> importer = Import.newImport(csvModel, reader);
-
- for (CatchRow row : importer) {
-
- // create batch
- SpeciesBatch batch = TuttiBeanFactory.newSpeciesBatch();
- batch.setFishingOperation(operation);
-
- Species species = row.getSpecies();
- batch.setSpecies(row.getSpecies());
- batch.setWeight(row.getWeight());
- batch.setNumber(row.getNumber());
- batch.setComment(row.getComment());
- batch.setSpeciesToConfirm(row.isToConfirm());
-
- Pair<Integer, Serializable> valueAndCategoryType = getValueAndCategoryType(row);
- Integer categoryId = valueAndCategoryType.getKey();
- Serializable value = valueAndCategoryType.getValue();
-
- batch.setSampleCategoryId(categoryId);
- batch.setSampleCategoryValue(value);
- batch.setSampleCategoryWeight(row.getCategoryWeight());
-
- // get parent batch
- String parentId = row.getParentId();
- String parentPersistedId = null;
- SpeciesBatch parent = null;
- if (StringUtils.isNotEmpty(parentId)) {
- parent = batches.get(parentId);
- parentPersistedId = parent.getId();
- }
-
- SpeciesBatch existingBatch = null;
- List<SpeciesBatch> batchesToBrowse;
- if (parent == null) {
- batchesToBrowse = speciesBatches.getChildren();
- } else {
- batchesToBrowse = parent.getChildBatchs();
- }
-
- // check if the parent has already a batch with the caracteristic value
- // and if the children batch are categorized with the same caracterstic
- if (batchesToBrowse != null) {
- for (SpeciesBatch sb : batchesToBrowse) {
- if (sb.getSpecies().equals(species)
- && (!sb.getSampleCategoryId().equals(batch.getSampleCategoryId())
- || sb.getSampleCategoryValue().equals(value))) {
-
- existingBatch = sb;
- batches.put(row.getId(), sb);
- notImportedBatches.put(row.getId(), batch);
- break;
- }
- }
- }
-
- if (existingBatch == null) {
- batch = persistenceService.createSpeciesBatch(batch, parentPersistedId);
- batches.put(row.getId(), batch);
- }
- }
-
- // Import frequencies
-
- File frequencyFile = new File(tempDir, FREQUENCIES_FILE);
- try {
- reader = Files.newReader(frequencyFile, Charsets.UTF_8);
-
- } catch (FileNotFoundException e) {
- throw new TuttiTechnicalException(_("tutti.service.multipost.import.frequencies.error", frequencyFile), e);
- }
-
- CatchFrequencyRowModel frequencyModel = new CatchFrequencyRowModel(csvSeparator,
- dataContext.getCaracteristics());
-
- Import<CatchFrequencyRow> frequencyImporter = Import.newImport(frequencyModel, reader);
-
- ListMultimap<String, SpeciesBatchFrequency> frequencyMap = ArrayListMultimap.create();
-
- for (CatchFrequencyRow frequencyRow : frequencyImporter) {
- if (notImportedBatches.get(frequencyRow.getBatchId()) == null) {
- SpeciesBatch batch = batches.get(frequencyRow.getBatchId());
- if (batch != null) {
- SpeciesBatchFrequency frequency = TuttiBeanFactory.newSpeciesBatchFrequency();
- frequency.setLengthStepCaracteristic(frequencyRow.getLengthStepCaracteristic());
- frequency.setLengthStep(frequencyRow.getLengthStep());
- frequency.setNumber(frequencyRow.getNumber());
- frequency.setWeight(frequencyRow.getWeight());
- frequency.setBatch(batch);
- frequencyMap.put(batch.getId(), frequency);
- }
- }
- }
- for (String batchId : frequencyMap.keySet()) {
- List<SpeciesBatchFrequency> frequencies = frequencyMap.get(batchId);
- persistenceService.saveSpeciesBatchFrequency(batchId, frequencies);
- }
-
- // Import attachments
- Function<AttachmentRow, Integer> getObjetcIdFunction = new Function<AttachmentRow, Integer>() {
- @Override
- public Integer apply(AttachmentRow input) {
- Integer result = null;
- if (notImportedBatches.get(input.getBatchId()) == null) {
- SpeciesBatch batch = batches.get(input.getBatchId());
- if (batch != null) {
- result = batch.getIdAsInt();
- }
- }
- return result;
- }
- };
- importAttachments(tempDir, getObjetcIdFunction, AttachementObjectTypeEnum.BATCH);
-
- // import weights
- File weightsFile = new File(tempDir, WEIGHTS_FILE);
- try {
- reader = Files.newReader(weightsFile, Charsets.UTF_8);
-
- } catch (FileNotFoundException e) {
- throw new TuttiTechnicalException(_("tutti.service.multipost.import.weights.error", weightsFile), e);
- }
-
- Import<CatchWeightsRow> weights = Import.newImport(weightsModel, reader);
-
- Iterator<CatchWeightsRow> iterator = weights.iterator();
- if (iterator.hasNext()) {
- CatchWeightsRow row = iterator.next();
- CatchBatch catchBatch = persistenceService.getCatchBatchFromFishingOperation(operation.getId());
- catchBatch.setFishingOperation(operation);
-
- if (catchBatch.getSpeciesTotalSortedWeight() == null) {
- catchBatch.setSpeciesTotalSortedWeight(row.getTotalSortedWeight());
-
- } else if (row.getTotalSortedWeight() != null) {
- notImportedData.put(CatchBatch.PROPERTY_SPECIES_TOTAL_SORTED_WEIGHT, row.getTotalSortedWeight());
- }
-
- if (catchBatch.getSpeciesTotalInertWeight() == null) {
- catchBatch.setSpeciesTotalInertWeight(row.getInertWeight());
-
- } else if (row.getInertWeight() != null) {
- notImportedData.put(CatchBatch.PROPERTY_SPECIES_TOTAL_INERT_WEIGHT, row.getInertWeight());
- }
-
- if (catchBatch.getSpeciesTotalLivingNotItemizedWeight() == null) {
- catchBatch.setSpeciesTotalLivingNotItemizedWeight(row.getLivingNotItemizedWeight());
-
- } else if (row.getLivingNotItemizedWeight() != null) {
- notImportedData.put(CatchBatch.PROPERTY_SPECIES_TOTAL_LIVING_NOT_ITEMIZED_WEIGHT,
- row.getLivingNotItemizedWeight());
- }
- persistenceService.saveCatchBatch(catchBatch);
- }
-
- notImportedData.put(BATCHES_KEY, notImportedBatches.values());
- return notImportedData;
- }
-
- /**
- * Import benthos batches from a satellite post
- *
- * @param file the file to import the batches from
- * @param operation the operation in which to add the batches
- * @return the list of the benthos which have not been imported, because there were concurrent batches
- */
- public Map<String, Object> importBenthos(File file, FishingOperation operation) {
-
- Map<String, Object> notImportedData = Maps.newHashMap();
- final Map<String, BenthosBatch> notImportedBatches = Maps.newLinkedHashMap();
-
- BatchContainer<BenthosBatch> benthosBatches =
- persistenceService.getRootBenthosBatch(operation.getId(), null);
-
- TuttiDataContext dataContext = context.getDataContext();
- List<Species> speciesList = dataContext.getReferentSpecies();
-
- // map containing the batches by their persistence id
- final Map<String, BenthosBatch> batches = Maps.newHashMap();
-
- File tempDir = Files.createTempDir();
- try {
- ZipUtil.uncompress(file, tempDir);
- } catch (IOException e) {
- throw new TuttiTechnicalException(_("tutti.service.multipost.uncompress.error", file));
- }
-
- //check operation
- CatchWeightsRowModel weightsModel = new CatchWeightsRowModel(csvSeparator);
- checkSameOperation(tempDir, weightsModel, operation);
-
- // Import batches
-
- File benthosFile = new File(tempDir, BENTHOS_FILE);
-
- Reader reader = null;
- try {
- reader = Files.newReader(benthosFile, Charsets.UTF_8);
-
- } catch (FileNotFoundException e) {
- throw new TuttiTechnicalException(_("tutti.service.multipost.import.batches.error", benthosFile), e);
- }
-
- CatchRowModel csvModel = new CatchRowModel(csvSeparator,
- speciesList);
-
- Import<CatchRow> importer = Import.newImport(csvModel, reader);
-
- for (CatchRow row : importer) {
-
- // create batch
- BenthosBatch batch = TuttiBeanFactory.newBenthosBatch();
- batch.setFishingOperation(operation);
-
- Species species = row.getSpecies();
- batch.setSpecies(row.getSpecies());
- batch.setWeight(row.getWeight());
- batch.setNumber(row.getNumber());
- batch.setComment(row.getComment());
- batch.setSpeciesToConfirm(row.isToConfirm());
-
- Pair<Integer, Serializable> valueAndCategoryType = getValueAndCategoryType(row);
- Integer categoryId = valueAndCategoryType.getKey();
- Serializable value = valueAndCategoryType.getValue();
-
- batch.setSampleCategoryId(categoryId);
-// batch.setSampleCategoryType(categoryType);
- batch.setSampleCategoryValue(value);
- batch.setSampleCategoryWeight(row.getCategoryWeight());
-
- // get parent batch
- String parentId = row.getParentId();
- String parentPersistedId = null;
- BenthosBatch parent = null;
- if (StringUtils.isNotEmpty(parentId)) {
- parent = batches.get(parentId);
- parentPersistedId = parent.getId();
- }
-
- BenthosBatch existingBatch = null;
- List<BenthosBatch> batchesToBrowse;
- if (parent == null) {
- batchesToBrowse = benthosBatches.getChildren();
- } else {
- batchesToBrowse = parent.getChildBatchs();
- }
-
- // check if the parent has already a batch with the caracteristic value
- // and if the children batch are categorized with the same caracterstic
- if (batchesToBrowse != null) {
- for (BenthosBatch bb : batchesToBrowse) {
- if (bb.getSpecies().equals(species)
- && (!bb.getSampleCategoryId().equals(batch.getSampleCategoryId())
- || bb.getSampleCategoryValue().equals(value))) {
-
- existingBatch = bb;
- batches.put(row.getId(), bb);
- notImportedBatches.put(row.getId(), batch);
- break;
- }
- }
- }
-
- if (existingBatch == null) {
- batch = persistenceService.createBenthosBatch(batch, parentPersistedId);
- batches.put(row.getId(), batch);
- }
- }
-
- // Import frequencies
-
- File frequencyFile = new File(tempDir, FREQUENCIES_FILE);
- try {
- reader = Files.newReader(frequencyFile, Charsets.UTF_8);
-
- } catch (FileNotFoundException e) {
- throw new TuttiTechnicalException(_("tutti.service.multipost.import.frequencies.error", frequencyFile), e);
- }
-
- CatchFrequencyRowModel frequencyModel = new CatchFrequencyRowModel(csvSeparator,
- dataContext.getCaracteristics());
-
- Import<CatchFrequencyRow> frequencyImporter = Import.newImport(frequencyModel, reader);
-
- ListMultimap<String, BenthosBatchFrequency> frequencyMap = ArrayListMultimap.create();
-
- for (CatchFrequencyRow frequencyRow : frequencyImporter) {
- if (notImportedBatches.get(frequencyRow.getBatchId()) == null) {
- BenthosBatch batch = batches.get(frequencyRow.getBatchId());
- if (batch != null) {
- BenthosBatchFrequency frequency = TuttiBeanFactory.newBenthosBatchFrequency();
- frequency.setLengthStepCaracteristic(frequencyRow.getLengthStepCaracteristic());
- frequency.setLengthStep(frequencyRow.getLengthStep());
- frequency.setNumber(frequencyRow.getNumber());
- frequency.setWeight(frequencyRow.getWeight());
- frequency.setBatch(batch);
- frequencyMap.put(batch.getId(), frequency);
- }
- }
- }
- for (String batchId : frequencyMap.keySet()) {
- List<BenthosBatchFrequency> frequencies = frequencyMap.get(batchId);
- persistenceService.saveBenthosBatchFrequency(batchId, frequencies);
- }
-
- // Import attachments
- Function<AttachmentRow, Integer> getObjetcIdFunction = new Function<AttachmentRow, Integer>() {
- @Override
- public Integer apply(AttachmentRow input) {
- Integer result = null;
- if (notImportedBatches.get(input.getBatchId()) == null) {
- BenthosBatch batch = batches.get(input.getBatchId());
- if (batch != null) {
- result = batch.getIdAsInt();
- }
- }
- return result;
- }
- };
- importAttachments(tempDir, getObjetcIdFunction, AttachementObjectTypeEnum.BATCH);
-
- // import weights
- File weightsFile = new File(tempDir, WEIGHTS_FILE);
- try {
- reader = Files.newReader(weightsFile, Charsets.UTF_8);
-
- } catch (FileNotFoundException e) {
- throw new TuttiTechnicalException(_("tutti.service.multipost.import.weights.error", weightsFile), e);
- }
-
- Import<CatchWeightsRow> weights = Import.newImport(weightsModel, reader);
-
- Iterator<CatchWeightsRow> iterator = weights.iterator();
- if (iterator.hasNext()) {
- CatchWeightsRow row = iterator.next();
- CatchBatch catchBatch = persistenceService.getCatchBatchFromFishingOperation(operation.getId());
- catchBatch.setFishingOperation(operation);
-
- if (catchBatch.getBenthosTotalSortedWeight() == null) {
- catchBatch.setBenthosTotalSortedWeight(row.getTotalSortedWeight());
-
- } else if (row.getTotalSortedWeight() != null) {
- notImportedData.put(CatchBatch.PROPERTY_BENTHOS_TOTAL_SORTED_WEIGHT, row.getTotalSortedWeight());
- }
-
- if (catchBatch.getBenthosTotalInertWeight() == null) {
- catchBatch.setBenthosTotalInertWeight(row.getInertWeight());
-
- } else if (row.getInertWeight() != null) {
- notImportedData.put(CatchBatch.PROPERTY_BENTHOS_TOTAL_INERT_WEIGHT, row.getInertWeight());
- }
-
- if (catchBatch.getBenthosTotalLivingNotItemizedWeight() == null) {
- catchBatch.setBenthosTotalLivingNotItemizedWeight(row.getLivingNotItemizedWeight());
-
- } else if (row.getLivingNotItemizedWeight() != null) {
- notImportedData.put(CatchBatch.PROPERTY_BENTHOS_TOTAL_LIVING_NOT_ITEMIZED_WEIGHT,
- row.getLivingNotItemizedWeight());
- }
-
- persistenceService.saveCatchBatch(catchBatch);
- }
-
- notImportedData.put(BATCHES_KEY, notImportedBatches.values());
- return notImportedData;
- }
-
- /**
- * Import marine litter batches from a satellite post
- *
- * @param file the file to import the batches from
- * @param operation the operation in which to add the batches
- * @return the list of the marine litter which have not been imported, because there were concurrent batches
- */
- public Map<String, Object> importMarineLitter(File file, FishingOperation operation) {
-
- String operationId = operation.getId();
-
- Map<String, Object> notImportedData = Maps.newHashMap();
- final Map<String, MarineLitterBatch> notImportedBatches = Maps.newLinkedHashMap();
-
- BatchContainer<MarineLitterBatch> marineLitterBatches =
- persistenceService.getRootMarineLitterBatch(operationId);
-
- // map containing the batches by their persistence id
- final Map<String, MarineLitterBatch> batches = Maps.newHashMap();
-
- File tempDir = Files.createTempDir();
- try {
- ZipUtil.uncompress(file, tempDir);
- } catch (IOException e) {
- throw new TuttiTechnicalException(_("tutti.service.multipost.uncompress.error", file));
- }
-
- //check operation
- MarineLitterWeightRowModel weightModel = new MarineLitterWeightRowModel(csvSeparator);
- checkSameOperation(tempDir, weightModel, operation);
-
- // Import batches
-
- File marineLitterFile = new File(tempDir, MARINE_LITTER_FILE);
-
- Reader reader = null;
- try {
- reader = Files.newReader(marineLitterFile, Charsets.UTF_8);
-
- } catch (FileNotFoundException e) {
- throw new TuttiTechnicalException(_("tutti.service.multipost.import.batches.error", marineLitterFile), e);
- }
-
- List<CaracteristicQualitativeValue> categoryValues =
- persistenceService.getMarineLitterCategoryCaracteristic().getQualitativeValue();
- List<CaracteristicQualitativeValue> sizeCategoryValues =
- persistenceService.getMarineLitterSizeCategoryCaracteristic().getQualitativeValue();
-
- MarineLitterRowModel csvModel = new MarineLitterRowModel(csvSeparator,
- categoryValues,
- sizeCategoryValues);
-
- Import<MarineLitterRow> importer = Import.newImport(csvModel, reader);
-
- for (MarineLitterRow row : importer) {
-
- // create batch
- MarineLitterBatch batch = TuttiBeanFactory.newMarineLitterBatch();
- batch.setFishingOperation(operation);
-
- batch.setWeight(row.getWeight());
- batch.setNumber(row.getNumber());
- batch.setComment(row.getComment());
- batch.setMarineLitterCategory(row.getCategory());
- batch.setMarineLitterSizeCategory(row.getSizeCategory());
-
- MarineLitterBatch existingBatch = null;
- List<MarineLitterBatch> batchesToBrowse = marineLitterBatches.getChildren();
-
- // check if the parent has already a batch with the caracteristic value
- // and if the children batch are categorized with the same caracterstic
- if (batchesToBrowse != null) {
- for (MarineLitterBatch mlb : batchesToBrowse) {
- if (mlb.getMarineLitterCategory().equals(batch.getMarineLitterCategory())
- && mlb.getMarineLitterSizeCategory().equals(batch.getMarineLitterSizeCategory())) {
-
- existingBatch = mlb;
- batches.put(row.getBatchId(), mlb);
- notImportedBatches.put(row.getBatchId(), batch);
- break;
- }
- }
- }
-
- if (existingBatch == null) {
- batch = persistenceService.createMarineLitterBatch(batch);
- batches.put(row.getBatchId(), batch);
- }
- }
-
- // Import attachments
- Function<AttachmentRow, Integer> getObjetcIdFunction = new Function<AttachmentRow, Integer>() {
- @Override
- public Integer apply(AttachmentRow input) {
- Integer result = null;
- if (notImportedBatches.get(input.getBatchId()) == null) {
- MarineLitterBatch batch = batches.get(input.getBatchId());
- if (batch != null) {
- result = batch.getIdAsInt();
- }
- }
- return result;
- }
- };
- importAttachments(tempDir, getObjetcIdFunction, AttachementObjectTypeEnum.BATCH);
-
- // import weights
- File weightsFile = new File(tempDir, WEIGHTS_FILE);
- try {
- reader = Files.newReader(weightsFile, Charsets.UTF_8);
-
- } catch (FileNotFoundException e) {
- throw new TuttiTechnicalException(_("tutti.service.multipost.import.weights.error", weightsFile), e);
- }
-
- Import<MarineLitterWeightRow> weight = Import.newImport(weightModel, reader);
-
- Iterator<MarineLitterWeightRow> iterator = weight.iterator();
- if (iterator.hasNext()) {
- MarineLitterWeightRow row = iterator.next();
- CatchBatch catchBatch = persistenceService.getCatchBatchFromFishingOperation(operationId);
- catchBatch.setFishingOperation(operation);
-
- if (catchBatch.getMarineLitterTotalWeight() == null) {
- catchBatch.setMarineLitterTotalWeight(row.getTotalWeight());
-
- } else if (row.getTotalWeight() != null) {
- notImportedData.put(CatchBatch.PROPERTY_MARINE_LITTER_TOTAL_WEIGHT, row.getTotalWeight());
- }
-
- persistenceService.saveCatchBatch(catchBatch);
- }
-
- notImportedData.put(BATCHES_KEY, notImportedBatches.values());
- return notImportedData;
- }
-
- /**
- * Import individual observation batches from a satellite post
- *
- * @param file the file to import the batches from
- * @param operation the operation in which to add the batches
- */
- public void importIndividualObservation(File file, FishingOperation operation) {
-
- // map containing the batches by their persistence id
- final Map<String, IndividualObservationBatch> batches = Maps.newLinkedHashMap();
-
- File tempDir = Files.createTempDir();
- try {
- ZipUtil.uncompress(file, tempDir);
- } catch (IOException e) {
- throw new TuttiTechnicalException(_("tutti.service.multipost.uncompress.error", file));
- }
-
- //check operation
- FishingOperationRowModel operationModel = new FishingOperationRowModel(csvSeparator);
- checkSameOperation(tempDir, operationModel, operation);
-
- // Import batches
-
- File observationFile = new File(tempDir, INDIVIDUAL_OBSERVATION_FILE);
-
- Reader reader = null;
- try {
- reader = Files.newReader(observationFile, Charsets.UTF_8);
-
- } catch (FileNotFoundException e) {
- throw new TuttiTechnicalException(_("tutti.service.multipost.import.batches.error", observationFile), e);
- }
-
- TuttiDataContext dataContext = context.getDataContext();
- List<Species> speciesList = dataContext.getReferentSpecies();
- List<Caracteristic> caracteristics = dataContext.getCaracteristicWithProtected();
-
- IndividualObservationRowModel csvModel = new IndividualObservationRowModel(csvSeparator,
- speciesList,
- caracteristics);
- Import<IndividualObservationRow> importer = Import.newImport(csvModel, reader);
-
- for (IndividualObservationRow row : importer) {
-
- // create batch
- IndividualObservationBatch batch = TuttiBeanFactory.newIndividualObservationBatch();
- batch.setFishingOperation(operation);
-
- batch.setSpecies(row.getSpecies());
- batch.setWeight(row.getWeight());
- batch.setSize(row.getSize());
- batch.setLengthStepCaracteristic(row.getLengthStepCaracteristic());
- batch.setSamplingCode(row.getSamplingCode());
- batch.setCalcifiedPieceSamplingCode(row.getCalcifiedPieceSamplingCode());
- batch.setComment(row.getComment());
- batch.setCaracteristics(new CaracteristicMap());
-
- batches.put(row.getBatchId(), batch);
- }
-
- // Import caracteristics
-
- File caracteristicFile = new File(tempDir, CARACTERISTIC_FILE);
- try {
- reader = Files.newReader(caracteristicFile, Charsets.UTF_8);
-
- } catch (FileNotFoundException e) {
- throw new TuttiTechnicalException(_("tutti.service.multipost.import.caracteristics.error", caracteristicFile), e);
- }
-
- CaracteristicRowModel caracteristicModel = new CaracteristicRowModel(csvSeparator,
- caracteristics);
-
- Import<CaracteristicRow> caracteristicImporter = Import.newImport(caracteristicModel, reader);
-
- for (CaracteristicRow caracteristicRow : caracteristicImporter) {
- IndividualObservationBatch batch = batches.get(caracteristicRow.getBatchId());
- if (batch != null) {
- Caracteristic caracteristic = caracteristicRow.getCaracteristic();
- Serializable value = caracteristicRow.getValue();
-
- switch (caracteristic.getCaracteristicType()) {
- case QUALITATIVE:
- value = TuttiEntities.getQualitativeValue(caracteristic, Integer.parseInt(value.toString()));
- break;
-
- case NUMBER:
- value = Float.parseFloat(value.toString());
- break;
- }
- CaracteristicMap map = batch.getCaracteristics();
- map.put(caracteristic, value);
- }
- }
- for (IndividualObservationBatch batch : batches.values()) {
- persistenceService.createIndividualObservationBatch(batch);
- }
-
- // Import attachments
- Function<AttachmentRow, Integer> getObjetcIdFunction = new Function<AttachmentRow, Integer>() {
- @Override
- public Integer apply(AttachmentRow input) {
- Integer result = null;
- IndividualObservationBatch batch = batches.get(input.getBatchId());
- if (batch != null) {
- result = batch.getIdAsInt();
- }
- return result;
- }
- };
- importAttachments(tempDir, getObjetcIdFunction, AttachementObjectTypeEnum.SAMPLE);
- }
-
- /**
- * Import accidental catches batches from a satellite post
- *
- * @param file the file to import the batches from
- * @param operation the operation in which to add the batches
- */
- public void importAccidentalCatches(File file, FishingOperation operation) {
-
- // map containing the batches by their persistence id
- final Map<String, AccidentalBatch> batches = Maps.newLinkedHashMap();
-
- File tempDir = Files.createTempDir();
- try {
- ZipUtil.uncompress(file, tempDir);
- } catch (IOException e) {
- throw new TuttiTechnicalException(_("tutti.service.multipost.uncompress.error", file));
- }
-
- //check operation
- FishingOperationRowModel operationModel = new FishingOperationRowModel(csvSeparator);
- checkSameOperation(tempDir, operationModel, operation);
-
- // Import batches
-
- File accidentalFile = new File(tempDir, ACCIDENTAL_CATCHES_FILE);
-
- Reader reader = null;
- try {
- reader = Files.newReader(accidentalFile, Charsets.UTF_8);
-
- } catch (FileNotFoundException e) {
- throw new TuttiTechnicalException(_("tutti.service.multipost.import.batches.error", accidentalFile), e);
- }
-
- TuttiDataContext dataContext = context.getDataContext();
- List<Species> speciesList = dataContext.getReferentSpecies();
- List<CaracteristicQualitativeValue> genderValues = dataContext.getGenderValues();
- List<Caracteristic> caracteristics = dataContext.getCaracteristicWithProtected();
- List<CaracteristicQualitativeValue> dedOrAliveValues = dataContext.getDeadOrAliveValues();
-
- AccidentalCatchRowModel csvModel = new AccidentalCatchRowModel(csvSeparator,
- speciesList,
- genderValues,
- caracteristics,
- dedOrAliveValues);
- Import<AccidentalCatchRow> importer = Import.newImport(csvModel, reader);
-
- for (AccidentalCatchRow row : importer) {
-
- // create batch
- AccidentalBatch batch = TuttiBeanFactory.newAccidentalBatch();
- batch.setFishingOperation(operation);
-
- batch.setSpecies(row.getSpecies());
- batch.setGender(row.getGender());
- batch.setWeight(row.getWeight());
- batch.setSize(row.getSize());
- batch.setLengthStepCaracteristic(row.getLengthStepCaracteristic());
- batch.setDeadOrAlive(row.getDeadOrAlive());
- batch.setComment(row.getComment());
- batch.setCaracteristics(new CaracteristicMap());
-
- batches.put(row.getBatchId(), batch);
- }
-
- // Import caracteristics
-
- File caracteristicFile = new File(tempDir, CARACTERISTIC_FILE);
- try {
- reader = Files.newReader(caracteristicFile, Charsets.UTF_8);
-
- } catch (FileNotFoundException e) {
- throw new TuttiTechnicalException(_("tutti.service.multipost.import.caracteristics.error", caracteristicFile), e);
- }
-
- CaracteristicRowModel caracteristicModel = new CaracteristicRowModel(csvSeparator,
- caracteristics);
-
- Import<CaracteristicRow> caracteristicImporter = Import.newImport(caracteristicModel, reader);
-
- for (CaracteristicRow caracteristicRow : caracteristicImporter) {
- AccidentalBatch batch = batches.get(caracteristicRow.getBatchId());
- if (batch != null) {
- Caracteristic caracteristic = caracteristicRow.getCaracteristic();
- Serializable value = caracteristicRow.getValue();
-
- switch (caracteristic.getCaracteristicType()) {
- case QUALITATIVE:
- value = TuttiEntities.getQualitativeValue(caracteristic, Integer.parseInt(value.toString()));
- break;
-
- case NUMBER:
- value = Float.parseFloat(value.toString());
- break;
- }
- CaracteristicMap map = batch.getCaracteristics();
- map.put(caracteristic, value);
- }
- }
- for (AccidentalBatch batch : batches.values()) {
- persistenceService.createAccidentalBatch(batch);
- }
-
- // Import attachments
- Function<AttachmentRow, Integer> getObjetcIdFunction = new Function<AttachmentRow, Integer>() {
- @Override
- public Integer apply(AttachmentRow input) {
- Integer result = null;
- AccidentalBatch batch = batches.get(input.getBatchId());
- if (batch != null) {
- result = batch.getIdAsInt();
- }
- return result;
- }
- };
- importAttachments(tempDir, getObjetcIdFunction, AttachementObjectTypeEnum.SAMPLE);
- }
-
- /*
- * Protected methods
- */
-
- protected void exportCatches(File file,
- String batchFile,
- CatchWeightsRow weights,
- List<CatchRow> rows,
- List<CatchFrequencyRow> frequencyRows,
- List<AttachmentRow> attachmentRows) {
- CatchRowModel csvModel = new CatchRowModel(csvSeparator);
- CatchFrequencyRowModel csvFrequencyModel = new CatchFrequencyRowModel(csvSeparator);
- CatchWeightsRowModel catchWeightsModel = new CatchWeightsRowModel(csvSeparator);
-
- BufferedWriter writer = null;
- File directory = Files.createTempDir();
- List<File> file2zip = Lists.newArrayList();
-
- File weightsFile = new File(directory, WEIGHTS_FILE);
- file2zip.add(weightsFile);
- try {
- writer = Files.newWriter(weightsFile, Charsets.UTF_8);
- Export export = Export.newExport(catchWeightsModel, Lists.newArrayList(weights));
- export.write(writer);
- writer.close();
- } catch (Exception e) {
- throw new TuttiTechnicalException(_("tutti.service.multipost.export.weights.error", weightsFile), e);
- } finally {
- IOUtils.closeQuietly(writer);
- }
-
- File speciesFile = new File(directory, batchFile);
- file2zip.add(speciesFile);
- try {
- writer = Files.newWriter(speciesFile, Charsets.UTF_8);
- Export export = Export.newExport(csvModel, rows);
- export.write(writer);
- writer.close();
- } catch (Exception e) {
- throw new TuttiTechnicalException(_("tutti.service.multipost.export.batches.error", file), e);
- } finally {
- IOUtils.closeQuietly(writer);
- }
-
- File frequencyFile = new File(directory, FREQUENCIES_FILE);
- file2zip.add(frequencyFile);
- try {
- writer = Files.newWriter(frequencyFile, Charsets.UTF_8);
- Export export = Export.newExport(csvFrequencyModel, frequencyRows);
- export.write(writer);
- writer.close();
-
- } catch (Exception e) {
- throw new TuttiTechnicalException(_("tutti.service.multipost.export.frequencies.error", frequencyFile), e);
- } finally {
- IOUtils.closeQuietly(writer);
- }
-
- exportAttachments(directory, file2zip, attachmentRows);
-
- try {
- ZipUtil.compressFiles(file, directory, file2zip);
-
- } catch (IOException e) {
- throw new TuttiTechnicalException(_("tutti.service.multipost.export.error", file), e);
-
- } finally {
- TuttiIOUtil.deleteDirectory(directory, _("tutti.service.multipost.export.deleteTempDirectory.error", file));
- }
- }
-
- protected void createSpeciesRow(SpeciesBatch batch,
- String parentId,
- List<CatchRow> rows,
- List<CatchFrequencyRow> frequencyRows,
- List<AttachmentRow> attachmentRows) {
- CatchRow row = new CatchRow();
-
- String id = UUID.randomUUID().toString();
- row.setId(id);
- row.setParentId(parentId);
- row.setSpecies(batch.getSpecies());
-
- row.setCategoryId(batch.getSampleCategoryId());
- row.setCategoryValue(batch.getSampleCategoryValue());
-
-// switch (batch.getSampleCategoryType()) {
-// case sortedUnsorted:
-// row.setSortedUnsortedSampleCategory(batch.getSampleCategoryValue());
-// break;
-// case sex:
-// row.setSexSampleCategory(batch.getSampleCategoryValue());
-// break;
-// case size:
-// row.setSizeSampleCategory(batch.getSampleCategoryValue());
-// break;
-// case maturity:
-// row.setMaturitySampleCategory(batch.getSampleCategoryValue());
-// break;
-// case age:
-// row.setAgeSampleCategory(batch.getSampleCategoryValue());
-// break;
-// }
- row.setCategoryWeight(batch.getSampleCategoryWeight());
- row.setWeight(batch.getWeight());
- row.setNumber(batch.getNumber());
- row.setComment(batch.getComment());
- row.setToConfirm(batch.isSpeciesToConfirm());
-
- rows.add(row);
-
- addFrequencies(id, batch.getId(), frequencyRows);
- addAttachments(id, batch.getIdAsInt(), AttachementObjectTypeEnum.BATCH, attachmentRows);
-
- for (SpeciesBatch child : batch.getChildBatchs()) {
- createSpeciesRow(child, id, rows, frequencyRows, attachmentRows);
- }
- }
-
- protected void createBenthosRow(BenthosBatch batch,
- String parentId,
- List<CatchRow> rows,
- List<CatchFrequencyRow> frequencyRows,
- List<AttachmentRow> attachmentRows) {
- CatchRow row = new CatchRow();
-
- String id = UUID.randomUUID().toString();
- row.setId(id);
- row.setParentId(parentId);
- row.setSpecies(batch.getSpecies());
-
- row.setCategoryId(batch.getSampleCategoryId());
- row.setCategoryValue(batch.getSampleCategoryValue());
-
-// switch (batch.getSampleCategoryType()) {
-// case sortedUnsorted:
-// row.setSortedUnsortedSampleCategory(batch.getSampleCategoryValue());
-// break;
-// case sex:
-// row.setSexSampleCategory(batch.getSampleCategoryValue());
-// break;
-// case size:
-// row.setSizeSampleCategory(batch.getSampleCategoryValue());
-// break;
-// case maturity:
-// row.setMaturitySampleCategory(batch.getSampleCategoryValue());
-// break;
-// case age:
-// row.setAgeSampleCategory(batch.getSampleCategoryValue());
-// break;
-// }
- row.setCategoryWeight(batch.getSampleCategoryWeight());
- row.setWeight(batch.getWeight());
- row.setNumber(batch.getNumber());
- row.setComment(batch.getComment());
- row.setToConfirm(batch.isSpeciesToConfirm());
-
- rows.add(row);
-
- addFrequencies(id, batch.getId(), frequencyRows);
- addAttachments(id, batch.getIdAsInt(), AttachementObjectTypeEnum.BATCH, attachmentRows);
-
- for (BenthosBatch child : batch.getChildBatchs()) {
- createBenthosRow(child, id, rows, frequencyRows, attachmentRows);
- }
- }
-
- protected void exportOperation(AbstractFishingOperationRow afoRow, FishingOperation operation) {
- afoRow.setStationNumber(operation.getStationNumber());
- afoRow.setOperationNumber(operation.getFishingOperationNumber());
- afoRow.setMultirigAggregation(operation.getMultirigAggregation());
- afoRow.setDate(operation.getGearShootingStartDate());
- }
-
- protected void exportAttachments(File directory, List<File> file2zip, List<AttachmentRow> attachmentRows) {
-
- AttachmentRowModel csvAttachmentModel = new AttachmentRowModel(csvSeparator);
-
- File attachmentDirectory = new File(directory, ATTACHMENTS_DIRECTORY);
- attachmentDirectory.mkdir();
- file2zip.add(attachmentDirectory);
- for (AttachmentRow attachmentRow : attachmentRows) {
- File attachmentFile = attachmentRow.getFile();
- File destFile = new File(attachmentDirectory, attachmentFile.getName());
- TuttiIOUtil.copyFile(attachmentFile,
- destFile,
- _("tutti.service.multipost.attachment.copy.error", attachmentFile));
- file2zip.add(destFile);
- }
-
- File attachmentFile = new File(directory, ATTACHMENTS_FILE);
- file2zip.add(attachmentFile);
- Writer writer = null;
- try {
- writer = Files.newWriter(attachmentFile, Charsets.UTF_8);
- Export export = Export.newExport(csvAttachmentModel, attachmentRows);
- export.write(writer);
- writer.close();
-
- } catch (Exception e) {
- throw new TuttiTechnicalException(_("tutti.service.multipost.export.attachments.error", attachmentFile), e);
- } finally {
- IOUtils.closeQuietly(writer);
- }
- }
-
- protected void addFrequencies(String rowId,
- String batchId,
- List<CatchFrequencyRow> frequencyRows) {
- List<SpeciesBatchFrequency> frequencies =
- persistenceService.getAllSpeciesBatchFrequency(batchId);
- for (SpeciesBatchFrequency frequency : frequencies) {
- CatchFrequencyRow frequencyRow = new CatchFrequencyRow();
- frequencyRow.setBatchId(rowId);
- frequencyRow.setLengthStepCaracteristic(frequency.getLengthStepCaracteristic());
- frequencyRow.setLengthStep(frequency.getLengthStep());
- frequencyRow.setNumber(frequency.getNumber());
- frequencyRow.setWeight(frequency.getWeight());
- frequencyRows.add(frequencyRow);
- }
- }
-
- protected void addAttachments(String batchId,
- int objectId,
- AttachementObjectTypeEnum objectType,
- List<AttachmentRow> attachmentRows) {
- List<Attachment> attachments =
- persistenceService.getAllAttachments(objectType, objectId);
- for (Attachment attachment : attachments) {
- AttachmentRow attachmentRow = new AttachmentRow();
- attachmentRow.setBatchId(batchId);
- attachmentRow.setName(attachment.getName());
- attachmentRow.setComment(attachment.getComment());
- attachmentRow.setFile(persistenceService.getAttachmentFile(attachment.getId()));
- attachmentRows.add(attachmentRow);
- }
- }
-
- protected Pair<Integer, Serializable> getValueAndCategoryType(CatchRow row) {
-
-// String sortedUnsortedValue = (String) row.getSortedUnsortedSampleCategory();
-// String sizeValue = (String) row.getSizeSampleCategory();
-// String sexValue = (String) row.getSexSampleCategory();
-// String maturityValue = (String) row.getMaturitySampleCategory();
-// String ageValue = (String) row.getAgeSampleCategory();
-
- Serializable value = row.getCategoryValue();
- Integer categoryId = row.getCategoryId();
-// SampleCategoryEnum categoryType = null;
-//
-// if (StringUtils.isNotEmpty(sortedUnsortedValue)) {
-// Integer id = Integer.parseInt(sortedUnsortedValue);
-// Caracteristic caracteristic = persistenceService.getSortedUnsortedCaracteristic();
-// value = TuttiEntities.getQualitativeValue(caracteristic, id);
-// categoryType = SampleCategoryEnum.sortedUnsorted;
-//
-// } else if (StringUtils.isNotEmpty(sizeValue)) {
-// Integer id = Integer.parseInt(sizeValue);
-// Caracteristic caracteristic = persistenceService.getSizeCategoryCaracteristic();
-// value = TuttiEntities.getQualitativeValue(caracteristic, id);
-// categoryType = SampleCategoryEnum.size;
-//
-// } else if (StringUtils.isNotEmpty(sexValue)) {
-// Integer id = Integer.parseInt(sexValue);
-// Caracteristic caracteristic = persistenceService.getSexCaracteristic();
-// value = TuttiEntities.getQualitativeValue(caracteristic, id);
-// categoryType = SampleCategoryEnum.sex;
-//
-// } else if (StringUtils.isNotEmpty(maturityValue)) {
-// Integer id = Integer.parseInt(maturityValue);
-// Caracteristic caracteristic = persistenceService.getMaturityCaracteristic();
-// value = TuttiEntities.getQualitativeValue(caracteristic, id);
-// categoryType = SampleCategoryEnum.maturity;
-//
-// } else if (StringUtils.isNotEmpty(ageValue)) {
-// categoryType = SampleCategoryEnum.age;
-// value = Float.parseFloat(ageValue);
-// }
-
-// return new Object[]{categoryType, value};
- return Pair.of(categoryId, value);
- }
-
- protected void importAttachments(File directory,
- Function<AttachmentRow, Integer> getObjetcIdFunction,
- AttachementObjectTypeEnum objectType) {
- File attachmentFile = new File(directory, ATTACHMENTS_FILE);
- File attachmentDirectory = new File(directory, ATTACHMENTS_DIRECTORY);
- Reader reader;
-
- try {
- reader = Files.newReader(attachmentFile, Charsets.UTF_8);
-
- } catch (FileNotFoundException e) {
- throw new TuttiTechnicalException(_("tutti.service.multipost.import.attachments.error", attachmentFile), e);
- }
-
- AttachmentRowModel attachmentModel = new AttachmentRowModel(csvSeparator, attachmentDirectory);
-
- Import<AttachmentRow> attachmentImporter = Import.newImport(attachmentModel, reader);
-
- for (AttachmentRow row : attachmentImporter) {
- Integer objectId = getObjetcIdFunction.apply(row);
- if (objectId != null) {
- Attachment attachment = TuttiBeanFactory.newAttachment();
- attachment.setName(row.getName());
- attachment.setComment(row.getComment());
- attachment.setObjectType(objectType);
-
- attachment.setObjectId(objectId);
-
- persistenceService.createAttachment(attachment, row.getFile());
- }
- }
- }
-
- protected void checkSameOperation(File directory,
- AbstractFishingOperationRowModel fishingOperationRowModel,
- FishingOperation operation) {
- File operationFile = new File(directory, WEIGHTS_FILE);
- Reader reader;
-
- try {
- reader = Files.newReader(operationFile, Charsets.UTF_8);
-
- } catch (FileNotFoundException e) {
- throw new TuttiTechnicalException(_("tutti.service.multipost.import.operation.error", operationFile), e);
- }
-
- Import<AbstractFishingOperationRow> fishingOperationImporter = Import.newImport(fishingOperationRowModel, reader);
-
- Iterator<AbstractFishingOperationRow> iterator = fishingOperationImporter.iterator();
- if (iterator.hasNext()) {
- AbstractFishingOperationRow row = iterator.next();
- if (ObjectUtils.notEqual(row.getStationNumber(), operation.getStationNumber())
- || ObjectUtils.notEqual(row.getOperationNumber(), operation.getFishingOperationNumber())
- || ObjectUtils.notEqual(row.getMultirigAggregation(), operation.getMultirigAggregation())
- || ObjectUtils.notEqual(row.getDate(), operation.getGearShootingStartDate())) {
-
- throw new TuttiBusinessException(_("tutti.service.multipost.import.wrongOperation.error",
- decoratorService.getDecoratorByType(FishingOperation.class)
- .toString(operation)));
- }
- }
- }
-}
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/TuttiMultiPostImportService.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/TuttiMultiPostImportService.java 2013-09-21 14:45:35 UTC (rev 1197)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/TuttiMultiPostImportService.java 2013-09-21 14:47:57 UTC (rev 1198)
@@ -932,8 +932,8 @@
batch.setWeight(row.getWeight());
batch.setSize(row.getSize());
batch.setLengthStepCaracteristic(row.getLengthStepCaracteristic());
- batch.setSamplingCode(row.getSamplingCode());
- batch.setCalcifiedPieceSamplingCode(row.getCalcifiedPieceSamplingCode());
+// batch.setSamplingCode(row.getSamplingCode());
+// batch.setCalcifiedPieceSamplingCode(row.getCalcifiedPieceSamplingCode());
batch.setComment(row.getComment());
batch.setCaracteristics(new CaracteristicMap());
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/IndividualObservationExportModel.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/IndividualObservationExportModel.java 2013-09-21 14:45:35 UTC (rev 1197)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/IndividualObservationExportModel.java 2013-09-21 14:47:57 UTC (rev 1198)
@@ -32,7 +32,6 @@
import fr.ifremer.tutti.persistence.entities.referential.Caracteristic;
import fr.ifremer.tutti.persistence.entities.referential.Gear;
import fr.ifremer.tutti.persistence.entities.referential.Species;
-import fr.ifremer.tutti.persistence.entities.referential.Vessel;
import fr.ifremer.tutti.service.PersistenceService;
import fr.ifremer.tutti.service.TuttiCsvUtil;
import org.apache.commons.collections.CollectionUtils;
@@ -50,24 +49,24 @@
*/
public class IndividualObservationExportModel extends TuttiCsvUtil.AbstractTuttiExportModel<IndividualObservationExportRow> {
- protected final Caracteristic caracteristicSample;
+// protected final Caracteristic caracteristicSample;
+//
+// protected final Caracteristic caracteristicOtolithe;
- protected final Caracteristic caracteristicOtolithe;
-
protected final Caracteristic caracteristicWeight;
protected final Caracteristic caracteristicPmfmId;
public IndividualObservationExportModel(
char separator,
- Caracteristic caracteristicSample,
- Caracteristic caracteristicOtolithe,
+// Caracteristic caracteristicSample,
+// Caracteristic caracteristicOtolithe,
Caracteristic caracteristicWeight,
Caracteristic caracteristicPmfmId) {
super(separator);
- this.caracteristicSample = caracteristicSample;
- this.caracteristicOtolithe = caracteristicOtolithe;
+// this.caracteristicSample = caracteristicSample;
+// this.caracteristicOtolithe = caracteristicOtolithe;
this.caracteristicWeight = caracteristicWeight;
this.caracteristicPmfmId = caracteristicPmfmId;
@@ -99,24 +98,24 @@
if (CollectionUtils.isNotEmpty(observations)) {
for (IndividualObservationBatch child : observations) {
- addCaracteristicRow(rows,
- cruise,
- operation,
- child,
- caracteristicSample,
- child.getSamplingCode());
+// addCaracteristicRow(rows,
+// cruise,
+// operation,
+// child,
+// caracteristicSample,
+// child.getSamplingCode());
+//
+// addCaracteristicRow(rows,
+// cruise,
+// operation,
+// child,
+// caracteristicOtolithe,
+// child.getCalcifiedPieceSamplingCode());
addCaracteristicRow(rows,
cruise,
operation,
child,
- caracteristicOtolithe,
- child.getCalcifiedPieceSamplingCode());
-
- addCaracteristicRow(rows,
- cruise,
- operation,
- child,
caracteristicWeight,
child.getWeight());
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/TuttiExportService.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/TuttiExportService.java 2013-09-21 14:45:35 UTC (rev 1197)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/TuttiExportService.java 2013-09-21 14:47:57 UTC (rev 1198)
@@ -103,10 +103,10 @@
protected SampleCategoryModel sampleCategoryModel;
- protected Caracteristic sampleIdCaracteristic;
+// protected Caracteristic sampleIdCaracteristic;
+//
+// protected Caracteristic otolitheIdCaracteristic;
- protected Caracteristic otolitheIdCaracteristic;
-
protected Caracteristic deadOrAliveCaracteristic;
protected Caracteristic genderCaracteristic;
@@ -128,8 +128,8 @@
verticalOpeningCaracteristic = persistenceService.getVerticalOpeningCaracteristic();
horizontalOpeningWingCaracteristic = persistenceService.getHorizontalOpeningWingCaracteristic();
horizontalOpeningDoorCaracteristic = persistenceService.getHorizontalOpeningDoorCaracteristic();
- sampleIdCaracteristic = persistenceService.getSampleIdCaracteristic();
- otolitheIdCaracteristic = persistenceService.getOtolitheIdCaracteristic();
+// sampleIdCaracteristic = persistenceService.getSampleIdCaracteristic();
+// otolitheIdCaracteristic = persistenceService.getOtolitheIdCaracteristic();
weightMeasuredCaracteristic = persistenceService.getWeightMeasuredCaracteristic();
pmfmIdCaracteristic = persistenceService.getPmfmIdCaracteristic();
deadOrAliveCaracteristic = persistenceService.getDeadOrAliveCaracteristic();
@@ -233,8 +233,8 @@
verticalOpeningCaracteristic,
horizontalOpeningWingCaracteristic,
horizontalOpeningDoorCaracteristic,
- sampleIdCaracteristic,
- otolitheIdCaracteristic,
+// sampleIdCaracteristic,
+// otolitheIdCaracteristic,
weightMeasuredCaracteristic,
deadOrAliveCaracteristic,
genderCaracteristic,
@@ -671,8 +671,8 @@
Caracteristic verticalOpeningCaracteristic,
Caracteristic horizontalOpeningWingCaracteristic,
Caracteristic horizontalOpeningDoorCaracteristic,
- Caracteristic sampleIdCaracteristic,
- Caracteristic otolitheIdCaracteristic,
+// Caracteristic sampleIdCaracteristic,
+// Caracteristic otolitheIdCaracteristic,
Caracteristic weightMeasuredCaracteristic,
Caracteristic deadOrAliveCaracteristic,
Caracteristic genderCaracteristic,
@@ -743,8 +743,8 @@
pmfmIdCaracteristic);
individualObservationModel = new IndividualObservationExportModel(
csvSeparator,
- sampleIdCaracteristic,
- otolitheIdCaracteristic,
+// sampleIdCaracteristic,
+// otolitheIdCaracteristic,
weightMeasuredCaracteristic,
pmfmIdCaracteristic);
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-09-21 14:45:35 UTC (rev 1197)
+++ trunk/tutti-ui-swing/src/main/filtered-resources/tutti-help-en.properties 2013-09-21 14:47:57 UTC (rev 1198)
@@ -1,5 +1,5 @@
#Generated by org.nuiton.jaxx.plugin.GenerateHelpIdsMojo
-#Fri Sep 20 11:03:34 CEST 2013
+#Sat Sep 21 15:16:31 CEST 2013
tutti.config.help=config.html
tutti.createAccidentalBatch.action.cancel.help=editFishingOperation.html\#captureCapturesAccidentellesActions
tutti.createAccidentalBatch.action.saveAndClose.help=editFishingOperation.html\#captureCapturesAccidentellesActions
@@ -26,6 +26,8 @@
tutti.createIndividualObservationBatch.action.addSpecies.help=editFishingOperation.html\#captureObservationsIndividuellesActions
tutti.createIndividualObservationBatch.action.cancel.help=editFishingOperation.html\#captureObservationsIndividuellesActions
tutti.createIndividualObservationBatch.action.save.help=editFishingOperation.html\#captureObservationsIndividuellesActions
+tutti.createIndividualObservationBatch.action.saveAndClose.help=
+tutti.createIndividualObservationBatch.action.saveAndContinue.help=
tutti.createIndividualObservationBatch.field.individualObservationLengthStepCaracteristic.help=editFishingOperation.html\#captureObservationsIndividuellesFields
tutti.createIndividualObservationBatch.field.individualObservationSize.help=editFishingOperation.html\#captureObservationsIndividuellesFields
tutti.createIndividualObservationBatch.field.individualObservationSpecies.help=editFishingOperation.html\#captureObservationsIndividuellesFields
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-09-21 14:45:35 UTC (rev 1197)
+++ trunk/tutti-ui-swing/src/main/filtered-resources/tutti-help-fr.properties 2013-09-21 14:47:57 UTC (rev 1198)
@@ -1,5 +1,5 @@
#Generated by org.nuiton.jaxx.plugin.GenerateHelpIdsMojo
-#Fri Sep 20 11:03:34 CEST 2013
+#Sat Sep 21 15:16:31 CEST 2013
tutti.config.help=config.html
tutti.createAccidentalBatch.action.cancel.help=editFishingOperation.html\#captureCapturesAccidentellesActions
tutti.createAccidentalBatch.action.saveAndClose.help=editFishingOperation.html\#captureCapturesAccidentellesActions
@@ -25,7 +25,8 @@
tutti.createBenthosBatch.help=editFishingOperation.html\#captureBenthos
tutti.createIndividualObservationBatch.action.addSpecies.help=editFishingOperation.html\#captureObservationsIndividuellesActions
tutti.createIndividualObservationBatch.action.cancel.help=editFishingOperation.html\#captureObservationsIndividuellesActions
-tutti.createIndividualObservationBatch.action.save.help=editFishingOperation.html\#captureObservationsIndividuellesActions
+tutti.createIndividualObservationBatch.action.saveAndClose.help=editFishingOperation.html\#captureObservationsIndividuellesActions
+tutti.createIndividualObservationBatch.action.saveAndContinue.help=editFishingOperation.html\#captureObservationsIndividuellesActions
tutti.createIndividualObservationBatch.field.individualObservationLengthStepCaracteristic.help=editFishingOperation.html\#captureObservationsIndividuellesFields
tutti.createIndividualObservationBatch.field.individualObservationSize.help=editFishingOperation.html\#captureObservationsIndividuellesFields
tutti.createIndividualObservationBatch.field.individualObservationSpecies.help=editFishingOperation.html\#captureObservationsIndividuellesFields
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-09-21 14:45:35 UTC (rev 1197)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchUIHandler.java 2013-09-21 14:47:57 UTC (rev 1198)
@@ -25,6 +25,7 @@
*/
import com.google.common.collect.Lists;
+import com.google.common.collect.Sets;
import fr.ifremer.tutti.persistence.entities.TuttiEntities;
import fr.ifremer.tutti.persistence.entities.data.AccidentalBatch;
import fr.ifremer.tutti.persistence.entities.data.Attachment;
@@ -366,7 +367,7 @@
{ // Other caracteristics column
addColumnToModel(columnModel,
- CaracteristicMapCellComponent.newEditor(ui),
+ CaracteristicMapCellComponent.newEditor(ui, Sets.<Caracteristic>newHashSet()),
CaracteristicMapCellComponent.newRender(getContext()),
IndividualObservationBatchTableModel.OTHER_CARACTERISTICS);
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/ImportMultiPostAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/ImportMultiPostAction.java 2013-09-21 14:45:35 UTC (rev 1197)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/ImportMultiPostAction.java 2013-09-21 14:47:57 UTC (rev 1198)
@@ -27,7 +27,7 @@
import fr.ifremer.tutti.persistence.entities.data.BenthosBatch;
import fr.ifremer.tutti.persistence.entities.data.CatchBatch;
import fr.ifremer.tutti.persistence.entities.data.FishingOperation;
-import fr.ifremer.tutti.service.catches.multipost.TuttiMultiPostImportExportService;
+import fr.ifremer.tutti.service.catches.multipost.TuttiMultiPostImportService;
import fr.ifremer.tutti.ui.swing.content.operation.catches.AbstractImportMultiPostAction;
import fr.ifremer.tutti.ui.swing.content.operation.catches.MultiPostImportLogDialog;
@@ -89,7 +89,7 @@
MultiPostImportLogDialog dialog = new MultiPostImportLogDialog((Dialog) getContext().getActionUI());
Collection<BenthosBatch> notImportedBenthosBatches =
- (Collection<BenthosBatch>) notImportedData.get(TuttiMultiPostImportExportService.BATCHES_KEY);
+ (Collection<BenthosBatch>) notImportedData.get(TuttiMultiPostImportService.BATCHES_KEY);
StringBuffer stringBuffer = new StringBuffer();
Float totalSortedWeight = (Float) notImportedData.get(CatchBatch.PROPERTY_BENTHOS_TOTAL_SORTED_WEIGHT);
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchRowModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchRowModel.java 2013-09-21 14:45:35 UTC (rev 1197)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchRowModel.java 2013-09-21 14:47:57 UTC (rev 1198)
@@ -37,6 +37,7 @@
import org.nuiton.util.beans.Binder;
import org.nuiton.util.beans.BinderFactory;
+import java.io.Serializable;
import java.util.Collection;
import java.util.List;
@@ -49,6 +50,8 @@
private static final long serialVersionUID = 1L;
+ public static final String PROPERTY_DEFAULT_CARACTERISTICS = "defaultCaracteristics";
+
/**
* Delegate edit object.
*
@@ -64,6 +67,13 @@
*/
protected final List<Attachment> attachment = Lists.newArrayList();
+ /**
+ * Map of default caracteristics (used if filled in the protocol.
+ *
+ * @since 2.5
+ */
+ protected CaracteristicMap defaultCaracteristics = new CaracteristicMap();
+
protected static final Binder<IndividualObservationBatch, IndividualObservationBatchRowModel> fromBeanBinder =
BinderFactory.newBinder(IndividualObservationBatch.class,
IndividualObservationBatchRowModel.class);
@@ -76,15 +86,41 @@
super(IndividualObservationBatch.class, fromBeanBinder, toBeanBinder);
}
- public IndividualObservationBatchRowModel(IndividualObservationBatch aBatch) {
+ public IndividualObservationBatchRowModel(IndividualObservationBatch aBatch,
+ Collection<Caracteristic> defaultCaracteristicsSet) {
this();
fromBean(aBatch);
Float weightInG = getWeight();
if (weightInG != null) {
setWeight(weightInG * 1000.0f);
}
+ if (getCaracteristics() == null) {
+ setCaracteristics(new CaracteristicMap());
+ }
+
+ // move default caracteristics from caracteristic map
+ CaracteristicMap caracteristics = getCaracteristics();
+ for (Caracteristic caracteristic : defaultCaracteristicsSet) {
+ if (caracteristics.containsKey(caracteristic)) {
+ Serializable value = caracteristics.remove(caracteristic);
+ defaultCaracteristics.put(caracteristic, value);
+ }
+ }
}
+ public CaracteristicMap getDefaultCaracteristics() {
+ return defaultCaracteristics;
+ }
+
+ public void setDefaultCaracteristics(CaracteristicMap defaultCaracteristics) {
+ this.defaultCaracteristics = defaultCaracteristics;
+ firePropertyChange(PROPERTY_DEFAULT_CARACTERISTICS, null, defaultCaracteristics);
+ }
+
+ //------------------------------------------------------------------------//
+ //-- AbstractTuttiBeanUIModel --//
+ //------------------------------------------------------------------------//
+
@Override
protected IndividualObservationBatch newEntity() {
return TuttiBeanFactory.newIndividualObservationBatch();
@@ -164,31 +200,31 @@
firePropertyChange(PROPERTY_CARACTERISTICS, oldValue, caracteristics);
}
- @Override
- public String getSamplingCode() {
- return editObject.getSamplingCode();
- }
+// @Override
+// public String getSamplingCode() {
+// return editObject.getSamplingCode();
+// }
+//
+// @Override
+// public void setSamplingCode(String samplingCode) {
+// Object oldValue = getSamplingCode();
+// editObject.setSamplingCode(samplingCode);
+// firePropertyChange(PROPERTY_SAMPLING_CODE, oldValue, samplingCode);
+// }
+//
+// @Override
+// public String getCalcifiedPieceSamplingCode() {
+// return editObject.getCalcifiedPieceSamplingCode();
+// }
+//
+// @Override
+// public void setCalcifiedPieceSamplingCode(String calcifiedPieceSamplingCode) {
+// Object oldValue = getCalcifiedPieceSamplingCode();
+// editObject.setCalcifiedPieceSamplingCode(calcifiedPieceSamplingCode);
+// firePropertyChange(PROPERTY_CALCIFIED_PIECE_SAMPLING_CODE, oldValue, calcifiedPieceSamplingCode);
+// }
@Override
- public void setSamplingCode(String samplingCode) {
- Object oldValue = getSamplingCode();
- editObject.setSamplingCode(samplingCode);
- firePropertyChange(PROPERTY_SAMPLING_CODE, oldValue, samplingCode);
- }
-
- @Override
- public String getCalcifiedPieceSamplingCode() {
- return editObject.getCalcifiedPieceSamplingCode();
- }
-
- @Override
- public void setCalcifiedPieceSamplingCode(String calcifiedPieceSamplingCode) {
- Object oldValue = getCalcifiedPieceSamplingCode();
- editObject.setCalcifiedPieceSamplingCode(calcifiedPieceSamplingCode);
- firePropertyChange(PROPERTY_CALCIFIED_PIECE_SAMPLING_CODE, oldValue, calcifiedPieceSamplingCode);
- }
-
- @Override
public String getComment() {
return editObject.getComment();
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchTableModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchTableModel.java 2013-09-21 14:45:35 UTC (rev 1197)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchTableModel.java 2013-09-21 14:47:57 UTC (rev 1198)
@@ -61,16 +61,16 @@
n_("tutti.editIndividualObservationBatch.table.header.otherCaracteristics"),
n_("tutti.editIndividualObservationBatch.table.header.otherCaracteristics.tip"));
- public static final ColumnIdentifier<IndividualObservationBatchRowModel> CALCIFIED_PIECE_SAMPLING_CODE = ColumnIdentifier.newId(
- IndividualObservationBatchRowModel.PROPERTY_CALCIFIED_PIECE_SAMPLING_CODE,
- n_("tutti.editIndividualObservationBatch.table.header.calcifiedPieceSamplingCode"),
- n_("tutti.editIndividualObservationBatch.table.header.calcifiedPieceSamplingCode.tip"));
+// public static final ColumnIdentifier<IndividualObservationBatchRowModel> CALCIFIED_PIECE_SAMPLING_CODE = ColumnIdentifier.newId(
+// IndividualObservationBatchRowModel.PROPERTY_CALCIFIED_PIECE_SAMPLING_CODE,
+// n_("tutti.editIndividualObservationBatch.table.header.calcifiedPieceSamplingCode"),
+// n_("tutti.editIndividualObservationBatch.table.header.calcifiedPieceSamplingCode.tip"));
+//
+// public static final ColumnIdentifier<IndividualObservationBatchRowModel> SAMPLING_CODE = ColumnIdentifier.newId(
+// IndividualObservationBatchRowModel.PROPERTY_SAMPLING_CODE,
+// n_("tutti.editIndividualObservationBatch.table.header.samplingCode"),
+// n_("tutti.editIndividualObservationBatch.table.header.samplingCode.tip"));
- public static final ColumnIdentifier<IndividualObservationBatchRowModel> SAMPLING_CODE = ColumnIdentifier.newId(
- IndividualObservationBatchRowModel.PROPERTY_SAMPLING_CODE,
- n_("tutti.editIndividualObservationBatch.table.header.samplingCode"),
- n_("tutti.editIndividualObservationBatch.table.header.samplingCode.tip"));
-
public static final ColumnIdentifier<IndividualObservationBatchRowModel> COMMENT = ColumnIdentifier.newId(
IndividualObservationBatchRowModel.PROPERTY_COMMENT,
n_("tutti.editIndividualObservationBatch.table.header.comment"),
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-09-21 14:45:35 UTC (rev 1197)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUIHandler.java 2013-09-21 14:47:57 UTC (rev 1198)
@@ -23,12 +23,14 @@
*/
import com.google.common.collect.Lists;
-import fr.ifremer.tutti.PropagatePropertyChangeListener;
+import com.google.common.collect.Sets;
+import fr.ifremer.tutti.persistence.entities.CaracteristicMap;
import fr.ifremer.tutti.persistence.entities.TuttiEntities;
import fr.ifremer.tutti.persistence.entities.data.Attachment;
import fr.ifremer.tutti.persistence.entities.data.FishingOperation;
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.service.DecoratorService;
import fr.ifremer.tutti.service.ValidationService;
@@ -49,6 +51,7 @@
import fr.ifremer.tutti.ui.swing.util.comment.CommentCellEditor;
import fr.ifremer.tutti.ui.swing.util.comment.CommentCellRenderer;
import fr.ifremer.tutti.ui.swing.util.table.AbstractSelectTableAction;
+import fr.ifremer.tutti.ui.swing.util.table.CaracteristicColumnIdentifier;
import jaxx.runtime.SwingUtil;
import jaxx.runtime.validator.swing.SwingValidator;
import org.apache.commons.collections.CollectionUtils;
@@ -66,8 +69,12 @@
import javax.swing.JComponent;
import java.awt.Color;
import java.awt.Component;
+import java.io.Serializable;
import java.util.Collection;
+import java.util.Collections;
import java.util.List;
+import java.util.Map;
+import java.util.Set;
/**
* @author kmorin <kmorin(a)codelutin.com>
@@ -89,8 +96,9 @@
IndividualObservationBatchRowModel.PROPERTY_SIZE,
IndividualObservationBatchRowModel.PROPERTY_LENGTH_STEP_CARACTERISTIC,
IndividualObservationBatchRowModel.PROPERTY_CARACTERISTICS,
- IndividualObservationBatchRowModel.PROPERTY_CALCIFIED_PIECE_SAMPLING_CODE,
- IndividualObservationBatchRowModel.PROPERTY_SAMPLING_CODE,
+ IndividualObservationBatchRowModel.PROPERTY_DEFAULT_CARACTERISTICS,
+// IndividualObservationBatchRowModel.PROPERTY_CALCIFIED_PIECE_SAMPLING_CODE,
+// IndividualObservationBatchRowModel.PROPERTY_SAMPLING_CODE,
IndividualObservationBatchRowModel.PROPERTY_COMMENT,
IndividualObservationBatchRowModel.PROPERTY_ATTACHMENT);
}
@@ -123,6 +131,17 @@
persistenceService.getAllIndividualObservationBatch(bean.getId());
for (IndividualObservationBatch aBatch : batches) {
+
+ // set the surveycode
+ if (getDataContext().isProtocolFilled()) {
+ // get the surveycode from the species list of the model
+ List<Species> speciesList = getDataContext().getReferentSpeciesWithSurveyCode();
+ int i = speciesList.indexOf(aBatch.getSpecies());
+ if (i > -1) {
+ aBatch.setSpecies(speciesList.get(i));
+ }
+ }
+
IndividualObservationBatchRowModel entry = loadBatch(aBatch);
rows.add(entry);
}
@@ -135,7 +154,8 @@
protected IndividualObservationBatchRowModel loadBatch(IndividualObservationBatch aBatch) {
IndividualObservationBatchRowModel newRow =
- new IndividualObservationBatchRowModel(aBatch);
+ new IndividualObservationBatchRowModel(
+ aBatch, getModel().getDefaultCaracteristic());
List<Attachment> attachments =
persistenceService.getAllAttachments(newRow.getObjectType(),
@@ -277,18 +297,24 @@
log.debug("beforeInit: " + ui);
}
+ // get the default caracteristics
+ List<Caracteristic> defaultCaracteristic =
+ getDataContext().getDefaultIndividualObservationCaracteristics();
+
+ // create model
EditCatchesUIModel catchesUIModel =
ui.getContextValue(EditCatchesUIModel.class);
-
- IndividualObservationBatchUIModel model = new IndividualObservationBatchUIModel(catchesUIModel);
+ IndividualObservationBatchUIModel model =
+ new IndividualObservationBatchUIModel(catchesUIModel,
+ defaultCaracteristic);
ui.setContextValue(model);
- // propagate when value is changing
- PropagatePropertyChangeListener.listenAndPropagate(
- catchesUIModel,
- model,
- EditCatchesUIModel.PROPERTY_MARINE_LITTER_TOTAL_WEIGHT,
- EditCatchesUIModel.PROPERTY_MARINE_LITTER_TOTAL_WEIGHT);
+// // propagate when value is changing
+// PropagatePropertyChangeListener.listenAndPropagate(
+// catchesUIModel,
+// model,
+// EditCatchesUIModel.PROPERTY_MARINE_LITTER_TOTAL_WEIGHT,
+// EditCatchesUIModel.PROPERTY_MARINE_LITTER_TOTAL_WEIGHT);
}
@Override
@@ -311,13 +337,16 @@
Decorator<Caracteristic> caracteristicDecorator =
getDecorator(Caracteristic.class, null);
+ Decorator<CaracteristicQualitativeValue> caracteristicQualitativeDecorator =
+ getDecorator(CaracteristicQualitativeValue.class, null);
+
{ // Species column
Decorator<Species> speciesDecorator = getDecorator(
Species.class, DecoratorService.FROM_PROTOCOL);
addComboDataColumnToModel(columnModel,
IndividualObservationBatchTableModel.SPECIES,
- speciesDecorator, getDataContext().getReferentSpecies());
+ speciesDecorator, getDataContext().getReferentSpeciesWithSurveyCode());
}
{ // Weight column
@@ -342,27 +371,70 @@
}
- { // Other caracteristics column
+ List<Caracteristic> defaultCaracteristic =
+ getModel().getDefaultCaracteristic();
- addColumnToModel(columnModel,
- CaracteristicMapCellComponent.newEditor(ui),
- CaracteristicMapCellComponent.newRender(getContext()),
- IndividualObservationBatchTableModel.OTHER_CARACTERISTICS);
- }
+ for (Caracteristic caracteristic : defaultCaracteristic) {
+ String header = caracteristicDecorator.toString(caracteristic);
- { // Calcified piece sampling code column
+ CaracteristicColumnIdentifier id = CaracteristicColumnIdentifier.newCaracteristicId(
+ caracteristic,
+ IndividualObservationBatchRowModel.PROPERTY_DEFAULT_CARACTERISTICS,
+ header,
+ header
+ );
- addColumnToModel(columnModel,
- IndividualObservationBatchTableModel.CALCIFIED_PIECE_SAMPLING_CODE);
+ switch (caracteristic.getCaracteristicType()) {
+
+ case NUMBER:
+
+ addFloatColumnToModel(columnModel,
+ id,
+ TuttiUI.DECIMAL3_PATTERN);
+
+ break;
+ case QUALITATIVE:
+ List<CaracteristicQualitativeValue> values =
+ caracteristic.getQualitativeValue();
+ addComboDataColumnToModel(
+ columnModel,
+ id,
+ caracteristicQualitativeDecorator,
+ values);
+ break;
+ case TEXT:
+
+ addColumnToModel(columnModel, id);
+
+ break;
+ }
}
- { // Sampling code column
+ { // Other caracteristics column
+ Set<Caracteristic> caracteristicsToSkip = Collections.unmodifiableSet(
+ Sets.newHashSet(getModel().getDefaultCaracteristic()));
+
addColumnToModel(columnModel,
- IndividualObservationBatchTableModel.SAMPLING_CODE);
+ CaracteristicMapCellComponent.newEditor(ui, caracteristicsToSkip),
+ CaracteristicMapCellComponent.newRender(getContext()),
+ IndividualObservationBatchTableModel.OTHER_CARACTERISTICS);
+
}
+// { // Calcified piece sampling code column
+//
+// addColumnToModel(columnModel,
+// IndividualObservationBatchTableModel.CALCIFIED_PIECE_SAMPLING_CODE);
+// }
+//
+// { // Sampling code column
+//
+// addColumnToModel(columnModel,
+// IndividualObservationBatchTableModel.SAMPLING_CODE);
+// }
+
{ // Comment column
addColumnToModel(columnModel,
@@ -443,6 +515,7 @@
newRow.setWeight(model.getWeight());
newRow.setSize(model.getSize());
newRow.setLengthStepCaracteristic(model.getLengthStepCaracteristic());
+ newRow.getDefaultCaracteristics().putAll(model.getCaracteristics());
recomputeRowValidState(newRow);
@@ -478,6 +551,19 @@
IndividualObservationBatch catchBean = row.toBean();
+ // use a new instance of caracteristicMap
+ CaracteristicMap caracteristics = CaracteristicMap.copy(catchBean.getCaracteristics());
+ catchBean.setCaracteristics(caracteristics);
+
+ // push back default caracteristics
+ CaracteristicMap defaultCaracteristics = row.getDefaultCaracteristics();
+ for (Map.Entry<Caracteristic, Serializable> entry : defaultCaracteristics.entrySet()) {
+ Serializable value = entry.getValue();
+ if (value != null) {
+ caracteristics.put(entry.getKey(), value);
+ }
+ }
+
FishingOperation fishingOperation = getModel().getFishingOperation();
catchBean.setFishingOperation(fishingOperation);
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-09-21 14:45:35 UTC (rev 1197)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUIModel.java 2013-09-21 14:47:57 UTC (rev 1198)
@@ -22,6 +22,7 @@
* #L%
*/
+import com.google.common.collect.Lists;
import fr.ifremer.tutti.persistence.entities.referential.Caracteristic;
import fr.ifremer.tutti.persistence.entities.referential.Species;
import fr.ifremer.tutti.ui.swing.content.operation.AbstractTuttiBatchUIModel;
@@ -29,6 +30,8 @@
import fr.ifremer.tutti.ui.swing.util.TabContentModel;
import org.apache.commons.collections.CollectionUtils;
+import java.util.List;
+
import static org.nuiton.i18n.I18n.n_;
/**
@@ -45,9 +48,20 @@
/** Can user remove a selected batch? */
protected boolean removeBatchEnabled;
- public IndividualObservationBatchUIModel(EditCatchesUIModel catchesUIModel) {
+ /**
+ * Default caracteristics coming from protocol.
+ *
+ * @since 2.5
+ */
+ protected final List<Caracteristic> defaultCaracteristic;
+
+ public IndividualObservationBatchUIModel(EditCatchesUIModel catchesUIModel,
+ List<Caracteristic> defaultCaracteristic) {
super(catchesUIModel,
EditCatchesUIModel.PROPERTY_BATCH_UPDATED);
+ this.defaultCaracteristic = defaultCaracteristic == null ?
+ Lists.<Caracteristic>newArrayList() :
+ Lists.newArrayList(defaultCaracteristic);
}
public boolean isRemoveBatchEnabled() {
@@ -60,6 +74,10 @@
firePropertyChange(PROPERTY_REMOVE_BATCH_ENABLED, oldValue, removeBatchEnabled);
}
+ public List<Caracteristic> getDefaultCaracteristic() {
+ return defaultCaracteristic;
+ }
+
public Species getLastSpeciesUsed() {
Species result = null;
if (!rows.isEmpty()) {
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-09-21 14:45:35 UTC (rev 1197)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/CreateIndividualObservationBatchUI.css 2013-09-21 14:47:57 UTC (rev 1198)
@@ -97,15 +97,24 @@
_help: {"tutti.createIndividualObservationBatch.action.addSpecies.help"};
}
-#saveButton {
+#saveAndContinueButton {
actionIcon: save;
- text: "tutti.createIndividualObservationBatch.action.save";
- toolTipText: "tutti.createIndividualObservationBatch.action.save.tip";
- i18nMnemonic: "tutti.createIndividualObservationBatch.action.save.mnemonic";
+ text: "tutti.createIndividualObservationBatch.action.saveAndContinue";
+ toolTipText: "tutti.createIndividualObservationBatch.action.saveAndContinue.tip";
+ i18nMnemonic: "tutti.createIndividualObservationBatch.action.saveAndContinue.mnemonic";
enabled: {model.isValid()};
- _help: {"tutti.createIndividualObservationBatch.action.save.help"};
+ _help: {"tutti.createIndividualObservationBatch.action.saveAndContinue.help"};
}
+#saveAndCloseButton {
+ actionIcon: save;
+ text: "tutti.createIndividualObservationBatch.action.saveAndClose";
+ toolTipText: "tutti.createIndividualObservationBatch.action.saveAndClose.tip";
+ i18nMnemonic: "tutti.createIndividualObservationBatch.action.saveAndClose.mnemonic";
+ enabled: {model.isValid()};
+ _help: {"tutti.createIndividualObservationBatch.action.saveAndClose.help"};
+}
+
#cancelButton {
actionIcon: cancel;
text: "tutti.createIndividualObservationBatch.action.cancel";
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-09-21 14:45:35 UTC (rev 1197)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/CreateIndividualObservationBatchUI.jaxx 2013-09-21 14:47:57 UTC (rev 1198)
@@ -128,6 +128,7 @@
<!-- Form Actions -->
<JPanel layout='{new GridLayout(1, 0)}' constraints='BorderLayout.SOUTH'>
<JButton id='cancelButton' onActionPerformed='handler.cancel()'/>
- <JButton id='saveButton' onActionPerformed='handler.save()'/>
+ <JButton id='saveAndContinueButton' onActionPerformed='handler.saveAndContinue()'/>
+ <JButton id='saveAndCloseButton' onActionPerformed='handler.saveAndClose()'/>
</JPanel>
</JPanel>
\ No newline at end of file
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-09-21 14:45:35 UTC (rev 1197)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/CreateIndividualObservationBatchUIHandler.java 2013-09-21 14:47:57 UTC (rev 1198)
@@ -25,15 +25,20 @@
import com.google.common.base.Preconditions;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
+import com.google.common.collect.Sets;
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.Species;
+import fr.ifremer.tutti.service.DecoratorService;
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.IndividualObservationBatchRowModel;
+import fr.ifremer.tutti.ui.swing.content.operation.catches.individualobservation.IndividualObservationBatchUI;
import fr.ifremer.tutti.ui.swing.content.operation.catches.individualobservation.IndividualObservationBatchUIModel;
+import fr.ifremer.tutti.ui.swing.content.operation.catches.species.SpeciesBatchRowModel;
import fr.ifremer.tutti.ui.swing.util.AbstractTuttiUIHandler;
import fr.ifremer.tutti.ui.swing.util.Cancelable;
import fr.ifremer.tutti.ui.swing.util.TuttiUI;
@@ -41,6 +46,7 @@
import fr.ifremer.tutti.ui.swing.util.species.SelectSpeciesUIModel;
import jaxx.runtime.SwingUtil;
import jaxx.runtime.validator.swing.SwingValidator;
+import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -50,6 +56,7 @@
import java.beans.PropertyChangeListener;
import java.util.List;
import java.util.Map;
+import java.util.Set;
/**
* @author kmorin <kmorin(a)codelutin.com>
@@ -72,7 +79,13 @@
@Override
public void beforeInitUI() {
- CreateIndividualObservationBatchUIModel model = new CreateIndividualObservationBatchUIModel();
+
+ // get the default caracteristics
+ List<Caracteristic> defaultCaracteristic =
+ getDataContext().getDefaultIndividualObservationCaracteristics();
+
+ CreateIndividualObservationBatchUIModel model =
+ new CreateIndividualObservationBatchUIModel(defaultCaracteristic);
ui.setContextValue(model);
listModelIsModify(model);
}
@@ -84,7 +97,8 @@
initBeanFilterableComboBox(ui.getIndividualObservationSpeciesComboBox(),
Lists.newArrayList(getDataContext().getReferentSpeciesWithSurveyCode()),
- null);
+ null,
+ DecoratorService.FROM_PROTOCOL);
List<Caracteristic> lengthStepCaracteristics = getDataContext().getLengthStepCaracteristics();
initBeanFilterableComboBox(ui.getIndividualObservationLengthStepCaracteristicComboBox(),
@@ -177,17 +191,118 @@
model.reset();
- model.setSpecies(batchModel.getLastSpeciesUsed());
+ // compute list of available species
+ List<Species> speciesListWithSurveyCode =
+ getDataContext().getReferentSpeciesWithSurveyCode();
+
+// Map<String, Species> speciesMap =
+// TuttiEntities.splitById(speciesListWithSurveyCode);
+
+ List<Species> speciesList;
+
+ EditCatchesUI parent =
+ SwingUtil.getParentContainer(ui, EditCatchesUI.class);
+ List<SpeciesBatchRowModel> speciesRows =
+ parent.getSpeciesTabContent().getModel().getRows();
+ if (CollectionUtils.isNotEmpty(speciesRows)) {
+
+ // use species from species batch
+ Set<Species> speciesSet = Sets.newHashSet();
+ for (SpeciesBatchRowModel row : speciesRows) {
+ if (row.isBatchRoot()) {
+ Species species = row.getSpecies();
+ speciesSet.add(species);
+ }
+ }
+
+ // plus readd the species filled here (individualObservations)
+ List<IndividualObservationBatchRowModel> rows = batchModel.getRows();
+
+ if (CollectionUtils.isNotEmpty(rows)) {
+ for (IndividualObservationBatchRowModel row : rows) {
+ Species species = row.getSpecies();
+ speciesSet.add(species);
+ }
+ }
+ speciesList = Lists.newArrayList(speciesSet);
+ if (log.isInfoEnabled()) {
+ log.info("Use speciesBatch + individualObservation species : " + speciesList.size());
+ }
+ } else {
+
+ if (getDataContext().isProtocolFilled()) {
+
+ // using protocol species
+ speciesList = Lists.newArrayList(speciesListWithSurveyCode);
+
+ // readd the species filled here (individualObservations)
+ List<IndividualObservationBatchRowModel> rows = batchModel.getRows();
+
+ if (CollectionUtils.isNotEmpty(rows)) {
+ for (IndividualObservationBatchRowModel row : rows) {
+
+ Species species = row.getSpecies();
+ if (!speciesList.contains(species)) {
+ speciesList.add(species);
+ }
+ }
+ }
+
+ if (log.isInfoEnabled()) {
+ log.info("Use protocol + individualObservation species : " + speciesList.size());
+ }
+ } else {
+
+ // no species batch, no protocol use all possible species
+ speciesList = speciesListWithSurveyCode;
+
+ if (log.isInfoEnabled()) {
+ log.info("Use all species : " + speciesList.size());
+ }
+ }
+ }
+ model.setAvailableSpecies(speciesList);
+
+ // set last species filled here
+ Species lastSpeciesUsed = batchModel.getLastSpeciesUsed();
+ model.setSpecies(lastSpeciesUsed);
+// if (lastSpeciesUsed != null) {
+//
+// // use the version with surveycode
+// Species species = speciesMap.get(lastSpeciesUsed.getId());
+// if (species == null) {
+//
+// speciesMap = TuttiEntities.splitById(speciesList);
+// species = speciesMap.get(lastSpeciesUsed.getId());
+// }
+//
+// model.setSpecies(lastSpeciesUsed);
+// }
model.setLengthStepCaracteristic(batchModel.getLastLengthStepCaracteristicUsed());
+ }
- model.setAvailableSpecies(getDataContext().getReferentSpeciesWithSurveyCode());
+ public void saveAndContinue() {
+
+ if (log.isDebugEnabled()) {
+ log.debug("Save And Continue UI " + ui);
+ }
+
+ EditCatchesUI parent = SwingUtil.getParentContainer(ui, EditCatchesUI.class);
+ IndividualObservationBatchUI individualObservationTabContent = parent.getIndividualObservationTabContent();
+ individualObservationTabContent.getHandler().addBatch(getModel());
+
+ // re-open dialog
+ openUI(individualObservationTabContent.getModel());
+
+ // set focus to weight field
+ ui.getIndividualObservationWeightField().grabFocus();
}
- public void save() {
+ public void saveAndClose() {
if (log.isDebugEnabled()) {
- log.debug("Save UI " + ui);
+ log.debug("Save And Close UI " + ui);
}
EditCatchesUI parent = SwingUtil.getParentContainer(ui, EditCatchesUI.class);
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-09-21 14:45:35 UTC (rev 1197)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/CreateIndividualObservationBatchUIModel.java 2013-09-21 14:47:57 UTC (rev 1198)
@@ -22,6 +22,8 @@
* #L%
*/
+import com.google.common.collect.Lists;
+import fr.ifremer.tutti.persistence.entities.CaracteristicMap;
import fr.ifremer.tutti.persistence.entities.TuttiBeanFactory;
import fr.ifremer.tutti.persistence.entities.data.IndividualObservationBatch;
import fr.ifremer.tutti.persistence.entities.referential.Caracteristic;
@@ -36,7 +38,7 @@
* @author kmorin <kmorin(a)codelutin.com>
* @since 1.4
*/
-public class CreateIndividualObservationBatchUIModel extends AbstractTuttiBeanUIModel<CreateIndividualObservationBatchUIModel, CreateIndividualObservationBatchUIModel> {
+public class CreateIndividualObservationBatchUIModel extends AbstractTuttiBeanUIModel<IndividualObservationBatch, CreateIndividualObservationBatchUIModel> {
private static final long serialVersionUID = 1L;
@@ -59,8 +61,17 @@
protected final IndividualObservationBatch editObject =
TuttiBeanFactory.newIndividualObservationBatch();
- public CreateIndividualObservationBatchUIModel() {
- super(CreateIndividualObservationBatchUIModel.class, null, null);
+ /**
+ * Default caracteristics coming from protocol.
+ *
+ * @since 2.5
+ */
+ protected final List<Caracteristic> defaultCaracteristic;
+
+ public CreateIndividualObservationBatchUIModel(List<Caracteristic> defaultCaracteristic) {
+ super(IndividualObservationBatch.class, null, null);
+ this.defaultCaracteristic = defaultCaracteristic;
+ editObject.setCaracteristics(new CaracteristicMap());
}
public Species getSpecies() {
@@ -103,6 +114,10 @@
firePropertyChange(IndividualObservationBatch.PROPERTY_LENGTH_STEP_CARACTERISTIC, oldValue, individualObservationLengthStepCaracteristic);
}
+ public CaracteristicMap getCaracteristics() {
+ return editObject.getCaracteristics();
+ }
+
public List<Species> getAvailableSpecies() {
if (log.isDebugEnabled()) {
log.debug("getAvailableSpecies " + availableSpecies);
@@ -115,20 +130,21 @@
if (log.isDebugEnabled()) {
log.debug("setAvailableSpecies " + availableSpecies);
}
- Object oldValue = getAvailableSpecies();
this.availableSpecies = availableSpecies;
- firePropertyChange(PROPERTY_AVAILABLE_SPECIES, oldValue, availableSpecies);
+ firePropertyChange(PROPERTY_AVAILABLE_SPECIES, null, availableSpecies);
}
@Override
- protected CreateIndividualObservationBatchUIModel newEntity() {
- return new CreateIndividualObservationBatchUIModel();
+ protected IndividualObservationBatch newEntity() {
+ return TuttiBeanFactory.newIndividualObservationBatch();
}
public void reset() {
+ setAvailableSpecies(Lists.<Species>newArrayList());
setSpecies(null);
setWeight(null);
setSize(null);
setLengthStepCaracteristic(null);
+ getCaracteristics().clear();
}
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/ImportMultiPostAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/ImportMultiPostAction.java 2013-09-21 14:45:35 UTC (rev 1197)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/ImportMultiPostAction.java 2013-09-21 14:47:57 UTC (rev 1198)
@@ -27,7 +27,7 @@
import fr.ifremer.tutti.persistence.entities.data.CatchBatch;
import fr.ifremer.tutti.persistence.entities.data.FishingOperation;
import fr.ifremer.tutti.persistence.entities.data.MarineLitterBatch;
-import fr.ifremer.tutti.service.catches.multipost.TuttiMultiPostImportExportService;
+import fr.ifremer.tutti.service.catches.multipost.TuttiMultiPostImportService;
import fr.ifremer.tutti.ui.swing.content.operation.catches.AbstractImportMultiPostAction;
import fr.ifremer.tutti.ui.swing.content.operation.catches.MultiPostImportLogDialog;
@@ -89,7 +89,7 @@
MultiPostImportLogDialog dialog = new MultiPostImportLogDialog((Dialog) getContext().getActionUI());
Collection<MarineLitterBatch> notImportedMarineLitterBatches =
- (Collection<MarineLitterBatch>) notImportedData.get(TuttiMultiPostImportExportService.BATCHES_KEY);
+ (Collection<MarineLitterBatch>) notImportedData.get(TuttiMultiPostImportService.BATCHES_KEY);
StringBuffer stringBuffer = new StringBuffer();
Float totalWeight = (Float) notImportedData.get(CatchBatch.PROPERTY_MARINE_LITTER_TOTAL_WEIGHT);
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/ImportMultiPostAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/ImportMultiPostAction.java 2013-09-21 14:45:35 UTC (rev 1197)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/ImportMultiPostAction.java 2013-09-21 14:47:57 UTC (rev 1198)
@@ -27,7 +27,7 @@
import fr.ifremer.tutti.persistence.entities.data.CatchBatch;
import fr.ifremer.tutti.persistence.entities.data.FishingOperation;
import fr.ifremer.tutti.persistence.entities.data.SpeciesBatch;
-import fr.ifremer.tutti.service.catches.multipost.TuttiMultiPostImportExportService;
+import fr.ifremer.tutti.service.catches.multipost.TuttiMultiPostImportService;
import fr.ifremer.tutti.ui.swing.content.operation.catches.AbstractImportMultiPostAction;
import fr.ifremer.tutti.ui.swing.content.operation.catches.MultiPostImportLogDialog;
@@ -89,7 +89,7 @@
MultiPostImportLogDialog dialog = new MultiPostImportLogDialog((Dialog) getContext().getActionUI());
Collection<SpeciesBatch> notImportedSpeciesBatches =
- (Collection<SpeciesBatch>) notImportedData.get(TuttiMultiPostImportExportService.BATCHES_KEY);
+ (Collection<SpeciesBatch>) notImportedData.get(TuttiMultiPostImportService.BATCHES_KEY);
StringBuffer stringBuffer = new StringBuffer();
Float totalSortedWeight = (Float) notImportedData.get(CatchBatch.PROPERTY_SPECIES_TOTAL_SORTED_WEIGHT);
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/caracteristics/CaracteristicMapCellComponent.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/caracteristics/CaracteristicMapCellComponent.java 2013-09-21 14:45:35 UTC (rev 1197)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/caracteristics/CaracteristicMapCellComponent.java 2013-09-21 14:47:57 UTC (rev 1198)
@@ -23,6 +23,7 @@
*/
import com.google.common.base.Preconditions;
+import com.google.common.collect.Sets;
import fr.ifremer.tutti.persistence.entities.CaracteristicMap;
import fr.ifremer.tutti.persistence.entities.referential.Caracteristic;
import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValue;
@@ -50,7 +51,6 @@
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.io.Serializable;
-import java.util.HashSet;
import java.util.Set;
import static org.nuiton.i18n.I18n._;
@@ -127,8 +127,8 @@
return new CaracteristicMapCellRenderer(context);
}
- public static TableCellEditor newEditor(TuttiUI ui) {
- return new CaracteristicMapCellEditor(ui);
+ public static TableCellEditor newEditor(TuttiUI ui, Set<Caracteristic> caracteristicsToSkip) {
+ return new CaracteristicMapCellEditor(ui, caracteristicsToSkip);
}
public static class CaracteristicMapCellEditor extends AbstractCellEditor implements TableCellEditor {
@@ -147,13 +147,18 @@
protected Set<Caracteristic> caracteristicsUsed;
+ protected Set<Caracteristic> caracteristicsToSkip;
+
protected Integer rowIndex;
protected Integer columnIndex;
- public CaracteristicMapCellEditor(TuttiUI ui) {
+ public CaracteristicMapCellEditor(TuttiUI ui,
+ Set<Caracteristic> caracteristicsToSkip) {
this.ui = ui;
- component = new CaracteristicMapCellComponent(ui.getHandler().getContext());
+ this.caracteristicsToSkip = caracteristicsToSkip;
+ component = new CaracteristicMapCellComponent(ui.getHandler().getContext()
+ );
component.setBorder(new LineBorder(Color.BLACK));
component.addKeyListener(new KeyAdapter() {
@Override
@@ -189,7 +194,7 @@
// get the caracteristics set to the other rows
if (caracteristicsUsed == null) {
- caracteristicsUsed = new HashSet<Caracteristic>();
+ caracteristicsUsed = Sets.newHashSet();
for (CaracteristicMapColumnRowModel row : tableModel.getRows()) {
CaracteristicMap map = row.getCaracteristics();
if (map != null) {
@@ -197,9 +202,12 @@
}
}
}
+ caracteristicsUsed.removeAll(caracteristicsToSkip);
CaracteristicMapColumnUIHandler handler = (CaracteristicMapColumnUIHandler) ui.getHandler();
CaracteristicMapEditorUI caracteristicMapEditor = handler.getCaracteristicMapEditor();
+ // remove all default caracteristics (caracteristicsToSkip)
+ caracteristicMapEditor.getModel().getAvailableCaracteristics().removeAll(caracteristicsToSkip);
caracteristicMapEditor.getHandler().editBatch(editRow, this, caracteristicsUsed);
handler.showCaracteristicMapEditor(editRow.getSpecies());
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/caracteristics/CaracteristicMapEditorUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/caracteristics/CaracteristicMapEditorUIHandler.java 2013-09-21 14:45:35 UTC (rev 1197)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/caracteristics/CaracteristicMapEditorUIHandler.java 2013-09-21 14:47:57 UTC (rev 1198)
@@ -127,7 +127,7 @@
initUI(getUI());
initBeanFilterableComboBox(getKeyCombo(), Lists.<Caracteristic>newArrayList(), null);
- getModel().setAvailableCaracteristics(getDataContext().getCaracteristicWithProtected());
+ getModel().setAvailableCaracteristics(Lists.newArrayList(getDataContext().getCaracteristicWithProtected()));
JXTable table = getTable();
Added: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/table/CaracteristicColumnIdentifier.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/table/CaracteristicColumnIdentifier.java (rev 0)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/table/CaracteristicColumnIdentifier.java 2013-09-21 14:47:57 UTC (rev 1198)
@@ -0,0 +1,56 @@
+package fr.ifremer.tutti.ui.swing.util.table;
+
+import com.google.common.base.Preconditions;
+import fr.ifremer.tutti.persistence.entities.CaracteristicMap;
+import fr.ifremer.tutti.persistence.entities.referential.Caracteristic;
+
+import java.io.Serializable;
+
+/**
+ * To identify a column that represents a caracteristic.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 2.5
+ */
+public class CaracteristicColumnIdentifier<R> extends ColumnIdentifier<R> {
+
+ private static final long serialVersionUID = 1L;
+
+ public static <R> CaracteristicColumnIdentifier newCaracteristicId(
+ Caracteristic caracteristic,
+ String propertyName,
+ String headerI18nKey,
+ String headerTipI18nKey) {
+
+ return new CaracteristicColumnIdentifier<R>(caracteristic, propertyName,
+ headerI18nKey,
+ headerTipI18nKey
+ );
+ }
+
+ protected Caracteristic caracteristic;
+
+ protected CaracteristicColumnIdentifier(Caracteristic caracteristic,
+ String propertyName,
+ String headerI18nKey,
+ String headerTipI18nKey) {
+ super(propertyName, headerI18nKey, headerTipI18nKey);
+ this.caracteristic = caracteristic;
+ }
+
+ @Override
+ public Object getValue(R entry) {
+ CaracteristicMap map = (CaracteristicMap) super.getValue(entry);
+ Serializable result = map.get(caracteristic);
+ return result;
+ }
+
+ @Override
+ public void setValue(R entry, Object value) {
+ CaracteristicMap map = (CaracteristicMap) super.getValue(entry);
+ Preconditions.checkNotNull(map, "caracteristicMap (" + getPropertyName() + ") is null in " + entry);
+ map.put(caracteristic, (Serializable) value);
+ // reset the map in bean to fire property
+ super.setValue(entry, map);
+ }
+}
Property changes on: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/table/CaracteristicColumnIdentifier.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision
Added: svn:eol-style
+ native
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-09-21 14:45:35 UTC (rev 1197)
+++ trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties 2013-09-21 14:47:57 UTC (rev 1198)
@@ -210,6 +210,12 @@
tutti.createIndividualObservationBatch.action.save=
tutti.createIndividualObservationBatch.action.save.mnemonic=
tutti.createIndividualObservationBatch.action.save.tip=
+tutti.createIndividualObservationBatch.action.saveAndClose=
+tutti.createIndividualObservationBatch.action.saveAndClose.mnemonic=
+tutti.createIndividualObservationBatch.action.saveAndClose.tip=
+tutti.createIndividualObservationBatch.action.saveAndContinue=
+tutti.createIndividualObservationBatch.action.saveAndContinue.mnemonic=
+tutti.createIndividualObservationBatch.action.saveAndContinue.tip=
tutti.createIndividualObservationBatch.field.individualObservationLengthStepCaracteristic=
tutti.createIndividualObservationBatch.field.individualObservationLengthStepCaracteristic.tip=
tutti.createIndividualObservationBatch.field.individualObservationSize=
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-09-21 14:45:35 UTC (rev 1197)
+++ trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2013-09-21 14:47:57 UTC (rev 1198)
@@ -191,9 +191,12 @@
tutti.createIndividualObservationBatch.action.cancel=Annuler
tutti.createIndividualObservationBatch.action.cancel.mnemonic=A
tutti.createIndividualObservationBatch.action.cancel.tip=Annuler la création de l'observation individuelle
-tutti.createIndividualObservationBatch.action.save=Enregistrer
-tutti.createIndividualObservationBatch.action.save.mnemonic=E
-tutti.createIndividualObservationBatch.action.save.tip=Enregistrer l'observation individuelle
+tutti.createIndividualObservationBatch.action.saveAndClose=Créer et Fermer
+tutti.createIndividualObservationBatch.action.saveAndClose.mnemonic=F
+tutti.createIndividualObservationBatch.action.saveAndClose.tip=Créer l'observation individuelle et fermer
+tutti.createIndividualObservationBatch.action.saveAndContinue=Créer et Continuer
+tutti.createIndividualObservationBatch.action.saveAndContinue.mnemonic=C
+tutti.createIndividualObservationBatch.action.saveAndContinue.tip=Créer et saisir une nouvelle observation indidivuelle
tutti.createIndividualObservationBatch.field.individualObservationLengthStepCaracteristic=Classe de taille
tutti.createIndividualObservationBatch.field.individualObservationLengthStepCaracteristic.tip=Classe de taille
tutti.createIndividualObservationBatch.field.individualObservationSize=Taille
1
0