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
r833 - trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species
by kmorin@users.forge.codelutin.com 20 Apr '13
by kmorin@users.forge.codelutin.com 20 Apr '13
20 Apr '13
Author: kmorin
Date: 2013-04-20 13:24:59 +0200 (Sat, 20 Apr 2013)
New Revision: 833
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/833
Log:
do not remove the species from the species used if we remove only the subbatches
Modified:
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/RemoveSpeciesSubBatchAction.java
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/RemoveSpeciesSubBatchAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/RemoveSpeciesSubBatchAction.java 2013-04-19 17:16:10 UTC (rev 832)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/RemoveSpeciesSubBatchAction.java 2013-04-20 11:24:59 UTC (rev 833)
@@ -67,12 +67,6 @@
// save parent batch (will destroy all his childs from db)
persistenceService.deleteSpeciesSubBatch(parentBatch.getId());
- if (parentBatch.isBatchRoot()) {
-
- // update speciesUsed
- handler.removeFromSpeciesUsed(parentBatch);
- }
-
// collect of rows to remove from model
Set<SpeciesBatchRowModel> rowToRemove = Sets.newHashSet();
1
0
r832 - in trunk/tutti-ui-swing/src/main: java/fr/ifremer/tutti/ui/swing/content/home java/fr/ifremer/tutti/ui/swing/content/operation java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter java/fr/ifremer/tutti/ui/swing/content/referential resources/i18n
by kmorin@users.forge.codelutin.com 19 Apr '13
by kmorin@users.forge.codelutin.com 19 Apr '13
19 Apr '13
Author: kmorin
Date: 2013-04-19 19:16:10 +0200 (Fri, 19 Apr 2013)
New Revision: 832
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/832
Log:
fixes #1848 [ERGO] - Touches de raccourcis
Modified:
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIHandler.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/MarineLitterBatchUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ManageTemporaryReferentialUI.css
trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties
trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUI.css 2013-04-19 12:34:41 UTC (rev 831)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUI.css 2013-04-19 17:16:10 UTC (rev 832)
@@ -61,7 +61,6 @@
#editProgramButton {
actionIcon: edit;
text: "tutti.selectCruise.action.editProgram";
- i18nMnemonic: "tutti.selectCruise.action.editProgram.mnemonic";
enabled: {model.isProgramFound()};
_tuttiAction: {EditProgramAction.class};
toolTipText: "tutti.selectCruise.action.editProgram.tip";
@@ -71,7 +70,6 @@
#newProgramButton {
actionIcon: add;
text: "tutti.selectCruise.action.newProgram";
- i18nMnemonic: "tutti.selectCruise.action.newProgram.mnemonic";
_tuttiAction: {NewProgramAction.class};
toolTipText: "tutti.selectCruise.action.newProgram.tip";
_help: {"tutti.selectCruise.action.newProgram.help"};
@@ -101,7 +99,6 @@
#editCruiseButton {
actionIcon: edit;
text: "tutti.selectCruise.action.editCruise";
- i18nMnemonic: "tutti.selectCruise.action.editCruise.mnemonic";
_tuttiAction: {EditCruiseAction.class};
toolTipText: "tutti.selectCruise.action.editCruise.tip";
_help: {"tutti.selectCruise.action.editCruise.help"};
@@ -111,7 +108,6 @@
actionIcon: email;
text: "tutti.selectCruise.action.sendCruiseReport";
toolTipText: "tutti.selectCruise.action.sendCruiseReport.tip";
- i18nMnemonic: "tutti.selectCruise.action.sendCruiseReport.mnemonic";
_tuttiAction: {SendCruiseReportAction.class};
_help: {"tutti.selectCruise.action.sendCruiseReport.help"};
}
@@ -119,7 +115,6 @@
#newCruiseButton {
actionIcon: add;
text: "tutti.selectCruise.action.newCruise";
- i18nMnemonic: "tutti.selectCruise.action.newCruise.mnemonic";
enabled: {model.isProgramFound()};
_tuttiAction: {NewCruiseAction.class};
toolTipText: "tutti.selectCruise.action.newCruise.tip";
@@ -155,7 +150,6 @@
#newProtocolButton {
actionIcon: add;
text: "tutti.selectCruise.action.newProtocol";
- i18nMnemonic: "tutti.selectCruise.action.newProtocol.mnemonic";
_tuttiAction: {NewProtocolAction.class};
toolTipText: "tutti.selectCruise.action.newProtocol.tip";
_help: {"tutti.selectCruise.action.newProtocol.help"};
@@ -164,7 +158,6 @@
#importProtocolButton {
actionIcon: import;
text: "tutti.selectCruise.action.importProtocol";
- i18nMnemonic: "tutti.selectCruise.action.importProtocol.mnemonic";
_tuttiAction: {ImportProtocolAction.class};
toolTipText: "tutti.selectCruise.action.importProtocol.tip";
_help: {"tutti.selectCruise.action.importProtocol.help"};
@@ -173,7 +166,6 @@
#editProtocolButton {
actionIcon: edit;
text: "tutti.selectCruise.action.editProtocol";
- i18nMnemonic: "tutti.selectCruise.action.editProtocol.mnemonic";
_tuttiAction: {EditProtocolAction.class};
toolTipText: "tutti.selectCruise.action.editProtocol.tip";
_help: {"tutti.selectCruise.action.editProtocol.help"};
@@ -182,7 +174,6 @@
#cloneProtocolButton {
actionIcon: copy;
text: "tutti.selectCruise.action.cloneProtocol";
- i18nMnemonic: "tutti.selectCruise.action.cloneProtocol.mnemonic";
_tuttiAction: {CloneProtocolAction.class};
toolTipText: "tutti.selectCruise.action.cloneProtocol.tip";
_help: {"tutti.selectCruise.action.cloneProtocol.help"};
@@ -191,7 +182,6 @@
#exportProtocolButton {
actionIcon: export;
text: "tutti.selectCruise.action.exportProtocol";
- i18nMnemonic: "tutti.selectCruise.action.exportProtocol.mnemonic";
_tuttiAction: {ExportProtocolAction.class};
toolTipText: "tutti.selectCruise.action.exportProtocol.tip";
_help: {"tutti.selectCruise.action.exportProtocol.help"};
@@ -200,7 +190,6 @@
#deleteProtocolButton {
actionIcon: delete;
text: "tutti.selectCruise.action.deleteProtocol";
- i18nMnemonic: "tutti.selectCruise.action.deleteProtocol.mnemonic";
_tuttiAction: {DeleteProtocolAction.class};
toolTipText: "tutti.selectCruise.action.deleteProtocol.tip";
_help: {"tutti.selectCruise.action.deleteProtocol.help"};
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUIHandler.java 2013-04-19 12:34:41 UTC (rev 831)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUIHandler.java 2013-04-19 17:16:10 UTC (rev 832)
@@ -140,14 +140,26 @@
SelectCruiseUIModel model = getModel();
+ List<Program> programs = Lists.newArrayList();
+ if (model.getPrograms() != null) {
+ programs.addAll(model.getPrograms());
+ }
initBeanFilterableComboBox(ui.getProgramCombobox(),
- Lists.newArrayList(model.getPrograms()),
+ programs,
model.getProgram());
+ List<Cruise> cruises = Lists.newArrayList();
+ if (model.getCruises() != null) {
+ cruises.addAll(model.getCruises());
+ }
initBeanFilterableComboBox(ui.getCruiseCombobox(),
- Lists.newArrayList(model.getCruises()),
+ cruises,
model.getCruise());
+ List<TuttiProtocol> protocols = Lists.newArrayList();
+ if (model.getProtocols() != null) {
+ protocols.addAll(model.getProtocols());
+ }
initBeanFilterableComboBox(ui.getProtocolCombobox(),
Lists.newArrayList(model.getProtocols()),
model.getProtocol());
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIHandler.java 2013-04-19 12:34:41 UTC (rev 831)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIHandler.java 2013-04-19 17:16:10 UTC (rev 832)
@@ -334,11 +334,13 @@
if (evt.getNewValue() == null) {
button.setText(_("tutti.editFishingOperation.action.cancelEditFishingOperation"));
button.setToolTipText(_("tutti.editFishingOperation.action.cancelEditFishingOperation.tip"));
+ button.setMnemonic(_("tutti.editFishingOperation.action.cancelEditFishingOperation.mnemonic").charAt(0));
action.setActionDescription(_("tutti.editFishingOperation.action.cancelEditFishingOperation.tip"));
} else {
button.setText(_("tutti.editFishingOperation.action.resetEditFishingOperation"));
button.setToolTipText(_("tutti.editFishingOperation.action.resetEditFishingOperation.tip"));
+ button.setMnemonic(_("tutti.editFishingOperation.action.resetEditFishingOperation.mnemonic").charAt(0));
action.setActionDescription(_("tutti.editFishingOperation.action.resetEditFishingOperation.tip"));
}
}
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-04-19 12:34:41 UTC (rev 831)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/MarineLitterBatchTableModel.java 2013-04-19 17:16:10 UTC (rev 832)
@@ -71,7 +71,7 @@
public MarineLitterBatchTableModel(TableColumnModelExt columnModel) {
super(columnModel, false, false);
- setNoneEditableCols();
+ setNoneEditableCols(MACRO_WASTE_CATEGORY, MACRO_WASTE_SIZE_CATEGORY);
}
@Override
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-04-19 12:34:41 UTC (rev 831)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/MarineLitterBatchUIHandler.java 2013-04-19 17:16:10 UTC (rev 832)
@@ -33,6 +33,7 @@
import fr.ifremer.tutti.persistence.entities.data.FishingOperation;
import fr.ifremer.tutti.persistence.entities.data.MarineLitterBatch;
import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValue;
+import fr.ifremer.tutti.service.DecoratorService;
import fr.ifremer.tutti.ui.swing.content.operation.AbstractTuttiBatchTableUIHandler;
import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUI;
import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUIHandler;
@@ -320,23 +321,19 @@
{
// MarineLitter Category column
- Decorator<CaracteristicQualitativeValue> decorator = getDecorator(
- CaracteristicQualitativeValue.class, null);
-
- addComboDataColumnToModel(columnModel,
- MarineLitterBatchTableModel.MACRO_WASTE_CATEGORY,
- decorator, persistenceService.getMarineLitterCategoryCaracteristic().getQualitativeValue());
+ addColumnToModel(columnModel,
+ null,
+ newTableCellRender(CaracteristicQualitativeValue.class, null),
+ MarineLitterBatchTableModel.MACRO_WASTE_CATEGORY);
}
{
// MarineLitter Size Category column
- Decorator<CaracteristicQualitativeValue> decorator = getDecorator(
- CaracteristicQualitativeValue.class, null);
-
- addComboDataColumnToModel(columnModel,
- MarineLitterBatchTableModel.MACRO_WASTE_SIZE_CATEGORY,
- decorator, persistenceService.getMarineLitterSizeCategoryCaracteristic().getQualitativeValue());
+ addColumnToModel(columnModel,
+ null,
+ newTableCellRender(CaracteristicQualitativeValue.class, null),
+ MarineLitterBatchTableModel.MACRO_WASTE_SIZE_CATEGORY);
}
{ // Number column
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ManageTemporaryReferentialUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ManageTemporaryReferentialUI.css 2013-04-19 12:34:41 UTC (rev 831)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/referential/ManageTemporaryReferentialUI.css 2013-04-19 17:16:10 UTC (rev 832)
@@ -40,7 +40,6 @@
#exportSpeciesExampleButton {
actionIcon: export;
text: "tutti.manageTemporaryReferential.action.exportTemporarySpeciesExample";
- i18nMnemonic: "tutti.manageTemporaryReferential.action.exportTemporarySpeciesExample.mnemonic";
_tuttiAction: {ExportTemporarySpeciesExampleAction.class};
toolTipText: "tutti.manageTemporaryReferential.action.exportTemporarySpeciesExample.tip";
_help: {"tutti.manageTemporaryReferential.action.exportTemporarySpeciesExample.help"};
@@ -49,7 +48,6 @@
#importSpeciesButton {
actionIcon: import;
text: "tutti.manageTemporaryReferential.action.importTemporarySpecies";
- i18nMnemonic: "tutti.manageTemporaryReferential.action.importTemporarySpecies.mnemonic";
_tuttiAction: {ImportTemporarySpeciesAction.class};
toolTipText: "tutti.manageTemporaryReferential.action.importTemporarySpecies.tip";
_help: {"tutti.manageTemporaryReferential.action.importTemporarySpecies.help"};
@@ -64,7 +62,6 @@
#exportVesselExampleButton {
actionIcon: export;
text: "tutti.manageTemporaryReferential.action.exportTemporaryVesselExample";
- i18nMnemonic: "tutti.manageTemporaryReferential.action.exportTemporaryVesselExample.mnemonic";
_tuttiAction: {ExportTemporaryVesselExampleAction.class};
toolTipText: "tutti.manageTemporaryReferential.action.exportTemporaryVesselExample.tip";
_help: {"tutti.manageTemporaryReferential.action.exportTemporaryVesselExample.help"};
@@ -73,7 +70,6 @@
#importVesselButton {
actionIcon: import;
text: "tutti.manageTemporaryReferential.action.importTemporaryVessel";
- i18nMnemonic: "tutti.manageTemporaryReferential.action.importTemporaryVessel.mnemonic";
_tuttiAction: {ImportTemporaryVesselAction.class};
toolTipText: "tutti.manageTemporaryReferential.action.importTemporaryVessel.tip";
_help: {"tutti.manageTemporaryReferential.action.importTemporaryVessel.help"};
@@ -88,7 +84,6 @@
#exportGearExampleButton {
actionIcon: export;
text: "tutti.manageTemporaryReferential.action.exportTemporaryGearExample";
- i18nMnemonic: "tutti.manageTemporaryReferential.action.exportTemporaryGearExample.mnemonic";
_tuttiAction: {ExportTemporaryGearExampleAction.class};
toolTipText: "tutti.manageTemporaryReferential.action.exportTemporaryGearExample.tip";
_help: {"tutti.manageTemporaryReferential.action.exportTemporaryGearExample.help"};
@@ -97,7 +92,6 @@
#importGearButton {
actionIcon: import;
text: "tutti.manageTemporaryReferential.action.importTemporaryGear";
- i18nMnemonic: "tutti.manageTemporaryReferential.action.importTemporaryGear.mnemonic";
_tuttiAction: {ImportTemporaryGearAction.class};
toolTipText: "tutti.manageTemporaryReferential.action.importTemporaryGear.tip";
_help: {"tutti.manageTemporaryReferential.action.importTemporaryGear.help"};
@@ -112,7 +106,6 @@
#exportPersonExampleButton {
actionIcon: export;
text: "tutti.manageTemporaryReferential.action.exportTemporaryPersonExample";
- i18nMnemonic: "tutti.manageTemporaryReferential.action.exportTemporaryPersonExample.mnemonic";
_tuttiAction: {ExportTemporaryPersonExampleAction.class};
toolTipText: "tutti.manageTemporaryReferential.action.exportTemporaryPersonExample.tip";
_help: {"tutti.manageTemporaryReferential.action.exportTemporaryPersonExample.help"};
@@ -121,7 +114,6 @@
#importPersonButton {
actionIcon: import;
text: "tutti.manageTemporaryReferential.action.importTemporaryPerson";
- i18nMnemonic: "tutti.manageTemporaryReferential.action.importTemporaryPerson.mnemonic";
_tuttiAction: {ImportTemporaryPersonAction.class};
toolTipText: "tutti.manageTemporaryReferential.action.importTemporaryPerson.tip";
_help: {"tutti.manageTemporaryReferential.action.importTemporaryPerson.help"};
Modified: trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties
===================================================================
--- trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties 2013-04-19 12:34:41 UTC (rev 831)
+++ trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties 2013-04-19 17:16:10 UTC (rev 832)
@@ -478,6 +478,7 @@
tutti.editFishingOperation.action.importCasino.mnemonic=
tutti.editFishingOperation.action.importCasino.tip=
tutti.editFishingOperation.action.resetEditFishingOperation=
+tutti.editFishingOperation.action.resetEditFishingOperation.mnemonic=
tutti.editFishingOperation.action.resetEditFishingOperation.tip=
tutti.editFishingOperation.action.resetFishingOperationValidState=
tutti.editFishingOperation.action.resetFishingOperationValidState.mnemonic=
Modified: trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties
===================================================================
--- trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2013-04-19 12:34:41 UTC (rev 831)
+++ trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2013-04-19 17:16:10 UTC (rev 832)
@@ -205,13 +205,13 @@
tutti.dbManager.action.chooseDbExportFile=Exporter la base de données
tutti.dbManager.action.chooseDbFile=Choisir la base à importer
tutti.dbManager.action.closeDb=Fermer
-tutti.dbManager.action.closeDb.mnemonic=e
+tutti.dbManager.action.closeDb.mnemonic=F
tutti.dbManager.action.closeDb.tip=Fermer la base de données en cours d'utilisation
tutti.dbManager.action.exportAndCleanDb=Exporter et supprimer
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 Tutti
tutti.dbManager.action.exportDb=Exporter
-tutti.dbManager.action.exportDb.mnemonic=x
+tutti.dbManager.action.exportDb.mnemonic=E
tutti.dbManager.action.exportDb.tip=Exporter la base de données au format zip
tutti.dbManager.action.importDb=Importer une base
tutti.dbManager.action.importDb.mnemonic=i
@@ -425,7 +425,7 @@
tutti.editCatchBatch.legend.species=Espèces
tutti.editCatchBatch.legend.total=Capture
tutti.editCruise.action.closeEditCruise=Fermer
-tutti.editCruise.action.closeEditCruise.mnemonic=com
+tutti.editCruise.action.closeEditCruise.mnemonic=F
tutti.editCruise.action.closeEditCruise.tip=Fermer l'écran d'édition de campagne
tutti.editCruise.action.generateCampaignName=Générer le nom
tutti.editCruise.action.generateCampaignName.mnemonic=G
@@ -480,6 +480,7 @@
tutti.editFishingOperation.action.importCasino.mnemonic=I
tutti.editFishingOperation.action.importCasino.tip=Import Casino
tutti.editFishingOperation.action.resetEditFishingOperation=Réinitialiser
+tutti.editFishingOperation.action.resetEditFishingOperation.mnemonic=R
tutti.editFishingOperation.action.resetEditFishingOperation.tip=Réinitialiser l'édition du trait
tutti.editFishingOperation.action.resetFishingOperationValidState=Réinitialiser
tutti.editFishingOperation.action.resetFishingOperationValidState.mnemonic=é
@@ -628,7 +629,7 @@
tutti.editPlanktonBatch.table.header.weight=Poids
tutti.editPlanktonBatch.table.header.weight.tip=
tutti.editProgram.action.closeEditProgram=Fermer
-tutti.editProgram.action.closeEditProgram.mnemonic=r
+tutti.editProgram.action.closeEditProgram.mnemonic=F
tutti.editProgram.action.closeEditProgram.tip=Annuler l'édition (ou la création) de la série de campagne
tutti.editProgram.action.saveProgram=Enregistrer
tutti.editProgram.action.saveProgram.mnemonic=E
@@ -657,13 +658,13 @@
tutti.editProtocol.action.exportProtocolAllCaracteristic.mnemonic=t
tutti.editProtocol.action.exportProtocolAllCaracteristic.tip=Exporter toutes les caractéristiques (sans les affecter à un écran)
tutti.editProtocol.action.exportProtocolBenthos=Exporter les benthos
-tutti.editProtocol.action.exportProtocolBenthos.mnemonic=b
+tutti.editProtocol.action.exportProtocolBenthos.mnemonic=x
tutti.editProtocol.action.exportProtocolBenthos.tip=Exporter les benthos du protocole
tutti.editProtocol.action.exportProtocolCaracteristic=Exporter les caractéristiques
-tutti.editProtocol.action.exportProtocolCaracteristic.mnemonic=c
+tutti.editProtocol.action.exportProtocolCaracteristic.mnemonic=x
tutti.editProtocol.action.exportProtocolCaracteristic.tip=Exporter les caractéristiques du protocole
tutti.editProtocol.action.exportProtocolSpecies=Exporter les espèces
-tutti.editProtocol.action.exportProtocolSpecies.mnemonic=è
+tutti.editProtocol.action.exportProtocolSpecies.mnemonic=x
tutti.editProtocol.action.exportProtocolSpecies.tip=Exporter les espèces du protocole
tutti.editProtocol.action.exportPupitri=Export pupitri
tutti.editProtocol.action.exportPupitri.mnemonic=p
@@ -675,7 +676,7 @@
tutti.editProtocol.action.importProtocolCaracteristic.mnemonic=i
tutti.editProtocol.action.importProtocolCaracteristic.tip=Importer les caractéristiques dans le protocole
tutti.editProtocol.action.importProtocolSpecies=Importer les espèces
-tutti.editProtocol.action.importProtocolSpecies.mnemonic=é
+tutti.editProtocol.action.importProtocolSpecies.mnemonic=i
tutti.editProtocol.action.importProtocolSpecies.tip=Importer les espèces dans le protocole
tutti.editProtocol.action.removeBenthosProtocol=Supprimer le benthos
tutti.editProtocol.action.removeBenthosProtocol.mnemonic=S
@@ -899,7 +900,7 @@
tutti.legend.splitBenthosBatchConfiguration=
tutti.legend.splitSpeciesBatchConfiguration=Configuration
tutti.main.action.about=À propos
-tutti.main.action.about.mnemonic=À
+tutti.main.action.about.mnemonic=p
tutti.main.action.about.tip=À Propos
tutti.main.action.changeLocale.mnemonic=l
tutti.main.action.changeLocale.tip=Changer de langue
@@ -955,14 +956,14 @@
tutti.main.menu.actions.mnemonic=c
tutti.main.menu.actions.tip=Actions
tutti.main.menu.administration=Administration
-tutti.main.menu.administration.mnemonic=d
+tutti.main.menu.administration.mnemonic=m
tutti.main.menu.administration.tip=Administrer Tutti
tutti.main.menu.changeLocale=Langue
tutti.main.menu.file=Fichier
tutti.main.menu.file.mnemonic=h
tutti.main.menu.file.tip=Fichier
tutti.main.menu.help=Aide
-tutti.main.menu.help.mnemonic=A
+tutti.main.menu.help.mnemonic=d
tutti.main.menu.help.tip=Aide
tutti.main.title.applicationName=Tutti
tutti.main.title.noSelectedCruise=Pas de campagne sélectionné
@@ -985,28 +986,20 @@
tutti.manageTemporaryReferential.action.chooseReferentialVesselFile.export.success=Exemple de référentiel temporaire de navires exporté dans le fichier %s
tutti.manageTemporaryReferential.action.chooseReferentialVesselFile.import.success=Référentiel temporaire de navires importé depuis le fichier %s
tutti.manageTemporaryReferential.action.exportTemporaryGearExample=Exporter
-tutti.manageTemporaryReferential.action.exportTemporaryGearExample.mnemonic=E
tutti.manageTemporaryReferential.action.exportTemporaryGearExample.tip=Exporter un exemple de référentiel Engin
tutti.manageTemporaryReferential.action.exportTemporaryPersonExample=Exporter
-tutti.manageTemporaryReferential.action.exportTemporaryPersonExample.mnemonic=P
tutti.manageTemporaryReferential.action.exportTemporaryPersonExample.tip=Exporter un exemple de référentiel Personne
tutti.manageTemporaryReferential.action.exportTemporarySpeciesExample=Exporter
-tutti.manageTemporaryReferential.action.exportTemporarySpeciesExample.mnemonic=s
tutti.manageTemporaryReferential.action.exportTemporarySpeciesExample.tip=Exporter un exemple de référentiel Espèces
tutti.manageTemporaryReferential.action.exportTemporaryVesselExample=Exporter
-tutti.manageTemporaryReferential.action.exportTemporaryVesselExample.mnemonic=N
tutti.manageTemporaryReferential.action.exportTemporaryVesselExample.tip=Exporter un exemple de référentiel Navire
tutti.manageTemporaryReferential.action.importTemporaryGear=Importer
-tutti.manageTemporaryReferential.action.importTemporaryGear.mnemonic=a
tutti.manageTemporaryReferential.action.importTemporaryGear.tip=Importer un référentiel temporaire d'engins
tutti.manageTemporaryReferential.action.importTemporaryPerson=Importer
-tutti.manageTemporaryReferential.action.importTemporaryPerson.mnemonic=n
tutti.manageTemporaryReferential.action.importTemporaryPerson.tip=Importer un référentiel temporaire de personnes
tutti.manageTemporaryReferential.action.importTemporarySpecies=Importer
-tutti.manageTemporaryReferential.action.importTemporarySpecies.mnemonic=e
tutti.manageTemporaryReferential.action.importTemporarySpecies.tip=Importer un référentiel temporaire d'espèces
tutti.manageTemporaryReferential.action.importTemporaryVessel=Importer
-tutti.manageTemporaryReferential.action.importTemporaryVessel.mnemonic=c
tutti.manageTemporaryReferential.action.importTemporaryVessel.tip=Importer un référentiel temporaire de navires
tutti.manageTemporaryReferential.field.gear=Référentiel Engin
tutti.manageTemporaryReferential.field.gear.tip=
@@ -1038,49 +1031,35 @@
tutti.selectBenthos.title=Choisissez un benthos
tutti.selectCruise.action.chooseProtocolFile=Choisir le fichier de protocole
tutti.selectCruise.action.cloneProtocol=Cloner
-tutti.selectCruise.action.cloneProtocol.mnemonic=o
tutti.selectCruise.action.cloneProtocol.tip=Dupliquer le protocole sélectionné
tutti.selectCruise.action.deleteProtocol=Supprimer
tutti.selectCruise.action.deleteProtocol.message=Vous êtes sur le point de supprimer le protocol %s
-tutti.selectCruise.action.deleteProtocol.mnemonic=S
tutti.selectCruise.action.deleteProtocol.tip=Supprimer le protocole sélectioné
tutti.selectCruise.action.deleteProtocol.title=Supprimer le protocole sélectioné
tutti.selectCruise.action.editCatches=Saisir les captures
tutti.selectCruise.action.editCatches.mnemonic=S
tutti.selectCruise.action.editCatches.tip=Saisir des captures
tutti.selectCruise.action.editCruise=Éditer
-tutti.selectCruise.action.editCruise.mnemonic=c
tutti.selectCruise.action.editCruise.tip=Éditer la campagne sélectionnée
tutti.selectCruise.action.editProgram=Éditer
-tutti.selectCruise.action.editProgram.mnemonic=p
tutti.selectCruise.action.editProgram.tip=Éditer le programme sélectionné
tutti.selectCruise.action.editProtocol=Éditer
-tutti.selectCruise.action.editProtocol.mnemonic=r
tutti.selectCruise.action.editProtocol.tip=Éditer le protocol sélectionné
tutti.selectCruise.action.exportProtocol=Exporter
-tutti.selectCruise.action.exportProtocol.mnemonic=x
tutti.selectCruise.action.exportProtocol.tip=Exporter le protocole sélectionné
tutti.selectCruise.action.importProtocol=Importer
-tutti.selectCruise.action.importProtocol.mnemonic=i
tutti.selectCruise.action.importProtocol.tip=Importer un protocole
tutti.selectCruise.action.newCruise=Nouveau
-tutti.selectCruise.action.newCruise.mnemonic=n
tutti.selectCruise.action.newCruise.tip=Créer une nouvelle campagne
tutti.selectCruise.action.newProgram=Nouveau
-tutti.selectCruise.action.newProgram.mnemonic=a
tutti.selectCruise.action.newProgram.tip=Créer une nouvelle série de campagne
tutti.selectCruise.action.newProtocol=Nouveau
-tutti.selectCruise.action.newProtocol.mnemonic=t
tutti.selectCruise.action.newProtocol.tip=Créer un nouveau protocole
tutti.selectCruise.action.sendCruiseReport=Envoyer
-tutti.selectCruise.action.sendCruiseReport.mnemonic=E
tutti.selectCruise.action.sendCruiseReport.tip=Envoyer le rapport de la campagne
tutti.selectCruise.action.validateCatches=Valider les captures
tutti.selectCruise.action.validateCatches.mnemonic=V
tutti.selectCruise.action.validateCatches.tip=Valider les captures
-tutti.selectCruise.action.validateCruise=Valider la campagne
-tutti.selectCruise.action.validateCruise.mnemonic=d
-tutti.selectCruise.action.validateCruise.tip=Valider la campagne
tutti.selectCruise.field.cruise=Campagne
tutti.selectCruise.field.cruise.tip=
tutti.selectCruise.field.program=Série de campagne
1
0
r831 - trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation
by kmorin@users.forge.codelutin.com 19 Apr '13
by kmorin@users.forge.codelutin.com 19 Apr '13
19 Apr '13
Author: kmorin
Date: 2013-04-19 14:34:41 +0200 (Fri, 19 Apr 2013)
New Revision: 831
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/831
Log:
debug
Modified:
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUIHandler.java
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUIHandler.java 2013-04-19 12:22:49 UTC (rev 830)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUIHandler.java 2013-04-19 12:34:41 UTC (rev 831)
@@ -116,12 +116,14 @@
}
rows = Lists.newArrayList();
- List<IndividualObservationBatch> batches =
- persistenceService.getAllIndividualObservationBatch(bean.getId());
+ if (!TuttiEntities.isNew(bean)) {
+ List<IndividualObservationBatch> batches =
+ persistenceService.getAllIndividualObservationBatch(bean.getId());
- for (IndividualObservationBatch aBatch : batches) {
- IndividualObservationBatchRowModel entry = loadBatch(aBatch);
- rows.add(entry);
+ for (IndividualObservationBatch aBatch : batches) {
+ IndividualObservationBatchRowModel entry = loadBatch(aBatch);
+ rows.add(entry);
+ }
}
}
model.setRows(rows);
1
0
19 Apr '13
Author: kmorin
Date: 2013-04-19 14:22:49 +0200 (Fri, 19 Apr 2013)
New Revision: 830
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/830
Log:
fixes #2339 [ERGONOMIE] - Listes d?\195?\169roulantes - Certaines listes filtrables n'?\195?\169taient pas triables
Modified:
trunk/pom.xml
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/create/CreateAccidentalBatchUIHandler.java
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/individualobservation/create/CreateIndividualObservationBatchUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/create/CreateMarineLitterBatchUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUIHandler.java
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2013-04-19 08:39:39 UTC (rev 829)
+++ trunk/pom.xml 2013-04-19 12:22:49 UTC (rev 830)
@@ -132,7 +132,7 @@
<eugenePluginVersion>2.6.2</eugenePluginVersion>
<hibernateVersion>3.6.10.Final</hibernateVersion>
- <jaxxVersion>2.5.17</jaxxVersion>
+ <jaxxVersion>2.5.18-SNAPSHOT</jaxxVersion>
<swingXVersion>1.6.4</swingXVersion>
<xworkVersion>2.3.7</xworkVersion>
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUIHandler.java 2013-04-19 08:39:39 UTC (rev 829)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUIHandler.java 2013-04-19 12:22:49 UTC (rev 830)
@@ -182,16 +182,16 @@
});
initBeanFilterableComboBox(ui.getProgramComboBox(),
- persistenceService.getAllProgram(),
+ Lists.newArrayList(persistenceService.getAllProgram()),
model.getProgram(),
DecoratorService.ONLY_NAME);
initBeanFilterableComboBox(ui.getDepartureLocationComboBox(),
- persistenceService.getAllHarbour(),
+ Lists.newArrayList(persistenceService.getAllHarbour()),
model.getDepartureLocation());
initBeanFilterableComboBox(ui.getReturnLocationComboBox(),
- persistenceService.getAllHarbour(),
+ Lists.newArrayList(persistenceService.getAllHarbour()),
model.getReturnLocation());
initBeanFilterableComboBox(ui.getVesselComboBox(),
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUIHandler.java 2013-04-19 08:39:39 UTC (rev 829)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUIHandler.java 2013-04-19 12:22:49 UTC (rev 830)
@@ -141,15 +141,15 @@
SelectCruiseUIModel model = getModel();
initBeanFilterableComboBox(ui.getProgramCombobox(),
- model.getPrograms(),
+ Lists.newArrayList(model.getPrograms()),
model.getProgram());
initBeanFilterableComboBox(ui.getCruiseCombobox(),
- model.getCruises(),
+ Lists.newArrayList(model.getCruises()),
model.getCruise());
initBeanFilterableComboBox(ui.getProtocolCombobox(),
- model.getProtocols(),
+ Lists.newArrayList(model.getProtocols()),
model.getProtocol());
ui.getEditCruiseComboBox().putClientProperty("JComboBox.isTableCellEditor", Boolean.TRUE);
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIHandler.java 2013-04-19 08:39:39 UTC (rev 829)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIHandler.java 2013-04-19 12:22:49 UTC (rev 830)
@@ -278,13 +278,13 @@
String zoneId = zone.getId();
List<TuttiLocation> stratas =
- persistenceService.getAllFishingOperationStrata(zoneId);
+ Lists.newArrayList(persistenceService.getAllFishingOperationStrata(zoneId));
List<TuttiLocation> subStratas =
- persistenceService.getAllFishingOperationSubStrata(zoneId, strataId);
+ Lists.newArrayList(persistenceService.getAllFishingOperationSubStrata(zoneId, strataId));
List<TuttiLocation> locations =
- persistenceService.getAllFishingOperationLocation(zoneId, strataId, substrataId);
+ Lists.newArrayList(persistenceService.getAllFishingOperationLocation(zoneId, strataId, substrataId));
initBeanFilterableComboBox(ui.getStrataComboBox(), stratas, strata);
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/create/CreateAccidentalBatchUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/create/CreateAccidentalBatchUIHandler.java 2013-04-19 08:39:39 UTC (rev 829)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/create/CreateAccidentalBatchUIHandler.java 2013-04-19 12:22:49 UTC (rev 830)
@@ -22,6 +22,7 @@
* #L%
*/
+import com.google.common.collect.Lists;
import fr.ifremer.tutti.persistence.entities.referential.Species;
import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUI;
import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUIHandler;
@@ -71,19 +72,19 @@
initUI(ui);
initBeanFilterableComboBox(ui.getAccidentalSpeciesComboBox(),
- getDataContext().getReferentSpecies(),
+ Lists.newArrayList(getDataContext().getReferentSpecies()),
null);
initBeanFilterableComboBox(ui.getAccidentalGenderComboBox(),
- getDataContext().getGenderValues(),
+ Lists.newArrayList(getDataContext().getGenderValues()),
null);
initBeanFilterableComboBox(ui.getAccidentalLengthStepCaracteristicComboBox(),
- getDataContext().getLengthStepCaracteristics(),
+ Lists.newArrayList(getDataContext().getLengthStepCaracteristics()),
null);
initBeanFilterableComboBox(ui.getAccidentalDeadOrAliveComboBox(),
- getDataContext().getDeadOrAliveValues(),
+ Lists.newArrayList(getDataContext().getDeadOrAliveValues()),
null);
listenValidatorValid(ui.getValidator(), getModel());
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-04-19 08:39:39 UTC (rev 829)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/create/CreateBenthosBatchUIHandler.java 2013-04-19 12:22:49 UTC (rev 830)
@@ -102,7 +102,7 @@
persistenceService.getSortedUnsortedCaracteristic();
initBeanFilterableComboBox(ui.getSortedUnsortedCategoryComboBox(),
- caracteristic.getQualitativeValue(),
+ Lists.newArrayList(caracteristic.getQualitativeValue()),
null);
getModel().addPropertyChangeListener(CreateBenthosBatchUIModel.PROPERTY_SPECIES, new PropertyChangeListener() {
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/CreateIndividualObservationBatchUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/CreateIndividualObservationBatchUIHandler.java 2013-04-19 08:39:39 UTC (rev 829)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/CreateIndividualObservationBatchUIHandler.java 2013-04-19 12:22:49 UTC (rev 830)
@@ -23,6 +23,7 @@
*/
import com.google.common.base.Preconditions;
+import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import fr.ifremer.tutti.persistence.entities.TuttiEntities;
import fr.ifremer.tutti.persistence.entities.data.IndividualObservationBatch;
@@ -82,12 +83,12 @@
initUI(ui);
initBeanFilterableComboBox(ui.getIndividualObservationSpeciesComboBox(),
- getDataContext().getReferentSpeciesWithSurveyCode(),
+ Lists.newArrayList(getDataContext().getReferentSpeciesWithSurveyCode()),
null);
List<Caracteristic> lengthStepCaracteristics = getDataContext().getLengthStepCaracteristics();
initBeanFilterableComboBox(ui.getIndividualObservationLengthStepCaracteristicComboBox(),
- lengthStepCaracteristics,
+ Lists.newArrayList(lengthStepCaracteristics),
null);
if (context.isProtocolFilled()) {
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/create/CreateMarineLitterBatchUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/create/CreateMarineLitterBatchUIHandler.java 2013-04-19 08:39:39 UTC (rev 829)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/create/CreateMarineLitterBatchUIHandler.java 2013-04-19 12:22:49 UTC (rev 830)
@@ -24,6 +24,7 @@
* #L%
*/
+import com.google.common.collect.Lists;
import com.google.common.collect.Multimap;
import fr.ifremer.tutti.persistence.TuttiPersistence;
import fr.ifremer.tutti.persistence.entities.referential.Caracteristic;
@@ -83,14 +84,14 @@
Caracteristic marineLitterCategoryCaracteristic =
persistenceService.getMarineLitterCategoryCaracteristic();
initBeanFilterableComboBox(ui.getMarineLitterCategoryComboBox(),
- marineLitterCategoryCaracteristic.getQualitativeValue(),
+ Lists.newArrayList(marineLitterCategoryCaracteristic.getQualitativeValue()),
null);
Caracteristic marineLitterSizeCategoryCaracteristic =
persistenceService.getMarineLitterSizeCategoryCaracteristic();
initBeanFilterableComboBox(ui.getMarineLitterSizeCategoryComboBox(),
- marineLitterSizeCategoryCaracteristic.getQualitativeValue(),
+ Lists.newArrayList(marineLitterSizeCategoryCaracteristic.getQualitativeValue()),
null);
listenValidatorValid(ui.getValidator(), getModel());
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUIHandler.java 2013-04-19 08:39:39 UTC (rev 829)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUIHandler.java 2013-04-19 12:22:49 UTC (rev 830)
@@ -24,6 +24,7 @@
* #L%
*/
+import com.google.common.collect.Lists;
import fr.ifremer.tutti.persistence.entities.data.Program;
import fr.ifremer.tutti.service.PersistenceService;
import fr.ifremer.tutti.ui.swing.util.AbstractTuttiUIHandler;
@@ -108,7 +109,7 @@
EditProgramUIModel model = getModel();
initBeanFilterableComboBox(ui.getZoneComboBox(),
- persistenceService.getAllProgramZone(),
+ Lists.newArrayList(persistenceService.getAllProgramZone()),
model.getZone());
SwingValidator validator = ui.getValidator();
1
0
r829 - in trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches: . accidental individualobservation
by kmorin@users.forge.codelutin.com 19 Apr '13
by kmorin@users.forge.codelutin.com 19 Apr '13
19 Apr '13
Author: kmorin
Date: 2013-04-19 10:39:39 +0200 (Fri, 19 Apr 2013)
New Revision: 829
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/829
Log:
- refs #1866 [CAPTURE] - Captures accidentelles (validation)
- refs #1867 [CAPTURE] - Observations individuelles (validation)
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/accidental/AccidentalBatchUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchUI.jaxx
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchUIModel.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/IndividualObservationBatchUI.jaxx
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
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-04-19 07:29:27 UTC (rev 828)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.css 2013-04-19 08:39:39 UTC (rev 829)
@@ -72,14 +72,6 @@
rightDecoration: {marineLitterTabContent.getMarineLitterBatchTabToolBar()};
}
-#accidentalTabFishingOperationReminderLabel {
- rightDecoration: {accidentalTabContent.getAccidentalBatchTabToolBar()};
-}
-
-#individualObservationTabFishingOperationReminderLabel {
- rightDecoration: {individualObservationTabContent.getIndividualObservationBatchTabToolBar()};
-}
-
#catchTable {
border: {BorderFactory.createTitledBorder(_("tutti.editCatchBatch.legend.total"))};
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchUI.css 2013-04-19 07:29:27 UTC (rev 828)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchUI.css 2013-04-19 08:39:39 UTC (rev 829)
@@ -33,16 +33,6 @@
_help: {"tuttihelp.editAccidentalBatch.help"};
}
-#accidentalBatchTabToolBar {
- floatable: false;
- opaque: false;
- borderPainted: false;
-}
-
-#accidentalBatchAttachmentsButton {
- enabled: {model.getObjectId() != null};
-}
-
#tablePopup {
label: "tutti.editAccidentalBatch.title.batchActions";
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchUI.jaxx 2013-04-19 07:29:27 UTC (rev 828)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchUI.jaxx 2013-04-19 08:39:39 UTC (rev 829)
@@ -68,11 +68,6 @@
<TuttiHelpBroker id='broker'
constructorParams='"tuttihelp.editAccidentalBatch.help"'/>
- <JToolBar id='accidentalBatchTabToolBar'>
- <ButtonAttachment id='accidentalBatchAttachmentsButton'
- constructorParams='getHandler().getContext(), getModel()'/>
- </JToolBar>
-
<JPopupMenu id='tablePopup'>
<JMenuItem id='removeAccidentalBatchMenu'/>
</JPopupMenu>
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchUIHandler.java 2013-04-19 07:29:27 UTC (rev 828)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchUIHandler.java 2013-04-19 08:39:39 UTC (rev 829)
@@ -26,9 +26,7 @@
import com.google.common.collect.Lists;
import fr.ifremer.tutti.persistence.entities.TuttiEntities;
-import fr.ifremer.tutti.persistence.entities.data.AccidentalBatch;
-import fr.ifremer.tutti.persistence.entities.data.Attachment;
-import fr.ifremer.tutti.persistence.entities.data.FishingOperation;
+import fr.ifremer.tutti.persistence.entities.data.*;
import fr.ifremer.tutti.persistence.entities.referential.Caracteristic;
import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValue;
import fr.ifremer.tutti.persistence.entities.referential.Species;
@@ -40,6 +38,7 @@
import fr.ifremer.tutti.ui.swing.content.operation.catches.accidental.create.CreateAccidentalBatchUI;
import fr.ifremer.tutti.ui.swing.content.operation.catches.accidental.create.CreateAccidentalBatchUIModel;
import fr.ifremer.tutti.ui.swing.content.operation.catches.individualobservation.IndividualObservationBatchTableModel;
+import fr.ifremer.tutti.ui.swing.content.operation.catches.marinelitter.MarineLitterBatchRowModel;
import fr.ifremer.tutti.ui.swing.util.TuttiBeanMonitor;
import fr.ifremer.tutti.ui.swing.util.TuttiUI;
import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil;
@@ -118,12 +117,23 @@
}
rows = Lists.newArrayList();
+ if (!TuttiEntities.isNew(bean)) {
+
+ // get all marine litter root
+ List<AccidentalBatch> batches =
+ persistenceService.getAllAccidentalBatch(bean.getId());
+
+ for (AccidentalBatch aBatch : batches) {
+ AccidentalBatchRowModel entry = loadBatch(aBatch);
+ rows.add(entry);
+ }
+ }
}
model.setRows(rows);
recomputeBatchActionEnable();
}
- protected AccidentalBatchRowModel loadBatch(AccidentalBatchRowModel aBatch) {
+ protected AccidentalBatchRowModel loadBatch(AccidentalBatch aBatch) {
Integer id = aBatch.getIdAsInt();
@@ -391,7 +401,6 @@
if (log.isDebugEnabled()) {
log.debug("closing: " + ui);
}
- ui.getAccidentalBatchAttachmentsButton().onCloseUI();
}
@Override
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchUIModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchUIModel.java 2013-04-19 07:29:27 UTC (rev 828)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchUIModel.java 2013-04-19 08:39:39 UTC (rev 829)
@@ -41,19 +41,15 @@
* @since 0.2
*/
public class AccidentalBatchUIModel extends AbstractTuttiBatchUIModel<AccidentalBatchRowModel, AccidentalBatchUIModel>
- implements AttachmentModelAware, TabContentModel {
+ implements TabContentModel {
private static final long serialVersionUID = 1L;
public static final String PROPERTY_REMOVE_BATCH_ENABLED = "removeBatchEnabled";
- protected final List<Attachment> attachment = Lists.newArrayList();
-
/** Can user remove a selected batch? */
protected boolean removeBatchEnabled;
- private String rootBatchId;
-
public AccidentalBatchUIModel(EditCatchesUIModel catchesUIModel) {
super(catchesUIModel);
}
@@ -68,67 +64,14 @@
firePropertyChange(PROPERTY_REMOVE_BATCH_ENABLED, oldValue, removeBatchEnabled);
}
- public void setRootBatchId(String rootBatchId) {
- String oldValue = getObjectId();
- this.rootBatchId = rootBatchId;
- firePropertyChange(PROPERTY_OBJECT_ID, oldValue, getObjectId());
- }
-
- public String getRootBatchId() {
- return rootBatchId;
- }
-
//------------------------------------------------------------------------//
- //-- AttachmentModelAware --//
- //------------------------------------------------------------------------//
-
- @Override
- public AttachementObjectTypeEnum getObjectType() {
- return AttachementObjectTypeEnum.CATCH_BATCH;
- }
-
- @Override
- public String getObjectId() {
- return rootBatchId;
- }
-
- @Override
- public List<Attachment> getAttachment() {
- return attachment;
- }
-
- @Override
- public void addAllAttachment(Collection<Attachment> attachments) {
- this.attachment.addAll(attachments);
- firePropertyChange(PROPERTY_ATTACHMENT, null, getAttachment());
- }
-
- @Override
- public void addAttachment(Attachment attachment) {
- this.attachment.add(attachment);
- firePropertyChange(PROPERTY_ATTACHMENT, null, getAttachment());
- }
-
- @Override
- public void removeAllAttachment(Collection<Attachment> attachments) {
- this.attachment.removeAll(attachments);
- firePropertyChange(PROPERTY_ATTACHMENT, null, getAttachment());
- }
-
- @Override
- public void removeAttachment(Attachment attachment) {
- this.attachment.remove(attachment);
- firePropertyChange(PROPERTY_ATTACHMENT, null, getAttachment());
- }
-
- //------------------------------------------------------------------------//
//-- TabContentModel --//
//------------------------------------------------------------------------//
@Override
public boolean isEmpty() {
- boolean result = CollectionUtils.isEmpty(getAttachment());
- if (result && CollectionUtils.isNotEmpty(getRows())) {
+ boolean result = true;
+ if (CollectionUtils.isNotEmpty(getRows())) {
// check if every line is not valid
for (AccidentalBatchRowModel row : rows) {
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-04-19 07:29:27 UTC (rev 828)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUI.css 2013-04-19 08:39:39 UTC (rev 829)
@@ -26,16 +26,6 @@
_help: {"tuttihelp.editIndividualObservationBatch.help"};
}
-#individualObservationBatchTabToolBar {
- floatable: false;
- opaque: false;
- borderPainted: false;
-}
-
-#individualObservationBatchAttachmentsButton {
- enabled: {model.getObjectId() != null};
-}
-
#tablePopup {
label: "tutti.editIndividualObservationBatch.title.batchActions";
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUI.jaxx 2013-04-19 07:29:27 UTC (rev 828)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUI.jaxx 2013-04-19 08:39:39 UTC (rev 829)
@@ -67,11 +67,6 @@
<TuttiHelpBroker id='broker'
constructorParams='"tuttihelp.editIndividualObservationBatch.help"'/>
- <JToolBar id='individualObservationBatchTabToolBar'>
- <ButtonAttachment id='individualObservationBatchAttachmentsButton'
- constructorParams='getHandler().getContext(), getModel()'/>
- </JToolBar>
-
<JPopupMenu id='tablePopup'>
<JMenuItem id='removeIndividualObservationBatchMenu'/>
</JPopupMenu>
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUIHandler.java 2013-04-19 07:29:27 UTC (rev 828)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUIHandler.java 2013-04-19 08:39:39 UTC (rev 829)
@@ -25,6 +25,7 @@
import com.google.common.collect.Lists;
import fr.ifremer.tutti.PropagatePropertyChangeListener;
import fr.ifremer.tutti.persistence.entities.TuttiEntities;
+import fr.ifremer.tutti.persistence.entities.data.AccidentalBatch;
import fr.ifremer.tutti.persistence.entities.data.Attachment;
import fr.ifremer.tutti.persistence.entities.data.FishingOperation;
import fr.ifremer.tutti.persistence.entities.data.IndividualObservationBatch;
@@ -35,6 +36,7 @@
import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUI;
import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUIHandler;
import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUIModel;
+import fr.ifremer.tutti.ui.swing.content.operation.catches.accidental.AccidentalBatchRowModel;
import fr.ifremer.tutti.ui.swing.content.operation.catches.individualobservation.create.CreateIndividualObservationBatchUI;
import fr.ifremer.tutti.ui.swing.content.operation.catches.individualobservation.create.CreateIndividualObservationBatchUIModel;
import fr.ifremer.tutti.ui.swing.util.TuttiBeanMonitor;
@@ -114,9 +116,13 @@
}
rows = Lists.newArrayList();
-// if (!TuttiEntities.isNew(bean)) {
-//
-// }
+ List<IndividualObservationBatch> batches =
+ persistenceService.getAllIndividualObservationBatch(bean.getId());
+
+ for (IndividualObservationBatch aBatch : batches) {
+ IndividualObservationBatchRowModel entry = loadBatch(aBatch);
+ rows.add(entry);
+ }
}
model.setRows(rows);
recomputeBatchActionEnable();
@@ -390,7 +396,6 @@
if (log.isDebugEnabled()) {
log.debug("closing: " + ui);
}
- ui.getIndividualObservationBatchAttachmentsButton().onCloseUI();
}
@Override
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUIModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUIModel.java 2013-04-19 07:29:27 UTC (rev 828)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUIModel.java 2013-04-19 08:39:39 UTC (rev 829)
@@ -40,19 +40,15 @@
* @since 1.4
*/
public class IndividualObservationBatchUIModel extends AbstractTuttiBatchUIModel<IndividualObservationBatchRowModel, IndividualObservationBatchUIModel>
- implements AttachmentModelAware, TabContentModel {
+ implements TabContentModel {
private static final long serialVersionUID = 1L;
public static final String PROPERTY_REMOVE_BATCH_ENABLED = "removeBatchEnabled";
- protected final List<Attachment> attachment = Lists.newArrayList();
-
/** Can user remove a selected batch? */
protected boolean removeBatchEnabled;
- private String rootBatchId;
-
public IndividualObservationBatchUIModel(EditCatchesUIModel catchesUIModel) {
super(catchesUIModel);
}
@@ -67,16 +63,6 @@
firePropertyChange(PROPERTY_REMOVE_BATCH_ENABLED, oldValue, removeBatchEnabled);
}
- public void setRootBatchId(String rootBatchId) {
- String oldValue = getObjectId();
- this.rootBatchId = rootBatchId;
- firePropertyChange(PROPERTY_OBJECT_ID, oldValue, getObjectId());
- }
-
- public String getRootBatchId() {
- return rootBatchId;
- }
-
public Species getLastSpeciesUsed() {
Species result = null;
if (!rows.isEmpty()) {
@@ -86,56 +72,13 @@
}
//------------------------------------------------------------------------//
- //-- AttachmentModelAware --//
- //------------------------------------------------------------------------//
-
- @Override
- public AttachementObjectTypeEnum getObjectType() {
- return AttachementObjectTypeEnum.CATCH_BATCH;
- }
-
- @Override
- public String getObjectId() {
- return rootBatchId;
- }
-
- @Override
- public List<Attachment> getAttachment() {
- return attachment;
- }
-
- @Override
- public void addAllAttachment(Collection<Attachment> attachments) {
- this.attachment.addAll(attachments);
- firePropertyChange(PROPERTY_ATTACHMENT, null, getAttachment());
- }
-
- @Override
- public void addAttachment(Attachment attachment) {
- this.attachment.add(attachment);
- firePropertyChange(PROPERTY_ATTACHMENT, null, getAttachment());
- }
-
- @Override
- public void removeAllAttachment(Collection<Attachment> attachments) {
- this.attachment.removeAll(attachments);
- firePropertyChange(PROPERTY_ATTACHMENT, null, getAttachment());
- }
-
- @Override
- public void removeAttachment(Attachment attachment) {
- this.attachment.remove(attachment);
- firePropertyChange(PROPERTY_ATTACHMENT, null, getAttachment());
- }
-
- //------------------------------------------------------------------------//
//-- TabContentModel --//
//------------------------------------------------------------------------//
@Override
public boolean isEmpty() {
- boolean result = CollectionUtils.isEmpty(getAttachment());
- if (result && CollectionUtils.isNotEmpty(getRows())) {
+ boolean result = true;
+ if (CollectionUtils.isNotEmpty(getRows())) {
// check if every line is not valid
for (IndividualObservationBatchRowModel row : rows) {
1
0
19 Apr '13
Author: kmorin
Date: 2013-04-19 09:29:27 +0200 (Fri, 19 Apr 2013)
New Revision: 828
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/828
Log:
add missing icon
Added:
trunk/tutti-ui-swing/src/main/resources/icons/action-email.png
Added: trunk/tutti-ui-swing/src/main/resources/icons/action-email.png
===================================================================
(Binary files differ)
Property changes on: trunk/tutti-ui-swing/src/main/resources/icons/action-email.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
1
0
18 Apr '13
Author: tchemit
Date: 2013-04-18 21:11:54 +0200 (Thu, 18 Apr 2013)
New Revision: 827
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/827
Log:
reformat code, add license, ...
Modified:
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiUIContext.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/config/TuttiConfigUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseFishingOperationAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.jaxx
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/ValidateCruiseUI.jaxx
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/ValidateCruiseUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/ValidateCruiseUIModel.java
trunk/tutti-ui-swing/src/main/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.jaxx
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/SampleCategoryColumnIdentifier.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/benthos/BenthosBatchRowModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUI.jaxx
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/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
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/SelectSpeciesForIndividualObservationBatchAction.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/protocol/EditProtocolUI.jaxx
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/caracteristics/CaracteristicMapCellComponent.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/caracteristics/CaracteristicMapColumnRowModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/caracteristics/CaracteristicMapColumnUIHandler.java
trunk/tutti-ui-swing/src/main/resources/icons/error.png
trunk/tutti-ui-swing/src/main/resources/icons/fatal.png
trunk/tutti-ui-swing/src/main/resources/icons/info.png
trunk/tutti-ui-swing/src/main/resources/icons/warning.png
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiUIContext.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiUIContext.java 2013-04-18 19:07:23 UTC (rev 826)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiUIContext.java 2013-04-18 19:11:54 UTC (rev 827)
@@ -30,7 +30,12 @@
import fr.ifremer.tutti.TuttiIOUtil;
import fr.ifremer.tutti.TuttiTechnicalException;
import fr.ifremer.tutti.persistence.RessourceClassLoader;
-import fr.ifremer.tutti.service.*;
+import fr.ifremer.tutti.service.ClosedPersistenceService;
+import fr.ifremer.tutti.service.DecoratorService;
+import fr.ifremer.tutti.service.PersistenceService;
+import fr.ifremer.tutti.service.TuttiDataContext;
+import fr.ifremer.tutti.service.TuttiServiceContext;
+import fr.ifremer.tutti.service.ValidationService;
import fr.ifremer.tutti.service.catches.ExportCatchesReportService;
import fr.ifremer.tutti.service.catches.TuttiWeightComputingService;
import fr.ifremer.tutti.service.catches.ValidateCruiseOperationsService;
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-04-18 19:07:23 UTC (rev 826)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/config/TuttiConfigUIHandler.java 2013-04-18 19:11:54 UTC (rev 827)
@@ -34,7 +34,6 @@
import fr.ifremer.tutti.ui.swing.util.AbstractTuttiUIHandler;
import fr.ifremer.tutti.ui.swing.util.TuttiUI;
import fr.ifremer.tutti.ui.swing.util.action.TuttiActionHelper;
-import fr.ifremer.tutti.ui.swing.util.action.TuttiUIAction;
import fr.ifremer.tutti.ui.swing.util.editor.TuttiLocationTableCell;
import fr.ifremer.tutti.ui.swing.util.editor.VesselTableCell;
import jaxx.runtime.SwingUtil;
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseFishingOperationAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseFishingOperationAction.java 2013-04-18 19:07:23 UTC (rev 826)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseFishingOperationAction.java 2013-04-18 19:11:54 UTC (rev 827)
@@ -1,36 +1,34 @@
package fr.ifremer.tutti.ui.swing.content.cruise;
-import com.google.common.collect.Lists;
-import fr.ifremer.tutti.persistence.InvalidBatchModelException;
-import fr.ifremer.tutti.persistence.entities.TuttiBeanFactory;
-import fr.ifremer.tutti.persistence.entities.TuttiEntities;
-import fr.ifremer.tutti.persistence.entities.data.Attachment;
-import fr.ifremer.tutti.persistence.entities.data.CatchBatch;
-import fr.ifremer.tutti.persistence.entities.data.Cruise;
+/*
+ * #%L
+ * Tutti :: UI
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2012 - 2013 Ifremer
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/gpl-3.0.html>.
+ * #L%
+ */
+
import fr.ifremer.tutti.persistence.entities.data.FishingOperation;
-import fr.ifremer.tutti.persistence.entities.referential.Person;
-import fr.ifremer.tutti.persistence.entities.referential.TuttiLocation;
-import fr.ifremer.tutti.service.PersistenceService;
-import fr.ifremer.tutti.ui.swing.content.operation.*;
-import fr.ifremer.tutti.ui.swing.content.operation.catches.ComputeWeightsAction;
-import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUI;
-import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUIModel;
-import fr.ifremer.tutti.ui.swing.content.operation.catches.SaveCatchBatchAction;
-import fr.ifremer.tutti.ui.swing.content.operation.fishing.GearUseFeatureTabUI;
-import fr.ifremer.tutti.ui.swing.content.operation.fishing.VesselUseFeatureTabUI;
-import fr.ifremer.tutti.ui.swing.util.TuttiBeanMonitor;
import fr.ifremer.tutti.ui.swing.util.action.AbstractTuttiAction;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.nuiton.util.decorator.Decorator;
-import javax.swing.*;
-import java.awt.*;
-import java.beans.PropertyChangeEvent;
-import java.beans.PropertyChangeListener;
-import java.util.Collections;
-import java.util.List;
-
import static org.nuiton.i18n.I18n._;
/**
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.jaxx 2013-04-18 19:07:23 UTC (rev 826)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.jaxx 2013-04-18 19:11:54 UTC (rev 827)
@@ -62,7 +62,7 @@
]]></script>
<EditCruiseUIHandler id='handler'
- initializer='getContextValue(EditCruiseUIHandler.class)'/>
+ initializer='getContextValue(EditCruiseUIHandler.class)'/>
<EditCruiseUIModel id='model'
initializer='getContextValue(EditCruiseUIModel.class)'/>
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/ValidateCruiseUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/ValidateCruiseUI.jaxx 2013-04-18 19:07:23 UTC (rev 826)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/ValidateCruiseUI.jaxx 2013-04-18 19:11:54 UTC (rev 827)
@@ -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%
+ -->
<JSplitPane id='splitPane' decorator='help'
implements='fr.ifremer.tutti.ui.swing.util.TuttiUI<ValidateCruiseUIModel, ValidateCruiseUIHandler>'>
@@ -23,10 +46,10 @@
]]></script>
<ValidateCruiseUIHandler id='handler'
- initializer='getContextValue(ValidateCruiseUIHandler.class)'/>
+ initializer='getContextValue(ValidateCruiseUIHandler.class)'/>
<ValidateCruiseUIModel id='model'
- initializer='getContextValue(ValidateCruiseUIModel.class)'/>
+ initializer='getContextValue(ValidateCruiseUIModel.class)'/>
<TuttiHelpBroker id='broker'
constructorParams='"tutti.validateCruise.help"'/>
Property changes on: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/ValidateCruiseUI.jaxx
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/ValidateCruiseUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/ValidateCruiseUIHandler.java 2013-04-18 19:07:23 UTC (rev 826)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/ValidateCruiseUIHandler.java 2013-04-18 19:11:54 UTC (rev 827)
@@ -1,13 +1,34 @@
package fr.ifremer.tutti.ui.swing.content.cruise;
-import com.google.common.collect.ArrayListMultimap;
+/*
+ * #%L
+ * Tutti :: UI
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2012 - 2013 Ifremer
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/gpl-3.0.html>.
+ * #L%
+ */
+
import com.google.common.collect.LinkedListMultimap;
-import com.google.common.collect.Maps;
import com.google.common.collect.Multimap;
import fr.ifremer.tutti.persistence.entities.data.FishingOperation;
import fr.ifremer.tutti.service.PersistenceService;
import fr.ifremer.tutti.service.ValidationService;
-import fr.ifremer.tutti.ui.swing.TuttiUIContext;
import fr.ifremer.tutti.ui.swing.content.operation.FishingOperationsUI;
import fr.ifremer.tutti.ui.swing.util.AbstractTuttiUIHandler;
import fr.ifremer.tutti.ui.swing.util.CloseableUI;
@@ -18,17 +39,20 @@
import jaxx.runtime.validator.swing.SwingValidator;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.jdesktop.swingx.tree.TreeUtilities;
import org.nuiton.validator.NuitonValidatorResult;
import org.nuiton.validator.NuitonValidatorScope;
-import javax.swing.*;
-import javax.swing.tree.*;
-import java.awt.*;
+import javax.swing.JComponent;
+import javax.swing.JLabel;
+import javax.swing.JTree;
+import javax.swing.tree.DefaultMutableTreeNode;
+import javax.swing.tree.DefaultTreeCellRenderer;
+import javax.swing.tree.DefaultTreeModel;
+import javax.swing.tree.TreeModel;
+import java.awt.Component;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
-import java.util.*;
-import java.util.List;
+import java.util.Map;
import static org.nuiton.i18n.I18n._;
@@ -40,14 +64,10 @@
private final static Log log = LogFactory.getLog(ValidateCruiseUIHandler.class);
- /**
- * Persistence service.
- */
+ /** Persistence service. */
private final PersistenceService persistenceService;
- /**
- * Validation service.
- */
+ /** Validation service. */
private final ValidationService validationService;
protected EditCruiseFishingOperationAction editFishingOperationAction;
@@ -126,12 +146,12 @@
@Override
public SwingValidator<ValidateCruiseUIModel> getValidator() {
- return null; //To change body of implemented methods use File | Settings | File Templates.
+ return null;
}
@Override
protected JComponent getComponentToFocus() {
- return null; //To change body of implemented methods use File | Settings | File Templates.
+ return null;
}
@Override
@@ -141,6 +161,8 @@
protected class ValidationTreeCellRenderer extends DefaultTreeCellRenderer {
+ private static final long serialVersionUID = 1L;
+
@Override
public Component getTreeCellRendererComponent(JTree tree, Object value, boolean selected, boolean expanded, boolean leaf, int row, boolean hasFocus) {
JLabel label = (JLabel) super.getTreeCellRendererComponent(tree, value, selected, expanded, leaf, row, hasFocus);
@@ -163,15 +185,17 @@
protected class OperationTreeNode extends DefaultMutableTreeNode {
+ private static final long serialVersionUID = 1L;
+
public OperationTreeNode(FishingOperation operation,
- Multimap<NuitonValidatorScope, String> messages) {
+ Multimap<NuitonValidatorScope, String> messages) {
super(operation);
setAllowsChildren(messages != null);
createChildren(messages);
}
public void createChildren(Multimap<NuitonValidatorScope, String> messages) {
- for (NuitonValidatorScope scope: messages.keySet()) {
+ for (NuitonValidatorScope scope : messages.keySet()) {
for (String message : messages.get(scope)) {
MessageTreeNode child = new MessageTreeNode(scope, message);
this.add(child);
@@ -182,6 +206,8 @@
protected class MessageTreeNode extends DefaultMutableTreeNode {
+ private static final long serialVersionUID = 1L;
+
protected NuitonValidatorScope scope;
public MessageTreeNode(NuitonValidatorScope scope, String message) {
Property changes on: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/ValidateCruiseUIHandler.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/ValidateCruiseUIModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/ValidateCruiseUIModel.java 2013-04-18 19:07:23 UTC (rev 826)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/ValidateCruiseUIModel.java 2013-04-18 19:11:54 UTC (rev 827)
@@ -1,15 +1,40 @@
package fr.ifremer.tutti.ui.swing.content.cruise;
+/*
+ * #%L
+ * Tutti :: UI
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2012 - 2013 Ifremer
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/gpl-3.0.html>.
+ * #L%
+ */
+
import fr.ifremer.tutti.persistence.entities.CaracteristicMap;
-import fr.ifremer.tutti.persistence.entities.TuttiBeanFactory;
-import fr.ifremer.tutti.persistence.entities.data.*;
+import fr.ifremer.tutti.persistence.entities.data.AttachementObjectTypeEnum;
+import fr.ifremer.tutti.persistence.entities.data.Attachment;
+import fr.ifremer.tutti.persistence.entities.data.Cruise;
+import fr.ifremer.tutti.persistence.entities.data.FishingOperation;
import fr.ifremer.tutti.persistence.entities.referential.Gear;
import fr.ifremer.tutti.persistence.entities.referential.Person;
import fr.ifremer.tutti.persistence.entities.referential.TuttiLocation;
import fr.ifremer.tutti.persistence.entities.referential.Vessel;
import fr.ifremer.tutti.ui.swing.util.AbstractTuttiBeanUIModel;
import fr.ifremer.tutti.ui.swing.util.attachment.AttachmentModelAware;
-import org.nuiton.util.beans.Binder;
import java.util.Collection;
import java.util.Date;
@@ -20,7 +45,7 @@
* @since 1.4
*/
public class ValidateCruiseUIModel extends AbstractTuttiBeanUIModel<FishingOperation, ValidateCruiseUIModel>
- implements AttachmentModelAware, FishingOperation {
+ implements AttachmentModelAware, FishingOperation {
protected ValidateCruiseUIModel() {
super(FishingOperation.class, null, null);
Property changes on: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/ValidateCruiseUIModel.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/ComputeWeightsAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/ComputeWeightsAction.java 2013-04-18 19:07:23 UTC (rev 826)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/ComputeWeightsAction.java 2013-04-18 19:11:54 UTC (rev 827)
@@ -26,7 +26,6 @@
*/
import com.google.common.collect.Lists;
-import fr.ifremer.tutti.TuttiBusinessException;
import fr.ifremer.tutti.persistence.entities.data.BatchContainer;
import fr.ifremer.tutti.persistence.entities.data.BenthosBatch;
import fr.ifremer.tutti.persistence.entities.data.CatchBatch;
@@ -91,7 +90,7 @@
BatchContainer<MarineLitterBatch> computedMarineLitterBatches;
try {
computedMarineLitterBatches =
- tuttiWeightComputingService.getComputedMarineLitterBatches(model.getFishingOperation());
+ tuttiWeightComputingService.getComputedMarineLitterBatches(model.getFishingOperation());
} catch (TuttiWeightComputingException e) {
getUI().getTabPane().setSelectedIndex(3);
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.jaxx 2013-04-18 19:07:23 UTC (rev 826)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.jaxx 2013-04-18 19:11:54 UTC (rev 827)
@@ -411,10 +411,12 @@
id='individualObservationTabCreateBatch'
constructorParams='this'/>
</JXTitledPanel>
- <JXTitledPanel id='individualObservationCaracteristicMapEditorReminderLabel'
- constraints='EditCatchesUIHandler.EDIT_CARACTERISTICS_CARD'>
- <CaracteristicMapEditorUI id='individualObservationCaracteristicMapEditor'
- constructorParams='individualObservationTabContent'/>
+ <JXTitledPanel
+ id='individualObservationCaracteristicMapEditorReminderLabel'
+ constraints='EditCatchesUIHandler.EDIT_CARACTERISTICS_CARD'>
+ <CaracteristicMapEditorUI
+ id='individualObservationCaracteristicMapEditor'
+ constructorParams='individualObservationTabContent'/>
</JXTitledPanel>
</JPanel>
</tab>
@@ -433,7 +435,7 @@
<JButton id='saveButton'/>
</cell>
<cell weightx="1">
- <JButton id='computeSpeciesBatchButton'/>
+ <JButton id='computeSpeciesBatchButton'/>
</cell>
</row>
</Table>
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/SampleCategoryColumnIdentifier.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/SampleCategoryColumnIdentifier.java 2013-04-18 19:07:23 UTC (rev 826)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/SampleCategoryColumnIdentifier.java 2013-04-18 19:11:54 UTC (rev 827)
@@ -56,7 +56,7 @@
String weightPropertyName,
SampleCategoryEnum sampleCategoryType,
String headerI18nKey,
- String headerTipI18nKey ) {
+ String headerTipI18nKey) {
super(propertyName, headerI18nKey, headerTipI18nKey);
this.weightPropertyName = weightPropertyName;
this.sampleCategoryType = sampleCategoryType;
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-04-18 19:07:23 UTC (rev 826)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchTableModel.java 2013-04-18 19:11:54 UTC (rev 827)
@@ -24,7 +24,6 @@
* #L%
*/
-import fr.ifremer.tutti.ui.swing.content.operation.catches.benthos.BenthosBatchRowModel;
import fr.ifremer.tutti.ui.swing.content.operation.catches.individualobservation.IndividualObservationBatchRowModel;
import fr.ifremer.tutti.ui.swing.util.table.AbstractTuttiTableModel;
import fr.ifremer.tutti.ui.swing.util.table.ColumnIdentifier;
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchUIHandler.java 2013-04-18 19:07:23 UTC (rev 826)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchUIHandler.java 2013-04-18 19:11:54 UTC (rev 827)
@@ -75,8 +75,8 @@
* @since 0.2
*/
public class AccidentalBatchUIHandler
- extends AbstractTuttiBatchTableUIHandler<AccidentalBatchRowModel, AccidentalBatchUIModel, AccidentalBatchUI>
- implements CaracteristicMapColumnUIHandler {
+ extends AbstractTuttiBatchTableUIHandler<AccidentalBatchRowModel, AccidentalBatchUIModel, AccidentalBatchUI>
+ implements CaracteristicMapColumnUIHandler {
/** Logger. */
private static final Log log =
@@ -347,9 +347,9 @@
{ // Other caracteristics column
addColumnToModel(columnModel,
- CaracteristicMapCellComponent.newEditor(ui),
- CaracteristicMapCellComponent.newRender(getContext()),
- IndividualObservationBatchTableModel.OTHER_CARACTERISTICS);
+ CaracteristicMapCellComponent.newEditor(ui),
+ CaracteristicMapCellComponent.newRender(getContext()),
+ IndividualObservationBatchTableModel.OTHER_CARACTERISTICS);
}
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-04-18 19:07:23 UTC (rev 826)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchRowModel.java 2013-04-18 19:11:54 UTC (rev 827)
@@ -855,14 +855,14 @@
}
}
- public BenthosBatchRowModel getFirstAncestor( SampleCategory<?> entrySampleCategory) {
+ public BenthosBatchRowModel getFirstAncestor(SampleCategory<?> entrySampleCategory) {
BenthosBatchRowModel result = this;
if (getParentBatch() != null) {
BenthosBatchRowModel parentBatch = getParentBatch();
SampleCategory<?> parentSampleCategory = parentBatch.getSampleCategory(entrySampleCategory.getCategoryType());
if (ObjectUtils.equals(entrySampleCategory, parentSampleCategory)) {
- result = parentBatch.getFirstAncestor( entrySampleCategory);
+ result = parentBatch.getFirstAncestor(entrySampleCategory);
}
}
return result;
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUI.jaxx 2013-04-18 19:07:23 UTC (rev 826)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUI.jaxx 2013-04-18 19:11:54 UTC (rev 827)
@@ -82,7 +82,7 @@
<JPanel layout='{new GridLayout(1,0)}'
constraints='BorderLayout.WEST'>
<JButton id='createIndividualObservationBatchButton'
- onActionPerformed='handler.createBatch()' />
+ onActionPerformed='handler.createBatch()'/>
</JPanel>
</JPanel>
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUIHandler.java 2013-04-18 19:07:23 UTC (rev 826)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUIHandler.java 2013-04-18 19:11:54 UTC (rev 827)
@@ -35,7 +35,6 @@
import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUI;
import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUIHandler;
import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUIModel;
-import fr.ifremer.tutti.ui.swing.util.caracteristics.CaracteristicMapCellComponent;
import fr.ifremer.tutti.ui.swing.content.operation.catches.individualobservation.create.CreateIndividualObservationBatchUI;
import fr.ifremer.tutti.ui.swing.content.operation.catches.individualobservation.create.CreateIndividualObservationBatchUIModel;
import fr.ifremer.tutti.ui.swing.util.TuttiBeanMonitor;
@@ -43,6 +42,7 @@
import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil;
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;
import fr.ifremer.tutti.ui.swing.util.caracteristics.CaracteristicMapColumnUIHandler;
import fr.ifremer.tutti.ui.swing.util.caracteristics.CaracteristicMapEditorUI;
import fr.ifremer.tutti.ui.swing.util.comment.CommentCellEditor;
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/CreateIndividualObservationBatchUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/CreateIndividualObservationBatchUIHandler.java 2013-04-18 19:07:23 UTC (rev 826)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/CreateIndividualObservationBatchUIHandler.java 2013-04-18 19:11:54 UTC (rev 827)
@@ -23,15 +23,12 @@
*/
import com.google.common.base.Preconditions;
-import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
-import com.google.common.collect.Multimap;
import fr.ifremer.tutti.persistence.entities.TuttiEntities;
import fr.ifremer.tutti.persistence.entities.data.IndividualObservationBatch;
import fr.ifremer.tutti.persistence.entities.protocol.SpeciesProtocol;
import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol;
import fr.ifremer.tutti.persistence.entities.referential.Caracteristic;
-import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValue;
import fr.ifremer.tutti.persistence.entities.referential.Species;
import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUI;
import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUIHandler;
@@ -98,7 +95,7 @@
// get loaded protocol
TuttiProtocol protocol = getDataContext().getProtocol();
Preconditions.checkNotNull(protocol,
- "Could not find protocol in ui context");
+ "Could not find protocol in ui context");
final Map<Integer, SpeciesProtocol> speciesProtocolMap = Maps.newHashMap();
for (SpeciesProtocol sp : protocol.getSpecies()) {
@@ -108,20 +105,20 @@
final Map<String, Caracteristic> lengthStepCaracteristicMap = TuttiEntities.splitById(lengthStepCaracteristics);
getModel().addPropertyChangeListener(IndividualObservationBatch.PROPERTY_SPECIES,
- new PropertyChangeListener() {
- @Override
- public void propertyChange(PropertyChangeEvent evt) {
- Species species = (Species) evt.getNewValue();
- if (species != null) {
- SpeciesProtocol speciesProtocol = speciesProtocolMap.get(species.getReferenceTaxonId());
- if (speciesProtocol != null) {
- String lengthStepPmfmId = speciesProtocol.getLengthStepPmfmId();
- Caracteristic lengthStepCaracteristic = lengthStepCaracteristicMap.get(lengthStepPmfmId);
- getModel().setLengthStepCaracteristic(lengthStepCaracteristic);
- }
- }
- }
- });
+ new PropertyChangeListener() {
+ @Override
+ public void propertyChange(PropertyChangeEvent evt) {
+ Species species = (Species) evt.getNewValue();
+ if (species != null) {
+ SpeciesProtocol speciesProtocol = speciesProtocolMap.get(species.getReferenceTaxonId());
+ if (speciesProtocol != null) {
+ String lengthStepPmfmId = speciesProtocol.getLengthStepPmfmId();
+ Caracteristic lengthStepCaracteristic = lengthStepCaracteristicMap.get(lengthStepPmfmId);
+ getModel().setLengthStepCaracteristic(lengthStepCaracteristic);
+ }
+ }
+ }
+ });
}
listenValidatorValid(ui.getValidator(), getModel());
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/CreateIndividualObservationBatchUIModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/CreateIndividualObservationBatchUIModel.java 2013-04-18 19:07:23 UTC (rev 826)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/CreateIndividualObservationBatchUIModel.java 2013-04-18 19:11:54 UTC (rev 827)
@@ -22,11 +22,9 @@
* #L%
*/
-import com.google.common.collect.Multimap;
import fr.ifremer.tutti.persistence.entities.TuttiBeanFactory;
import fr.ifremer.tutti.persistence.entities.data.IndividualObservationBatch;
import fr.ifremer.tutti.persistence.entities.referential.Caracteristic;
-import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValue;
import fr.ifremer.tutti.persistence.entities.referential.Species;
import fr.ifremer.tutti.ui.swing.util.AbstractTuttiBeanUIModel;
import org.apache.commons.logging.Log;
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/SelectSpeciesForIndividualObservationBatchAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/SelectSpeciesForIndividualObservationBatchAction.java 2013-04-18 19:07:23 UTC (rev 826)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/SelectSpeciesForIndividualObservationBatchAction.java 2013-04-18 19:11:54 UTC (rev 827)
@@ -42,8 +42,8 @@
* @since 2.0
*/
public class SelectSpeciesForIndividualObservationBatchAction extends AbstractTuttiAction<CreateIndividualObservationBatchUIModel,
- CreateIndividualObservationBatchUI,
- CreateIndividualObservationBatchUIHandler> {
+ CreateIndividualObservationBatchUI,
+ CreateIndividualObservationBatchUIHandler> {
protected List<Species> allSpecies;
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-04-18 19:07:23 UTC (rev 826)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchRowModel.java 2013-04-18 19:11:54 UTC (rev 827)
@@ -814,14 +814,14 @@
}
}
- public SpeciesBatchRowModel getFirstAncestor( SampleCategory<?> entrySampleCategory) {
+ public SpeciesBatchRowModel getFirstAncestor(SampleCategory<?> entrySampleCategory) {
SpeciesBatchRowModel result = this;
if (getParentBatch() != null) {
SpeciesBatchRowModel parentBatch = getParentBatch();
SampleCategory<?> parentSampleCategory = parentBatch.getSampleCategory(entrySampleCategory.getCategoryType());
if (ObjectUtils.equals(entrySampleCategory, parentSampleCategory)) {
- result = parentBatch.getFirstAncestor( entrySampleCategory);
+ result = parentBatch.getFirstAncestor(entrySampleCategory);
}
}
return result;
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUI.jaxx 2013-04-18 19:07:23 UTC (rev 826)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUI.jaxx 2013-04-18 19:11:54 UTC (rev 827)
@@ -208,10 +208,10 @@
</JPanel>
</tab>
<!--<tab title='tutti.editProtocol.tab.plankton' enabled='false'>-->
- <!--<JLabel text='tutti.to.be.done' horizontalAlignment="{JLabel.CENTER}"/>-->
+ <!--<JLabel text='tutti.to.be.done' horizontalAlignment="{JLabel.CENTER}"/>-->
<!--</tab>-->
<!--<tab title='tutti.editProtocol.tab.accidental' enabled='false'>-->
- <!--<JLabel text='tutti.to.be.done' horizontalAlignment="{JLabel.CENTER}"/>-->
+ <!--<JLabel text='tutti.to.be.done' horizontalAlignment="{JLabel.CENTER}"/>-->
<!--</tab>-->
</JTabbedPane>
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-04-18 19:07:23 UTC (rev 826)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiUIHandler.java 2013-04-18 19:11:54 UTC (rev 827)
@@ -86,12 +86,23 @@
import javax.swing.ScrollPaneConstants;
import javax.swing.SwingUtilities;
import javax.swing.border.LineBorder;
-import javax.swing.event.*;
+import javax.swing.event.ChangeEvent;
+import javax.swing.event.ChangeListener;
+import javax.swing.event.ListSelectionEvent;
+import javax.swing.event.TableModelEvent;
+import javax.swing.event.TableModelListener;
import javax.swing.table.TableCellEditor;
import javax.swing.table.TableCellRenderer;
import javax.swing.table.TableColumnModel;
import javax.swing.text.JTextComponent;
-import java.awt.*;
+import java.awt.Color;
+import java.awt.Component;
+import java.awt.Dialog;
+import java.awt.Dimension;
+import java.awt.Font;
+import java.awt.Frame;
+import java.awt.Point;
+import java.awt.Rectangle;
import java.awt.event.ActionEvent;
import java.awt.event.FocusAdapter;
import java.awt.event.FocusEvent;
@@ -1004,10 +1015,10 @@
Rectangle r = source.getCellRect(lowestRow, source.getSelectedColumn(), true);
// get the point in the middle lower of the cell
- Point p = new Point(r.x + r.width/2, r.y + r.height);
+ Point p = new Point(r.x + r.width / 2, r.y + r.height);
if (log.isDebugEnabled()) {
- log.debug("Row " + lowestRow +" found t point [" + p + "]");
+ log.debug("Row " + lowestRow + " found t point [" + p + "]");
}
boolean canContinue = true;
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-04-18 19:07:23 UTC (rev 826)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/caracteristics/CaracteristicMapCellComponent.java 2013-04-18 19:11:54 UTC (rev 827)
@@ -27,12 +27,9 @@
import fr.ifremer.tutti.persistence.entities.referential.Caracteristic;
import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValue;
import fr.ifremer.tutti.ui.swing.TuttiUIContext;
-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.util.TuttiUI;
import fr.ifremer.tutti.ui.swing.util.table.AbstractSelectTableAction;
import fr.ifremer.tutti.ui.swing.util.table.AbstractTuttiTableModel;
-import fr.ifremer.tutti.ui.swing.util.table.ColumnIdentifier;
import jaxx.runtime.SwingUtil;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/caracteristics/CaracteristicMapColumnRowModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/caracteristics/CaracteristicMapColumnRowModel.java 2013-04-18 19:07:23 UTC (rev 826)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/caracteristics/CaracteristicMapColumnRowModel.java 2013-04-18 19:11:54 UTC (rev 827)
@@ -1,12 +1,34 @@
package fr.ifremer.tutti.ui.swing.util.caracteristics;
+/*
+ * #%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.CaracteristicMap;
import java.io.Serializable;
-/**
- * @author kmorin <kmorin(a)codelutin.com>
- */
+/** @author kmorin <kmorin(a)codelutin.com> */
public interface CaracteristicMapColumnRowModel extends Serializable {
CaracteristicMap getCaracteristics();
Property changes on: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/caracteristics/CaracteristicMapColumnRowModel.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/caracteristics/CaracteristicMapColumnUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/caracteristics/CaracteristicMapColumnUIHandler.java 2013-04-18 19:07:23 UTC (rev 826)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/caracteristics/CaracteristicMapColumnUIHandler.java 2013-04-18 19:11:54 UTC (rev 827)
@@ -1,5 +1,29 @@
package fr.ifremer.tutti.ui.swing.util.caracteristics;
+/*
+ * #%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%
+ */
+
/**
* @author kmorin <kmorin(a)codelutin.com>
* @since 2.0
Property changes on: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/caracteristics/CaracteristicMapColumnUIHandler.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Property changes on: trunk/tutti-ui-swing/src/main/resources/icons/error.png
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/tutti-ui-swing/src/main/resources/icons/fatal.png
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/tutti-ui-swing/src/main/resources/icons/info.png
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/tutti-ui-swing/src/main/resources/icons/warning.png
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
1
0
r826 - in trunk/tutti-service/src/main/java/fr/ifremer/tutti/service: . catches
by tchemit@users.forge.codelutin.com 18 Apr '13
by tchemit@users.forge.codelutin.com 18 Apr '13
18 Apr '13
Author: tchemit
Date: 2013-04-18 21:07:23 +0200 (Thu, 18 Apr 2013)
New Revision: 826
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/826
Log:
reformat code, add license, ...
Modified:
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/TuttiWeightComputingException.java
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/TuttiWeightComputingService.java
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/ValidateCruiseOperationsService.java
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-04-18 18:58:30 UTC (rev 825)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java 2013-04-18 19:07:23 UTC (rev 826)
@@ -319,7 +319,7 @@
public List<Species> getAllReferentSpecies(TuttiProtocol protocol) {
return driver.getAllReferentSpecies(protocol);
}
-
+
@Override
public Species getSpeciesByReferenceTaxonIdWithVernacularCode(Integer referenceTaxonId) {
return driver.getSpeciesByReferenceTaxonIdWithVernacularCode(referenceTaxonId);
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/TuttiWeightComputingException.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/TuttiWeightComputingException.java 2013-04-18 18:58:30 UTC (rev 825)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/TuttiWeightComputingException.java 2013-04-18 19:07:23 UTC (rev 826)
@@ -1,12 +1,39 @@
package fr.ifremer.tutti.service.catches;
+/*
+ * #%L
+ * Tutti :: Service
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2012 - 2013 Ifremer
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/gpl-3.0.html>.
+ * #L%
+ */
+
import fr.ifremer.tutti.TuttiBusinessException;
/**
* @author kmorin <kmorin(a)codelutin.com>
+ * @since 1.5
*/
public class TuttiWeightComputingException extends TuttiBusinessException {
+ private static final long serialVersionUID = 1L;
+
public enum CatchType {
SPECIES, BENTHOS, MARINE_LITTER
}
Property changes on: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/TuttiWeightComputingException.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/TuttiWeightComputingService.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/TuttiWeightComputingService.java 2013-04-18 18:58:30 UTC (rev 825)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/TuttiWeightComputingService.java 2013-04-18 19:07:23 UTC (rev 826)
@@ -190,9 +190,9 @@
try {
if (catchBatch != null) {
computeCatchBatchWeights(catchBatch,
- rootSpeciesBatch,
- rootBenthosBatch,
- rootMarineLitterBatch);
+ rootSpeciesBatch,
+ rootBenthosBatch,
+ rootMarineLitterBatch);
}
} catch (TuttiBusinessException e) {
result.add(e.getMessage());
@@ -480,9 +480,9 @@
// weight, then set the weight of the sample
if (frequencyWeight > categoryWeight) {
throw new TuttiWeightComputingException(_
- ("tutti.service.operations.computeWeights.species.error.incoherentCategoryWeight"),
- TuttiWeightComputingException.CatchType.SPECIES,
- thisIndex);
+ ("tutti.service.operations.computeWeights.species.error.incoherentCategoryWeight"),
+ TuttiWeightComputingException.CatchType.SPECIES,
+ thisIndex);
} else if (rowWeight == null) {
batch.setComputedWeight(frequencyWeight);
@@ -639,7 +639,7 @@
}
}
if (result == null
- && batch.getParentBatch() == null) {
+ && batch.getParentBatch() == null) {
throw new TuttiWeightComputingException(
_("tutti.service.operations.computeWeights.benthos.error.noWeight"),
TuttiWeightComputingException.CatchType.BENTHOS,
@@ -656,13 +656,13 @@
if (rootMarineLitterBatch != null) {
List<MarineLitterBatch> children = rootMarineLitterBatch.getChildren();
- for (int i = 0 ; i < children.size() ; i++) {
+ for (int i = 0; i < children.size(); i++) {
MarineLitterBatch batch = children.get(i);
if (batch.getWeight() == null) {
- throw new TuttiWeightComputingException(
- _("tutti.service.operations.computeWeights.marineLitter.error.noWeight"),
- TuttiWeightComputingException.CatchType.MARINE_LITTER,
- i);
+ throw new TuttiWeightComputingException(
+ _("tutti.service.operations.computeWeights.marineLitter.error.noWeight"),
+ TuttiWeightComputingException.CatchType.MARINE_LITTER,
+ i);
}
}
}
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/ValidateCruiseOperationsService.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/ValidateCruiseOperationsService.java 2013-04-18 18:58:30 UTC (rev 825)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/ValidateCruiseOperationsService.java 2013-04-18 19:07:23 UTC (rev 826)
@@ -1,11 +1,36 @@
package fr.ifremer.tutti.service.catches;
+/*
+ * #%L
+ * Tutti :: Service
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2012 - 2013 Ifremer
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/gpl-3.0.html>.
+ * #L%
+ */
+
import com.google.common.collect.Maps;
import fr.ifremer.tutti.persistence.entities.data.FishingOperation;
-import fr.ifremer.tutti.service.*;
-import fr.ifremer.tutti.service.catches.TuttiWeightComputingService;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import fr.ifremer.tutti.service.AbstractTuttiService;
+import fr.ifremer.tutti.service.PersistenceService;
+import fr.ifremer.tutti.service.TuttiDataContext;
+import fr.ifremer.tutti.service.TuttiServiceContext;
+import fr.ifremer.tutti.service.ValidationService;
import org.nuiton.validator.NuitonValidatorResult;
import org.nuiton.validator.NuitonValidatorScope;
@@ -18,9 +43,6 @@
*/
public class ValidateCruiseOperationsService extends AbstractTuttiService {
- private static final Log log =
- LogFactory.getLog(TuttiWeightComputingService.class);
-
protected PersistenceService persistenceService;
protected ValidationService validationService;
Property changes on: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/ValidateCruiseOperationsService.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
1
0
r825 - in trunk/tutti-persistence/src: main/java/fr/ifremer/tutti/persistence/entities main/java/fr/ifremer/tutti/persistence/service main/java/fr/ifremer/tutti/persistence/service/synchro main/resources test/java/fr/ifremer/tutti/persistence test/java/fr/ifremer/tutti/persistence/service
by tchemit@users.forge.codelutin.com 18 Apr '13
by tchemit@users.forge.codelutin.com 18 Apr '13
18 Apr '13
Author: tchemit
Date: 2013-04-18 20:58:30 +0200 (Thu, 18 Apr 2013)
New Revision: 825
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/825
Log:
refs #1866: [CAPTURE] - Captures accidentelles
refs #1867: [CAPTURE] - Observations individuelles
Added:
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/SampleMeasurementPersistenceHelper.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/entities/CaracteristicMap.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/TuttiEntities.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/AccidentalBatchPersistenceServiceImpl.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/AttachmentPersistenceServiceImpl.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/IndividualObservationBatchPersistenceService.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/IndividualObservationBatchPersistenceServiceImpl.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/MeasurementPersistenceHelper.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/TuttiEnumerationFile.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/TuttiPersistenceServiceLocator.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/synchro/ReferentialSynchronizeServiceImpl.java
trunk/tutti-persistence/src/main/resources/queries-override.hbm.xml
trunk/tutti-persistence/src/main/resources/tutti-db-enumerations.properties
trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/DatabaseFixtures.java
trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/AccidentalBatchPersistenceServiceWriteTest.java
trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/ProtocolPersistenceServiceReadTest.java
trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/ProtocolPersistenceServiceWriteTest.java
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/CaracteristicMap.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/CaracteristicMap.java 2013-04-18 16:00:29 UTC (rev 824)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/CaracteristicMap.java 2013-04-18 18:58:30 UTC (rev 825)
@@ -37,4 +37,12 @@
*/
public class CaracteristicMap extends LinkedHashMap<Caracteristic, Serializable> {
private static final long serialVersionUID = 1L;
+
+ public static CaracteristicMap copy(CaracteristicMap map) {
+ CaracteristicMap result = new CaracteristicMap();
+ if (map != null) {
+ result.putAll(map);
+ }
+ return result;
+ }
}
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/TuttiEntities.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/TuttiEntities.java 2013-04-18 16:00:29 UTC (rev 824)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/TuttiEntities.java 2013-04-18 18:58:30 UTC (rev 825)
@@ -33,6 +33,7 @@
import com.google.common.collect.Multimaps;
import com.google.common.collect.Sets;
import fr.ifremer.tutti.persistence.entities.referential.Caracteristic;
+import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValue;
import fr.ifremer.tutti.persistence.entities.referential.CaracteristicType;
import fr.ifremer.tutti.persistence.entities.referential.Gear;
import fr.ifremer.tutti.persistence.entities.referential.Species;
@@ -276,6 +277,17 @@
return "jdbc:hsqldb:file:" + directory.getAbsolutePath() + "/" + dbName;
}
+ public static CaracteristicQualitativeValue getQualitativeValue(Caracteristic caracteristic, Integer qualitativeValueId) {
+ CaracteristicQualitativeValue value = null;
+ for (CaracteristicQualitativeValue qv : caracteristic.getQualitativeValue()) {
+ if (qualitativeValueId.equals(qv.getIdAsInt())) {
+ value = qv;
+ break;
+ }
+ }
+ return value;
+ }
+
protected static class IdPredicate<B extends TuttiEntity> implements Predicate<B> {
private final String id;
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/AccidentalBatchPersistenceServiceImpl.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/AccidentalBatchPersistenceServiceImpl.java 2013-04-18 16:00:29 UTC (rev 824)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/AccidentalBatchPersistenceServiceImpl.java 2013-04-18 18:58:30 UTC (rev 825)
@@ -26,11 +26,9 @@
import com.google.common.base.Preconditions;
import com.google.common.collect.Lists;
-import com.google.common.collect.Sets;
import fr.ifremer.adagio.core.dao.administration.programStrategy.Program;
import fr.ifremer.adagio.core.dao.administration.user.DepartmentImpl;
import fr.ifremer.adagio.core.dao.administration.user.PersonImpl;
-import fr.ifremer.adagio.core.dao.data.measure.SampleMeasurement;
import fr.ifremer.adagio.core.dao.data.operation.FishingOperationDao;
import fr.ifremer.adagio.core.dao.data.operation.FishingOperationImpl;
import fr.ifremer.adagio.core.dao.data.sample.Sample;
@@ -38,11 +36,6 @@
import fr.ifremer.adagio.core.dao.referential.QualityFlagImpl;
import fr.ifremer.adagio.core.dao.referential.pmfm.Matrix;
import fr.ifremer.adagio.core.dao.referential.pmfm.MatrixImpl;
-import fr.ifremer.adagio.core.dao.referential.pmfm.Pmfm;
-import fr.ifremer.adagio.core.dao.referential.pmfm.PmfmDao;
-import fr.ifremer.adagio.core.dao.referential.pmfm.PmfmImpl;
-import fr.ifremer.adagio.core.dao.referential.pmfm.QualitativeValueImpl;
-import fr.ifremer.adagio.core.dao.referential.pmfm.Unit;
import fr.ifremer.adagio.core.dao.referential.taxon.ReferenceTaxonImpl;
import fr.ifremer.adagio.core.dao.technical.synchronization.SynchronizationStatus;
import fr.ifremer.tutti.persistence.entities.CaracteristicMap;
@@ -51,11 +44,9 @@
import fr.ifremer.tutti.persistence.entities.data.AccidentalBatch;
import fr.ifremer.tutti.persistence.entities.referential.Caracteristic;
import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValue;
-import fr.ifremer.tutti.persistence.entities.referential.CaracteristicType;
import fr.ifremer.tutti.persistence.entities.referential.Species;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.hibernate.FlushMode;
import org.hibernate.type.IntegerType;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.dao.DataRetrievalFailureException;
@@ -66,8 +57,6 @@
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
-import java.util.Map;
-import java.util.Set;
/**
* @author tchemit <chemit(a)codelutin.com>
@@ -87,7 +76,7 @@
protected AttachmentPersistenceService attachmentPersistenceService;
@Autowired
- protected MeasurementPersistenceHelper measurementPersistenceHelper;
+ protected SampleMeasurementPersistenceHelper sampleMeasurementPersistenceHelper;
@Resource(name = "fishingOperationDao")
protected FishingOperationDao fishingOperationDao;
@@ -95,15 +84,12 @@
@Resource(name = "sampleDao")
protected SampleDao sampleDao;
- @Resource(name = "pmfmDao")
- protected PmfmDao pmfmDao;
-
@Override
public List<AccidentalBatch> getAllAccidentalBatch(String fishingOperationId) {
Preconditions.checkNotNull(fishingOperationId);
Iterator<Object[]> list = queryList(
- "allFishingOperationSamples",
+ "allFishingOperationSamplesWithoutBatch",
"fishingOperationId", IntegerType.INSTANCE, Integer.valueOf(fishingOperationId)
);
@@ -146,12 +132,10 @@
Preconditions.checkNotNull(bean.getFishingOperation());
Preconditions.checkState(!TuttiEntities.isNew(bean.getFishingOperation()));
- getCurrentSession().setFlushMode(FlushMode.COMMIT);
Sample sample = Sample.Factory.newInstance();
beanToEntity(bean, sample);
sampleDao.create(sample);
bean.setId(String.valueOf(sample.getId()));
- getCurrentSession().flush();
return bean;
}
@@ -163,14 +147,13 @@
Preconditions.checkNotNull(bean.getFishingOperation());
Preconditions.checkState(!TuttiEntities.isNew(bean.getFishingOperation()));
- getCurrentSession().setFlushMode(FlushMode.COMMIT);
Sample sample = sampleDao.load(bean.getIdAsInt());
if (sample == null) {
- throw new DataRetrievalFailureException("Could not retrieve sample id=" + bean.getId());
+ throw new DataRetrievalFailureException(
+ "Could not retrieve sample id=" + bean.getId());
}
beanToEntity(bean, sample);
sampleDao.update(sample);
- getCurrentSession().flush();
return bean;
}
@@ -178,17 +161,24 @@
public void deleteAccidentalBatch(String id) {
Preconditions.checkNotNull(id);
- Integer accidentalId = Integer.valueOf(id);
- sampleDao.remove(accidentalId);
- attachmentPersistenceService.deleteAllAttachment(accidentalId);
+ Integer batchId = Integer.valueOf(id);
+
+ if (log.isInfoEnabled()) {
+ log.info("Will delete accidental batch: " + batchId);
+ }
+ sampleDao.remove(batchId);
+ attachmentPersistenceService.deleteAllAttachment(batchId);
}
+ // ------------------------------------------------------------------------//
+ // -- Internal methods --//
+ // ------------------------------------------------------------------------//
+
protected void beanToEntity(AccidentalBatch source, Sample target) {
if (TuttiEntities.isNew(source)) {
// operation
-
fr.ifremer.adagio.core.dao.data.operation.FishingOperation fishingOperation;
fishingOperation = load(FishingOperationImpl.class, source.getFishingOperation().getIdAsInt());
@@ -235,36 +225,9 @@
// Id
target.setId(source.getIdAsInt());
+ // Always use a null batch (to differ with other samples)
+ target.setBatch(null);
- // Size
- // Size Unit
- if (source.getSize() == null) {
-
- // no size
- target.setSize(null);
- target.setSizeUnit(null);
- } else {
-
- target.setSize(source.getSize());
-
- Caracteristic lengthStepCaracteristic =
- source.getLengthStepCaracteristic();
-
- if (lengthStepCaracteristic != null) {
- Pmfm pmfm = pmfmDao.load(lengthStepCaracteristic.getIdAsInt());
-
- Unit unit = pmfm.getUnit();
- target.setSizeUnit(unit);
- } else {
-
- if (log.isWarnEnabled()) {
- log.warn("There is a size but no lengthStepCaracteristic, " +
- "will nullify the unit.");
- }
- target.setSizeUnit(null);
- }
- }
-
// Synchronization Status
target.setSynchronizationStatus(SynchronizationStatus.DIRTY.getValue());
@@ -280,251 +243,85 @@
// FishingAreas TODO
- // SampleMeasurement
+ // Prepare sample measurements
- Set<SampleMeasurement> notChangedSampleMeasurements = Sets.newHashSet();
- if (target.getSampleMeasurements() != null) {
- notChangedSampleMeasurements.addAll(target.getSampleMeasurements());
- }
+ CaracteristicMap caracteristics =
+ CaracteristicMap.copy(source.getCaracteristics());
- CaracteristicMap caracteristics = source.getCaracteristics();
- if (caracteristics != null && caracteristics.size() > 0) {
- for (Caracteristic caracteristic : caracteristics.keySet()) {
- SampleMeasurement vum = setSampleMeasurement(
- target,
- caracteristic,
- caracteristics.get(caracteristic));
- notChangedSampleMeasurements.remove(vum);
- }
- }
-
if (source.getDeadOrAlive() != null) {
- // add it as a measurement
-
Caracteristic caracteristic =
referentialService.getDeadOrAliveCaracteristic();
-
- SampleMeasurement vum = setSampleMeasurement(
- target,
- caracteristic,
- source.getDeadOrAlive());
- notChangedSampleMeasurements.remove(vum);
+ caracteristics.put(caracteristic, source.getDeadOrAlive());
}
if (source.getGender() != null) {
- // add it as a measurement
-
Caracteristic caracteristic =
referentialService.getSexCaracteristic();
-
- SampleMeasurement vum = setSampleMeasurement(
- target,
- caracteristic,
- source.getGender());
- notChangedSampleMeasurements.remove(vum);
+ caracteristics.put(caracteristic, source.getGender());
}
if (source.getWeight() != null) {
- // add it as a measurement
-
- Caracteristic caracteristic =
- referentialService.getCaracteristic(enumeration.PMFM_ID_WEIGHT_MEASURED);
-
- SampleMeasurement vum = setSampleMeasurement(
- target,
- caracteristic,
- source.getWeight());
- notChangedSampleMeasurements.remove(vum);
+ Caracteristic caracteristic = referentialService.getCaracteristic(
+ enumeration.PMFM_ID_WEIGHT_MEASURED);
+ caracteristics.put(caracteristic, source.getWeight());
}
if (source.getLengthStepCaracteristic() != null) {
- // add it as a measurement
+ Caracteristic caracteristic = referentialService.getCaracteristic(
+ enumeration.PMFM_ID_ID_PSFM);
+ caracteristics.put(caracteristic,
+ source.getLengthStepCaracteristic().getId());
- Caracteristic caracteristic =
- referentialService.getCaracteristic(enumeration.PMFM_ID_SAMPLE_LENGTH_STEP);
-
- SampleMeasurement vum = setSampleMeasurement(
- target,
- caracteristic,
- source.getLengthStepCaracteristic().getId());
- notChangedSampleMeasurements.remove(vum);
-
- caracteristic = source.getLengthStepCaracteristic();
- vum = setSampleMeasurement(
- target,
- caracteristic,
- source.getSize());
- notChangedSampleMeasurements.remove(vum);
-
+ caracteristics.put(source.getLengthStepCaracteristic(),
+ source.getSize());
}
- // ----------------------------------------------------------------
- // Removed unecessary *SampleMeasurement* ---
- // ----------------------------------------------------------------
+ sampleMeasurementPersistenceHelper.setSampleMeasurements(target,
+ caracteristics);
- if (target.getSampleMeasurements() != null &&
- notChangedSampleMeasurements.size() > 0) {
- target.getSampleMeasurements().removeAll(notChangedSampleMeasurements);
- }
}
- protected void fillSampleMeasurements(AccidentalBatch accidentalBatch) {
+ protected void fillSampleMeasurements(AccidentalBatch batch) {
Caracteristic deadOrAliveCaracteristic = referentialService.getDeadOrAliveCaracteristic();
- Map<String, CaracteristicQualitativeValue> deadOrAliveValues = TuttiEntities.splitById(deadOrAliveCaracteristic.getQualitativeValue());
Caracteristic genderCaracteristic = referentialService.getSexCaracteristic();
- Map<String, CaracteristicQualitativeValue> genderValues = TuttiEntities.splitById(genderCaracteristic.getQualitativeValue());
- Iterator<Object[]> list = queryList(
- "sampleMeasurements",
- "sampleId", IntegerType.INSTANCE, accidentalBatch.getIdAsInt());
+ CaracteristicMap result = batch.getCaracteristics();
- CaracteristicMap result = accidentalBatch.getCaracteristics();
- while (list.hasNext()) {
- int colIndex = 0;
- Object[] source = list.next();
- Integer pmfmId = (Integer) source[colIndex++];
- Float numericalValue = (Float) source[colIndex++];
- String alphanumericalValue = (String) source[colIndex++];
- Integer qualitativeValueId = (Integer) source[colIndex];
+ sampleMeasurementPersistenceHelper.fillSampleMeasurements(
+ result, batch.getIdAsInt());
- // dead or alive
- if (enumeration.PMFM_ID_DEAD_OR_ALIVE.equals(pmfmId)) {
-
- CaracteristicQualitativeValue caracteristicQualitativeValue = deadOrAliveValues.get(qualitativeValueId.toString());
- accidentalBatch.setDeadOrAlive(caracteristicQualitativeValue);
-
- continue;
- }
-
- // gender
- if (enumeration.PMFM_ID_SEX.equals(pmfmId)) {
-
- CaracteristicQualitativeValue caracteristicQualitativeValue = genderValues.get(qualitativeValueId.toString());
- accidentalBatch.setGender(caracteristicQualitativeValue);
- continue;
- }
-
- // weight
- if (enumeration.PMFM_ID_WEIGHT_MEASURED.equals(pmfmId)) {
-
- accidentalBatch.setWeight(numericalValue);
- continue;
- }
-
- // length step
- if (enumeration.PMFM_ID_SAMPLE_LENGTH_STEP.equals(pmfmId)) {
-
- Caracteristic lengthStepCaracteristic = referentialService.getCaracteristic(Integer.valueOf(alphanumericalValue));
- accidentalBatch.setLengthStepCaracteristic(lengthStepCaracteristic);
- continue;
- }
-
- // other sample measurements
-
- Caracteristic caracteristic = referentialService.getCaracteristic(pmfmId);
- Serializable value = null;
- if (CaracteristicType.NUMBER == caracteristic.getCaracteristicType()) {
- value = numericalValue;
- } else if (CaracteristicType.TEXT == caracteristic.getCaracteristicType()) {
- value = alphanumericalValue;
- } else if (CaracteristicType.QUALITATIVE == caracteristic.getCaracteristicType()) {
- for (CaracteristicQualitativeValue qv : caracteristic.getQualitativeValue()) {
- if (qualitativeValueId.equals(qv.getIdAsInt())) {
- value = qv;
- break;
- }
- }
- }
- result.put(caracteristic, value);
+ CaracteristicQualitativeValue deadOrAliveValue =
+ (CaracteristicQualitativeValue) result.remove(deadOrAliveCaracteristic);
+ if (deadOrAliveValue != null) {
+ batch.setDeadOrAlive(deadOrAliveValue);
}
- Caracteristic lengthStepCaracteristic = accidentalBatch.getLengthStepCaracteristic();
- if (lengthStepCaracteristic != null) {
-
- // get size from result
- Serializable length = result.remove(lengthStepCaracteristic);
- accidentalBatch.setSize((Float) length);
+ CaracteristicQualitativeValue genderValue =
+ (CaracteristicQualitativeValue) result.remove(genderCaracteristic);
+ if (genderValue != null) {
+ batch.setGender(genderValue);
}
- }
- protected SampleMeasurement getSampleMeasurement(Sample sample,
- Integer pmfmId,
- boolean createIfNotExists) {
- SampleMeasurement result = null;
- if (sample.getSampleMeasurements() != null) {
- for (SampleMeasurement vum : sample.getSampleMeasurements()) {
- if (pmfmId.equals(vum.getPmfm().getId())) {
- result = vum;
- break;
- }
- }
+ Float weight = (Float) result.remove(referentialService.getCaracteristic(enumeration.PMFM_ID_WEIGHT_MEASURED));
+ if (weight != null) {
+ batch.setWeight(weight);
}
- if (result == null) {
- if (!createIfNotExists) {
- return null;
- }
- result = SampleMeasurement.Factory.newInstance();
- result.setSample(sample);
- if (sample.getSampleMeasurements() == null) {
- sample.setSampleMeasurements(Sets.newHashSet(result));
- } else {
- sample.getSampleMeasurements().add(result);
- }
- result.setQualityFlag(load(QualityFlagImpl.class, enumeration.QUALITY_FLAG_CODE_NOT_QUALIFIED));
- result.setDepartment(sample.getRecorderDepartment());
- result.setPmfm(load(PmfmImpl.class, pmfmId));
- }
+ String lengthClassId = (String) result.remove(referentialService.getCaracteristic(enumeration.PMFM_ID_ID_PSFM));
+ if (lengthClassId != null) {
+ Caracteristic lengthStepCaracteristic = referentialService.getCaracteristic(Integer.valueOf(lengthClassId));
+ batch.setLengthStepCaracteristic(lengthStepCaracteristic);
- return result;
- }
-
- protected SampleMeasurement setSampleMeasurement(Sample sample,
- Integer pmfmId,
- Float numericalValue,
- String alphanumericalValue,
- Integer qualitativevalueId) {
- SampleMeasurement result = getSampleMeasurement(sample, pmfmId, true);
-
- if (alphanumericalValue != null) {
- result.setAlphanumericalValue(alphanumericalValue);
- } else if (numericalValue != null) {
- result.setNumericalValue(numericalValue);
- } else if (qualitativevalueId != null) {
- result.setQualitativeValue(load(QualitativeValueImpl.class, qualitativevalueId));
+ Serializable length = result.remove(lengthStepCaracteristic);
+ batch.setSize((Float) length);
}
-
- return result;
}
- protected SampleMeasurement setSampleMeasurement(Sample sample,
- Integer pmfmId,
- Serializable value) {
- SampleMeasurement result = getSampleMeasurement(sample, pmfmId, true);
- if (value instanceof String) {
- result.setAlphanumericalValue((String) value);
- } else if (value instanceof Float) {
- result.setNumericalValue((Float) value);
- } else if (value instanceof Integer) {
- result.setQualitativeValue(load(QualitativeValueImpl.class, value));
- }
-
- return result;
- }
-
- protected SampleMeasurement setSampleMeasurement(Sample sample,
- Caracteristic caracteristic,
- Serializable value) {
- SampleMeasurement result = getSampleMeasurement(sample, caracteristic.getIdAsInt(), true);
- measurementPersistenceHelper.setMeasurement(result, caracteristic, value);
- return result;
- }
-
}
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/AttachmentPersistenceServiceImpl.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/AttachmentPersistenceServiceImpl.java 2013-04-18 16:00:29 UTC (rev 824)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/AttachmentPersistenceServiceImpl.java 2013-04-18 18:58:30 UTC (rev 825)
@@ -30,7 +30,6 @@
import fr.ifremer.adagio.core.dao.data.measure.file.MeasurementFileDao;
import fr.ifremer.adagio.core.dao.referential.ObjectTypeImpl;
import fr.ifremer.adagio.core.dao.referential.QualityFlagImpl;
-import fr.ifremer.adagio.core.dao.referential.pmfm.PmfmImpl;
import fr.ifremer.tutti.TuttiIOUtil;
import fr.ifremer.tutti.persistence.entities.TuttiBeanFactory;
import fr.ifremer.tutti.persistence.entities.data.AttachementObjectTypeEnum;
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/IndividualObservationBatchPersistenceService.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/IndividualObservationBatchPersistenceService.java 2013-04-18 16:00:29 UTC (rev 824)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/IndividualObservationBatchPersistenceService.java 2013-04-18 18:58:30 UTC (rev 825)
@@ -36,6 +36,7 @@
* @author tchemit <chemit(a)codelutin.com>
* @since 1.4
*/
+@Transactional(readOnly = true)
public interface IndividualObservationBatchPersistenceService extends TuttiPersistenceServiceImplementor {
List<IndividualObservationBatch> getAllIndividualObservationBatch(String fishingOperationId);
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/IndividualObservationBatchPersistenceServiceImpl.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/IndividualObservationBatchPersistenceServiceImpl.java 2013-04-18 16:00:29 UTC (rev 824)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/IndividualObservationBatchPersistenceServiceImpl.java 2013-04-18 18:58:30 UTC (rev 825)
@@ -26,15 +26,41 @@
import com.google.common.base.Preconditions;
import com.google.common.collect.Lists;
+import fr.ifremer.adagio.core.dao.administration.programStrategy.Program;
+import fr.ifremer.adagio.core.dao.administration.user.DepartmentImpl;
+import fr.ifremer.adagio.core.dao.administration.user.PersonImpl;
+import fr.ifremer.adagio.core.dao.data.batch.CatchBatch;
+import fr.ifremer.adagio.core.dao.data.batch.CatchBatchExtendDao;
+import fr.ifremer.adagio.core.dao.data.batch.SortingBatch;
+import fr.ifremer.adagio.core.dao.data.operation.FishingOperationDao;
+import fr.ifremer.adagio.core.dao.data.operation.FishingOperationImpl;
+import fr.ifremer.adagio.core.dao.data.sample.Sample;
+import fr.ifremer.adagio.core.dao.data.sample.SampleDao;
+import fr.ifremer.adagio.core.dao.referential.QualityFlagImpl;
+import fr.ifremer.adagio.core.dao.referential.pmfm.Matrix;
+import fr.ifremer.adagio.core.dao.referential.pmfm.MatrixImpl;
+import fr.ifremer.adagio.core.dao.referential.taxon.ReferenceTaxonImpl;
+import fr.ifremer.adagio.core.dao.technical.synchronization.SynchronizationStatus;
+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.FishingOperation;
import fr.ifremer.tutti.persistence.entities.data.IndividualObservationBatch;
+import fr.ifremer.tutti.persistence.entities.referential.Caracteristic;
+import fr.ifremer.tutti.persistence.entities.referential.Species;
+import fr.ifremer.tutti.persistence.service.batch.BatchPersistenceHelper;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.hibernate.type.IntegerType;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.dao.DataRetrievalFailureException;
import org.springframework.stereotype.Service;
+import javax.annotation.Resource;
+import java.io.Serializable;
+import java.util.Collections;
+import java.util.Iterator;
import java.util.List;
-import java.util.UUID;
/**
* @author tchemit <chemit(a)codelutin.com>
@@ -48,23 +74,90 @@
LogFactory.getLog(IndividualObservationBatchPersistenceServiceImpl.class);
@Autowired
+ protected ReferentialPersistenceService referentialService;
+
+ @Autowired
protected AttachmentPersistenceService attachmentPersistenceService;
+ @Autowired
+ protected SampleMeasurementPersistenceHelper sampleMeasurementPersistenceHelper;
+
+ @Resource(name = "fishingOperationDao")
+ protected FishingOperationDao fishingOperationDao;
+
+ @Resource(name = "catchBatchDao")
+ protected CatchBatchExtendDao catchBatchDao;
+
+ @Resource(name = "sampleDao")
+ protected SampleDao sampleDao;
+
@Override
public List<IndividualObservationBatch> getAllIndividualObservationBatch(String fishingOperationId) {
Preconditions.checkNotNull(fishingOperationId);
+
+ Integer operationId = Integer.valueOf(fishingOperationId);
+
+ // Get Vrac / Species Batch
+ SortingBatch vracSpeciesBatch = getBatch(operationId);
+
+ Iterator<Object[]> list = queryList(
+ "allFishingOperationSamplesWithBatch",
+ "fishingOperationId", IntegerType.INSTANCE, operationId,
+ "batchId", IntegerType.INSTANCE, vracSpeciesBatch.getId()
+ );
+
List<IndividualObservationBatch> result = Lists.newArrayList();
- // TODO
- return result;
+ while (list.hasNext()) {
+ Object[] source = list.next();
+
+ IndividualObservationBatch batch =
+ TuttiBeanFactory.newIndividualObservationBatch();
+
+ int colIndex = 0;
+
+ // Id
+ batch.setId((Integer) source[colIndex++]);
+
+ // TaxonId
+ Integer taxonId = (Integer) source[colIndex++];
+ Species species = referentialService.getSpeciesByReferenceTaxonId(taxonId);
+ batch.setSpecies(species);
+
+ // Comment
+ batch.setComment((String) source[colIndex]);
+
+ // Sample Measurements
+ batch.setCaracteristics(new CaracteristicMap());
+
+ // fill all measurements
+ fillSampleMeasurements(batch);
+
+ result.add(batch);
+ }
+ return Collections.unmodifiableList(result);
}
@Override
public IndividualObservationBatch createIndividualObservationBatch(IndividualObservationBatch bean) {
Preconditions.checkNotNull(bean);
Preconditions.checkState(TuttiEntities.isNew(bean));
- // TODO
- bean.setId(UUID.randomUUID().toString());
+ Preconditions.checkNotNull(bean.getSpecies());
+ Preconditions.checkNotNull(bean.getSize());
+ Preconditions.checkNotNull(bean.getLengthStepCaracteristic());
+
+ FishingOperation fishingOperation = bean.getFishingOperation();
+ Preconditions.checkNotNull(fishingOperation);
+ Preconditions.checkState(!TuttiEntities.isNew(fishingOperation));
+
+ // Get Vrac / Species Batch
+ SortingBatch vracSpeciesBatch = getBatch(
+ fishingOperation.getIdAsInt());
+
+ Sample sample = Sample.Factory.newInstance();
+ beanToEntity(bean, sample, vracSpeciesBatch);
+ sampleDao.create(sample);
+ bean.setId(String.valueOf(sample.getId()));
return bean;
}
@@ -72,15 +165,213 @@
public IndividualObservationBatch saveIndividualObservationBatch(IndividualObservationBatch bean) {
Preconditions.checkNotNull(bean);
Preconditions.checkState(!TuttiEntities.isNew(bean));
- // TODO
+ Preconditions.checkNotNull(bean.getSpecies());
+ Preconditions.checkNotNull(bean.getSize());
+ Preconditions.checkNotNull(bean.getLengthStepCaracteristic());
+
+ FishingOperation fishingOperation = bean.getFishingOperation();
+ Preconditions.checkNotNull(fishingOperation);
+ Preconditions.checkState(!TuttiEntities.isNew(fishingOperation));
+
+ // Get Vrac / Species Batch
+ SortingBatch vracSpeciesBatch = getBatch(fishingOperation.getIdAsInt());
+
+ Sample sample = sampleDao.load(bean.getIdAsInt());
+ if (sample == null) {
+ throw new DataRetrievalFailureException(
+ "Could not retrieve sample id: " + bean.getId());
+ }
+ beanToEntity(bean, sample, vracSpeciesBatch);
+ sampleDao.update(sample);
return bean;
}
@Override
public void deleteIndividualObservationBatch(String id) {
Preconditions.checkNotNull(id);
- // TODO
- attachmentPersistenceService.deleteAllAttachment(Integer.valueOf(id));
+
+ Integer batchId = Integer.valueOf(id);
+
+ if (log.isInfoEnabled()) {
+ log.info("Will delete individual observation batch: " +
+ batchId);
+ }
+ //FIXME See why this code does not work
+// sampleDao.remove(batchId);
+ Sample sample = sampleDao.load(batchId);
+ if (sample != null) {
+ sample.getSampleMeasurements().clear();
+ sampleDao.remove(sample);
+ attachmentPersistenceService.deleteAllAttachment(batchId);
+ }
}
+ // ------------------------------------------------------------------------//
+ // -- Internal methods --//
+ // ------------------------------------------------------------------------//
+
+ protected void beanToEntity(IndividualObservationBatch source, Sample target, SortingBatch vracSpeciesBatch) {
+
+ if (TuttiEntities.isNew(source)) {
+
+ // operation
+ fr.ifremer.adagio.core.dao.data.operation.FishingOperation fishingOperation;
+
+ fishingOperation = load(FishingOperationImpl.class, source.getFishingOperation().getIdAsInt());
+ fishingOperation.getSamples().add(target); // Inverse link
+
+ // Link to parent operation
+ target.setFishingOperation(fishingOperation);
+
+ // Label
+ String label = fishingOperation.getId() + "_" + source.getSpecies().getReferenceTaxonId();
+ target.setLabel(label);
+
+ // Matrix (product / batch)
+ Matrix matrix = load(MatrixImpl.class, enumeration.MATRIX_ID_PRODUCT_BATCH);
+ target.setMatrix(matrix);
+
+ // IndividualCount
+ target.setIndividualCount((short) 1);
+
+ // Quality Flag
+ target.setQualityFlag(load(QualityFlagImpl.class, enumeration.QUALITY_FLAG_CODE_NOT_QUALIFIED));
+
+ // Sample Date
+ if (target.getSampleDate() == null) {
+ target.setSampleDate(fishingOperation.getFishingStartDateTime());
+ }
+
+ // Create Date
+ target.setCreationDate(fishingOperation.getFishingStartDateTime());
+
+ // Recorder Departement
+ target.setRecorderDepartment(load(DepartmentImpl.class,
+ enumeration.DEPARTMENT_ID_UNKNOWN_RECORDER_DEPARTMENT));
+
+ // Recorder Person
+ target.setRecorderPerson(load(PersonImpl.class,
+ enumeration.PERSON_ID_UNKNOWN_RECORDER_PERSON));
+
+ // Program
+ Program program = fishingOperation.getFishingTrip().getProgram();
+ target.setProgram(program);
+ }
+
+ // Id
+ target.setId(source.getIdAsInt());
+
+ // Always attach to given vracSpecies batch
+ target.setBatch(vracSpeciesBatch);
+
+ // Synchronization Status
+ target.setSynchronizationStatus(SynchronizationStatus.DIRTY.getValue());
+
+ // Comment
+ target.setComments(source.getComment());
+
+ // ReferenceTaxon
+ Species species = source.getSpecies();
+ Integer referenceTaxonId = species.getReferenceTaxonId();
+ target.setReferenceTaxon(load(ReferenceTaxonImpl.class, referenceTaxonId));
+
+ // Taxongroup TODO
+
+ // FishingAreas TODO
+
+ // Prepare sample measurements
+
+ CaracteristicMap caracteristics =
+ CaracteristicMap.copy(source.getCaracteristics());
+
+ if (source.getSamplingCode() != null) {
+
+ Caracteristic caracteristic =
+ referentialService.getCaracteristic(enumeration.PMFM_ID_SAMPLE_ID);
+ caracteristics.put(caracteristic, source.getSamplingCode());
+ }
+
+ if (source.getCalcifiedPieceSamplingCode() != null) {
+
+ Caracteristic caracteristic =
+ referentialService.getCaracteristic(enumeration.PMFM_ID_OTOLITHE_ID);
+ caracteristics.put(caracteristic, source.getCalcifiedPieceSamplingCode());
+ }
+
+ if (source.getWeight() != null) {
+
+ Caracteristic caracteristic = referentialService.getCaracteristic(
+ enumeration.PMFM_ID_WEIGHT_MEASURED);
+ caracteristics.put(caracteristic, source.getWeight());
+ }
+
+ if (source.getLengthStepCaracteristic() != null) {
+
+ Caracteristic caracteristic = referentialService.getCaracteristic(
+ enumeration.PMFM_ID_ID_PSFM);
+ caracteristics.put(caracteristic,
+ source.getLengthStepCaracteristic().getId());
+
+ caracteristics.put(source.getLengthStepCaracteristic(),
+ source.getSize());
+ }
+
+ sampleMeasurementPersistenceHelper.setSampleMeasurements(target,
+ caracteristics);
+
+
+ }
+
+ protected SortingBatch getBatch(Integer operationId) {
+
+ // Load batch tree
+ Integer catchBatchId = catchBatchDao.getIdByFishingOperationId(operationId);
+ Preconditions.checkNotNull(catchBatchId);
+
+ CatchBatch catchBatch = catchBatchDao.loadFullTree(catchBatchId);
+ Preconditions.checkNotNull(catchBatch);
+
+ // Vrac / Species
+ SortingBatch vracSpeciesBatch = catchBatchDao.getSortingBatch(
+ catchBatch.getChildBatchs(),
+ BatchPersistenceHelper.BATCH_PMFM_ID, enumeration.PMFM_ID_SORTED_UNSORTED, enumeration.QUALITATIVE_VRAC_ID,
+ BatchPersistenceHelper.BATCH_PMFM_ID, enumeration.PMFM_ID_SORTING_TYPE, enumeration.QUALITATIVE_ID_SORTING_TYPE_SPECIES,
+ BatchPersistenceHelper.BATCH_PMFM_ID, enumeration.PMFM_ID_SORTING_TYPE_2, enumeration.QUALITATIVE_ID_SORTING_TYPE_2_ALIVE_ITEMIZED
+ );
+ Preconditions.checkNotNull(vracSpeciesBatch);
+ return vracSpeciesBatch;
+ }
+
+ protected void fillSampleMeasurements(IndividualObservationBatch batch) {
+
+ CaracteristicMap result = batch.getCaracteristics();
+
+ sampleMeasurementPersistenceHelper.fillSampleMeasurements(
+ result, batch.getIdAsInt());
+
+ String sampleCode = (String) result.remove(referentialService.getCaracteristic(enumeration.PMFM_ID_SAMPLE_ID));
+ if (sampleCode != null) {
+ batch.setSamplingCode(sampleCode);
+ }
+
+ String calcifiedPieceSampleCode = (String) result.remove(referentialService.getCaracteristic(enumeration.PMFM_ID_OTOLITHE_ID));
+ if (sampleCode != null) {
+ batch.setCalcifiedPieceSamplingCode(calcifiedPieceSampleCode);
+ }
+
+ Float weight = (Float) result.remove(referentialService.getCaracteristic(enumeration.PMFM_ID_WEIGHT_MEASURED));
+ if (weight != null) {
+ batch.setWeight(weight);
+ }
+
+ String lengthClassId = (String) result.remove(referentialService.getCaracteristic(enumeration.PMFM_ID_ID_PSFM));
+ if (lengthClassId != null) {
+ Caracteristic lengthStepCaracteristic = referentialService.getCaracteristic(Integer.valueOf(lengthClassId));
+ batch.setLengthStepCaracteristic(lengthStepCaracteristic);
+
+ Serializable length = result.remove(lengthStepCaracteristic);
+ batch.setSize((Float) length);
+ }
+ }
+
}
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/MeasurementPersistenceHelper.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/MeasurementPersistenceHelper.java 2013-04-18 16:00:29 UTC (rev 824)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/MeasurementPersistenceHelper.java 2013-04-18 18:58:30 UTC (rev 825)
@@ -29,7 +29,6 @@
import fr.ifremer.adagio.core.dao.referential.pmfm.QualitativeValueImpl;
import fr.ifremer.tutti.persistence.entities.referential.Caracteristic;
import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValue;
-import fr.ifremer.tutti.persistence.entities.referential.CaracteristicType;
import org.springframework.stereotype.Component;
import java.io.Serializable;
@@ -49,19 +48,24 @@
if (value == null) {
return;
}
- if (caracteristic.getCaracteristicType() == CaracteristicType.TEXT) {
- measurement.setAlphanumericalValue((String) value);
- } else if (caracteristic.getCaracteristicType() == CaracteristicType.NUMBER) {
- measurement.setNumericalValue((Float) value);
- } else if (caracteristic.getCaracteristicType() == CaracteristicType.QUALITATIVE) {
- Integer qvId = null;
- if (value instanceof CaracteristicQualitativeValue) {
- qvId = Integer.valueOf(((CaracteristicQualitativeValue) value).getId());
- } else if (value instanceof Integer) {
- qvId = (Integer) value;
- }
- QualitativeValue qv = load(QualitativeValueImpl.class, qvId);
- measurement.setQualitativeValue(qv);
+ switch (caracteristic.getCaracteristicType()) {
+
+ case NUMBER:
+ measurement.setNumericalValue((Float) value);
+ break;
+ case QUALITATIVE:
+ Integer qvId = null;
+ if (value instanceof CaracteristicQualitativeValue) {
+ qvId = Integer.valueOf(((CaracteristicQualitativeValue) value).getId());
+ } else if (value instanceof Integer) {
+ qvId = (Integer) value;
+ }
+ QualitativeValue qv = load(QualitativeValueImpl.class, qvId);
+ measurement.setQualitativeValue(qv);
+ break;
+ case TEXT:
+ measurement.setAlphanumericalValue((String) value);
+ break;
}
}
}
Added: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/SampleMeasurementPersistenceHelper.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/SampleMeasurementPersistenceHelper.java (rev 0)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/SampleMeasurementPersistenceHelper.java 2013-04-18 18:58:30 UTC (rev 825)
@@ -0,0 +1,145 @@
+package fr.ifremer.tutti.persistence.service;
+
+/*
+ * #%L
+ * Tutti :: Persistence
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2012 - 2013 Ifremer
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/gpl-3.0.html>.
+ * #L%
+ */
+
+import com.google.common.collect.Sets;
+import fr.ifremer.adagio.core.dao.data.measure.SampleMeasurement;
+import fr.ifremer.adagio.core.dao.data.sample.Sample;
+import fr.ifremer.adagio.core.dao.referential.QualityFlagImpl;
+import fr.ifremer.adagio.core.dao.referential.pmfm.PmfmImpl;
+import fr.ifremer.tutti.persistence.entities.CaracteristicMap;
+import fr.ifremer.tutti.persistence.entities.TuttiEntities;
+import fr.ifremer.tutti.persistence.entities.referential.Caracteristic;
+import org.hibernate.type.IntegerType;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.io.Serializable;
+import java.util.Iterator;
+import java.util.Set;
+
+/**
+ * Helper around {@link SampleMeasurement}.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 1.6
+ */
+@Component("sampleMeasurementPersistenceHelper")
+public class SampleMeasurementPersistenceHelper extends AbstractPersistenceService {
+
+ @Autowired
+ protected ReferentialPersistenceService referentialService;
+
+ @Autowired
+ protected MeasurementPersistenceHelper measurementPersistenceHelper;
+
+ public void setSampleMeasurements(Sample target,
+ CaracteristicMap caracteristics) {
+
+ Set<SampleMeasurement> notChangedSampleMeasurements = Sets.newHashSet();
+ if (target.getSampleMeasurements() != null) {
+ notChangedSampleMeasurements.addAll(target.getSampleMeasurements());
+ }
+
+ for (Caracteristic caracteristic : caracteristics.keySet()) {
+ SampleMeasurement vum = setSampleMeasurement(
+ target,
+ caracteristic,
+ caracteristics.get(caracteristic));
+ notChangedSampleMeasurements.remove(vum);
+ }
+
+ if (target.getSampleMeasurements() != null &&
+ notChangedSampleMeasurements.size() > 0) {
+ target.getSampleMeasurements().removeAll(notChangedSampleMeasurements);
+ }
+ }
+
+ public void fillSampleMeasurements(CaracteristicMap result,
+ Integer sampleId) {
+ Iterator<Object[]> list = queryList(
+ "sampleMeasurements",
+ "sampleId", IntegerType.INSTANCE, sampleId);
+ while (list.hasNext()) {
+ int colIndex = 0;
+ Object[] source = list.next();
+ Integer pmfmId = (Integer) source[colIndex++];
+ Float numericalValue = (Float) source[colIndex++];
+ String alphanumericalValue = (String) source[colIndex++];
+ Integer qualitativeValueId = (Integer) source[colIndex];
+
+ Caracteristic caracteristic = referentialService.getCaracteristic(pmfmId);
+ Serializable value = null;
+ switch (caracteristic.getCaracteristicType()) {
+
+ case NUMBER:
+ value = numericalValue;
+ break;
+ case QUALITATIVE:
+ value = TuttiEntities.getQualitativeValue(caracteristic,
+ qualitativeValueId);
+ break;
+ case TEXT:
+ value = alphanumericalValue;
+ break;
+ }
+ result.put(caracteristic, value);
+ }
+ }
+
+ protected SampleMeasurement setSampleMeasurement(Sample sample,
+ Caracteristic caracteristic,
+ Serializable value) {
+
+ Integer pmfmId = caracteristic.getIdAsInt();
+
+ SampleMeasurement result = null;
+ if (sample.getSampleMeasurements() != null) {
+ for (SampleMeasurement vum : sample.getSampleMeasurements()) {
+ if (pmfmId.equals(vum.getPmfm().getId())) {
+ result = vum;
+ break;
+ }
+ }
+ }
+ if (result == null) {
+
+ result = SampleMeasurement.Factory.newInstance();
+
+ result.setSample(sample);
+ if (sample.getSampleMeasurements() == null) {
+ sample.setSampleMeasurements(Sets.newHashSet(result));
+ } else {
+ sample.getSampleMeasurements().add(result);
+ }
+ result.setQualityFlag(load(QualityFlagImpl.class, enumeration.QUALITY_FLAG_CODE_NOT_QUALIFIED));
+ result.setDepartment(sample.getRecorderDepartment());
+ result.setPmfm(load(PmfmImpl.class, pmfmId));
+ }
+ measurementPersistenceHelper.setMeasurement(result, caracteristic, value);
+ return result;
+ }
+
+}
Property changes on: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/SampleMeasurementPersistenceHelper.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/TuttiEnumerationFile.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/TuttiEnumerationFile.java 2013-04-18 16:00:29 UTC (rev 824)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/TuttiEnumerationFile.java 2013-04-18 18:58:30 UTC (rev 825)
@@ -279,11 +279,17 @@
public final Integer TRANSCRIBING_TYPE_ID_VERNACULAIRE = null;
@Value("${MatrixId.PRODUCT_BATCH}")
- public final Integer MATRIX_ID_PRODUCT_BATCH= null;
+ public final Integer MATRIX_ID_PRODUCT_BATCH = null;
- @Value("${PmfmId.SAMPLE_LENGTH_STEP}")
- public final Integer PMFM_ID_SAMPLE_LENGTH_STEP = null;
+ @Value("${PmfmId.ID_PSFM}")
+ public final Integer PMFM_ID_ID_PSFM = null;
+ @Value("${PmfmId.SAMPLE_ID}")
+ public final Integer PMFM_ID_SAMPLE_ID = null;
+
+ @Value("${PmfmId.OTOLITHE_ID}")
+ public final Integer PMFM_ID_OTOLITHE_ID = null;
+
/**
* Contract to place on enumeration that must be synched to field inside this class.
* <p/>
@@ -350,7 +356,8 @@
PMFM_ID_SIZE_CATEGORY,
PMFM_ID_MATURITY,
PMFM_ID_SEX,
- PMFM_ID_AGE
+ PMFM_ID_AGE,
+ PMFM_ID_ID_PSFM
);
pmfmIdToSampleCategory = Maps.newTreeMap();
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/TuttiPersistenceServiceLocator.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/TuttiPersistenceServiceLocator.java 2013-04-18 16:00:29 UTC (rev 824)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/TuttiPersistenceServiceLocator.java 2013-04-18 18:58:30 UTC (rev 825)
@@ -110,6 +110,11 @@
AccidentalBatchPersistenceService.class);
}
+ public static IndividualObservationBatchPersistenceService getIndividualObservationBatchPersistenceService() {
+ return getPersistenceService("individualObservationBatchPersistenceService",
+ IndividualObservationBatchPersistenceService.class);
+ }
+
public static ProtocolPersistenceService getProtocolPersistenceService() {
return getPersistenceService("protocolPersistenceService",
ProtocolPersistenceService.class);
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/synchro/ReferentialSynchronizeServiceImpl.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/synchro/ReferentialSynchronizeServiceImpl.java 2013-04-18 16:00:29 UTC (rev 824)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/synchro/ReferentialSynchronizeServiceImpl.java 2013-04-18 18:58:30 UTC (rev 825)
@@ -27,7 +27,6 @@
import com.google.common.base.Preconditions;
import fr.ifremer.tutti.persistence.entities.TuttiEntities;
import fr.ifremer.tutti.persistence.service.AbstractPersistenceService;
-import org.apache.commons.dbcp.BasicDataSource;
import org.hibernate.dialect.Dialect;
import org.hibernate.engine.SessionFactoryImplementor;
import org.springframework.beans.factory.annotation.Autowired;
Modified: trunk/tutti-persistence/src/main/resources/queries-override.hbm.xml
===================================================================
--- trunk/tutti-persistence/src/main/resources/queries-override.hbm.xml 2013-04-18 16:00:29 UTC (rev 824)
+++ trunk/tutti-persistence/src/main/resources/queries-override.hbm.xml 2013-04-18 18:58:30 UTC (rev 825)
@@ -320,7 +320,7 @@
<query-param name="catchBatchId" type="java.lang.Integer"/>
</query>
- <query cacheable="true" name="allFishingOperationSamples">
+ <query cacheable="true" name="allFishingOperationSamplesWithoutBatch">
<![CDATA[
SELECT
s.id AS id,
@@ -336,6 +336,24 @@
<query-param name="fishingOperationId" type="java.lang.Integer"/>
</query>
+ <query cacheable="true" name="allFishingOperationSamplesWithBatch">
+ <![CDATA[
+ SELECT
+ s.id AS id,
+ s.referenceTaxon.id AS referenceTaxon,
+ s.comments AS comment
+ FROM
+ SampleImpl s
+ WHERE
+ s.fishingOperation.id= :fishingOperationId
+ AND s.batch.id = :batchId
+ ORDER BY
+ s.creationDate
+ ]]>
+ <query-param name="fishingOperationId" type="java.lang.Integer"/>
+ <query-param name="batchId" type="java.lang.Integer"/>
+ </query>
+
<query cacheable="true" name="sampleMeasurements">
<![CDATA[
SELECT
Modified: trunk/tutti-persistence/src/main/resources/tutti-db-enumerations.properties
===================================================================
--- trunk/tutti-persistence/src/main/resources/tutti-db-enumerations.properties 2013-04-18 16:00:29 UTC (rev 824)
+++ trunk/tutti-persistence/src/main/resources/tutti-db-enumerations.properties 2013-04-18 18:58:30 UTC (rev 825)
@@ -385,10 +385,16 @@
#PSFM "Remis à l'eau mort ou vivant"
PmfmId.DEAD_OR_ALIVE=1393
-#TODO A creer (type alphanumeric)
-# PSFM "Classe de Taille dans captures accidentelles / données individuelles" (écran capture accidentelle / observation individuelle)
-PmfmId.SAMPLE_LENGTH_STEP=1432
+#TODO A creer (type alphanumeric) FIXME Change Id when in next db
+# PSFM "Pour référencer un autre id de pmfm"
+PmfmId.ID_PSFM=1243
+#TODO A creer (type alphanumeric) FIXME Change Id when in next db
+PmfmId.SAMPLE_ID=1424
+
+#TODO A creer (type alphanumeric) FIXME Change Id when in next db
+PmfmId.OTOLITHE_ID=1432
+
# (20=observateur volant, 95=Administrateur SIH) -> L'avantage du 20 est qu'il est inactif (=20), donc plus facilement detectable
PersonId.UNKNOWN_RECORDER_PERSON=20
Modified: trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/DatabaseFixtures.java
===================================================================
--- trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/DatabaseFixtures.java 2013-04-18 16:00:29 UTC (rev 824)
+++ trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/DatabaseFixtures.java 2013-04-18 18:58:30 UTC (rev 825)
@@ -28,8 +28,10 @@
import fr.ifremer.tutti.persistence.entities.CaracteristicMap;
import fr.ifremer.tutti.persistence.entities.TuttiBeanFactory;
import fr.ifremer.tutti.persistence.entities.data.AccidentalBatch;
+import fr.ifremer.tutti.persistence.entities.data.CatchBatch;
import fr.ifremer.tutti.persistence.entities.data.Cruise;
import fr.ifremer.tutti.persistence.entities.data.FishingOperation;
+import fr.ifremer.tutti.persistence.entities.data.IndividualObservationBatch;
import fr.ifremer.tutti.persistence.entities.referential.Caracteristic;
import fr.ifremer.tutti.persistence.entities.referential.CaracteristicType;
import fr.ifremer.tutti.persistence.entities.referential.Gear;
@@ -37,8 +39,10 @@
import fr.ifremer.tutti.persistence.entities.referential.TuttiLocation;
import fr.ifremer.tutti.persistence.entities.referential.Vessel;
import fr.ifremer.tutti.persistence.service.AccidentalBatchPersistenceService;
+import fr.ifremer.tutti.persistence.service.CatchBatchPersistenceService;
import fr.ifremer.tutti.persistence.service.CruisePersistenceService;
import fr.ifremer.tutti.persistence.service.FishingOperationPersistenceService;
+import fr.ifremer.tutti.persistence.service.IndividualObservationBatchPersistenceService;
import fr.ifremer.tutti.persistence.service.ProgramPersistenceService;
import fr.ifremer.tutti.persistence.service.ReferentialPersistenceService;
import fr.ifremer.tutti.persistence.service.TuttiPersistenceServiceLocator;
@@ -198,17 +202,23 @@
protected FishingOperationPersistenceService fishingOperationService;
+ protected CatchBatchPersistenceService catchBatchService;
+
protected ReferentialPersistenceService referentialService;
protected AccidentalBatchPersistenceService accidentalBatchService;
+ protected IndividualObservationBatchPersistenceService individualObservationBatchService;
+
public void setUp() {
if (referentialService == null) {
referentialService = TuttiPersistenceServiceLocator.getReferentialPersistenceService();
programService = TuttiPersistenceServiceLocator.getProgramPersistenceService();
cruiseService = TuttiPersistenceServiceLocator.getCruisePersistenceService();
fishingOperationService = TuttiPersistenceServiceLocator.getFishingOperationPersistenceService();
+ catchBatchService = TuttiPersistenceServiceLocator.getCatchBatchPersistenceService();
accidentalBatchService = TuttiPersistenceServiceLocator.getAccidentalBatchPersistenceService();
+ individualObservationBatchService = TuttiPersistenceServiceLocator.getIndividualObservationBatchPersistenceService();
}
}
@@ -355,6 +365,16 @@
return result;
}
+ public CatchBatch createCatchBatch(FishingOperation fishingOperation) {
+
+ setUp();
+
+ CatchBatch catchBatch = TuttiBeanFactory.newCatchBatch();
+ catchBatch.setFishingOperation(fishingOperation);
+ CatchBatch result = catchBatchService.createCatchBatch(catchBatch);
+ return result;
+ }
+
public AccidentalBatch createMinimalAccidentalBatch(FishingOperation fishingOperation) {
setUp();
@@ -367,4 +387,21 @@
accidentalBatchService.createAccidentalBatch(minimalAccidentalBatch);
return result;
}
+
+ public IndividualObservationBatch createMinimalIndividualObservationBatch(FishingOperation fishingOperation) {
+
+ setUp();
+
+ IndividualObservationBatch minimalAccidentalBatch = TuttiBeanFactory.newIndividualObservationBatch();
+ minimalAccidentalBatch.setFishingOperation(fishingOperation);
+ minimalAccidentalBatch.setSpecies(referentialService.getSpeciesByReferenceTaxonId(refSpeciesTaxonId()));
+ minimalAccidentalBatch.setCaracteristics(new CaracteristicMap());
+ minimalAccidentalBatch.setLengthStepCaracteristic(referentialService.getCaracteristic(refNumericalPmfmId()));
+ minimalAccidentalBatch.setSize(10.0f);
+ minimalAccidentalBatch.setWeight(5.f);
+
+ IndividualObservationBatch result =
+ individualObservationBatchService.createIndividualObservationBatch(minimalAccidentalBatch);
+ return result;
+ }
}
Modified: trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/AccidentalBatchPersistenceServiceWriteTest.java
===================================================================
--- trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/AccidentalBatchPersistenceServiceWriteTest.java 2013-04-18 16:00:29 UTC (rev 824)
+++ trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/AccidentalBatchPersistenceServiceWriteTest.java 2013-04-18 18:58:30 UTC (rev 825)
@@ -105,12 +105,13 @@
Caracteristic stringCaracteristic = referentialService.getCaracteristic(dbResource.getFixtures().refAlphanumericPmfmId());
caracteristicMap.put(stringCaracteristic, "Un texte!");
- fullAccidentalBatch.setSize(10.0f);
fullAccidentalBatch.setComment("AccidentalBatch-full");
fullAccidentalBatch.setDeadOrAlive(referentialService.getDeadOrAliveCaracteristic().getQualitativeValue(0));
fullAccidentalBatch.setGender(referentialService.getSexCaracteristic().getQualitativeValue(0));
fullAccidentalBatch.setLengthStepCaracteristic(referentialService.getCaracteristic(dbResource.getFixtures().refNumericalPmfmId()));
+ fullAccidentalBatch.setSize(10.0f);
+
fullAccidentalBatch.setWeight(5.f);
AccidentalBatch createdAccidentalBatch2 =
@@ -151,19 +152,6 @@
assertEqualsAccidentalBatch(savedAccidentalBatch, reloadedAccidentalBatch3);
}
- protected void assertEqualsAccidentalBatch(AccidentalBatch expected,
- AccidentalBatch actual) {
- Assert.assertEquals(expected, actual);
- Assert.assertEquals(expected.getSize(), actual.getSize());
- Assert.assertEquals(expected.getComment(), actual.getComment());
- Assert.assertEquals(expected.getDeadOrAlive(), actual.getDeadOrAlive());
- Assert.assertEquals(expected.getGender(), actual.getGender());
- Assert.assertEquals(expected.getLengthStepCaracteristic(), actual.getLengthStepCaracteristic());
- Assert.assertEquals(expected.getWeight(), actual.getWeight());
- Assert.assertEquals(expected.getCaracteristics(), actual.getCaracteristics());
- Assert.assertEquals(expected.getFishingOperation(), actual.getFishingOperation());
- }
-
@Test
public void deleteAccidentalBatch(/*String id*/) {
@@ -179,4 +167,18 @@
List<AccidentalBatch> allAccidentalBatch2 = service.getAllAccidentalBatch(fishingOperation.getId());
Assert.assertTrue(CollectionUtils.isEmpty(allAccidentalBatch2));
}
+
+ protected void assertEqualsAccidentalBatch(AccidentalBatch expected,
+ AccidentalBatch actual) {
+ Assert.assertEquals(expected, actual);
+ Assert.assertEquals(expected.getId(), actual.getId());
+ Assert.assertEquals(expected.getSize(), actual.getSize());
+ Assert.assertEquals(expected.getComment(), actual.getComment());
+ Assert.assertEquals(expected.getDeadOrAlive(), actual.getDeadOrAlive());
+ Assert.assertEquals(expected.getGender(), actual.getGender());
+ Assert.assertEquals(expected.getLengthStepCaracteristic(), actual.getLengthStepCaracteristic());
+ Assert.assertEquals(expected.getWeight(), actual.getWeight());
+ Assert.assertEquals(expected.getCaracteristics(), actual.getCaracteristics());
+ Assert.assertEquals(expected.getFishingOperation(), actual.getFishingOperation());
+ }
}
Added: 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 (rev 0)
+++ trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/IndividualObservationBatchPersistenceServiceWriteTest.java 2013-04-18 18:58:30 UTC (rev 825)
@@ -0,0 +1,187 @@
+package fr.ifremer.tutti.persistence.service;
+
+/*
+ * #%L
+ * Tutti :: Persistence
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2012 - 2013 Ifremer
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/gpl-3.0.html>.
+ * #L%
+ */
+
+import fr.ifremer.tutti.persistence.DatabaseResource;
+import fr.ifremer.tutti.persistence.entities.CaracteristicMap;
+import fr.ifremer.tutti.persistence.entities.TuttiEntities;
+import fr.ifremer.tutti.persistence.entities.data.Cruise;
+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 org.apache.commons.collections.CollectionUtils;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.ClassRule;
+import org.junit.Test;
+
+import java.util.List;
+
+/**
+ * To test {@link IndividualObservationBatchPersistenceService} for write
+ * operation.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 1.5
+ */
+public class IndividualObservationBatchPersistenceServiceWriteTest {
+
+ @ClassRule
+ public static final DatabaseResource dbResource = DatabaseResource.writeDb();
+
+ protected IndividualObservationBatchPersistenceService service;
+
+ protected ReferentialPersistenceService referentialService;
+
+ protected FishingOperation fishingOperation;
+
+ @Before
+ public void setUp() throws Exception {
+ referentialService = TuttiPersistenceServiceLocator.getReferentialPersistenceService();
+ service = TuttiPersistenceServiceLocator.getIndividualObservationBatchPersistenceService();
+ Cruise cruise = dbResource.getFixtures().createCruise();
+ fishingOperation = dbResource.getFixtures().createFishingOperation(cruise);
+ dbResource.getFixtures().createCatchBatch(fishingOperation);
+ }
+
+
+ @Test
+ public void createIndividualObservationBatch(/*IndividualObservationBatch bean*/) {
+
+ // -----------------------------------------------------------------------------
+ // 1. Create with only mandatory properties
+ // -----------------------------------------------------------------------------
+
+ IndividualObservationBatch createdIndividualObservationBatch = dbResource.getFixtures().createMinimalIndividualObservationBatch(fishingOperation);
+
+ Assert.assertNotNull(createdIndividualObservationBatch);
+ Assert.assertNotNull(createdIndividualObservationBatch.getId());
+
+ // reload it
+ List<IndividualObservationBatch> allIndividualObservationBatch = service.getAllIndividualObservationBatch(fishingOperation.getId());
+ Assert.assertTrue(CollectionUtils.isNotEmpty(allIndividualObservationBatch));
+ IndividualObservationBatch reloadedIndividualObservationBatch = allIndividualObservationBatch.get(0);
+ reloadedIndividualObservationBatch.setFishingOperation(fishingOperation);
+ assertEqualsIndividualObservationBatch(createdIndividualObservationBatch, reloadedIndividualObservationBatch);
+
+ // -----------------------------------------------------------------------------
+ // 2. Create a full with all properties
+ // -----------------------------------------------------------------------------
+
+ IndividualObservationBatch fullIndividualObservationBatch = createdIndividualObservationBatch;
+ fullIndividualObservationBatch.setId((String) null);
+
+ CaracteristicMap caracteristicMap = new CaracteristicMap();
+ fullIndividualObservationBatch.setCaracteristics(caracteristicMap);
+
+ // add a qualitative caracteristic
+ Caracteristic maturityCaracteristic = referentialService.getMaturityCaracteristic();
+ caracteristicMap.put(maturityCaracteristic, maturityCaracteristic.getQualitativeValue(0));
+
+ // add a numeric caracteristic
+ Caracteristic ageCaracteristic = referentialService.getAgeCaracteristic();
+ caracteristicMap.put(ageCaracteristic, 10.f);
+
+ // add a string caracteristic
+ //FIXME Can't add it until we have correct pmfm id (with no collision here)
+// Caracteristic stringCaracteristic = referentialService.getCaracteristic(dbResource.getFixtures().refAlphanumericPmfmId());
+// caracteristicMap.put(stringCaracteristic, "Un texte!");
+
+ fullIndividualObservationBatch.setComment("IndividualObservationBatch-full");
+ fullIndividualObservationBatch.setSamplingCode("SamplingCode");
+ fullIndividualObservationBatch.setCalcifiedPieceSamplingCode("CalcifiedPieceSamplingCode");
+
+ fullIndividualObservationBatch.setLengthStepCaracteristic(referentialService.getCaracteristic(dbResource.getFixtures().refNumericalPmfmId()));
+ fullIndividualObservationBatch.setSize(10.0f);
+ fullIndividualObservationBatch.setWeight(5.f);
+
+ IndividualObservationBatch createdIndividualObservationBatch2 =
+ service.createIndividualObservationBatch(fullIndividualObservationBatch);
+
+ assertEqualsIndividualObservationBatch(fullIndividualObservationBatch, createdIndividualObservationBatch2);
+
+ Assert.assertNotNull(createdIndividualObservationBatch2);
+ Assert.assertNotNull(createdIndividualObservationBatch2.getId());
+ assertEqualsIndividualObservationBatch(fullIndividualObservationBatch, createdIndividualObservationBatch2);
+
+ // reload it
+ allIndividualObservationBatch = service.getAllIndividualObservationBatch(fishingOperation.getId());
+ Assert.assertTrue(CollectionUtils.isNotEmpty(allIndividualObservationBatch));
+ Assert.assertEquals(2, allIndividualObservationBatch.size());
+ IndividualObservationBatch reloadedIndividualObservationBatch2 = TuttiEntities.splitById(allIndividualObservationBatch).get(createdIndividualObservationBatch2.getId());
+ reloadedIndividualObservationBatch2.setFishingOperation(fishingOperation);
+ assertEqualsIndividualObservationBatch(createdIndividualObservationBatch2, reloadedIndividualObservationBatch2);
+
+ // -----------------------------------------------------------------------------
+ // 2. Modify some properties and save
+ // -----------------------------------------------------------------------------
+ IndividualObservationBatch modifiedIndividualObservationBatch = reloadedIndividualObservationBatch2;
+ modifiedIndividualObservationBatch.setSize(15f);
+ modifiedIndividualObservationBatch.setWeight(35f);
+ fullIndividualObservationBatch.setComment("IndividualObservationBatch-modified");
+ fullIndividualObservationBatch.setSamplingCode("SamplingCode");
+ fullIndividualObservationBatch.setCalcifiedPieceSamplingCode("CalcifiedPieceSamplingCode");
+ modifiedIndividualObservationBatch.getCaracteristics().clear();
+
+ IndividualObservationBatch savedIndividualObservationBatch = service.saveIndividualObservationBatch(modifiedIndividualObservationBatch);
+ assertEqualsIndividualObservationBatch(modifiedIndividualObservationBatch, savedIndividualObservationBatch);
+
+ allIndividualObservationBatch = service.getAllIndividualObservationBatch(fishingOperation.getId());
+ Assert.assertTrue(CollectionUtils.isNotEmpty(allIndividualObservationBatch));
+ IndividualObservationBatch reloadedIndividualObservationBatch3 = TuttiEntities.splitById(allIndividualObservationBatch).get(createdIndividualObservationBatch2.getId());
+ reloadedIndividualObservationBatch3.setFishingOperation(fishingOperation);
+ assertEqualsIndividualObservationBatch(savedIndividualObservationBatch, reloadedIndividualObservationBatch3);
+ }
+
+ @Test
+ public void deleteIndividualObservationBatch(/*String id*/) {
+
+ IndividualObservationBatch createdIndividualObservationBatch =
+ dbResource.getFixtures().createMinimalIndividualObservationBatch(
+ fishingOperation);
+
+ List<IndividualObservationBatch> allIndividualObservationBatch = service.getAllIndividualObservationBatch(fishingOperation.getId());
+ Assert.assertFalse(CollectionUtils.isEmpty(allIndividualObservationBatch));
+
+ service.deleteIndividualObservationBatch(createdIndividualObservationBatch.getId());
+
+ List<IndividualObservationBatch> allIndividualObservationBatch2 = service.getAllIndividualObservationBatch(fishingOperation.getId());
+ Assert.assertTrue(CollectionUtils.isEmpty(allIndividualObservationBatch2));
+ }
+
+ protected void assertEqualsIndividualObservationBatch(IndividualObservationBatch expected,
+ IndividualObservationBatch actual) {
+ Assert.assertEquals(expected, actual);
+ 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.getLengthStepCaracteristic(), actual.getLengthStepCaracteristic());
+ Assert.assertEquals(expected.getWeight(), actual.getWeight());
+ Assert.assertEquals(expected.getCaracteristics(), actual.getCaracteristics());
+ Assert.assertEquals(expected.getFishingOperation(), actual.getFishingOperation());
+ }
+}
Property changes on: trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/IndividualObservationBatchPersistenceServiceWriteTest.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Modified: trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/ProtocolPersistenceServiceReadTest.java
===================================================================
--- trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/ProtocolPersistenceServiceReadTest.java 2013-04-18 16:00:29 UTC (rev 824)
+++ trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/ProtocolPersistenceServiceReadTest.java 2013-04-18 18:58:30 UTC (rev 825)
@@ -32,7 +32,6 @@
import org.junit.Assert;
import org.junit.Before;
import org.junit.ClassRule;
-import org.junit.Ignore;
import org.junit.Test;
import java.util.List;
Modified: trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/ProtocolPersistenceServiceWriteTest.java
===================================================================
--- trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/ProtocolPersistenceServiceWriteTest.java 2013-04-18 16:00:29 UTC (rev 824)
+++ trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/ProtocolPersistenceServiceWriteTest.java 2013-04-18 18:58:30 UTC (rev 825)
@@ -32,7 +32,6 @@
import org.junit.Assert;
import org.junit.Before;
import org.junit.ClassRule;
-import org.junit.Ignore;
import org.junit.Test;
/**
@@ -203,7 +202,7 @@
bp2.setSizeEnabled(true);
bp2.setWeightEnabled(true);
protocol.addBenthos(bp2);
-
+
return protocol;
}
}
1
0
r824 - trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency
by kmorin@users.forge.codelutin.com 18 Apr '13
by kmorin@users.forge.codelutin.com 18 Apr '13
18 Apr '13
Author: kmorin
Date: 2013-04-18 18:00:29 +0200 (Thu, 18 Apr 2013)
New Revision: 824
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/824
Log:
fixes #2332 [CAPTURES] - Mensurations - d?\195?\169clenchement d'une erreur quand on ne met pas de classe de taille sur une ligne
Modified:
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyTableModel.java
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-04-18 15:47:15 UTC (rev 823)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyTableModel.java 2013-04-18 16:00:29 UTC (rev 824)
@@ -130,14 +130,13 @@
// add new row to cache
Float lengthStep = newValue.getLengthStep();
- Preconditions.checkNotNull(lengthStep,
- "can't add a null lengthStep row");
+ if (lengthStep != null) {
+ float roundLenghtValue = uiModel.getLengthStep(lengthStep);
- float roundLenghtValue = uiModel.getLengthStep(lengthStep);
+ if (!rowCache.containsKey(roundLenghtValue)) {
- if (!rowCache.containsKey(roundLenghtValue)) {
-
- rowCache.put(roundLenghtValue, newValue);
+ rowCache.put(roundLenghtValue, newValue);
+ }
}
}
}
\ No newline at end of file
1
0