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
r690 - trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util
by kmorin@users.forge.codelutin.com 27 Mar '13
by kmorin@users.forge.codelutin.com 27 Mar '13
27 Mar '13
Author: kmorin
Date: 2013-03-27 19:06:33 +0100 (Wed, 27 Mar 2013)
New Revision: 690
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/690
Log:
Java 7 power ! \o/
refs #1868 [CAPTURE] - Import/Export PUPITRI
refs #1972 [ERGO] - Symbologie des onglets sans donn?\195?\169es
Added:
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/TabContentModel.java
Added: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/TabContentModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/TabContentModel.java (rev 0)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/TabContentModel.java 2013-03-27 18:06:33 UTC (rev 690)
@@ -0,0 +1,20 @@
+package fr.ifremer.tutti.ui.swing.util;
+
+/**
+ * Interface defining the models of the tab content UIs.
+ *
+ * @author kmorin <kmorin(a)codelutin.com>
+ * @since 1.2
+ */
+public interface TabContentModel {
+
+ boolean isEmpty();
+
+ boolean isValid();
+
+ boolean isModify();
+
+ String getTitle();
+
+ String getIcon();
+}
1
0
27 Mar '13
Author: kmorin
Date: 2013-03-27 19:06:07 +0100 (Wed, 27 Mar 2013)
New Revision: 689
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/689
Log:
Java 7 power ! \o/
refs #1868 [CAPTURE] - Import/Export PUPITRI
refs #1972 [ERGO] - Symbologie des onglets sans donn?\195?\169es
Modified:
trunk/pom.xml
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/pupitri/TuttiPupitriImportExportService.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/SaveFishingOperationAction.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/EditCatchesUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchUIModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/AbstractCaracteristicTabUIModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiBeanUIModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiTabContainerUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/CustomTab.java
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2013-03-27 13:59:54 UTC (rev 688)
+++ trunk/pom.xml 2013-03-27 18:06:07 UTC (rev 689)
@@ -118,6 +118,12 @@
<platform>forge.codelutin.com</platform>
<projectId>tutti</projectId>
+ <!-- Java version -->
+ <maven.compiler.source>1.7</maven.compiler.source>
+ <maven.compiler.target>1.7</maven.compiler.target>
+ <signatureArtifactId>java17</signatureArtifactId>
+ <signatureVersion>1.0</signatureVersion>
+
<!-- libraries version -->
<nuitonUtilsVersion>2.6.12</nuitonUtilsVersion>
@@ -166,7 +172,7 @@
<!-- Last tutti db version -->
<!--<dbVersion>2013.02.27</dbVersion>-->
-
+
</properties>
<dependencyManagement>
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/pupitri/TuttiPupitriImportExportService.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/pupitri/TuttiPupitriImportExportService.java 2013-03-27 13:59:54 UTC (rev 688)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/pupitri/TuttiPupitriImportExportService.java 2013-03-27 18:06:07 UTC (rev 689)
@@ -130,7 +130,7 @@
addFileAsAttachment(trunkFile, catchBatch);
addFileAsAttachment(carrouselFile, catchBatch);
addFileAsAttachment(speciesFile, catchBatch);
-
+
persistenceService.saveCatchBatch(catchBatch);
}
@@ -394,7 +394,7 @@
childBatch.setSampleCategoryValue(splitCqv);
childBatch.setSpecies(pupitriCatch.getSpecies());
childBatch.setSampleCategoryWeight(pupitriCatch.getWeightBySign().get(s));
-
+
persistenceService.createSpeciesBatch(childBatch, batch.getId());
}
}
@@ -405,7 +405,7 @@
reader.close();
} catch (Exception e) {
- throw new TuttiTechnicalException("Could not import protocol [" + operation.toString() + "] caracteristic from file " + carrouselFile, e);
+ throw new TuttiTechnicalException("Could not import carrousel data [" + operation.toString() + "] from file " + carrouselFile, e);
} finally {
IOUtils.closeQuietly(carrouselImporter);
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationAction.java 2013-03-27 13:59:54 UTC (rev 688)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationAction.java 2013-03-27 18:06:07 UTC (rev 689)
@@ -435,9 +435,6 @@
List<Person> saisisseur = editFishingOperationUIModel.getRecorderPerson();
ui.getRecorderPersonList().getHandler().setSelected(saisisseur);
- // update model empty property
- editFishingOperationUIModel.setEmpty(false);
-
//reset gear use feature tab
GearUseFeatureTabUI gearUseFeatureTabContent = ui.getGearUseFeatureTabContent();
gearUseFeatureTabContent.getHandler().reset(bean);
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-03-27 13:59:54 UTC (rev 688)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIHandler.java 2013-03-27 18:06:07 UTC (rev 689)
@@ -288,8 +288,6 @@
initBeanFilterableComboBox(ui.getLocationComboBox(), locations, location);
- model.setEmpty(true);
-
changeValidatorContext(model.getValidationContext(), ui.getValidator());
listenValidatorValid(ui.getValidator(), model);
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel.java 2013-03-27 13:59:54 UTC (rev 688)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel.java 2013-03-27 18:06:07 UTC (rev 689)
@@ -36,9 +36,12 @@
import fr.ifremer.tutti.persistence.entities.referential.Vessel;
import fr.ifremer.tutti.persistence.spatial.SexagecimalPosition;
import fr.ifremer.tutti.ui.swing.util.AbstractTuttiBeanUIModel;
+import fr.ifremer.tutti.ui.swing.util.TabContentModel;
import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil;
import fr.ifremer.tutti.ui.swing.util.attachment.AttachmentModelAware;
import fr.ifremer.tutti.ui.swing.util.editor.CoordinateEditorType;
+import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.lang3.StringUtils;
import org.nuiton.util.DateUtil;
import org.nuiton.util.beans.Binder;
import org.nuiton.util.beans.BinderFactory;
@@ -56,7 +59,8 @@
* @author tchemit <chemit(a)codelutin.com>
* @since 0.1
*/
-public class EditFishingOperationUIModel extends AbstractTuttiBeanUIModel<FishingOperation, EditFishingOperationUIModel> implements AttachmentModelAware {
+public class EditFishingOperationUIModel extends AbstractTuttiBeanUIModel<FishingOperation, EditFishingOperationUIModel>
+ implements AttachmentModelAware, TabContentModel {
private static final long serialVersionUID = 1L;
@@ -64,8 +68,6 @@
public static final String PROPERTY_PERSISTED = "persisted";
- public static final String PROPERTY_EMPTY = "empty";
-
public static final String PROPERTY_STATION_NUMBER = "stationNumber";
public static final String PROPERTY_FISHING_OPERATION_NUMBER = "fishingOperationNumber";
@@ -140,13 +142,6 @@
public static final String PROPERTY_VALIDATION_CONTEXT = "validationContext";
- /**
- * Flag when there is no fishing operation selected.
- *
- * @since 0.2
- */
- protected boolean empty;
-
protected Cruise cruise;
protected String stationNumber;
@@ -225,6 +220,31 @@
return TITLE;
}
+ @Override
+ public String getIcon() {
+ return null;
+ }
+
+ public boolean isEmpty() {
+ return StringUtils.isEmpty(stationNumber)
+ && fishingOperationNumber == null
+ && strata == null
+ && subStrata == null
+ && location == null
+ && gearShootingStartLatitudeAsSexagecimal.isNull()
+ && gearShootingStartLongitudeAsSexagecimal.isNull()
+ && gearShootingStartDate == null
+ && gearShootingEndLatitudeAsSexagecimal.isNull()
+ && gearShootingEndLongitudeAsSexagecimal.isNull()
+ && gearShootingEndDate == null
+ && recorderPerson == null
+ && gear == null
+ && StringUtils.isEmpty(comment)
+ && CollectionUtils.isEmpty(getAttachment());
+
+ // TODO add the otehr ones
+ }
+
public FishingOperation getFishingOperation() {
return fishingOperation;
}
@@ -238,16 +258,6 @@
return fishingOperation != null && !TuttiEntities.isNew(fishingOperation);
}
- public boolean isEmpty() {
- return empty;
- }
-
- public void setEmpty(boolean empty) {
- Object oldValue = isEmpty();
- this.empty = empty;
- firePropertyChange(PROPERTY_EMPTY, oldValue, empty);
- }
-
public Cruise getCruise() {
return cruise;
}
@@ -839,16 +849,16 @@
public void convertGearShootingCoordinatesDMSToDD() {
Float decimalValue = gearShootingStartLatitudeAsSexagecimal.toDecimal();
- setGearShootingStartLatitude(decimalValue);
+ gearShootingStartLatitude = decimalValue;
decimalValue = gearShootingStartLongitudeAsSexagecimal.toDecimal();
- setGearShootingStartLongitude(decimalValue);
+ gearShootingStartLongitude = decimalValue;
decimalValue = gearShootingEndLatitudeAsSexagecimal.toDecimal();
- setGearShootingEndLatitude(decimalValue);
+ gearShootingEndLatitude = decimalValue;
decimalValue = gearShootingEndLongitudeAsSexagecimal.toDecimal();
- setGearShootingEndLongitude(decimalValue);
+ gearShootingEndLongitude = decimalValue;
}
public void computeDistance() {
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/SaveFishingOperationAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/SaveFishingOperationAction.java 2013-03-27 13:59:54 UTC (rev 688)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/SaveFishingOperationAction.java 2013-03-27 18:06:07 UTC (rev 689)
@@ -83,8 +83,8 @@
EditFishingOperationUIModel beanToSave = monitor.getBean();
// must save when bean is new or was modifiy and is valid
- boolean mustSave = (beanToSave.isCreate() || !beanToSave.isEmpty()) &&
- beanToSave.isValid();
+ boolean mustSave = beanToSave.getFishingOperation() != null
+ && beanToSave.isValid();
if (mustSave) {
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-03-27 13:59:54 UTC (rev 688)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.jaxx 2013-03-27 18:06:07 UTC (rev 689)
@@ -297,7 +297,7 @@
</JScrollPane>
</JXTitledPanel>
</tab>
- <tab id='speciesTab' title='tutti.label.tab.species'>
+ <tab id='speciesTab'>
<JPanel id='speciesTabPanel'>
<JXTitledPanel id='speciesTabFishingOperationReminderLabel'
constraints='EditCatchesUIHandler.MAIN_CARD'>
@@ -320,7 +320,7 @@
</JXTitledPanel>
</JPanel>
</tab>
- <tab id='benthosTab' title='tutti.label.tab.benthos'>
+ <tab id='benthosTab'>
<JPanel id='benthosTabPanel'>
<JXTitledPanel id='benthosTabFishingOperationReminderLabel'
constraints='EditCatchesUIHandler.MAIN_CARD'>
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIHandler.java 2013-03-27 13:59:54 UTC (rev 688)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIHandler.java 2013-03-27 18:06:07 UTC (rev 689)
@@ -114,6 +114,8 @@
listenValidatorValid(getValidator(), model);
setCustomTab(0, model);
+ setCustomTab(1, ui.getSpeciesTabContent().getModel());
+ setCustomTab(2, ui.getBenthosTabContent().getModel());
getParentUi().getFishingOperationTabContent().getModel()
.addPropertyChangeListener(EditFishingOperationUIModel.PROPERTY_VESSEL, new PropertyChangeListener() {
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIModel.java 2013-03-27 13:59:54 UTC (rev 688)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIModel.java 2013-03-27 18:06:07 UTC (rev 689)
@@ -34,8 +34,10 @@
import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValue;
import fr.ifremer.tutti.persistence.entities.referential.Species;
import fr.ifremer.tutti.ui.swing.util.AbstractTuttiBeanUIModel;
+import fr.ifremer.tutti.ui.swing.util.TabContentModel;
import fr.ifremer.tutti.ui.swing.util.TuttiComputedOrNotData;
import fr.ifremer.tutti.ui.swing.util.attachment.AttachmentModelAware;
+import org.apache.commons.collections.CollectionUtils;
import org.nuiton.util.beans.Binder;
import org.nuiton.util.beans.BinderFactory;
@@ -50,7 +52,7 @@
* @author tchemit <chemit(a)codelutin.com>
* @since 0.3
*/
-public class EditCatchesUIModel extends AbstractTuttiBeanUIModel<CatchBatch, EditCatchesUIModel> implements AttachmentModelAware {
+public class EditCatchesUIModel extends AbstractTuttiBeanUIModel<CatchBatch, EditCatchesUIModel> implements AttachmentModelAware, TabContentModel {
private static final long serialVersionUID = 1L;
@@ -662,4 +664,16 @@
return catchBatch;
}
+ @Override
+ public boolean isEmpty() {
+ return getCatchTotalWeight() == null
+ && getCatchTotalRejectedWeight() == null
+ && CollectionUtils.isEmpty(getAttachment());
+ }
+
+ @Override
+ public String getIcon() {
+ return null;
+ }
+
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchUIModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchUIModel.java 2013-03-27 13:59:54 UTC (rev 688)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchUIModel.java 2013-03-27 18:06:07 UTC (rev 689)
@@ -33,8 +33,10 @@
import fr.ifremer.tutti.ui.swing.content.operation.AbstractTuttiBatchUIModel;
import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUIModel;
import fr.ifremer.tutti.ui.swing.content.operation.catches.TableViewMode;
+import fr.ifremer.tutti.ui.swing.util.TabContentModel;
import fr.ifremer.tutti.ui.swing.util.TuttiComputedOrNotData;
import fr.ifremer.tutti.ui.swing.util.attachment.AttachmentModelAware;
+import org.apache.commons.collections.CollectionUtils;
import java.util.Collection;
import java.util.List;
@@ -43,7 +45,8 @@
* @author tchemit <chemit(a)codelutin.com>
* @since 0.1
*/
-public class BenthosBatchUIModel extends AbstractTuttiBatchUIModel<BenthosBatchRowModel, BenthosBatchUIModel> implements AttachmentModelAware {
+public class BenthosBatchUIModel extends AbstractTuttiBatchUIModel<BenthosBatchRowModel, BenthosBatchUIModel>
+ implements AttachmentModelAware, TabContentModel {
private static final long serialVersionUID = 1L;
@@ -382,4 +385,22 @@
firePropertyChange(PROPERTY_ATTACHMENT, null, getAttachment());
}
+ @Override
+ public boolean isEmpty() {
+ return CollectionUtils.isEmpty(getRows())
+ && getBenthosTotalSortedWeight() == null
+ && getBenthosTotalInertWeight() == null
+ && getBenthosTotalLivingNotItemizedWeight() == null
+ && CollectionUtils.isEmpty(getAttachment());
+ }
+
+ @Override
+ public String getTitle() {
+ return "tutti.label.tab.benthos";
+ }
+
+ @Override
+ public String getIcon() {
+ return null;
+ }
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIHandler.java 2013-03-27 13:59:54 UTC (rev 688)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIHandler.java 2013-03-27 18:06:07 UTC (rev 689)
@@ -50,6 +50,7 @@
import fr.ifremer.tutti.ui.swing.content.operation.catches.species.frequency.SpeciesFrequencyRowModel;
import fr.ifremer.tutti.ui.swing.content.operation.catches.species.split.SplitSpeciesBatchRowModel;
import fr.ifremer.tutti.ui.swing.content.operation.catches.species.split.SplitSpeciesBatchUI;
+import fr.ifremer.tutti.ui.swing.util.TabHandler;
import fr.ifremer.tutti.ui.swing.util.TuttiBeanMonitor;
import fr.ifremer.tutti.ui.swing.util.TuttiUI;
import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil;
@@ -1101,5 +1102,4 @@
return model.getSelectedSpecies();
}
-
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIModel.java 2013-03-27 13:59:54 UTC (rev 688)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIModel.java 2013-03-27 18:06:07 UTC (rev 689)
@@ -33,8 +33,10 @@
import fr.ifremer.tutti.ui.swing.content.operation.AbstractTuttiBatchUIModel;
import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUIModel;
import fr.ifremer.tutti.ui.swing.content.operation.catches.TableViewMode;
+import fr.ifremer.tutti.ui.swing.util.TabContentModel;
import fr.ifremer.tutti.ui.swing.util.TuttiComputedOrNotData;
import fr.ifremer.tutti.ui.swing.util.attachment.AttachmentModelAware;
+import org.apache.commons.collections.CollectionUtils;
import java.util.Collection;
import java.util.List;
@@ -43,7 +45,8 @@
* @author tchemit <chemit(a)codelutin.com>
* @since 0.1
*/
-public class SpeciesBatchUIModel extends AbstractTuttiBatchUIModel<SpeciesBatchRowModel, SpeciesBatchUIModel> implements AttachmentModelAware {
+public class SpeciesBatchUIModel extends AbstractTuttiBatchUIModel<SpeciesBatchRowModel, SpeciesBatchUIModel>
+ implements AttachmentModelAware, TabContentModel {
private static final long serialVersionUID = 1L;
@@ -382,4 +385,22 @@
firePropertyChange(PROPERTY_ATTACHMENT, null, getAttachment());
}
+ @Override
+ public boolean isEmpty() {
+ return CollectionUtils.isEmpty(getRows())
+ && getSpeciesTotalSortedWeight() == null
+ && getSpeciesTotalInertWeight() == null
+ && getSpeciesTotalLivingNotItemizedWeight() == null
+ && CollectionUtils.isEmpty(getAttachment());
+ }
+
+ @Override
+ public String getTitle() {
+ return "tutti.label.tab.species";
+ }
+
+ @Override
+ public String getIcon() {
+ return null;
+ }
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/AbstractCaracteristicTabUIModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/AbstractCaracteristicTabUIModel.java 2013-03-27 13:59:54 UTC (rev 688)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/AbstractCaracteristicTabUIModel.java 2013-03-27 18:06:07 UTC (rev 689)
@@ -25,21 +25,27 @@
* #L%
*/
+import com.google.common.collect.Lists;
+import com.google.common.collect.Sets;
import fr.ifremer.tutti.persistence.entities.CaracteristicMap;
import fr.ifremer.tutti.persistence.entities.data.FishingOperation;
import fr.ifremer.tutti.persistence.entities.referential.Caracteristic;
import fr.ifremer.tutti.ui.swing.util.AbstractTuttiBeanUIModel;
+import fr.ifremer.tutti.ui.swing.util.TabContentModel;
import fr.ifremer.tutti.ui.swing.util.table.AbstractTuttiTableUIModel;
import java.io.Serializable;
import java.util.List;
+import java.util.Set;
+import org.apache.commons.collections.CollectionUtils;
+
/**
* @author kmorin <kmorin(a)codelutin.com>
* @since 1.0
*/
public abstract class AbstractCaracteristicTabUIModel<RM extends AbstractTuttiBeanUIModel<Serializable, RM>, M extends AbstractCaracteristicTabUIModel<RM, M>>
- extends AbstractTuttiTableUIModel<FishingOperation, RM, M> {
+ extends AbstractTuttiTableUIModel<FishingOperation, RM, M> implements TabContentModel {
public static final String PROPERTY_CARACTERISTIC_MAP = "caracteristicMap";
@@ -98,4 +104,21 @@
this.removeCaracteristicEnabled = removeCaracteristicEnabled;
firePropertyChange(PROPERTY_REMOVE_CARACTERISTIC_ENABLED, oldValue, removeCaracteristicEnabled);
}
+
+ @Override
+ public boolean isEmpty() {
+ boolean result = caracteristicMap == null;
+ if (!result) {
+ Set s = Sets.newHashSet(caracteristicMap.values());
+ s.remove(null);
+ result = s.isEmpty();
+ }
+ return result;
+ }
+
+ @Override
+ public String getIcon() {
+ return null;
+ }
+
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiBeanUIModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiBeanUIModel.java 2013-03-27 13:59:54 UTC (rev 688)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiBeanUIModel.java 2013-03-27 18:06:07 UTC (rev 689)
@@ -96,14 +96,6 @@
firePropertyChange(PROPERTY_ID, oldValue, id);
}
- public String getTitle() {
- return null;
- }
-
- public String getIcon() {
- return null;
- }
-
public boolean isModify() {
return modify;
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiTabContainerUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiTabContainerUIHandler.java 2013-03-27 13:59:54 UTC (rev 688)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiTabContainerUIHandler.java 2013-03-27 18:06:07 UTC (rev 689)
@@ -125,7 +125,7 @@
* @param index
* @param model
*/
- protected void setCustomTab(int index, AbstractTuttiBeanUIModel model) {
+ protected void setCustomTab(int index, TabContentModel model) {
getTabPanel().setTabComponentAt(index, new CustomTab(model));
}
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/CustomTab.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/CustomTab.java 2013-03-27 13:59:54 UTC (rev 688)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/CustomTab.java 2013-03-27 18:06:07 UTC (rev 689)
@@ -30,8 +30,16 @@
import javax.swing.JLabel;
import javax.swing.JPanel;
import java.awt.Color;
+import java.awt.Font;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
+import java.lang.reflect.InvocationTargetException;
+import javax.swing.UIManager;
+import jaxx.runtime.JAXXUtil;
+import org.apache.commons.beanutils.MethodUtils;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.nuiton.util.beans.BeanUtil;
import static org.nuiton.i18n.I18n._;
@@ -46,31 +54,37 @@
private static final long serialVersionUID = 1L;
- protected AbstractTuttiBeanUIModel model;
+ private static final Log log = LogFactory.getLog(CustomTab.class);
+ protected TabContentModel model;
+
protected JLabel title = new JLabel();
- public AbstractTuttiBeanUIModel getModel() {
+ public TabContentModel getModel() {
return model;
}
- public CustomTab(AbstractTuttiBeanUIModel model) {
+ public CustomTab(TabContentModel model) {
this.model = model;
- this.model.addPropertyChangeListener(AbstractTuttiBeanUIModel.PROPERTY_MODIFY, new PropertyChangeListener() {
+ try {
+ BeanUtil.addPropertyChangeListener(
+ new PropertyChangeListener() {
- public void propertyChange(PropertyChangeEvent evt) {
- Boolean modified = (Boolean) evt.getNewValue();
- String title = _(CustomTab.this.model.getTitle());
- if (modified) {
- title = "<html><strong>" + title + "*</strong></html>";
- }
- CustomTab.this.title.setText(title);
- }
- });
+ @Override
+ public void propertyChange(PropertyChangeEvent evt) {
+ updateTitle();
+ }
+ },this.model);
+
+ } catch (NoSuchMethodException
+ | IllegalAccessException
+ | InvocationTargetException ex) {
+ log.error("Error while adding the listener to the model modifications", ex);
+ }
setBackground(null);
- title.setText(_(model.getTitle()));
+ updateTitle();
String actionIcon = model.getIcon();
if (actionIcon != null) {
title.setIcon(SwingUtil.createActionIcon(actionIcon));
@@ -95,4 +109,24 @@
}
}
+ protected void updateTitle() {
+ Font f = UIManager.getDefaults().getFont("Label.font");
+ String titleValue = _(model.getTitle());
+
+ int style;
+ if (model.isModify()) {
+ style = Font.BOLD;
+ titleValue += "*";
+
+ } else if (model.isEmpty()) {
+ style = Font.ITALIC;
+
+ } else {
+ style = Font.PLAIN;
+ }
+
+ title.setText(titleValue);
+ title.setFont(f.deriveFont(style));
+ }
+
}
1
0
r688 - trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency
by kmorin@users.forge.codelutin.com 27 Mar '13
by kmorin@users.forge.codelutin.com 27 Mar '13
27 Mar '13
Author: kmorin
Date: 2013-03-27 14:59:54 +0100 (Wed, 27 Mar 2013)
New Revision: 688
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/688
Log:
fixes#2170 [ESPECES] - Mensurations - Taille : vider champs ?\195?\160 l'ouverture ou entre deux saisies
Modified:
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIHandler.java
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIHandler.java 2013-03-27 13:53:21 UTC (rev 687)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIHandler.java 2013-03-27 13:59:54 UTC (rev 688)
@@ -214,8 +214,8 @@
}
model.setStep(precision);
- model.setMinStep(10f);
- model.setMaxStep(20f);
+ model.setMinStep(null);
+ model.setMaxStep(null);
ui.getRafaleStepField().getTextField().addKeyListener(new KeyAdapter() {
1
0
r687 - in trunk/tutti-ui-swing/src/main: java/fr/ifremer/tutti/ui/swing/content/operation java/fr/ifremer/tutti/ui/swing/content/operation/catches java/fr/ifremer/tutti/ui/swing/util resources/fr/ifremer/tutti/ui/swing/content/operation resources/i18n
by kmorin@users.forge.codelutin.com 27 Mar '13
by kmorin@users.forge.codelutin.com 27 Mar '13
27 Mar '13
Author: kmorin
Date: 2013-03-27 14:53:21 +0100 (Wed, 27 Mar 2013)
New Revision: 687
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/687
Log:
fixes #2219 [TRAIT] - Saisie des coordonn?\195?\169es : probl?\195?\168mes sur les valeurs accept?\195?\169es
Modified:
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/TuttiUI.java
trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel-edit-warning-validation.xml
trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel-validate-error-validation.xml
trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.css 2013-03-26 18:15:51 UTC (rev 686)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.css 2013-03-27 13:53:21 UTC (rev 687)
@@ -250,7 +250,7 @@
showReset: false;
useFloat: true;
useSign: false;
- numberPattern: {DECIMAL2_3_PATTERN};
+ numberPattern: {DECIMAL2_DIGITS_PATTERN};
}
.second {
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIHandler.java 2013-03-26 18:15:51 UTC (rev 686)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIHandler.java 2013-03-27 13:53:21 UTC (rev 687)
@@ -178,7 +178,9 @@
protected boolean onTabChanged(int currentIndex, int newIndex) {
ui.getCatchesCaracteristicsAttachmentsButton().onCloseUI();
ui.getSpeciesTabContent().getSpeciesBatchAttachmentsButton().onCloseUI();
+ setSpeciesSelectedCard(EditCatchesUIHandler.MAIN_CARD);
ui.getBenthosTabContent().getBenthosBatchAttachmentsButton().onCloseUI();
+ setBenthosSelectedCard(EditCatchesUIHandler.MAIN_CARD);
return super.onTabChanged(currentIndex, newIndex);
}
@@ -275,78 +277,82 @@
public void setSpeciesSelectedCard(String card) {
JPanel panel = ui.getSpeciesTabPanel();
CardLayout2Ext layout = (CardLayout2Ext) panel.getLayout();
- layout.setSelected(card);
+ if (!card.equals(layout.getSelected())) {
+ layout.setSelected(card);
- JPanel actionPanel = getUI().getCreateFishingOperationActions();
- if (MAIN_CARD.equals(card)) {
- registerValidators();
- actionPanel.setVisible(true);
- } else {
- actionPanel.setVisible(false);
- TuttiUI tuttiUi = null;
- JXTitledPanel titlePanel = null;
- String title = "";
- if (CREATE_BATCH_CARD.equals(card)) {
- tuttiUi = ui.getSpeciesTabCreateBatch();
- titlePanel = ui.getSpeciesTabCreateBatchReminderLabel();
- title = n_("tutti.createSpeciesBatch.title");
+ JPanel actionPanel = getUI().getCreateFishingOperationActions();
+ if (MAIN_CARD.equals(card)) {
+ registerValidators();
+ actionPanel.setVisible(true);
+ } else {
+ actionPanel.setVisible(false);
+ TuttiUI tuttiUi = null;
+ JXTitledPanel titlePanel = null;
+ String title = "";
+ if (CREATE_BATCH_CARD.equals(card)) {
+ tuttiUi = ui.getSpeciesTabCreateBatch();
+ titlePanel = ui.getSpeciesTabCreateBatchReminderLabel();
+ title = n_("tutti.createSpeciesBatch.title");
- } else if (SPLIT_BATCH_CARD.equals(card)) {
- tuttiUi = ui.getSpeciesTabSplitBatch();
- titlePanel = ui.getSpeciesTabSplitBatchReminderLabel();
- title = n_("tutti.splitSpeciesBatch.title");
+ } else if (SPLIT_BATCH_CARD.equals(card)) {
+ tuttiUi = ui.getSpeciesTabSplitBatch();
+ titlePanel = ui.getSpeciesTabSplitBatchReminderLabel();
+ title = n_("tutti.splitSpeciesBatch.title");
- } else if (EDIT_FREQUENCY_CARD.equals(card)) {
- tuttiUi = ui.getSpeciesTabFrequencyEditor();
- titlePanel = ui.getSpeciesTabFrequencyEditorReminderLabel();
- title = n_("tutti.editSpeciesFrequencies.title");
- }
+ } else if (EDIT_FREQUENCY_CARD.equals(card)) {
+ tuttiUi = ui.getSpeciesTabFrequencyEditor();
+ titlePanel = ui.getSpeciesTabFrequencyEditorReminderLabel();
+ title = n_("tutti.editSpeciesFrequencies.title");
+ }
- if (tuttiUi != null) {
- registerValidators(tuttiUi.getHandler().getValidator());
+ if (tuttiUi != null) {
+ registerValidators(tuttiUi.getHandler().getValidator());
+ }
+ if (titlePanel != null) {
+ titlePanel.setTitle(ui.getSpeciesTabFishingOperationReminderLabel().getTitle() + " - " + _(title));
+ }
}
- if (titlePanel != null) {
- titlePanel.setTitle(ui.getSpeciesTabFishingOperationReminderLabel().getTitle() + " - " + _(title));
- }
}
}
public void setBenthosSelectedCard(String card) {
JPanel panel = ui.getBenthosTabPanel();
CardLayout2Ext layout = (CardLayout2Ext) panel.getLayout();
- layout.setSelected(card);
+ if (!card.equals(layout.getSelected())) {
+ layout.setSelected(card);
- JPanel actionPanel = getUI().getCreateFishingOperationActions();
- if (MAIN_CARD.equals(card)) {
- registerValidators();
- actionPanel.setVisible(true);
- } else {
- actionPanel.setVisible(false);
- TuttiUI tuttiUi = null;
- JXTitledPanel titlePanel = null;
- String title = "";
- if (CREATE_BATCH_CARD.equals(card)) {
- tuttiUi = ui.getBenthosTabCreateBatch();
- titlePanel = ui.getBenthosTabCreateBatchReminderLabel();
- title = n_("tutti.createBenthosBatch.title");
+ JPanel actionPanel = getUI().getCreateFishingOperationActions();
+ if (MAIN_CARD.equals(card)) {
+ registerValidators();
+ actionPanel.setVisible(true);
+ } else {
+ actionPanel.setVisible(false);
+ TuttiUI tuttiUi = null;
+ JXTitledPanel titlePanel = null;
+ String title = "";
+ if (CREATE_BATCH_CARD.equals(card)) {
+ tuttiUi = ui.getBenthosTabCreateBatch();
+ titlePanel = ui.getBenthosTabCreateBatchReminderLabel();
+ title = n_("tutti.createBenthosBatch.title");
- } else if (SPLIT_BATCH_CARD.equals(card)) {
- tuttiUi = ui.getBenthosTabSplitBatch();
- titlePanel = ui.getBenthosTabSplitBatchReminderLabel();
- title = n_("tutti.splitBenthosBatch.title");
+ } else if (SPLIT_BATCH_CARD.equals(card)) {
+ tuttiUi = ui.getBenthosTabSplitBatch();
+ titlePanel = ui.getBenthosTabSplitBatchReminderLabel();
+ title = n_("tutti.splitBenthosBatch.title");
- } else if (EDIT_FREQUENCY_CARD.equals(card)) {
- tuttiUi = ui.getBenthosTabFrequencyEditor();
- titlePanel = ui.getBenthosTabFrequencyEditorReminderLabel();
- title = n_("tutti.editBenthosFrequencies.title");
- }
+ } else if (EDIT_FREQUENCY_CARD.equals(card)) {
+ tuttiUi = ui.getBenthosTabFrequencyEditor();
+ titlePanel = ui.getBenthosTabFrequencyEditorReminderLabel();
+ title = n_("tutti.editBenthosFrequencies.title");
+ }
- if (tuttiUi != null) {
- registerValidators(tuttiUi.getHandler().getValidator());
+ if (tuttiUi != null) {
+ registerValidators(tuttiUi.getHandler().getValidator());
+ }
+ if (titlePanel != null) {
+ titlePanel.setTitle(ui.getBenthosTabFishingOperationReminderLabel().getTitle() + " - " + _(title));
+ }
}
- if (titlePanel != null) {
- titlePanel.setTitle(ui.getBenthosTabFishingOperationReminderLabel().getTitle() + " - " + _(title));
- }
}
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/TuttiUI.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/TuttiUI.java 2013-03-26 18:15:51 UTC (rev 686)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/TuttiUI.java 2013-03-27 13:53:21 UTC (rev 687)
@@ -127,7 +127,7 @@
*
* @since 1.0
*/
- public static final String DECIMAL2_3_PATTERN = "\\d{0,2}|\\d{1,2}\\.\\d{0,3}";
+ public static final String DECIMAL2_DIGITS_PATTERN = "\\d{0,2}|\\d{1,2}\\.\\d*";
public static final Font TEXTFIELD_NORMAL_FONT = UIManager.getDefaults().getFont("TextField.font");
Modified: trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel-edit-warning-validation.xml
===================================================================
--- trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel-edit-warning-validation.xml 2013-03-26 18:15:51 UTC (rev 686)
+++ trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel-edit-warning-validation.xml 2013-03-27 13:53:21 UTC (rev 687)
@@ -149,7 +149,8 @@
( -ints.min < getGearShootingStartLatitudeDegree() && getGearShootingStartLatitudeDegree() < ints.max )
|| (
( getGearShootingStartLatitudeDegree() == ints.max || getGearShootingStartLatitudeDegree() == -ints.min )
- && getGearShootingStartLatitudeMinute() == 0 && getGearShootingStartLatitudeSecond() == 0
+ && ( getGearShootingStartLatitudeMinute() == null || getGearShootingStartLatitudeMinute() == 0 )
+ && ( getGearShootingStartLatitudeSecond() == null || getGearShootingStartLatitudeSecond() == 0 )
)
)
]]>
@@ -181,7 +182,7 @@
( -ints.min < getGearShootingStartLatitudeDecimalDegree() && getGearShootingStartLatitudeDecimalDegree() < ints.max )
|| (
( getGearShootingStartLatitudeDecimalDegree() == ints.max || getGearShootingStartLatitudeDecimalDegree() == -ints.min )
- && getGearShootingStartLatitudeDecimalMinute() == 0.0
+ && ( getGearShootingStartLatitudeDecimalMinute() == null || getGearShootingStartLatitudeDecimalMinute() == 0.0 )
)
)
]]>
@@ -322,7 +323,8 @@
(-ints.min < getGearShootingStartLongitudeDegree() && getGearShootingStartLongitudeDegree() < ints.max)
|| (
( getGearShootingStartLongitudeDegree() == ints.max || getGearShootingStartLongitudeDegree() == -ints.min )
- && getGearShootingStartLongitudeMinute() == 0 && getGearShootingStartLongitudeSecond() == 0
+ && ( getGearShootingStartLongitudeMinute() == null || getGearShootingStartLongitudeMinute() == 0 )
+ && ( getGearShootingStartLongitudeSecond() == null || getGearShootingStartLongitudeSecond() == 0 )
)
)
]]>
@@ -354,7 +356,7 @@
(-ints.min < getGearShootingStartLongitudeDecimalDegree() && getGearShootingStartLongitudeDecimalDegree() < ints.max)
|| (
( getGearShootingStartLongitudeDecimalDegree() == ints.max || getGearShootingStartLongitudeDecimalDegree() == -ints.min )
- && getGearShootingStartLongitudeDecimalMinute() == 0.0
+ && ( getGearShootingStartLongitudeDecimalMinute() == null || getGearShootingStartLongitudeDecimalMinute() == 0.0 )
)
)
]]>
@@ -496,7 +498,8 @@
(-ints.min < getGearShootingEndLatitudeDegree() && getGearShootingEndLatitudeDegree() < ints.max)
|| (
( getGearShootingEndLatitudeDegree() == ints.max || getGearShootingEndLatitudeDegree() == -ints.min )
- && getGearShootingEndLatitudeMinute() == 0 && getGearShootingEndLatitudeSecond() == 0
+ && ( getGearShootingEndLatitudeMinute() == null || getGearShootingEndLatitudeMinute() == 0 )
+ && ( getGearShootingEndLatitudeSecond() == null || getGearShootingEndLatitudeSecond() == 0 )
)
)
]]>
@@ -528,7 +531,7 @@
(-ints.min < getGearShootingEndLatitudeDecimalDegree() && getGearShootingEndLatitudeDecimalDegree() < ints.max)
|| (
( getGearShootingEndLatitudeDecimalDegree() == ints.max || getGearShootingEndLatitudeDecimalDegree() == -ints.min )
- && getGearShootingEndLatitudeDecimalMinute() == 0.0
+ && ( getGearShootingEndLatitudeDecimalMinute() == null || getGearShootingEndLatitudeDecimalMinute() == 0.0 )
)
)
]]>
@@ -669,7 +672,8 @@
(-ints.min < getGearShootingEndLongitudeDegree() && getGearShootingEndLongitudeDegree() < ints.max)
|| (
( getGearShootingEndLongitudeDegree() == ints.max || getGearShootingEndLongitudeDegree() == -ints.min )
- && getGearShootingEndLongitudeMinute() == 0 && getGearShootingEndLongitudeSecond() == 0
+ && ( getGearShootingEndLongitudeMinute() == null || getGearShootingEndLongitudeMinute() == 0 )
+ && ( getGearShootingEndLongitudeSecond() == null || getGearShootingEndLongitudeSecond() == 0 )
)
)
]]>
@@ -701,7 +705,7 @@
(-ints.min < getGearShootingEndLongitudeDecimalDegree() && getGearShootingEndLongitudeDecimalDegree() < ints.max)
|| (
( getGearShootingEndLongitudeDecimalDegree() == ints.max || getGearShootingEndLongitudeDecimalDegree() == -ints.min )
- && getGearShootingEndLongitudeDecimalMinute() == 0.0
+ && ( getGearShootingEndLongitudeDecimalMinute() == null || getGearShootingEndLongitudeDecimalMinute() == 0.0 )
)
)
]]>
Modified: trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel-validate-error-validation.xml
===================================================================
--- trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel-validate-error-validation.xml 2013-03-26 18:15:51 UTC (rev 686)
+++ trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel-validate-error-validation.xml 2013-03-27 13:53:21 UTC (rev 687)
@@ -211,7 +211,8 @@
(( -ints.min < getGearShootingStartLatitudeDegree() && getGearShootingStartLatitudeDegree() < ints.max )
|| (
( getGearShootingStartLatitudeDegree() == ints.max || getGearShootingStartLatitudeDegree() == -ints.min )
- && getGearShootingStartLatitudeMinute() == 0 && getGearShootingStartLatitudeSecond() == 0
+ && ( getGearShootingStartLatitudeMinute() == null || getGearShootingStartLatitudeMinute() == 0 )
+ && ( getGearShootingStartLatitudeSecond() == null || getGearShootingStartLatitudeSecond() == 0 )
))
)
]]>
@@ -244,7 +245,7 @@
(( -ints.min < getGearShootingStartLatitudeDecimalDegree() && getGearShootingStartLatitudeDecimalDegree() < ints.max )
|| (
( getGearShootingStartLatitudeDecimalDegree() == ints.max || getGearShootingStartLatitudeDecimalDegree() == -ints.min )
- && getGearShootingStartLatitudeDecimalMinute() == 0.0
+ && ( getGearShootingStartLatitudeDecimalMinute() == null || getGearShootingStartLatitudeDecimalMinute() == 0.0 )
))
)
]]>
@@ -394,7 +395,8 @@
((-ints.min < getGearShootingStartLongitudeDegree() && getGearShootingStartLongitudeDegree() < ints.max)
|| (
( getGearShootingStartLongitudeDegree() == ints.max || getGearShootingStartLongitudeDegree() == -ints.min )
- && getGearShootingStartLongitudeMinute() == 0 && getGearShootingStartLongitudeSecond() == 0
+ && ( getGearShootingStartLongitudeMinute() == null || getGearShootingStartLongitudeMinute() == 0 )
+ && ( getGearShootingStartLongitudeSecond() == null || getGearShootingStartLongitudeSecond() == 0 )
))
)
]]>
@@ -427,7 +429,7 @@
(( -ints.min < getGearShootingStartLongitudeDecimalDegree() && getGearShootingStartLongitudeDecimalDegree() < ints.max)
|| (
( getGearShootingStartLongitudeDecimalDegree() == ints.max || getGearShootingStartLongitudeDecimalDegree() == -ints.min )
- && getGearShootingStartLongitudeDecimalMinute() == 0.0
+ && ( getGearShootingStartLongitudeDecimalMinute() == null || getGearShootingStartLongitudeDecimalMinute() == 0.0 )
))
)
]]>
@@ -578,7 +580,8 @@
(( -ints.min < getGearShootingEndLatitudeDegree() && getGearShootingEndLatitudeDegree() < ints.max)
|| (
( getGearShootingEndLatitudeDegree() == ints.max || getGearShootingEndLatitudeDegree() == -ints.min )
- && getGearShootingEndLatitudeMinute() == 0 && getGearShootingEndLatitudeSecond() == 0
+ && ( getGearShootingEndLatitudeMinute() == null || getGearShootingEndLatitudeMinute() == 0 )
+ && ( getGearShootingEndLatitudeSecond() == null || getGearShootingEndLatitudeSecond() == 0 )
))
)
]]>
@@ -611,7 +614,7 @@
(( -ints.min < getGearShootingEndLatitudeDecimalDegree() && getGearShootingEndLatitudeDecimalDegree() < ints.max)
|| (
( getGearShootingEndLatitudeDecimalDegree() == ints.max || getGearShootingEndLatitudeDecimalDegree() == -ints.min )
- && getGearShootingEndLatitudeDecimalMinute() == 0.0
+ && ( getGearShootingEndLatitudeDecimalMinute() == null || getGearShootingEndLatitudeDecimalMinute() == 0.0 )
))
)
]]>
@@ -761,7 +764,8 @@
((-ints.min < getGearShootingEndLongitudeDegree() && getGearShootingEndLongitudeDegree() < ints.max)
|| (
( getGearShootingEndLongitudeDegree() == ints.max || getGearShootingEndLongitudeDegree() == -ints.min )
- && getGearShootingEndLongitudeMinute() == 0 && getGearShootingEndLongitudeSecond() == 0
+ && ( getGearShootingEndLongitudeMinute() == null || getGearShootingEndLongitudeMinute() == 0 )
+ && ( getGearShootingEndLongitudeSecond() == null || getGearShootingEndLongitudeSecond() == 0 )
))
)
]]>
@@ -794,7 +798,7 @@
(( -ints.min < getGearShootingEndLongitudeDecimalDegree() && getGearShootingEndLongitudeDecimalDegree() < ints.max)
|| (
( getGearShootingEndLongitudeDecimalDegree() == ints.max || getGearShootingEndLongitudeDecimalDegree() == -ints.min )
- && getGearShootingEndLongitudeDecimalMinute() == 0.0
+ && ( getGearShootingEndLongitudeDecimalMinute() == null || getGearShootingEndLongitudeDecimalMinute() == 0.0 )
))
)
]]>
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-03-26 18:15:51 UTC (rev 686)
+++ trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2013-03-27 13:53:21 UTC (rev 687)
@@ -1031,13 +1031,13 @@
tutti.validator.error.splitSpeciesBatch.selectedCategory.required=La catégorie est obligatoire
tutti.validator.warning.cruise.name.format=Le format n'est pas celui ...
tutti.validator.warning.latitude.degree.outOfBounds=Le degré de la latitude doit être compris entre -90 et 90
-tutti.validator.warning.latitude.minute.outOfBounds=La minute de la latitude doit être comprise entre 0 et 60
+tutti.validator.warning.latitude.minute.outOfBounds=La minute de la latitude doit être comprise entre 0 et 59
tutti.validator.warning.latitude.outOfBounds=La Latitude doit être comprise entre -90.0 et 90.0
-tutti.validator.warning.latitude.second.outOfBounds=La seconde de la latitude doit être comprise entre 0 et 60
-tutti.validator.warning.longitude.degree.outOfBounds=Le degré de la latitude doit être compris entre -180 et 180
-tutti.validator.warning.longitude.minute.outOfBounds=La minute de la latitude doit être comprise entre 0 et 60
-tutti.validator.warning.longitude.outOfBounds=La Latitude doit être comprise entre -180.0 et 180.0
-tutti.validator.warning.longitude.second.outOfBounds=La seconde de la longitude doit être comprise entre 0 et 60
+tutti.validator.warning.latitude.second.outOfBounds=La seconde de la latitude doit être comprise entre 0 et 59
+tutti.validator.warning.longitude.degree.outOfBounds=Le degré de la longitude doit être compris entre -180 et 180
+tutti.validator.warning.longitude.minute.outOfBounds=La minute de la longitude doit être comprise entre 0 et 59
+tutti.validator.warning.longitude.outOfBounds=La longitude doit être comprise entre -180.0 et 180.0
+tutti.validator.warning.longitude.second.outOfBounds=La seconde de la longitude doit être comprise entre 0 et 59
tutti.vesselUseFeatureTable.action.removeCaracteristic=Supprimer
tutti.vesselUseFeatureTable.action.removeCaracteristic.mnemonic=S
tutti.vesselUseFeatureTable.action.removeCaracteristic.tip=Supprimer la caractéristique
1
0
26 Mar '13
Author: kmorin
Date: 2013-03-26 19:15:51 +0100 (Tue, 26 Mar 2013)
New Revision: 686
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/686
Log:
refs #1868 [CAPTURE] - Import/Export PUPITRI
Removed:
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/SpeciesBatchRootRowModel.java
Modified:
trunk/tutti-ui-swing/src/main/filtered-resources/tutti-help-en.properties
trunk/tutti-ui-swing/src/main/filtered-resources/tutti-help-fr.properties
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/ImportPupitriAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/create/CreateBenthosBatchUIModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/create/CreateSpeciesBatchUIModel.java
Modified: trunk/tutti-ui-swing/src/main/filtered-resources/tutti-help-en.properties
===================================================================
--- trunk/tutti-ui-swing/src/main/filtered-resources/tutti-help-en.properties 2013-03-26 18:15:28 UTC (rev 685)
+++ trunk/tutti-ui-swing/src/main/filtered-resources/tutti-help-en.properties 2013-03-26 18:15:51 UTC (rev 686)
@@ -1,5 +1,5 @@
#Generated by org.nuiton.jaxx.plugin.GenerateHelpIdsMojo
-#Tue Mar 26 16:11:47 CET 2013
+#Tue Mar 26 18:46:47 CET 2013
tutti.createBenthosBatch.action.addSpecies.help=createBenthosBatch.html\#actions
tutti.createBenthosBatch.action.cancel.help=createBenthosBatch.html\#actions
tutti.createBenthosBatch.action.save.help=createBenthosBatch.html\#actions
@@ -130,6 +130,7 @@
tutti.editProtocol.action.exportProtocolBenthos.help=editProtocol.html\#actions
tutti.editProtocol.action.exportProtocolCaracteristic.tip=editProtocol.html\#actions
tutti.editProtocol.action.exportProtocolSpecies.help=editProtocol.html\#actions
+tutti.editProtocol.action.exportPupitri.help=
tutti.editProtocol.action.importProtocolBenthos.help=editProtocol.html\#actions
tutti.editProtocol.action.importProtocolCaracteristic.help=editProtocol.html\#actions
tutti.editProtocol.action.importProtocolSpecies.help=editProtocol.html\#actions
Modified: trunk/tutti-ui-swing/src/main/filtered-resources/tutti-help-fr.properties
===================================================================
--- trunk/tutti-ui-swing/src/main/filtered-resources/tutti-help-fr.properties 2013-03-26 18:15:28 UTC (rev 685)
+++ trunk/tutti-ui-swing/src/main/filtered-resources/tutti-help-fr.properties 2013-03-26 18:15:51 UTC (rev 686)
@@ -1,5 +1,5 @@
#Generated by org.nuiton.jaxx.plugin.GenerateHelpIdsMojo
-#Tue Mar 26 16:11:47 CET 2013
+#Tue Mar 26 18:46:47 CET 2013
tutti.createBenthosBatch.action.addSpecies.help=createBenthosBatch.html\#actions
tutti.createBenthosBatch.action.cancel.help=createBenthosBatch.html\#actions
tutti.createBenthosBatch.action.save.help=createBenthosBatch.html\#actions
@@ -139,6 +139,7 @@
tutti.editProtocol.action.exportProtocolBenthos.help=editProtocol.html\#actions
tutti.editProtocol.action.exportProtocolCaracteristic.tip=editProtocol.html\#actions
tutti.editProtocol.action.exportProtocolSpecies.help=editProtocol.html\#actions
+tutti.editProtocol.action.exportPupitri.help=
tutti.editProtocol.action.importProtocolBenthos.help=editProtocol.html\#actions
tutti.editProtocol.action.importProtocolCaracteristic.help=editProtocol.html\#actions
tutti.editProtocol.action.importProtocolSpecies.help=editProtocol.html\#actions
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationAction.java 2013-03-26 18:15:28 UTC (rev 685)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationAction.java 2013-03-26 18:15:51 UTC (rev 686)
@@ -536,7 +536,7 @@
attachments = persistenceService.getAllAttachments(objectId);
getModel().setCatchEnabled(true);
- } catch (Exception e) {
+ } catch (InvalidBatchModelException e) {
// batch is not compatible with Tutti
if (log.isDebugEnabled()) {
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/ImportPupitriAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/ImportPupitriAction.java 2013-03-26 18:15:28 UTC (rev 685)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/ImportPupitriAction.java 2013-03-26 18:15:51 UTC (rev 686)
@@ -39,12 +39,14 @@
import fr.ifremer.tutti.service.PersistenceService;
import fr.ifremer.tutti.service.pupitri.PupitriCatch;
import fr.ifremer.tutti.service.pupitri.TuttiPupitriImportExportService;
+import fr.ifremer.tutti.ui.swing.content.operation.EditFishingOperationAction;
import fr.ifremer.tutti.ui.swing.content.operation.catches.species.SpeciesBatchRowModel;
import fr.ifremer.tutti.ui.swing.content.operation.catches.species.SpeciesBatchUIHandler;
import fr.ifremer.tutti.ui.swing.content.operation.catches.species.SpeciesBatchUIModel;
import fr.ifremer.tutti.ui.swing.content.operation.catches.species.split.SplitSpeciesBatchRowModel;
import fr.ifremer.tutti.ui.swing.util.AbstractTuttiUIHandler;
import fr.ifremer.tutti.ui.swing.util.action.AbstractTuttiAction;
+import fr.ifremer.tutti.ui.swing.util.action.TuttiActionHelper;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -74,41 +76,20 @@
protected PersistenceService persistenceService;
- protected CaracteristicQualitativeValue sortedCaracteristic;
+ protected EditFishingOperationAction editAction;
- protected CaracteristicQualitativeValue unsortedCaracteristic;
-
- protected CaracteristicQualitativeValue maleCaracteristic;
-
- protected CaracteristicQualitativeValue femaleCaracteristic;
-
- protected CaracteristicQualitativeValue smallCaracteristic;
-
- protected CaracteristicQualitativeValue mediumCaracteristic;
-
- protected CaracteristicQualitativeValue bigCaracteristic;
-
public ImportPupitriAction(EditCatchesUIHandler handler) {
super(handler, false);
persistenceService = getContext().getPersistenceService();
importPupitriDialog = new ImportPupitriPopupUI(handler.getContext());
+ }
- // get the sorted/unsorted caracteristics
- Caracteristic sortedUnsortedcaracteristic =
- persistenceService.getSortedUnsortedCaracteristic();
- sortedCaracteristic =
- SortedUnsortedEnum.SORTED.getValue(sortedUnsortedcaracteristic);
- unsortedCaracteristic =
- SortedUnsortedEnum.UNSORTED.getValue(sortedUnsortedcaracteristic);
-
- Caracteristic sexCaracteristic = persistenceService.getSexCaracteristic();
- maleCaracteristic = SexEnum.MALE.getValue(sexCaracteristic);
- femaleCaracteristic = SexEnum.FEMALE.getValue(sexCaracteristic);
-
- Caracteristic sizeCaracteristic = persistenceService.getSizeCategoryCaracteristic();
- smallCaracteristic = SizeEnum.SMALL.getValue(sizeCaracteristic);
- mediumCaracteristic = SizeEnum.MEDIUM.getValue(sizeCaracteristic);
- bigCaracteristic = SizeEnum.BIG.getValue(sizeCaracteristic);
+ public EditFishingOperationAction getEditAction() {
+ if (editAction == null) {
+ editAction = TuttiActionHelper.createLogicAction( getHandler().getParentHandler(),
+ EditFishingOperationAction.class);
+ }
+ return editAction;
}
@Override
@@ -170,108 +151,20 @@
FishingOperation operation = model.getFishingOperation();
CatchBatch catchBatch = model.getCatchBatch();
-
// import trunk
- pupitriImportExportService.importPupitriTrunk(importedTrunkFile, operation, catchBatch);
+ pupitriImportExportService.importPupitri(importedTrunkFile,
+ importedCarrouselFile,
+ importedSpeciesFile,
+ operation,
+ catchBatch,
+ getDataContext().getReferentSpeciesWithSurveyCode());
+
+ String fishingOperationText = getEditAction().getFishingOperationTitle(operation);
- model.setCatchTotalRejectedWeight(catchBatch.getCatchTotalRejectedWeight());
- model.setCatchTotalSortedTremisWeight(catchBatch.getCatchTotalSortedTremisWeight());
+ getEditAction().loadCatchBatch(operation, fishingOperationText, true);
- // import carrousel
- List<PupitriCatch> catches =
- pupitriImportExportService.importPupitriCarrousel(importedCarrouselFile,
- importedSpeciesFile,
- operation,
- catchBatch,
- getDataContext().getReferentSpeciesWithSurveyCode());
-
- // remove existing species
- SpeciesBatchUIModel speciesBatchUIModel = getUI().getSpeciesTabContent().getModel();
- List<SpeciesBatchRowModel> rows = speciesBatchUIModel.getRows();
- for (SpeciesBatchRowModel row : rows) {
- if (row.isBatchRoot()) {
- persistenceService.deleteSpeciesBatch(row.getId());
- }
- }
- speciesBatchUIModel.setRows(null);
-
- // add the valid species in the species table
- SpeciesBatchUIHandler speciesBatchUIHandler = getUI().getSpeciesTabContent().getHandler();
- for (PupitriCatch pupitriCatch : catches) {
- Float catchWeight = pupitriCatch.getWeightBySign().get(PupitriCatch.Signs.DEFAULT);
- CaracteristicQualitativeValue cqv = pupitriCatch.isSorted() ?
- sortedCaracteristic : unsortedCaracteristic;
-
- ImportPupitriSpeciesBatchRootRowModel rowModel =
- new ImportPupitriSpeciesBatchRootRowModel(
- pupitriCatch.getSpecies(), cqv, catchWeight);
-
- speciesBatchUIHandler.addBatch(rowModel);
-
- if (catchWeight == null) {
- SampleCategoryEnum category = null;
- List<SplitSpeciesBatchRowModel> splitRows = Lists.newArrayList();
- for (PupitriCatch.Signs s : pupitriCatch.getWeightBySign().keySet()) {
- CaracteristicQualitativeValue splitCqv = null;
- switch (s) {
- case MALE:
- splitCqv = maleCaracteristic;
- category = SampleCategoryEnum.sex;
- break;
-
- case FEMALE:
- splitCqv = femaleCaracteristic;
- category = SampleCategoryEnum.sex;
- break;
-
- case SMALL:
- splitCqv = smallCaracteristic;
- category = SampleCategoryEnum.size;
- break;
-
- case MEDIUM:
- splitCqv = mediumCaracteristic;
- category = SampleCategoryEnum.size;
- break;
-
- case BIG:
- splitCqv = bigCaracteristic;
- category = SampleCategoryEnum.size;
- break;
- }
- SplitSpeciesBatchRowModel row = new SplitSpeciesBatchRowModel();
- row.setCategoryType(category);
- row.setCategoryValue(splitCqv);
- row.setWeight(pupitriCatch.getWeightBySign().get(s));
- row.setValid(true);
- splitRows.add(row);
- }
- speciesBatchUIHandler.splitBatch(category, splitRows);
- }
- }
-
- model.setCatchTotalSortedCarousselWeight(catchBatch.getCatchTotalSortedCarousselWeight());
-
- // add attachments
- addFileAsAttachment(importedTrunkFile);
- addFileAsAttachment(importedCarrouselFile);
- addFileAsAttachment(importedSpeciesFile);
-
}
- protected void addFileAsAttachment(File f) {
- EditCatchesUIModel model = getModel();
-
- Attachment attachment = new Attachment();
- attachment.setObjectType(model.getObjectType());
- attachment.setObjectId(Integer.valueOf(model.getObjectId()));
- attachment.setName(f.getName());
- attachment.setComment("import pupitri");
- attachment = persistenceService.createAttachment(attachment, f);
-
- model.addAttachment(attachment);
- }
-
@Override
public void postSuccessAction() {
super.postSuccessAction();
@@ -286,38 +179,4 @@
currentProtocol = null;
}
- class ImportPupitriSpeciesBatchRootRowModel implements SpeciesBatchRootRowModel {
-
- Species species;
-
- CaracteristicQualitativeValue sortedUnsortedCategory;
-
- Float batchWeight;
-
- public ImportPupitriSpeciesBatchRootRowModel(Species species,
- CaracteristicQualitativeValue sortedUnsortedCategory,
- Float batchWeight) {
-
- this.species = species;
- this.sortedUnsortedCategory = sortedUnsortedCategory;
- this.batchWeight = batchWeight;
- }
-
- public Species getSpecies() {
- return species;
- }
-
- public CaracteristicQualitativeValue getSortedUnsortedCategory() {
- return sortedUnsortedCategory;
- }
-
- public Float getBatchWeight() {
- return batchWeight;
- }
-
- public boolean isValid() {
- return species != null && sortedUnsortedCategory != null;
- }
-
- }
}
Deleted: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/SpeciesBatchRootRowModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/SpeciesBatchRootRowModel.java 2013-03-26 18:15:28 UTC (rev 685)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/SpeciesBatchRootRowModel.java 2013-03-26 18:15:51 UTC (rev 686)
@@ -1,44 +0,0 @@
-package fr.ifremer.tutti.ui.swing.content.operation.catches;
-
-/*
- * #%L
- * Tutti :: UI
- * $Id$
- * $HeadURL$
- * %%
- * Copyright (C) 2012 - 2013 Ifremer
- * %%
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public
- * License along with this program. If not, see
- * <http://www.gnu.org/licenses/gpl-3.0.html>.
- * #L%
- */
-
-import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValue;
-import fr.ifremer.tutti.persistence.entities.referential.Species;
-
-/**
- * TODO explain why ?
- * @author kmorin <kmorin(a)codelutin.com>
- * @since 1.2
- */
-public interface SpeciesBatchRootRowModel {
-
- Species getSpecies();
-
- CaracteristicQualitativeValue getSortedUnsortedCategory();
-
- Float getBatchWeight();
-
- boolean isValid();
-}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchUIHandler.java 2013-03-26 18:15:28 UTC (rev 685)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchUIHandler.java 2013-03-26 18:15:51 UTC (rev 686)
@@ -43,9 +43,9 @@
import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUIModel;
import fr.ifremer.tutti.ui.swing.content.operation.catches.SampleCategory;
import fr.ifremer.tutti.ui.swing.content.operation.catches.SampleCategoryComponent;
-import fr.ifremer.tutti.ui.swing.content.operation.catches.SpeciesBatchRootRowModel;
import fr.ifremer.tutti.ui.swing.content.operation.catches.TableViewMode;
import fr.ifremer.tutti.ui.swing.content.operation.catches.benthos.create.CreateBenthosBatchUI;
+import fr.ifremer.tutti.ui.swing.content.operation.catches.benthos.create.CreateBenthosBatchUIModel;
import fr.ifremer.tutti.ui.swing.content.operation.catches.benthos.frequency.BenthosFrequencyCellComponent;
import fr.ifremer.tutti.ui.swing.content.operation.catches.benthos.frequency.BenthosFrequencyRowModel;
import fr.ifremer.tutti.ui.swing.content.operation.catches.benthos.split.SplitBenthosBatchRowModel;
@@ -614,7 +614,7 @@
parent.getHandler().setBenthosSelectedCard(EditCatchesUIHandler.CREATE_BATCH_CARD);
}
- public void addBatch(SpeciesBatchRootRowModel speciesBatchRootRowModel) {
+ public void addBatch(CreateBenthosBatchUIModel speciesBatchRootRowModel) {
if (speciesBatchRootRowModel.isValid()) {
BenthosBatchTableModel tableModel = getTableModel();
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/create/CreateBenthosBatchUIModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/create/CreateBenthosBatchUIModel.java 2013-03-26 18:15:28 UTC (rev 685)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/create/CreateBenthosBatchUIModel.java 2013-03-26 18:15:51 UTC (rev 686)
@@ -28,7 +28,6 @@
import com.google.common.collect.Multimap;
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.SpeciesBatchRootRowModel;
import fr.ifremer.tutti.ui.swing.content.operation.catches.species.create.CreateSpeciesBatchUI;
import fr.ifremer.tutti.ui.swing.util.AbstractTuttiBeanUIModel;
import org.apache.commons.logging.Log;
@@ -42,8 +41,7 @@
* @author tchemit <chemit(a)codelutin.com>
* @since 0.3
*/
-public class CreateBenthosBatchUIModel extends AbstractTuttiBeanUIModel<CreateBenthosBatchUIModel, CreateBenthosBatchUIModel>
- implements SpeciesBatchRootRowModel {
+public class CreateBenthosBatchUIModel extends AbstractTuttiBeanUIModel<CreateBenthosBatchUIModel, CreateBenthosBatchUIModel> {
private final static Log log = LogFactory.getLog(CreateBenthosBatchUIModel.class);
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIHandler.java 2013-03-26 18:15:28 UTC (rev 685)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIHandler.java 2013-03-26 18:15:51 UTC (rev 686)
@@ -43,9 +43,9 @@
import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUIModel;
import fr.ifremer.tutti.ui.swing.content.operation.catches.SampleCategory;
import fr.ifremer.tutti.ui.swing.content.operation.catches.SampleCategoryComponent;
-import fr.ifremer.tutti.ui.swing.content.operation.catches.SpeciesBatchRootRowModel;
import fr.ifremer.tutti.ui.swing.content.operation.catches.TableViewMode;
import fr.ifremer.tutti.ui.swing.content.operation.catches.species.create.CreateSpeciesBatchUI;
+import fr.ifremer.tutti.ui.swing.content.operation.catches.species.create.CreateSpeciesBatchUIModel;
import fr.ifremer.tutti.ui.swing.content.operation.catches.species.frequency.SpeciesFrequencyCellComponent;
import fr.ifremer.tutti.ui.swing.content.operation.catches.species.frequency.SpeciesFrequencyRowModel;
import fr.ifremer.tutti.ui.swing.content.operation.catches.species.split.SplitSpeciesBatchRowModel;
@@ -621,7 +621,7 @@
parent.getHandler().setSpeciesSelectedCard(EditCatchesUIHandler.CREATE_BATCH_CARD);
}
- public void addBatch(SpeciesBatchRootRowModel speciesBatchRootRowModel) {
+ public void addBatch(CreateSpeciesBatchUIModel speciesBatchRootRowModel) {
if (speciesBatchRootRowModel.isValid()) {
SpeciesBatchTableModel tableModel = getTableModel();
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/create/CreateSpeciesBatchUIModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/create/CreateSpeciesBatchUIModel.java 2013-03-26 18:15:28 UTC (rev 685)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/create/CreateSpeciesBatchUIModel.java 2013-03-26 18:15:51 UTC (rev 686)
@@ -28,7 +28,6 @@
import com.google.common.collect.Multimap;
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.SpeciesBatchRootRowModel;
import fr.ifremer.tutti.ui.swing.util.AbstractTuttiBeanUIModel;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -41,8 +40,7 @@
* @author tchemit <chemit(a)codelutin.com>
* @since 0.3
*/
-public class CreateSpeciesBatchUIModel extends AbstractTuttiBeanUIModel<CreateSpeciesBatchUIModel, CreateSpeciesBatchUIModel>
- implements SpeciesBatchRootRowModel {
+public class CreateSpeciesBatchUIModel extends AbstractTuttiBeanUIModel<CreateSpeciesBatchUIModel, CreateSpeciesBatchUIModel> {
private final static Log log = LogFactory.getLog(CreateSpeciesBatchUIModel.class);
1
0
r685 - trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/pupitri
by kmorin@users.forge.codelutin.com 26 Mar '13
by kmorin@users.forge.codelutin.com 26 Mar '13
26 Mar '13
Author: kmorin
Date: 2013-03-26 19:15:28 +0100 (Tue, 26 Mar 2013)
New Revision: 685
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/685
Log:
refs #1868 [CAPTURE] - Import/Export PUPITRI
Modified:
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/pupitri/TuttiPupitriImportExportService.java
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/pupitri/TuttiPupitriImportExportService.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/pupitri/TuttiPupitriImportExportService.java 2013-03-26 17:14:14 UTC (rev 684)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/pupitri/TuttiPupitriImportExportService.java 2013-03-26 18:15:28 UTC (rev 685)
@@ -33,11 +33,23 @@
import com.google.common.collect.Multimaps;
import com.google.common.io.Files;
import fr.ifremer.tutti.TuttiTechnicalException;
+import fr.ifremer.tutti.persistence.entities.data.AttachementObjectTypeEnum;
+import fr.ifremer.tutti.persistence.entities.data.Attachment;
+import fr.ifremer.tutti.persistence.entities.data.BatchContainer;
import fr.ifremer.tutti.persistence.entities.data.CatchBatch;
import fr.ifremer.tutti.persistence.entities.data.FishingOperation;
+import fr.ifremer.tutti.persistence.entities.data.SampleCategoryEnum;
+import fr.ifremer.tutti.persistence.entities.data.SexEnum;
+import fr.ifremer.tutti.persistence.entities.data.SizeEnum;
+import fr.ifremer.tutti.persistence.entities.data.SortedUnsortedEnum;
+import fr.ifremer.tutti.persistence.entities.data.SpeciesBatch;
import fr.ifremer.tutti.persistence.entities.protocol.SpeciesProtocol;
+import fr.ifremer.tutti.persistence.entities.referential.Caracteristic;
+import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValue;
import fr.ifremer.tutti.persistence.entities.referential.Species;
import fr.ifremer.tutti.service.AbstractTuttiService;
+import fr.ifremer.tutti.service.PersistenceService;
+import fr.ifremer.tutti.service.TuttiServiceContext;
import fr.ifremer.tutti.service.protocol.TuttiProtocolImportExportService;
import java.io.BufferedWriter;
import org.apache.commons.io.FileUtils;
@@ -67,8 +79,72 @@
private static final Log log =
LogFactory.getLog(TuttiPupitriImportExportService.class);
- public void importPupitriTrunk(File file, FishingOperation operation, CatchBatch catchBatch) {
+ protected PersistenceService persistenceService;
+ protected CaracteristicQualitativeValue sortedCaracteristic;
+
+ protected CaracteristicQualitativeValue unsortedCaracteristic;
+
+ protected CaracteristicQualitativeValue maleCaracteristic;
+
+ protected CaracteristicQualitativeValue femaleCaracteristic;
+
+ protected CaracteristicQualitativeValue smallCaracteristic;
+
+ protected CaracteristicQualitativeValue mediumCaracteristic;
+
+ protected CaracteristicQualitativeValue bigCaracteristic;
+
+ @Override
+ public void setServiceContext(TuttiServiceContext context) {
+ super.setServiceContext(context);
+ persistenceService = getService(PersistenceService.class);
+
+ // get the sorted/unsorted caracteristics
+ Caracteristic sortedUnsortedcaracteristic =
+ persistenceService.getSortedUnsortedCaracteristic();
+ sortedCaracteristic = SortedUnsortedEnum.SORTED.getValue(sortedUnsortedcaracteristic);
+ unsortedCaracteristic = SortedUnsortedEnum.UNSORTED.getValue(sortedUnsortedcaracteristic);
+
+ Caracteristic sexCaracteristic = persistenceService.getSexCaracteristic();
+ maleCaracteristic = SexEnum.MALE.getValue(sexCaracteristic);
+ femaleCaracteristic = SexEnum.FEMALE.getValue(sexCaracteristic);
+
+ Caracteristic sizeCaracteristic = persistenceService.getSizeCategoryCaracteristic();
+ smallCaracteristic = SizeEnum.SMALL.getValue(sizeCaracteristic);
+ mediumCaracteristic = SizeEnum.MEDIUM.getValue(sizeCaracteristic);
+ bigCaracteristic = SizeEnum.BIG.getValue(sizeCaracteristic);
+ }
+
+ public void importPupitri(File trunkFile,
+ File carrouselFile,
+ File speciesFile,
+ FishingOperation operation,
+ CatchBatch catchBatch,
+ List<Species> referentSpecies) {
+
+ importPupitriTrunk(trunkFile, operation, catchBatch);
+
+ importPupitriCarrousel(carrouselFile, speciesFile, operation, catchBatch, referentSpecies);
+
+ addFileAsAttachment(trunkFile, catchBatch);
+ addFileAsAttachment(carrouselFile, catchBatch);
+ addFileAsAttachment(speciesFile, catchBatch);
+
+ persistenceService.saveCatchBatch(catchBatch);
+ }
+
+ protected void addFileAsAttachment(File f, CatchBatch catchBatch) {
+ Attachment attachment = new Attachment();
+ attachment.setObjectType(AttachementObjectTypeEnum.CATCH_BATCH);
+ attachment.setObjectId(Integer.valueOf(catchBatch.getId()));
+ attachment.setName(f.getName());
+ attachment.setComment("import pupitri");
+ persistenceService.createAttachment(attachment, f);
+ }
+
+ protected void importPupitriTrunk(File file, FishingOperation operation, CatchBatch catchBatch) {
+
if (log.isInfoEnabled()) {
log.info("Will import pupitri operation [" + operation.toString() +
"] trunk from file: " + file);
@@ -140,7 +216,7 @@
}
- public List<PupitriCatch> importPupitriCarrousel(File carrouselFile,
+ protected void importPupitriCarrousel(File carrouselFile,
File speciesFile,
FishingOperation operation,
CatchBatch catchBatch,
@@ -151,7 +227,6 @@
"] carrousel from file: " + carrouselFile);
}
- List<PupitriCatch> result = Lists.newArrayList();
Reader reader = null;
File fileWithHeaders = null;
@@ -223,6 +298,7 @@
Float carrouselSortedWeight = 0f;
+ List<PupitriCatch> catches = Lists.newArrayList();
for (CarrouselRow bean : carrouselImporter) {
// is the bean from the current operation and rig ?
if (bean.getOperationCode().equals(operationNumber)
@@ -248,11 +324,11 @@
if (species != null) {
PupitriCatch pupitriCatch = new PupitriCatch(species, sorted);
- int catchIndex = result.indexOf(pupitriCatch);
+ int catchIndex = catches.indexOf(pupitriCatch);
if (catchIndex >= 0) {
- pupitriCatch = result.get(catchIndex);
+ pupitriCatch = catches.get(catchIndex);
} else {
- result.add(pupitriCatch);
+ catches.add(pupitriCatch);
}
pupitriCatch.addToSign(bean.getSign(), beanWeight);
}
@@ -260,6 +336,70 @@
}
catchBatch.setCatchTotalSortedCarousselWeight(carrouselSortedWeight);
+ BatchContainer<SpeciesBatch> rootSpeciesBatch = persistenceService.getRootSpeciesBatch(operation.getId());
+ for (SpeciesBatch batch : rootSpeciesBatch.getChildren()) {
+ persistenceService.deleteSpeciesBatch(batch.getId());
+ }
+
+ for (PupitriCatch pupitriCatch : catches) {
+
+ Float catchWeight = pupitriCatch.getWeightBySign().get(PupitriCatch.Signs.DEFAULT);
+ CaracteristicQualitativeValue cqv = pupitriCatch.isSorted() ?
+ sortedCaracteristic : unsortedCaracteristic;
+
+ SpeciesBatch batch = new SpeciesBatch();
+ batch.setFishingOperation(operation);
+ batch.setSampleCategoryType(SampleCategoryEnum.sortedUnsorted);
+ batch.setSampleCategoryValue(cqv);
+ batch.setSpecies(pupitriCatch.getSpecies());
+ batch.setSampleCategoryWeight(catchWeight);
+
+ batch = persistenceService.createSpeciesBatch(batch, null);
+
+ // if the batch is splitted
+ if (catchWeight == null) {
+ SampleCategoryEnum category = null;
+ for (PupitriCatch.Signs s : pupitriCatch.getWeightBySign().keySet()) {
+ CaracteristicQualitativeValue splitCqv = null;
+ switch (s) {
+ case MALE:
+ splitCqv = maleCaracteristic;
+ category = SampleCategoryEnum.sex;
+ break;
+
+ case FEMALE:
+ splitCqv = femaleCaracteristic;
+ category = SampleCategoryEnum.sex;
+ break;
+
+ case SMALL:
+ splitCqv = smallCaracteristic;
+ category = SampleCategoryEnum.size;
+ break;
+
+ case MEDIUM:
+ splitCqv = mediumCaracteristic;
+ category = SampleCategoryEnum.size;
+ break;
+
+ case BIG:
+ splitCqv = bigCaracteristic;
+ category = SampleCategoryEnum.size;
+ break;
+ }
+
+ SpeciesBatch childBatch = new SpeciesBatch();
+ childBatch.setFishingOperation(operation);
+ childBatch.setSampleCategoryType(category);
+ childBatch.setSampleCategoryValue(splitCqv);
+ childBatch.setSpecies(pupitriCatch.getSpecies());
+ childBatch.setSampleCategoryWeight(pupitriCatch.getWeightBySign().get(s));
+
+ persistenceService.createSpeciesBatch(childBatch, batch.getId());
+ }
+ }
+ }
+
carrouselImporter.close();
speciesImporter.close();
reader.close();
@@ -273,8 +413,6 @@
IOUtils.closeQuietly(reader);
FileUtils.deleteQuietly(fileWithHeaders);
}
-
- return result;
}
1
0
See <http://ci.nuiton.org/jenkins/job/tutti/543/changes>
Changes:
[Tony Chemit] refs #1863: [BENTHOS] - Gestion de la saisie du benthos
- impact sur service de persistence
- debut de reusinage des APi d'ui
------------------------------------------
[...truncated 14 lines...]
U tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchRowModel.java
U tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/SplitSpeciesBatchUI.jaxx
U tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/SplitSpeciesBatchRowModel.java
U tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/SplitSpeciesBatchUIHandler.java
U tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/CreateSpeciesBatchUI.jaxx
U tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/SplitSpeciesBatchUIModel.java
U tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/CreateSpeciesBatchUIHandler.java
U tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIModel.java
U tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIHandler.java
A tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/CreateSpeciesMelagAction.java
U tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/RenameSpeciesBatchAction.java
U tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUI.jaxx
U tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchTableModel.java
U tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIHandler.java
A tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/SampleCategory.java
A tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/SampleCategoryType.java
U tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchUIHandler.java
U tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchUI.jaxx
A tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/TableViewMode.java
U tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java
U tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/BatchPersistenceServiceWriteTest.java
U tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceImpl.java
U tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/BatchPersistenceService.java
U tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/BatchPersistenceServiceImpl.java
U tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceNoDbImpl.java
U tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistence.java
At revision 662
Parsing POMs
[trunk] $ /opt/jdk/bin/java -Xmx256m -XX:-UseGCOverheadLimit -cp /var/local/jenkins/data/plugins/maven-plugin/WEB-INF/lib/maven3-agent-1.2.jar:/opt/maven3/boot/plexus-classworlds-2.4.jar org.jvnet.hudson.maven3.agent.Maven3Main /opt/maven3 /opt/repo/apache-tomcat-7.0.34/webapps/jenkins/WEB-INF/lib/remoting-2.22.jar /var/local/jenkins/data/plugins/maven-plugin/WEB-INF/lib/maven3-interceptor-1.2.jar 46301
<===[JENKINS REMOTING CAPACITY]===> channel started
log4j:WARN No appenders could be found for logger (org.apache.commons.beanutils.converters.BooleanConverter).
log4j:WARN Please initialize the log4j system properly.
[INFO] Error stacktraces are turned on.
Executing Maven: -B -f <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/pom.xml> -U -e clean install
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Build Order:
[INFO]
[INFO] Tutti
[INFO] Tutti :: Persistence
[INFO] Tutti :: Service
[INFO] Tutti :: UI
Projects to build: [MavenProject: fr.ifremer:tutti:1.2-SNAPSHOT @ <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/pom.xml,> MavenProject: fr.ifremer.tutti:tutti-persistence:1.2-SNAPSHOT @ <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-persistence/pom.xml,> MavenProject: fr.ifremer.tutti:tutti-service:1.2-SNAPSHOT @ <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-service/pom.xml,> MavenProject: fr.ifremer.tutti:tutti-ui-swing:1.2-SNAPSHOT @ <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/pom.xml]>
projectStarted fr.ifremer:tutti:1.2-SNAPSHOT
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building Tutti 1.2-SNAPSHOT
[INFO] ------------------------------------------------------------------------
mojoStarted org.apache.maven.plugins:maven-clean-plugin:2.5(default-clean)
[INFO]
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ tutti ---
[INFO] Deleting <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/target>
mojoSucceeded org.apache.maven.plugins:maven-clean-plugin:2.5(default-clean)
mojoStarted org.apache.maven.plugins:maven-enforcer-plugin:1.2(check-project-files)
[INFO]
[INFO] --- maven-enforcer-plugin:1.2:enforce (check-project-files) @ tutti ---
mojoSucceeded org.apache.maven.plugins:maven-enforcer-plugin:1.2(check-project-files)
mojoStarted org.apache.maven.plugins:maven-antrun-plugin:1.7(generate-surefire-workdir)
[INFO]
[INFO] --- maven-antrun-plugin:1.7:run (generate-surefire-workdir) @ tutti ---
[INFO] Executing tasks
main:
[mkdir] Created dir: <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/target/surefire-workdir>
[INFO] Executed tasks
mojoSucceeded org.apache.maven.plugins:maven-antrun-plugin:1.7(generate-surefire-workdir)
mojoStarted org.apache.maven.plugins:maven-site-plugin:3.2(attach-descriptor)
[INFO]
[INFO] --- maven-site-plugin:3.2:attach-descriptor (attach-descriptor) @ tutti ---
mojoSucceeded org.apache.maven.plugins:maven-site-plugin:3.2(attach-descriptor)
mojoStarted org.apache.maven.plugins:maven-install-plugin:2.4(default-install)
[INFO]
[INFO] --- maven-install-plugin:2.4:install (default-install) @ tutti ---
[INFO] Installing <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/pom.xml> to /var/local/maven/data/repository/fr/ifremer/tutti/1.2-SNAPSHOT/tutti-1.2-SNAPSHOT.pom
[INFO] Installing <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/target/tutti-1.2-SNAPSHOT-s…> to /var/local/maven/data/repository/fr/ifremer/tutti/1.2-SNAPSHOT/tutti-1.2-SNAPSHOT-site_fr.xml
mojoSucceeded org.apache.maven.plugins:maven-install-plugin:2.4(default-install)
projectSucceeded fr.ifremer:tutti:1.2-SNAPSHOT
projectStarted fr.ifremer.tutti:tutti-persistence:1.2-SNAPSHOT
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building Tutti :: Persistence 1.2-SNAPSHOT
[INFO] ------------------------------------------------------------------------
mojoStarted org.apache.maven.plugins:maven-clean-plugin:2.5(default-clean)
[INFO]
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ tutti-persistence ---
[INFO] Deleting <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-persistence/target>
mojoSucceeded org.apache.maven.plugins:maven-clean-plugin:2.5(default-clean)
mojoStarted org.apache.maven.plugins:maven-enforcer-plugin:1.2(check-project-files)
[INFO]
[INFO] --- maven-enforcer-plugin:1.2:enforce (check-project-files) @ tutti-persistence ---
mojoSucceeded org.apache.maven.plugins:maven-enforcer-plugin:1.2(check-project-files)
mojoStarted org.nuiton.eugene:eugene-maven-plugin:2.6.1(default)
[INFO]
[INFO] --- eugene-maven-plugin:2.6.1:generate (default) @ tutti-persistence ---
[INFO] Process phase [zargo] for one entry.
[INFO] Expanding 1 xmi file(s) from <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-persistence/src/main/…>
[INFO] Will generate <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-persistence/target/ge…>
[INFO] Copy file <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-persistence/src/main/…> to <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-persistence/target/ge…>
[INFO] Generate one file in 348.113ms.
[INFO] Process phase [xmi] for one entry.
[INFO] Processing XSL tranformation on <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-persistence/target/ge…> for 1 file(s).
[INFO] Will generate <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-persistence/target/ge…>
[INFO] Copy file <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-persistence/target/ge…> to <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-persistence/target/ge…>
[INFO] Generate one file in 8.289s.
[INFO] Process phase [model] for one entry.
WARN [pool-1-thread-1] (ObjectModelReader.java:580) getObjectElements - Invalid stereotype [fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol.attribute.hydrologyPmfmId.stereotype] : Element 'hydrologyPmfmId' of type 'attribute' on classifier 'fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol' is null.
INFO [pool-1-thread-1] (ObjectModelReader.java:273) loadModelProperties - 19 tag values were succesfull imported from <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-persistence/target/ge…>
[INFO] Apply generator JavaInterfaceTransformer
[INFO] Apply generator SimpleJavaBeanTransformer
INFO [pool-1-thread-1] (ObjectModelTransformerToJava.java:911) isInClassPath - Will not generate [fr.ifremer.tutti.persistence.entities.data.Program], already found in class-path.
[INFO] Apply generator JavaEnumerationTransformer
INFO [pool-1-thread-1] (ObjectModelTransformerToJava.java:911) isInClassPath - Will not generate [fr.ifremer.tutti.persistence.entities.data.AttachementObjectTypeEnum], already found in class-path.
INFO [pool-1-thread-1] (ObjectModelTransformerToJava.java:911) isInClassPath - Will not generate [fr.ifremer.tutti.persistence.entities.data.SampleCategoryEnum], already found in class-path.
[INFO] No file generated.
[INFO] Add compile source root : <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-persistence/target/ge…>
[INFO] Add resource root :Resource {targetPath: null, filtering: false, FileSet {directory: <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-persistence/target/ge…,> PatternSet [includes: {}, excludes: {**/*.java}]}}
mojoSucceeded org.nuiton.eugene:eugene-maven-plugin:2.6.1(default)
mojoStarted org.nuiton.i18n:i18n-maven-plugin:2.5(scan-sources)
[INFO]
[INFO] --- i18n-maven-plugin:2.5:parserJava (scan-sources) @ tutti-persistence ---
mojoSucceeded org.nuiton.i18n:i18n-maven-plugin:2.5(scan-sources)
forkedProjectStarted fr.ifremer.tutti:tutti-persistence:1.2-SNAPSHOT
mojoStarted org.nuiton.i18n:i18n-maven-plugin:2.5(get)
[INFO]
[INFO] --- i18n-maven-plugin:2.5:get (get) @ tutti-persistence ---
[INFO] Copying tutti-persistence.properties to <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-persistence/target/ge…>
[INFO] Copying tutti-persistence.properties to <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-persistence/target/ge…>
mojoSucceeded org.nuiton.i18n:i18n-maven-plugin:2.5(get)
forkedProjectSucceeded fr.ifremer.tutti:tutti-persistence:1.2-SNAPSHOT
mojoStarted org.nuiton.i18n:i18n-maven-plugin:2.5(scan-sources)
[INFO]
[INFO] --- i18n-maven-plugin:2.5:gen (scan-sources) @ tutti-persistence ---
[WARNING] bundle en_GB contains 27/27 empty entries! (use -Di18n.showEmpty to see these entries)
mojoSucceeded org.nuiton.i18n:i18n-maven-plugin:2.5(scan-sources)
mojoStarted org.apache.maven.plugins:maven-resources-plugin:2.6(default-resources)
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ tutti-persistence ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 8 resources
[INFO] Copying 0 resource
mojoSucceeded org.apache.maven.plugins:maven-resources-plugin:2.6(default-resources)
mojoStarted org.apache.maven.plugins:maven-compiler-plugin:2.5.1(default-compile)
[INFO]
[INFO] --- maven-compiler-plugin:2.5.1:compile (default-compile) @ tutti-persistence ---
[INFO] Compiling 88 source files to <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-persistence/target/cl…>
mojoSucceeded org.apache.maven.plugins:maven-compiler-plugin:2.5.1(default-compile)
mojoStarted org.apache.maven.plugins:maven-antrun-plugin:1.7(generate-surefire-workdir)
[INFO]
[INFO] --- maven-antrun-plugin:1.7:run (generate-surefire-workdir) @ tutti-persistence ---
[INFO] Executing tasks
main:
[mkdir] Created dir: <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-persistence/target/su…>
[INFO] Executed tasks
mojoSucceeded org.apache.maven.plugins:maven-antrun-plugin:1.7(generate-surefire-workdir)
mojoStarted org.apache.maven.plugins:maven-resources-plugin:2.6(default-testResources)
[INFO]
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ tutti-persistence ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 5 resources
mojoSucceeded org.apache.maven.plugins:maven-resources-plugin:2.6(default-testResources)
mojoStarted org.apache.maven.plugins:maven-compiler-plugin:2.5.1(default-testCompile)
[INFO]
[INFO] --- maven-compiler-plugin:2.5.1:testCompile (default-testCompile) @ tutti-persistence ---
[INFO] Compiling 29 source files to <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-persistence/target/te…>
[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] bootstrap class path not set in conjunction with -source 1.6
<http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-persistence/src/test/…>:[858,15] error: no suitable method found for getSpeciesBatch(String,BatchContainer<SpeciesBatch>)
[INFO] 1 error
[INFO] -------------------------------------------------------------
mojoFailed org.apache.maven.plugins:maven-compiler-plugin:2.5.1(default-testCompile)
projectFailed fr.ifremer.tutti:tutti-persistence:1.2-SNAPSHOT
sessionEnded
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO]
[INFO] Tutti ............................................. SUCCESS [52.011s]
[INFO] Tutti :: Persistence .............................. FAILURE [57.872s]
[INFO] Tutti :: Service .................................. SKIPPED
[INFO] Tutti :: UI ....................................... SKIPPED
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1:56.455s
[INFO] Finished at: Thu Mar 21 00:34:21 CET 2013
[INFO] Final Memory: 29M/84M
[INFO] ------------------------------------------------------------------------
Projects to build: [MavenProject: fr.ifremer:tutti:1.2-SNAPSHOT @ <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/pom.xml,> MavenProject: fr.ifremer.tutti:tutti-persistence:1.2-SNAPSHOT @ <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-persistence/pom.xml,> MavenProject: fr.ifremer.tutti:tutti-service:1.2-SNAPSHOT @ <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-service/pom.xml,> MavenProject: fr.ifremer.tutti:tutti-ui-swing:1.2-SNAPSHOT @ <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/pom.xml]>
[JENKINS] Archiving <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-service/pom.xml> to /var/local/jenkins/data/jobs/tutti/modules/fr.ifremer.tutti$tutti-service/builds/2013-03-21_00-32-00/archive/fr.ifremer.tutti/tutti-service/1.2-SNAPSHOT/tutti-service-1.2-SNAPSHOT.pom
[JENKINS] Archiving <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-ui-swing/pom.xml> to /var/local/jenkins/data/jobs/tutti/modules/fr.ifremer.tutti$tutti-ui-swing/builds/2013-03-21_00-32-01/archive/fr.ifremer.tutti/tutti-ui-swing/1.2-SNAPSHOT/tutti-ui-swing-1.2-SNAPSHOT.pom
[JENKINS] Archiving <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/pom.xml> to /var/local/jenkins/data/jobs/tutti/modules/fr.ifremer$tutti/builds/2013-03-21_00-32-00/archive/fr.ifremer/tutti/1.2-SNAPSHOT/tutti-1.2-SNAPSHOT.pom
[JENKINS] Archiving <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/target/tutti-1.2-SNAPSHOT-s…> to /var/local/jenkins/data/jobs/tutti/modules/fr.ifremer$tutti/builds/2013-03-21_00-32-00/archive/fr.ifremer/tutti/1.2-SNAPSHOT/tutti-1.2-SNAPSHOT-site_fr.xml
[JENKINS] Archiving <http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-persistence/pom.xml> to /var/local/jenkins/data/jobs/tutti/modules/fr.ifremer.tutti$tutti-persistence/builds/2013-03-21_00-32-00/archive/fr.ifremer.tutti/tutti-persistence/1.2-SNAPSHOT/tutti-persistence-1.2-SNAPSHOT.pom
Waiting for Jenkins to finish collecting data
mavenExecutionResult exceptions not empty
message : Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.5.1:testCompile (default-testCompile) on project tutti-persistence: Compilation failure
bootstrap class path not set in conjunction with -source 1.6
<http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-persistence/src/test/…>:[858,15] error: no suitable method found for getSpeciesBatch(String,BatchContainer<SpeciesBatch>)
cause : Compilation failure
bootstrap class path not set in conjunction with -source 1.6
<http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-persistence/src/test/…>:[858,15] error: no suitable method found for getSpeciesBatch(String,BatchContainer<SpeciesBatch>)
Stack trace :
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.5.1:testCompile (default-testCompile) on project tutti-persistence: Compilation failure
bootstrap class path not set in conjunction with -source 1.6
<http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-persistence/src/test/…>:[858,15] error: no suitable method found for getSpeciesBatch(String,BatchContainer<SpeciesBatch>)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:213)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)
at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:320)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
at org.jvnet.hudson.maven3.launcher.Maven3Launcher.main(Maven3Launcher.java:79)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchStandard(Launcher.java:329)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:239)
at org.jvnet.hudson.maven3.agent.Maven3Main.launch(Maven3Main.java:158)
at hudson.maven.Maven3Builder.call(Maven3Builder.java:100)
at hudson.maven.Maven3Builder.call(Maven3Builder.java:66)
at hudson.remoting.UserRequest.perform(UserRequest.java:118)
at hudson.remoting.UserRequest.perform(UserRequest.java:48)
at hudson.remoting.Request$2.run(Request.java:326)
at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
Caused by: org.apache.maven.plugin.CompilationFailureException: Compilation failure
bootstrap class path not set in conjunction with -source 1.6
<http://ci.nuiton.org/jenkins/job/tutti/ws/trunk/tutti-persistence/src/test/…>:[858,15] error: no suitable method found for getSpeciesBatch(String,BatchContainer<SpeciesBatch>)
at org.apache.maven.plugin.AbstractCompilerMojo.execute(AbstractCompilerMojo.java:729)
at org.apache.maven.plugin.TestCompilerMojo.execute(TestCompilerMojo.java:161)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209)
... 27 more
Sending e-mails to: tutti-commits(a)list.forge.codelutin.com chemit(a)codelutin.com
channel stopped
1
20
26 Mar '13
See <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/555/>
------------------------------------------
projectStarted fr.ifremer.tutti:tutti-ui-swing:1.2-SNAPSHOT
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building Tutti :: UI 1.2-SNAPSHOT
[INFO] ------------------------------------------------------------------------
Downloading: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-ma…
Downloading: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/jaxx/ja…
Downloaded: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/jaxx/ja… (2 KB at 44.0 KB/sec)
Downloaded: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-ma… (2 KB at 39.1 KB/sec)
Downloading: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/jaxx/2.…
Downloading: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/2.5.15-…
Downloaded: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/jaxx/2.… (808 B at 10.8 KB/sec)
Downloaded: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/2.5.15-… (808 B at 10.2 KB/sec)
Downloading: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/nuiton-valid…
Downloading: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/nuiton-…
Downloaded: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/nuiton-… (2 KB at 65.2 KB/sec)
Downloaded: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/nuiton-valid… (2 KB at 53.7 KB/sec)
Downloading: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/nuiton-valid…
Downloaded: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/nuiton-valid… (8 KB at 229.9 KB/sec)
Downloading: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/jaxx/ja…
Downloading: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-ru…
Downloaded: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/jaxx/ja… (2 KB at 36.0 KB/sec)
Downloaded: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-ru… (2 KB at 29.8 KB/sec)
Downloading: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-co…
Downloading: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/jaxx/ja…
Downloaded: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/jaxx/ja… (2 KB at 51.9 KB/sec)
Downloaded: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-co… (2 KB at 40.0 KB/sec)
Downloading: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/jaxx/ja…
Downloading: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-wi…
Downloaded: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/jaxx/ja… (2 KB at 45.2 KB/sec)
Downloaded: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-wi… (2 KB at 40.1 KB/sec)
Downloading: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/jaxx/ja…
Downloading: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-va…
Downloaded: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/jaxx/ja… (2 KB at 57.6 KB/sec)
Downloaded: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-va… (2 KB at 52.0 KB/sec)
Downloading: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/nuiton-valid…
Downloading: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/nuiton-valid…
Downloaded: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/nuiton-valid… (96 KB at 1487.3 KB/sec)
Downloaded: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/nuiton-valid… (73 KB at 1009.9 KB/sec)
mojoStarted org.apache.maven.plugins:maven-clean-plugin:2.5(default-clean)
[INFO]
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ tutti-ui-swing ---
[INFO] Deleting <http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/t…>
mojoSucceeded org.apache.maven.plugins:maven-clean-plugin:2.5(default-clean)
mojoStarted org.apache.maven.plugins:maven-enforcer-plugin:1.2(check-project-files)
[INFO]
[INFO] --- maven-enforcer-plugin:1.2:enforce (check-project-files) @ tutti-ui-swing ---
mojoSucceeded org.apache.maven.plugins:maven-enforcer-plugin:1.2(check-project-files)
mojoStarted org.nuiton.jaxx:jaxx-maven-plugin:2.5.15-SNAPSHOT(default)
[INFO]
[INFO] --- jaxx-maven-plugin:2.5.15-SNAPSHOT:generate (default) @ tutti-ui-swing ---
Downloading: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-co…
Downloading: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/jaxx/ja…
Downloaded: http://nexus.nuiton.org/nexus/content/groups/tutti-group/org/nuiton/jaxx/ja… (2 KB at 45.3 KB/sec)
Downloaded: http://nexus.nuiton.org/nexus/content/groups/public/org/nuiton/jaxx/jaxx-co… (2 KB at 41.3 KB/sec)
[INFO] use project compile scope class-path
[INFO] Detects 34 modified jaxx file(s).
[ERROR] JAXX detects 2 errors :
<http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/s…>:84
: Invalid XML: The markup in the document following the root element must be well-formed.
<http://ci.nuiton.org/jenkins/job/tutti/fr.ifremer.tutti$tutti-ui-swing/ws/s…>:96
: Invalid XML: The markup in the document following the root element must be well-formed.
mojoFailed org.nuiton.jaxx:jaxx-maven-plugin:2.5.15-SNAPSHOT(default)
projectFailed fr.ifremer.tutti:tutti-ui-swing:1.2-SNAPSHOT
1
8
r684 - in trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches: . species species/split
by kmorin@users.forge.codelutin.com 26 Mar '13
by kmorin@users.forge.codelutin.com 26 Mar '13
26 Mar '13
Author: kmorin
Date: 2013-03-26 18:14:14 +0100 (Tue, 26 Mar 2013)
New Revision: 684
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/684
Log:
refs #1868 [CAPTURE] - Import/Export PUPITRI
Added:
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/SplitSpeciesBatchRowModel.java
Removed:
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SplitSpeciesBatchRowModel.java
Modified:
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/ImportPupitriAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/SplitSpeciesBatchTableModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/SplitSpeciesBatchUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/SplitSpeciesBatchUIModel.java
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/ImportPupitriAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/ImportPupitriAction.java 2013-03-26 17:02:29 UTC (rev 683)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/ImportPupitriAction.java 2013-03-26 17:14:14 UTC (rev 684)
@@ -42,7 +42,7 @@
import fr.ifremer.tutti.ui.swing.content.operation.catches.species.SpeciesBatchRowModel;
import fr.ifremer.tutti.ui.swing.content.operation.catches.species.SpeciesBatchUIHandler;
import fr.ifremer.tutti.ui.swing.content.operation.catches.species.SpeciesBatchUIModel;
-import fr.ifremer.tutti.ui.swing.content.operation.catches.species.SplitSpeciesBatchRowModel;
+import fr.ifremer.tutti.ui.swing.content.operation.catches.species.split.SplitSpeciesBatchRowModel;
import fr.ifremer.tutti.ui.swing.util.AbstractTuttiUIHandler;
import fr.ifremer.tutti.ui.swing.util.action.AbstractTuttiAction;
import org.apache.commons.logging.Log;
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIHandler.java 2013-03-26 17:02:29 UTC (rev 683)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIHandler.java 2013-03-26 17:14:14 UTC (rev 684)
@@ -48,8 +48,8 @@
import fr.ifremer.tutti.ui.swing.content.operation.catches.species.create.CreateSpeciesBatchUI;
import fr.ifremer.tutti.ui.swing.content.operation.catches.species.frequency.SpeciesFrequencyCellComponent;
import fr.ifremer.tutti.ui.swing.content.operation.catches.species.frequency.SpeciesFrequencyRowModel;
+import fr.ifremer.tutti.ui.swing.content.operation.catches.species.split.SplitSpeciesBatchRowModel;
import fr.ifremer.tutti.ui.swing.content.operation.catches.species.split.SplitSpeciesBatchUI;
-import fr.ifremer.tutti.ui.swing.content.operation.catches.species.split.SplitSpeciesBatchUIModel;
import fr.ifremer.tutti.ui.swing.util.TuttiBeanMonitor;
import fr.ifremer.tutti.ui.swing.util.TuttiUI;
import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil;
Deleted: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SplitSpeciesBatchRowModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SplitSpeciesBatchRowModel.java 2013-03-26 17:02:29 UTC (rev 683)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SplitSpeciesBatchRowModel.java 2013-03-26 17:14:14 UTC (rev 684)
@@ -1,102 +0,0 @@
-package fr.ifremer.tutti.ui.swing.content.operation.catches.species;
-
-/*
- * #%L
- * Tutti :: UI
- * $Id$
- * $HeadURL$
- * %%
- * Copyright (C) 2012 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.SampleCategoryEnum;
-import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValue;
-import fr.ifremer.tutti.ui.swing.content.operation.catches.SampleCategory;
-import fr.ifremer.tutti.ui.swing.util.AbstractTuttiBeanUIModel;
-import org.nuiton.util.beans.Binder;
-import org.nuiton.util.beans.BinderFactory;
-
-import java.io.Serializable;
-
-/**
- * A row in the {@link SplitSpeciesBatchUIModel}.
- *
- * @author tchemit <chemit(a)codelutin.com>
- * @since 0.3
- */
-public class SplitSpeciesBatchRowModel
- extends AbstractTuttiBeanUIModel<SplitSpeciesBatchRowModel, SplitSpeciesBatchRowModel> {
-
- private static final long serialVersionUID = 1L;
-
- public static final String PROPERTY_CATEGORY_VALUE = "categoryValue";
-
- public static final String PROPERTY_WEIGHT = "weight";
-
- /**
- * Delegate sample category which contains category value + weight.
- *
- * @since 0.3
- */
- protected final SampleCategory<Serializable> category = SampleCategory.newSample(null);
-
- public SplitSpeciesBatchRowModel() {
- super(SplitSpeciesBatchRowModel.class, null, null);
- }
-
- public SampleCategoryEnum getCategoryType() {
- return category.getCategoryType();
- }
-
- public void setCategoryType(SampleCategoryEnum categoryType) {
- category.setCategoryType(categoryType);
- }
-
- public Serializable getCategoryValue() {
- return category.getCategoryValue();
- }
-
- public void setCategoryValue(Serializable categoryValue) {
- Object oldValue = getCategoryValue();
- category.setCategoryValue(categoryValue);
- firePropertyChange(PROPERTY_CATEGORY_VALUE, oldValue, categoryValue);
- }
-
- public void setCategoryValue(CaracteristicQualitativeValue categoryValue) {
- Object oldValue = getCategoryValue();
- category.setCategoryValue(categoryValue);
- firePropertyChange(PROPERTY_CATEGORY_VALUE, oldValue, categoryValue);
- }
-
- public void setCategoryValue(Float categoryValue) {
- Object oldValue = getCategoryValue();
- category.setCategoryValue(categoryValue);
- firePropertyChange(PROPERTY_CATEGORY_VALUE, oldValue, categoryValue);
- }
-
- public Float getWeight() {
- return category.getCategoryWeight();
- }
-
- public void setWeight(Float weight) {
- Object oldValue = getWeight();
- category.setCategoryWeight(weight);
- firePropertyChange(PROPERTY_WEIGHT, oldValue, weight);
- }
-
-}
\ No newline at end of file
Added: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/SplitSpeciesBatchRowModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/SplitSpeciesBatchRowModel.java (rev 0)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/SplitSpeciesBatchRowModel.java 2013-03-26 17:14:14 UTC (rev 684)
@@ -0,0 +1,102 @@
+package fr.ifremer.tutti.ui.swing.content.operation.catches.species.split;
+
+/*
+ * #%L
+ * Tutti :: UI
+ * $Id: SplitSpeciesBatchRowModel.java 682 2013-03-26 16:47:05Z kmorin $
+ * $HeadURL: http://svn.forge.codelutin.com/svn/tutti/trunk/tutti-ui-swing/src/main/java… $
+ * %%
+ * Copyright (C) 2012 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.SampleCategoryEnum;
+import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValue;
+import fr.ifremer.tutti.ui.swing.content.operation.catches.SampleCategory;
+import fr.ifremer.tutti.ui.swing.util.AbstractTuttiBeanUIModel;
+import org.nuiton.util.beans.Binder;
+import org.nuiton.util.beans.BinderFactory;
+
+import java.io.Serializable;
+
+/**
+ * A row in the {@link SplitSpeciesBatchUIModel}.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 0.3
+ */
+public class SplitSpeciesBatchRowModel
+ extends AbstractTuttiBeanUIModel<SplitSpeciesBatchRowModel, SplitSpeciesBatchRowModel> {
+
+ private static final long serialVersionUID = 1L;
+
+ public static final String PROPERTY_CATEGORY_VALUE = "categoryValue";
+
+ public static final String PROPERTY_WEIGHT = "weight";
+
+ /**
+ * Delegate sample category which contains category value + weight.
+ *
+ * @since 0.3
+ */
+ protected final SampleCategory<Serializable> category = SampleCategory.newSample(null);
+
+ public SplitSpeciesBatchRowModel() {
+ super(SplitSpeciesBatchRowModel.class, null, null);
+ }
+
+ public SampleCategoryEnum getCategoryType() {
+ return category.getCategoryType();
+ }
+
+ public void setCategoryType(SampleCategoryEnum categoryType) {
+ category.setCategoryType(categoryType);
+ }
+
+ public Serializable getCategoryValue() {
+ return category.getCategoryValue();
+ }
+
+ public void setCategoryValue(Serializable categoryValue) {
+ Object oldValue = getCategoryValue();
+ category.setCategoryValue(categoryValue);
+ firePropertyChange(PROPERTY_CATEGORY_VALUE, oldValue, categoryValue);
+ }
+
+ public void setCategoryValue(CaracteristicQualitativeValue categoryValue) {
+ Object oldValue = getCategoryValue();
+ category.setCategoryValue(categoryValue);
+ firePropertyChange(PROPERTY_CATEGORY_VALUE, oldValue, categoryValue);
+ }
+
+ public void setCategoryValue(Float categoryValue) {
+ Object oldValue = getCategoryValue();
+ category.setCategoryValue(categoryValue);
+ firePropertyChange(PROPERTY_CATEGORY_VALUE, oldValue, categoryValue);
+ }
+
+ public Float getWeight() {
+ return category.getCategoryWeight();
+ }
+
+ public void setWeight(Float weight) {
+ Object oldValue = getWeight();
+ category.setCategoryWeight(weight);
+ firePropertyChange(PROPERTY_WEIGHT, oldValue, weight);
+ }
+
+}
\ No newline at end of file
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/SplitSpeciesBatchTableModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/SplitSpeciesBatchTableModel.java 2013-03-26 17:02:29 UTC (rev 683)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/SplitSpeciesBatchTableModel.java 2013-03-26 17:14:14 UTC (rev 684)
@@ -24,7 +24,6 @@
* #L%
*/
-import fr.ifremer.tutti.ui.swing.content.operation.catches.species.SplitSpeciesBatchRowModel;
import fr.ifremer.tutti.ui.swing.util.table.AbstractTuttiTableModel;
import fr.ifremer.tutti.ui.swing.util.table.ColumnIdentifier;
import org.jdesktop.swingx.table.TableColumnModelExt;
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/SplitSpeciesBatchUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/SplitSpeciesBatchUIHandler.java 2013-03-26 17:02:29 UTC (rev 683)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/SplitSpeciesBatchUIHandler.java 2013-03-26 17:14:14 UTC (rev 684)
@@ -24,7 +24,6 @@
* #L%
*/
-import fr.ifremer.tutti.ui.swing.content.operation.catches.species.SplitSpeciesBatchRowModel;
import com.google.common.base.Preconditions;
import com.google.common.collect.Lists;
import fr.ifremer.tutti.persistence.entities.data.SampleCategoryEnum;
@@ -33,7 +32,6 @@
import fr.ifremer.tutti.persistence.entities.referential.Species;
import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUI;
import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUIHandler;
-import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUIModel;
import fr.ifremer.tutti.ui.swing.content.operation.catches.SampleCategory;
import fr.ifremer.tutti.ui.swing.content.operation.catches.species.SpeciesBatchRowModel;
import fr.ifremer.tutti.ui.swing.content.operation.catches.species.SpeciesBatchUI;
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/SplitSpeciesBatchUIModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/SplitSpeciesBatchUIModel.java 2013-03-26 17:02:29 UTC (rev 683)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/SplitSpeciesBatchUIModel.java 2013-03-26 17:14:14 UTC (rev 684)
@@ -24,7 +24,6 @@
* #L%
*/
-import fr.ifremer.tutti.ui.swing.content.operation.catches.species.SplitSpeciesBatchRowModel;
import fr.ifremer.tutti.persistence.entities.data.SampleCategoryEnum;
import fr.ifremer.tutti.persistence.entities.referential.Species;
import fr.ifremer.tutti.ui.swing.content.operation.catches.species.SpeciesBatchRowModel;
1
0
26 Mar '13
Author: tchemit
Date: 2013-03-26 18:02:29 +0100 (Tue, 26 Mar 2013)
New Revision: 683
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/683
Log:
fixes #2213: [TRAIT] - Saisie du navire : on r?\195?\169cup?\195?\168re celui de la campagne
fixes #2199: [CAMPAGNE] - Saisie de l'ann?\195?\169e
fixes #2201: [CAMPAGNE] - Ports de d?\195?\169part et de retour
fixes #2222: Uniformiser la notion de Location
Modified:
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistence.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceImpl.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceNoDbImpl.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/AbstractTuttiEntity.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/data/Program.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/CruisePersistenceServiceImpl.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/FishingOperationPersistenceServiceImpl.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ProgramPersistenceServiceImpl.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceService.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceServiceImpl.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/TuttiEnumerationFile.java
trunk/tutti-persistence/src/main/resources/applicationContext-service-tutti.xml
trunk/tutti-persistence/src/main/resources/queries-override.hbm.xml
trunk/tutti-persistence/src/main/xmi/tutti-persistence.zargo
trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/DatabaseFixtures.java
trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/DatabaseResource.java
trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/BatchPersistenceServiceWriteTest.java
trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/CruisePersistenceServiceWriteTest.java
trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/FishingOperationPersistenceServiceWriteTest.java
trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/ProgramPersistenceServiceReadTest.java
trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/ProgramPersistenceServiceWriteTest.java
trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceServiceReadTest.java
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/DecoratorService.java
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java
trunk/tutti-ui-swing/src/main/filtered-resources/tutti-help-en.properties
trunk/tutti-ui-swing/src/main/filtered-resources/tutti-help-fr.properties
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiDataContext.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.css
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/EditCruiseUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUIModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.jaxx
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUI.jaxx
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUIModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiUIHandler.java
trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUIModel-error-validation.xml
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-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistence.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistence.java 2013-03-26 16:47:05 UTC (rev 682)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistence.java 2013-03-26 17:02:29 UTC (rev 683)
@@ -37,14 +37,12 @@
import fr.ifremer.tutti.persistence.entities.data.SpeciesBatchFrequency;
import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol;
import fr.ifremer.tutti.persistence.entities.referential.Caracteristic;
-import fr.ifremer.tutti.persistence.entities.referential.Country;
-import fr.ifremer.tutti.persistence.entities.referential.FishingOperationLocation;
import fr.ifremer.tutti.persistence.entities.referential.Gear;
import fr.ifremer.tutti.persistence.entities.referential.ObjectType;
import fr.ifremer.tutti.persistence.entities.referential.Person;
import fr.ifremer.tutti.persistence.entities.referential.Species;
+import fr.ifremer.tutti.persistence.entities.referential.TuttiLocation;
import fr.ifremer.tutti.persistence.entities.referential.Vessel;
-import fr.ifremer.tutti.persistence.entities.referential.Zone;
import org.springframework.transaction.annotation.Transactional;
import java.io.File;
@@ -79,27 +77,38 @@
/**
* @return all available zones (used by a {@link Program}.
* @see Program#getZone()
- * @see Program#setZone(Zone)
+ * @see Program#setZone(TuttiLocation)
* @since 0.3
*/
- List<Zone> getAllProgramZone();
+ List<TuttiLocation> getAllProgramZone();
/**
* @return all countries (used by a {@link Cruise}).
* @see {@link Cruise#getCountry()}
- * @see {@link Cruise#setCountry(Country)}
+ * @see {@link Cruise#setCountry(TuttiLocation)}
* @since 0.1
*/
- List<Country> getAllCountry();
+ List<TuttiLocation> getAllCountry();
/**
+ * @return all harbours (used by a {@link Cruise}).
+ * @see {@link Cruise#getDepartureLocation()}
+ * @see {@link Cruise#setDepartureLocation(TuttiLocation)}
+ * @see {@link Cruise#getReturnLocation()}
+ * @see {@link Cruise#setReturnLocation(TuttiLocation)}
+ * @since 1.2
+ */
+
+ List<TuttiLocation> getAllHarbour();
+
+ /**
* Get the list of location of type strata that match the given zone id.
*
* @param zoneId id of the parent zone (can not be null)
* @return the stratas with given zone id as location parent
* @since 1.0
*/
- List<FishingOperationLocation> getAllFishingOperationStrata(String zoneId);
+ List<TuttiLocation> getAllFishingOperationStrata(String zoneId);
/**
* Get the list of location of type substra that match the given zone id or
@@ -110,8 +119,7 @@
* @return the list of localite with given zone id as location parent / or strata
* @since 1.0
*/
- List<FishingOperationLocation> getAllFishingOperationSubStrata(String zoneId,
- String strataId);
+ List<TuttiLocation> getAllFishingOperationSubStrata(String zoneId, String strataId);
/**
* Get the list of location of type substra that match the given zone id or
@@ -124,14 +132,12 @@
* @return the list of localite with given zone id as location parent / or strata or substrata
* @since 1.0
*/
- List<FishingOperationLocation> getAllFishingOperationLocation(String zoneId,
- String strataId,
- String subStrataId);
+ List<TuttiLocation> getAllFishingOperationLocation(String zoneId, String strataId, String subStrataId);
/**
* @return all scientific vessels (used by a {@link Cruise}).
* @see Cruise#getVessel()
- * @see Cruise#setVessel(List)
+ * @see Cruise#setVessel(Vessel)
* @since 0.3
*/
List<Vessel> getAllScientificVessel();
@@ -139,7 +145,7 @@
/**
* @return all commercial vessels (used by a {@link Cruise}).
* @see Cruise#getVessel()
- * @see Cruise#setVessel(List)
+ * @see Cruise#setVessel(Vessel)
* @since 0.3
*/
List<Vessel> getAllFishingVessel();
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceImpl.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceImpl.java 2013-03-26 16:47:05 UTC (rev 682)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceImpl.java 2013-03-26 17:02:29 UTC (rev 683)
@@ -41,14 +41,12 @@
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.Country;
-import fr.ifremer.tutti.persistence.entities.referential.FishingOperationLocation;
import fr.ifremer.tutti.persistence.entities.referential.Gear;
import fr.ifremer.tutti.persistence.entities.referential.ObjectType;
import fr.ifremer.tutti.persistence.entities.referential.Person;
import fr.ifremer.tutti.persistence.entities.referential.Species;
+import fr.ifremer.tutti.persistence.entities.referential.TuttiLocation;
import fr.ifremer.tutti.persistence.entities.referential.Vessel;
-import fr.ifremer.tutti.persistence.entities.referential.Zone;
import fr.ifremer.tutti.persistence.service.AccidentalBatchPersistenceService;
import fr.ifremer.tutti.persistence.service.AttachmentPersistenceService;
import fr.ifremer.tutti.persistence.service.BatchPersistenceService;
@@ -164,31 +162,36 @@
//------------------------------------------------------------------------//
@Override
- public List<Zone> getAllProgramZone() {
+ public List<TuttiLocation> getAllProgramZone() {
return referentialService.getAllProgramZone();
}
@Override
- public List<Country> getAllCountry() {
+ public List<TuttiLocation> getAllCountry() {
return referentialService.getAllCountry();
}
@Override
- public List<FishingOperationLocation> getAllFishingOperationStrata(String zoneId) {
+ public List<TuttiLocation> getAllHarbour() {
+ return referentialService.getAllHarbour();
+ }
+
+ @Override
+ public List<TuttiLocation> getAllFishingOperationStrata(String zoneId) {
return referentialService.getAllFishingOperationStrata(zoneId);
}
@Override
- public List<FishingOperationLocation> getAllFishingOperationSubStrata(String zoneId,
- String strataId) {
+ public List<TuttiLocation> getAllFishingOperationSubStrata(String zoneId,
+ String strataId) {
return referentialService.getAllFishingOperationSubStrata(zoneId,
strataId);
}
@Override
- public List<FishingOperationLocation> getAllFishingOperationLocation(String zoneId,
- String strataId,
- String subStrataId) {
+ public List<TuttiLocation> getAllFishingOperationLocation(String zoneId,
+ String strataId,
+ String subStrataId) {
return referentialService.getAllFishingOperationLocation(zoneId,
strataId,
subStrataId);
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceNoDbImpl.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceNoDbImpl.java 2013-03-26 16:47:05 UTC (rev 682)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceNoDbImpl.java 2013-03-26 17:02:29 UTC (rev 683)
@@ -37,14 +37,12 @@
import fr.ifremer.tutti.persistence.entities.data.SpeciesBatchFrequency;
import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol;
import fr.ifremer.tutti.persistence.entities.referential.Caracteristic;
-import fr.ifremer.tutti.persistence.entities.referential.Country;
-import fr.ifremer.tutti.persistence.entities.referential.FishingOperationLocation;
import fr.ifremer.tutti.persistence.entities.referential.Gear;
import fr.ifremer.tutti.persistence.entities.referential.ObjectType;
import fr.ifremer.tutti.persistence.entities.referential.Person;
import fr.ifremer.tutti.persistence.entities.referential.Species;
+import fr.ifremer.tutti.persistence.entities.referential.TuttiLocation;
import fr.ifremer.tutti.persistence.entities.referential.Vessel;
-import fr.ifremer.tutti.persistence.entities.referential.Zone;
import java.io.File;
import java.io.IOException;
@@ -69,31 +67,36 @@
}
@Override
- public List<Zone> getAllProgramZone() {
+ public List<TuttiLocation> getAllProgramZone() {
throw new RuntimeException("method not implemented");
}
@Override
- public List<Country> getAllCountry() {
+ public List<TuttiLocation> getAllCountry() {
throw new RuntimeException("method not implemented");
}
@Override
- public List<FishingOperationLocation> getAllFishingOperationStrata(String zoneId) {
+ public List<TuttiLocation> getAllHarbour() {
throw new RuntimeException("method not implemented");
}
@Override
- public List<FishingOperationLocation> getAllFishingOperationSubStrata(String zoneId, String strataId) {
+ public List<TuttiLocation> getAllFishingOperationStrata(String zoneId) {
throw new RuntimeException("method not implemented");
}
@Override
- public List<FishingOperationLocation> getAllFishingOperationLocation(String zoneId, String strataId, String subStrataId) {
+ public List<TuttiLocation> getAllFishingOperationSubStrata(String zoneId, String strataId) {
throw new RuntimeException("method not implemented");
}
@Override
+ public List<TuttiLocation> getAllFishingOperationLocation(String zoneId, String strataId, String subStrataId) {
+ throw new RuntimeException("method not implemented");
+ }
+
+ @Override
public List<Vessel> getAllScientificVessel() {
throw new RuntimeException("method not implemented");
}
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/AbstractTuttiEntity.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/AbstractTuttiEntity.java 2013-03-26 16:47:05 UTC (rev 682)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/AbstractTuttiEntity.java 2013-03-26 17:02:29 UTC (rev 683)
@@ -45,10 +45,12 @@
protected String id;
+ @Override
public String getId() {
return id;
}
+ @Override
public void setId(String id) {
this.id = id;
}
@@ -83,7 +85,7 @@
@Override
public int hashCode() {
- return id != null ? id.hashCode() : 0;
+ return id == null ? 0 : id.hashCode();
}
@Override
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/data/Program.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/data/Program.java 2013-03-26 16:47:05 UTC (rev 682)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/data/Program.java 2013-03-26 17:02:29 UTC (rev 683)
@@ -24,7 +24,7 @@
* #L%
*/
-import fr.ifremer.tutti.persistence.entities.referential.Zone;
+import fr.ifremer.tutti.persistence.entities.referential.TuttiLocation;
public class Program extends AbstractTuttiDataEntity {
@@ -40,7 +40,7 @@
protected String description;
- protected Zone zone;
+ protected TuttiLocation zone;
public String getName() {
return name;
@@ -58,11 +58,11 @@
this.description = description;
}
- public Zone getZone() {
+ public TuttiLocation getZone() {
return zone;
}
- public void setZone(Zone zone) {
+ public void setZone(TuttiLocation zone) {
this.zone = zone;
}
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/CruisePersistenceServiceImpl.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/CruisePersistenceServiceImpl.java 2013-03-26 16:47:05 UTC (rev 682)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/CruisePersistenceServiceImpl.java 2013-03-26 17:02:29 UTC (rev 683)
@@ -44,18 +44,20 @@
import fr.ifremer.adagio.core.dao.referential.gear.GearDao;
import fr.ifremer.adagio.core.dao.referential.location.Location;
import fr.ifremer.adagio.core.dao.referential.location.LocationDao;
+import fr.ifremer.adagio.core.dao.referential.location.LocationImpl;
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.QualitativeValueDao;
import fr.ifremer.adagio.core.dao.referential.pmfm.QualitativeValueImpl;
import fr.ifremer.adagio.core.dao.referential.vessel.VesselDao;
+import fr.ifremer.adagio.core.dao.referential.vessel.VesselImpl;
import fr.ifremer.adagio.core.dao.technical.synchronization.SynchronizationStatus;
import fr.ifremer.tutti.persistence.entities.data.Cruise;
import fr.ifremer.tutti.persistence.entities.data.Program;
-import fr.ifremer.tutti.persistence.entities.referential.Country;
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 org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -66,7 +68,6 @@
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
-import java.sql.Timestamp;
import java.text.MessageFormat;
import java.util.ArrayList;
import java.util.Collections;
@@ -150,7 +151,7 @@
Object[] source = queryUnique(
"cruise",
"cruiseId", IntegerType.INSTANCE, Integer.valueOf(id),
- "countryLocationLevelId", IntegerType.INSTANCE, enumeration.LOCATION_LEVEL_ID_COUNTRY,
+// "locationLevelId", IntegerType.INSTANCE, enumeration.LOCATION_LEVEL_ID_HARBOUR,
"pmfmIdSurveyPart", IntegerType.INSTANCE, enumeration.PMFM_ID_SURVEY_PART);
if (source == null) {
@@ -159,41 +160,34 @@
Cruise result = new Cruise();
result.setId(id);
- String programCode = (String) source[0];
- Program program = programService.getProgram(programCode);
- result.setProgram(program);
+ int index = 0;
- result.setYear((Integer) source[1]);
- result.setName((String) source[2]);
+ // departureLocation
+ Integer departureLocationId = (Integer) source[index++];
+ TuttiLocation departureLocation = referentialService.getLocation(String.valueOf(departureLocationId));
+ result.setDepartureLocation(departureLocation);
- String countryId = String.valueOf(source[3]);
- String countryLabel = (String) source[4];
- String countryName = (String) source[5];
- Country c = new Country();
- c.setId(countryId);
- c.setName(countryName);
- c.setLabel(countryLabel);
- result.setCountry(c);
+ // returnLocation
+ Integer returnLocationId = (Integer) source[index++];
+ TuttiLocation returnLocation = referentialService.getLocation(String.valueOf(returnLocationId));
+ result.setReturnLocation(returnLocation);
- Timestamp beginDate = (Timestamp) source[6];
- if (beginDate != null && result.getYear() != null) {
- long mili = dateOfYearWithOneMiliSecondInMili(result.getYear());
- // Comparison with getTime() is need, to keep millisecond precision
- if (beginDate.getTime() == mili) {
- // if BeginDate is fake : set to null (see createCruise for details)
- result.setBeginDate(null);
- } else {
- result.setBeginDate(new Date(beginDate.getTime()));
- }
- }
+ // program
+ String programCode = (String) source[index++];
+ Program program = programService.getProgram(programCode);
+ result.setProgram(program);
- result.setEndDate((Date) source[7]);
+ // name
+ result.setName((String) source[index++]);
- String vesselCode = (String) source[8];
+ result.setBeginDate((Date) source[index++]);
+ result.setEndDate((Date) source[index++]);
+
+ String vesselCode = (String) source[index++];
Vessel vessel = referentialService.getVessel(vesselCode);
result.setVessel(vessel);
- Integer managerId = (Integer) source[9];
+ Integer managerId = (Integer) source[index++];
if (managerId != null && managerId.equals(enumeration.PERSON_ID_UNKNOWN_RECORDER_PERSON)) {
result.setHeadOfMission(null);
} else {
@@ -201,9 +195,9 @@
result.setHeadOfMission(Lists.newArrayList(manager));
}
- result.setComment((String) source[10]);
+ result.setComment((String) source[index++]);
- String miscData = (String) source[11];
+ String miscData = (String) source[index++];
if (miscData != null && miscData.length() > 0) {
// // Retrieve secondary vessels :
// int vesselTagIndex = miscData.indexOf(CRUISE_MISC_DATA_VESSELS_TAG);
@@ -237,7 +231,6 @@
int sortManagersIndex = miscData.indexOf(CRUISE_MISC_DATA_SORT_MANAGERS_TAG);
if (sortManagersIndex != -1) {
String sortManagersStr = miscData.substring(sortManagersIndex + CRUISE_MISC_DATA_SORT_MANAGERS_TAG.length()).trim();
- miscData = miscData.substring(0, sortManagersIndex);
if (!sortManagersStr.isEmpty()) {
String[] managersArray = sortManagersStr.split(",");
List<Person> persons = new ArrayList<Person>();
@@ -251,7 +244,7 @@
}
// load surverPart
- result.setSurveyPart((String) source[12]);
+ result.setSurveyPart((String) source[index++]);
// get secondary gears from fishingOperation (first load from Allegro DB only)
if (result.getGear() == null) {
@@ -288,6 +281,12 @@
public Cruise createCruise(Cruise bean) {
Preconditions.checkNotNull(bean);
Preconditions.checkArgument(bean.getId() == null, "Cruise 'id' must be null to call createCruise().");
+ Preconditions.checkNotNull(bean.getProgram());
+ Preconditions.checkNotNull(bean.getBeginDate());
+ Preconditions.checkNotNull(bean.getEndDate());
+ Preconditions.checkNotNull(bean.getDepartureLocation());
+ Preconditions.checkNotNull(bean.getReturnLocation());
+ Preconditions.checkNotNull(bean.getVessel());
ScientificCruise scientificCruise = ScientificCruise.Factory.newInstance();
cruiseToEntity(bean, scientificCruise);
@@ -301,6 +300,12 @@
public Cruise saveCruise(Cruise bean) {
Preconditions.checkNotNull(bean);
Preconditions.checkNotNull(bean.getId(), "Cruise 'id' must not be null or empty to be saved.");
+ Preconditions.checkNotNull(bean.getProgram());
+ Preconditions.checkNotNull(bean.getBeginDate());
+ Preconditions.checkNotNull(bean.getEndDate());
+ Preconditions.checkNotNull(bean.getDepartureLocation());
+ Preconditions.checkNotNull(bean.getReturnLocation());
+ Preconditions.checkNotNull(bean.getVessel());
ScientificCruise scientificCruise = scientificCruiseDao.load(Integer.valueOf(bean.getId()));
if (scientificCruise == null) {
@@ -338,11 +343,7 @@
target.setName(source.getName());
// Program
- if (source.getProgram() == null || source.getProgram().getId() == null) {
- target.setProgram(null);
- } else if (source.getName() != null && source.getProgram().getId() != null) {
- target.setProgram(load(ProgramImpl.class, source.getProgram().getId()));
- }
+ target.setProgram(load(ProgramImpl.class, source.getProgram().getId()));
// Sort Room Managers
if (source.getHeadOfSortRoom() == null || source.getHeadOfSortRoom().size() == 0) {
@@ -376,34 +377,13 @@
}
// Vessel
- if (source.getVessel() == null) {
- target.setProgram(null);
- } else {
- target.setVessel(vesselDao.load(source.getVessel().getId()));
- }
+ target.setVessel(load(VesselImpl.class, source.getVessel().getId()));
- // Year
- if (source.getYear() == null && source.getBeginDate() == null) {
- target.setDepartureDateTime(null);
- } else if (source.getYear() != null && source.getBeginDate() == null) {
- // Set year into departure date time only if no departure date time has been set
- // Add one millisecond to retrieve a 'year saved but no departure date'
- target.setDepartureDateTime(dateOfYearWithOneMiliSecond(source.getYear()));
- }
-
// BeginDate
- if (source.getYear() == null && source.getBeginDate() == null) {
- target.setDepartureDateTime(null);
- } else if (source.getBeginDate() != null) {
- target.setDepartureDateTime(dateWithNoSecondAndMiliSecond(source.getBeginDate()));
- }
+ target.setDepartureDateTime(dateWithNoSecondAndMiliSecond(source.getBeginDate()));
// EndDate
- if (source.getEndDate() == null) {
- target.setReturnDateTime(null);
- } else if (source.getEndDate() != null) {
- target.setReturnDateTime(dateWithNoSecondAndMiliSecond(source.getEndDate()));
- }
+ target.setReturnDateTime(dateWithNoSecondAndMiliSecond(source.getEndDate()));
// Comment
target.setComments(source.getComment());
@@ -447,20 +427,13 @@
fishingTrip.setSynchronizationStatus(target.getSynchronizationStatus());
fishingTrip.setQualityFlag(qualityFlagNotQualified);
- if (fishingTrip.getReturnDateTime() == null && fishingTrip.getDepartureDateTime() != null) {
- // = departureDateTime + 1ms
- fishingTrip.setReturnDateTime(dateWithOneMiliSecond(fishingTrip.getDepartureDateTime()));
- }
+ // DepartureLocation
+ Location departureLocation = load(LocationImpl.class, Integer.valueOf(source.getDepartureLocation().getId()));
+ fishingTrip.setDepartureLocation(departureLocation);
- // Country
- if (source.getCountry() == null || source.getCountry().getId() == null) {
- fishingTrip.setDepartureLocation(null);
- fishingTrip.setReturnLocation(null);
- } else if (source.getCountry() != null && source.getCountry().getId() != null) {
- Location locationCountry = locationDao.load(Integer.valueOf(source.getCountry().getId()));
- fishingTrip.setDepartureLocation(locationCountry);
- fishingTrip.setReturnLocation(locationCountry);
- }
+ // ReturnLocation
+ Location returnLocation = load(LocationImpl.class, Integer.valueOf(source.getReturnLocation().getId()));
+ fishingTrip.setReturnLocation(returnLocation);
setSurveyMeasurement(fishingTrip, enumeration.PMFM_ID_SURVEY_PART, null, source.getSurveyPart(), null);
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/FishingOperationPersistenceServiceImpl.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/FishingOperationPersistenceServiceImpl.java 2013-03-26 16:47:05 UTC (rev 682)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/FishingOperationPersistenceServiceImpl.java 2013-03-26 17:02:29 UTC (rev 683)
@@ -63,8 +63,8 @@
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.FishingOperationLocation;
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 org.apache.commons.collections.CollectionUtils;
import org.apache.commons.logging.Log;
@@ -306,21 +306,21 @@
// Strata :
Integer strataId = (Integer) source[colIndex++];
if (strataId != null) {
- FishingOperationLocation strata = referentialService.getFishingOperationLocation(strataId.toString());
+ TuttiLocation strata = referentialService.getLocation(strataId.toString());
result.setStrata(strata);
}
// Sub Strata :
Integer subStrataId = (Integer) source[colIndex++];
if (subStrataId != null) {
- FishingOperationLocation subStrata = referentialService.getFishingOperationLocation(subStrataId.toString());
+ TuttiLocation subStrata = referentialService.getLocation(subStrataId.toString());
result.setSubStrata(subStrata);
}
// Localite :
Integer localiteId = (Integer) source[colIndex++];
if (localiteId != null) {
- FishingOperationLocation localite = referentialService.getFishingOperationLocation(localiteId.toString());
+ TuttiLocation localite = referentialService.getLocation(localiteId.toString());
result.setLocation(localite);
}
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ProgramPersistenceServiceImpl.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ProgramPersistenceServiceImpl.java 2013-03-26 16:47:05 UTC (rev 682)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ProgramPersistenceServiceImpl.java 2013-03-26 17:02:29 UTC (rev 683)
@@ -32,7 +32,7 @@
import fr.ifremer.adagio.core.dao.referential.location.LocationDao;
import fr.ifremer.adagio.core.dao.referential.taxon.TaxonGroupTypeImpl;
import fr.ifremer.tutti.persistence.entities.data.Program;
-import fr.ifremer.tutti.persistence.entities.referential.Zone;
+import fr.ifremer.tutti.persistence.entities.referential.TuttiLocation;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.hibernate.type.IntegerType;
@@ -140,7 +140,7 @@
Preconditions.checkNotNull(bean.getDescription());
if (log.isDebugEnabled()) {
- log.debug("Create program with name: " + bean.getName());
+ log.debug("Save program with name: " + bean.getName());
}
fr.ifremer.adagio.core.dao.administration.programStrategy.Program program = programDao.load(bean.getId());
if (program == null) {
@@ -162,7 +162,7 @@
result.setName((String) source[1]);
result.setDescription((String) source[2]);
if (source[3] != null) {
- Zone zone = new Zone();
+ TuttiLocation zone = new TuttiLocation();
zone.setId(String.valueOf(source[3]));
zone.setLabel((String) source[4]);
zone.setName((String) source[5]);
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceService.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceService.java 2013-03-26 16:47:05 UTC (rev 682)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceService.java 2013-03-26 17:02:29 UTC (rev 683)
@@ -28,14 +28,12 @@
import fr.ifremer.tutti.persistence.entities.data.Cruise;
import fr.ifremer.tutti.persistence.entities.data.Program;
import fr.ifremer.tutti.persistence.entities.referential.Caracteristic;
-import fr.ifremer.tutti.persistence.entities.referential.Country;
-import fr.ifremer.tutti.persistence.entities.referential.FishingOperationLocation;
import fr.ifremer.tutti.persistence.entities.referential.Gear;
import fr.ifremer.tutti.persistence.entities.referential.ObjectType;
import fr.ifremer.tutti.persistence.entities.referential.Person;
import fr.ifremer.tutti.persistence.entities.referential.Species;
+import fr.ifremer.tutti.persistence.entities.referential.TuttiLocation;
import fr.ifremer.tutti.persistence.entities.referential.Vessel;
-import fr.ifremer.tutti.persistence.entities.referential.Zone;
import org.springframework.cache.annotation.CacheEvict;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.transaction.annotation.Transactional;
@@ -58,28 +56,40 @@
/**
* @return all available zones (used by a {@link Program}.
* @see Program#getZone()
- * @see Program#setZone(Zone)
+ * @see Program#setZone(TuttiLocation)
* @since 0.3
*/
@Cacheable(value = "programZones")
- List<Zone> getAllProgramZone();
+ List<TuttiLocation> getAllProgramZone();
/**
* @return all countries (used by a {@link Cruise}).
* @see {@link Cruise#getCountry()}
- * @see {@link Cruise#setCountry(Country)}
+ * @see {@link Cruise#setCountry(TuttiLocation)}
* @since 0.1
*/
- List<Country> getAllCountry();
+ @Cacheable(value = "countries")
+ List<TuttiLocation> getAllCountry();
/**
+ * @return all harbours (used by a {@link Cruise}).
+ * @see {@link Cruise#getDepartureLocation()}
+ * @see {@link Cruise#setDepartureLocation(TuttiLocation)}
+ * @see {@link Cruise#getReturnLocation()}
+ * @see {@link Cruise#setReturnLocation(TuttiLocation)}
+ * @since 1.2
+ */
+ @Cacheable(value = "harbours")
+ List<TuttiLocation> getAllHarbour();
+
+ /**
* Get the list of location of type strata that match the given zone id.
*
* @param zoneId id of the parent zone (can not be null)
* @return the stratas with given zone id as location parent
* @since 1.0
*/
- List<FishingOperationLocation> getAllFishingOperationStrata(String zoneId);
+ List<TuttiLocation> getAllFishingOperationStrata(String zoneId);
/**
* Get the list of location of type substra that match the given zone id or
@@ -90,7 +100,7 @@
* @return the list of localite with given zone id as location parent / or strata
* @since 1.0
*/
- List<FishingOperationLocation> getAllFishingOperationSubStrata(String zoneId, String strataId);
+ List<TuttiLocation> getAllFishingOperationSubStrata(String zoneId, String strataId);
/**
* Get the list of location of type substra that match the given zone id or
@@ -103,21 +113,12 @@
* @return the list of localite with given zone id as location parent / or strata or substrata
* @since 1.0
*/
- List<FishingOperationLocation> getAllFishingOperationLocation(String zoneId, String strataId, String subStrataId);
+ List<TuttiLocation> getAllFishingOperationLocation(String zoneId, String strataId, String subStrataId);
/**
- * Get a location by id (location could be of any type : strata, substrata, localite, etc.).
- *
- * @param id the id of locations to load
- * @return the locations with given ids
- * @since 1.0
- */
- FishingOperationLocation getFishingOperationLocation(String id);
-
- /**
* @return all scientific vessels (used by a {@link Cruise}).
* @see Cruise#getVessel()
- * @see Cruise#setVessel(List)
+ * @see Cruise#setVessel(Vessel)
* @since 0.3
*/
List<Vessel> getAllScientificVessel();
@@ -125,7 +126,7 @@
/**
* @return all commercial vessels (used by a {@link Cruise}).
* @see Cruise#getVessel()
- * @see Cruise#setVessel(List)
+ * @see Cruise#setVessel(Vessel)
* @since 0.3
*/
@Cacheable(value = "fishingVessels")
@@ -154,6 +155,15 @@
List<Species> getAllSpecies();
/**
+ * Get a location by id .
+ *
+ * @param id the id of location to load
+ * @return the location for the given id, or {@code null} if not found
+ * @since 1.0
+ */
+ TuttiLocation getLocation(String id);
+
+ /**
* Obtain a species given his referenceTaxonId.
*
* @param referenceTaxonId id of the reference taxon of the species to load
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceServiceImpl.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceServiceImpl.java 2013-03-26 16:47:05 UTC (rev 682)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceServiceImpl.java 2013-03-26 17:02:29 UTC (rev 683)
@@ -39,15 +39,13 @@
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.Country;
-import fr.ifremer.tutti.persistence.entities.referential.FishingOperationLocation;
import fr.ifremer.tutti.persistence.entities.referential.Gear;
import fr.ifremer.tutti.persistence.entities.referential.ObjectType;
import fr.ifremer.tutti.persistence.entities.referential.Person;
import fr.ifremer.tutti.persistence.entities.referential.Species;
import fr.ifremer.tutti.persistence.entities.referential.Status;
+import fr.ifremer.tutti.persistence.entities.referential.TuttiLocation;
import fr.ifremer.tutti.persistence.entities.referential.Vessel;
-import fr.ifremer.tutti.persistence.entities.referential.Zone;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.hibernate.Query;
@@ -109,48 +107,57 @@
//------------------------------------------------------------------------//
@Override
- public List<Zone> getAllProgramZone() {
+ public List<TuttiLocation> getAllProgramZone() {
Iterator<Object[]> list = queryListWithStatus(
- "allProgramZones",
+ "allLocationsByLevelAndClassificiation",
"locationClassificationId", IntegerType.INSTANCE, enumeration.LOCATION_CLASSIFICATION_ID_SECTOR,
"locationLevelId", IntegerType.INSTANCE, enumeration.LOCATION_LEVEL_ID_PROGRAM);
- List<Zone> result = Lists.newArrayList();
+ List<TuttiLocation> result = Lists.newArrayList();
while (list.hasNext()) {
Object[] source = list.next();
- Zone target = new Zone();
- target.setId(String.valueOf(source[0]));
- target.setLabel((String) source[1]);
- target.setName((String) source[2]);
- setStatus((fr.ifremer.adagio.core.dao.referential.Status) source[3], target);
+ TuttiLocation target = loadLocation(source);
result.add(target);
}
return Collections.unmodifiableList(result);
}
@Override
- public List<Country> getAllCountry() {
+ public List<TuttiLocation> getAllCountry() {
Iterator<Object[]> list = queryListWithStatus(
- "allCountries",
+ "allLocationsByLevelAndClassificiation",
+ "locationClassificationId", IntegerType.INSTANCE, enumeration.LOCATION_CLASSIFICATION_ID_TERRITORIAL,
"locationLevelId", IntegerType.INSTANCE, enumeration.LOCATION_LEVEL_ID_COUNTRY);
- List<Country> result = Lists.newArrayList();
+ List<TuttiLocation> result = Lists.newArrayList();
while (list.hasNext()) {
Object[] source = list.next();
- Country target = new Country();
- target.setId(String.valueOf(source[0]));
- target.setLabel((String) source[1]);
- target.setName((String) source[2]);
- setStatus((fr.ifremer.adagio.core.dao.referential.Status) source[3], target);
+ TuttiLocation target = loadLocation(source);
result.add(target);
}
return Collections.unmodifiableList(result);
}
@Override
- public List<FishingOperationLocation> getAllFishingOperationStrata(String zoneId) {
+ public List<TuttiLocation> getAllHarbour() {
+ Iterator<Object[]> list = queryListWithStatus(
+ "allLocationsByLevelAndClassificiation",
+ "locationClassificationId", IntegerType.INSTANCE, enumeration.LOCATION_CLASSIFICATION_ID_TERRITORIAL,
+ "locationLevelId", IntegerType.INSTANCE, enumeration.LOCATION_LEVEL_ID_HARBOUR);
+
+ List<TuttiLocation> result = Lists.newArrayList();
+ while (list.hasNext()) {
+ Object[] source = list.next();
+ TuttiLocation target = loadLocation(source);
+ result.add(target);
+ }
+ return Collections.unmodifiableList(result);
+ }
+
+ @Override
+ public List<TuttiLocation> getAllFishingOperationStrata(String zoneId) {
Preconditions.checkNotNull(zoneId);
- List<FishingOperationLocation> result = getFishingOperationLocationsByParent(
+ List<TuttiLocation> result = getFishingOperationLocationsByParent(
enumeration.LOCATION_LEVEL_ID_STRATA,
Integer.valueOf(zoneId),
enumeration.LOCATION_LEVEL_ID_PROGRAM);
@@ -158,8 +165,8 @@
}
@Override
- public List<FishingOperationLocation> getAllFishingOperationSubStrata(String zoneId,
- String strataId) {
+ public List<TuttiLocation> getAllFishingOperationSubStrata(String zoneId,
+ String strataId) {
String parentId;
Integer parentLocationLevelId;
@@ -178,7 +185,7 @@
}
Preconditions.checkNotNull(parentId);
- List<FishingOperationLocation> result = getFishingOperationLocationsByParent(
+ List<TuttiLocation> result = getFishingOperationLocationsByParent(
enumeration.LOCATION_LEVEL_ID_SUB_STRATA,
Integer.valueOf(parentId),
parentLocationLevelId);
@@ -186,9 +193,9 @@
}
@Override
- public List<FishingOperationLocation> getAllFishingOperationLocation(String zoneId,
- String strataId,
- String subStrataId) {
+ public List<TuttiLocation> getAllFishingOperationLocation(String zoneId,
+ String strataId,
+ String subStrataId) {
String parentId;
Integer parentLocationLevelId;
@@ -213,7 +220,7 @@
}
Preconditions.checkNotNull(parentId);
- List<FishingOperationLocation> result = getFishingOperationLocationsByParent(
+ List<TuttiLocation> result = getFishingOperationLocationsByParent(
enumeration.LOCATION_LEVEL_ID_LOCALITE,
Integer.valueOf(parentId),
parentLocationLevelId);
@@ -221,22 +228,15 @@
}
@Override
- public FishingOperationLocation getFishingOperationLocation(String id) {
+ public TuttiLocation getLocation(String id) {
Object[] source = queryUnique(
- "fishingOperationLocationById",
+ "locationById",
"locationId", IntegerType.INSTANCE, Integer.valueOf(id)
);
if (source == null) {
return null;
}
- FishingOperationLocation target = new FishingOperationLocation();
- target.setId(String.valueOf(source[0]));
- target.setLabel((String) source[1]);
- target.setName((String) source[2]);
- target.setLocationLevel((Integer) source[3]);
-
- setStatus((fr.ifremer.adagio.core.dao.referential.Status) source[4], target);
-
+ TuttiLocation target = loadLocation(source);
return target;
}
@@ -704,7 +704,7 @@
return result;
}
- protected List<FishingOperationLocation> getFishingOperationLocationsByParent(Integer locationLevelId, Integer parentId, Integer parentLocationLevelId) {
+ protected List<TuttiLocation> getFishingOperationLocationsByParent(Integer locationLevelId, Integer parentId, Integer parentLocationLevelId) {
Iterator<Object[]> sources = queryListWithStatus(
"allFishingOperationLocationByParent",
"parentId", IntegerType.INSTANCE, parentId,
@@ -712,17 +712,10 @@
"locationClassificationId", IntegerType.INSTANCE, enumeration.LOCATION_CLASSIFICATION_ID_SECTOR,
"locationLevelId", IntegerType.INSTANCE, locationLevelId
);
- List<FishingOperationLocation> result = Lists.newArrayList();
+ List<TuttiLocation> result = Lists.newArrayList();
while (sources.hasNext()) {
Object[] source = sources.next();
- FishingOperationLocation target = new FishingOperationLocation();
- target.setId(String.valueOf(source[0]));
- target.setLabel((String) source[1]);
- target.setName((String) source[2]);
-// target.setDescription((String)source[3]);
- target.setLocationLevel((Integer) source[3]);
-
- setStatus((fr.ifremer.adagio.core.dao.referential.Status) source[4], target);
+ TuttiLocation target = loadLocation(source);
result.add(target);
}
return result;
@@ -821,6 +814,15 @@
return result;
}
+ protected TuttiLocation loadLocation(Object[] source) {
+ TuttiLocation target = new TuttiLocation();
+ target.setId(String.valueOf(source[0]));
+ target.setLabel((String) source[1]);
+ target.setName((String) source[2]);
+ setStatus((fr.ifremer.adagio.core.dao.referential.Status) source[3], target);
+ return target;
+ }
+
protected Iterator<Object[]> queryListWithStatus(String queryName,
Object... params) {
Query query = createQuery(queryName, params);
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-03-26 16:47:05 UTC (rev 682)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/TuttiEnumerationFile.java 2013-03-26 17:02:29 UTC (rev 683)
@@ -53,6 +53,9 @@
@Value("${GearClassificationId.FAO}")
public final Integer GEAR_CLASSIFICIATION_ID_FISHING = null;
+ @Value("${LocationClassificationId.TERRITORIAL}")
+ public final Integer LOCATION_CLASSIFICATION_ID_TERRITORIAL = null;
+
@Value("${LocationClassificationId.SECTOR}")
public final Integer LOCATION_CLASSIFICATION_ID_SECTOR = null;
@@ -62,6 +65,9 @@
@Value("${LocationLevelId.PAYS_ISO3}")
public final Integer LOCATION_LEVEL_ID_COUNTRY = null;
+ @Value("${LocationLevelId.PORT}")
+ public final Integer LOCATION_LEVEL_ID_HARBOUR= null;
+
@Value("${LocationLevelId.LOCALITE}")
public final Integer LOCATION_LEVEL_ID_LOCALITE = null;
Modified: trunk/tutti-persistence/src/main/resources/applicationContext-service-tutti.xml
===================================================================
--- trunk/tutti-persistence/src/main/resources/applicationContext-service-tutti.xml 2013-03-26 16:47:05 UTC (rev 682)
+++ trunk/tutti-persistence/src/main/resources/applicationContext-service-tutti.xml 2013-03-26 17:02:29 UTC (rev 683)
@@ -76,6 +76,18 @@
<property name="maxElementsInMemory" value="1"/>
<property name="maxElementsOnDisk" value="1"/>
</bean>
+
+ <bean id="countriesCache" parent="tuttiAbstractEternalCache">
+ <property name="cacheName" value="countries" />
+ <property name="maxElementsInMemory" value="1"/>
+ <property name="maxElementsOnDisk" value="1"/>
+ </bean>
+
+ <bean id="harboursCache" parent="tuttiAbstractEternalCache">
+ <property name="cacheName" value="harbours" />
+ <property name="maxElementsInMemory" value="1"/>
+ <property name="maxElementsOnDisk" value="1"/>
+ </bean>
<bean id="tuttiPmfmsCache" parent="tuttiAbstractEternalCache">
<property name="cacheName" value="pmfms" />
Modified: trunk/tutti-persistence/src/main/resources/queries-override.hbm.xml
===================================================================
--- trunk/tutti-persistence/src/main/resources/queries-override.hbm.xml 2013-03-26 16:47:05 UTC (rev 682)
+++ trunk/tutti-persistence/src/main/resources/queries-override.hbm.xml 2013-03-26 17:02:29 UTC (rev 683)
@@ -59,7 +59,7 @@
</query>
<!-- [DAT-02] Get all cruises for a given program (to list with no detail) -->
- <query name="allCruises">
+ <query cacheable="true" name="allCruises">
<![CDATA[
SELECT
c.id,
@@ -76,7 +76,7 @@
</query>
<!-- [DAT-03] Get a detail program -->
- <query name="program">
+ <query cacheable="true" name="program">
<![CDATA[
SELECT
p.code,
@@ -104,15 +104,13 @@
</query>
<!-- [DAT-04] Get a detail cruise -->
- <query name="cruise">
+ <query cacheable="true" name="cruise">
<![CDATA[
SELECT
+ ft.departureLocation.id as departureLocationId,
+ ft.returnLocation.id as returnLocationId,
sc.program.code AS programCode,
- year(sc.departureDateTime) AS year,
sc.name AS name,
- lh.locationHierarchyPk.parent.id AS countryId,
- lh.locationHierarchyPk.parent.label AS countryLabel,
- lh.locationHierarchyPk.parent.name AS countryName,
sc.departureDateTime AS departureDateTime,
sc.returnDateTime AS returnDateTime,
sc.vessel.code AS vesselCode,
@@ -126,19 +124,15 @@
FROM
ScientificCruiseImpl sc
LEFT OUTER JOIN sc.fishingTrips ft
- LEFT OUTER JOIN sc.managerPerson mp,
- LocationHierarchyImpl lh
+ LEFT OUTER JOIN sc.managerPerson mp
WHERE
sc.id = :cruiseId
- AND lh.locationHierarchyPk.parent.locationLevel.id = :countryLocationLevelId
- AND lh.locationHierarchyPk.location.id = ft.departureLocation.id
]]>
<query-param name="cruiseId" type="java.lang.Integer"/>
<query-param name="pmfmIdSurveyPart" type="java.lang.Integer"/>
- <query-param name="countryLocationLevelId" type="java.lang.Integer"/>
</query>
- <query name="allCruiseGears">
+ <query cacheable="true" name="allCruiseGears">
<![CDATA[
SELECT
gpf.gear.id AS gearId,
@@ -163,7 +157,7 @@
<query-param name="pmfmIdTrawlNet" type="java.lang.Integer"/>
</query>
- <query name="allCruiseSecondaryVessels">
+ <query cacheable="true" name="allCruiseSecondaryVessels">
<![CDATA[
SELECT
va.operationVesselAssociationPk.vessel.code AS associatedVesselCode
@@ -180,7 +174,7 @@
<query-param name="cruiseId" type="java.lang.Integer"/>
</query>
- <query name="allFishingOperations">
+ <query cacheable="true" name="allFishingOperations">
<![CDATA[
SELECT
o.id AS id,
@@ -204,7 +198,7 @@
<query-param name="pmfmIdMultirigAggregation" type="java.lang.Integer"/>
</query>
- <query name="fishingOperation">
+ <query cacheable="true" name="fishingOperation">
<![CDATA[
SELECT
o.name AS name,
@@ -237,7 +231,7 @@
<query-param name="locationLevelIdLocalite" type="java.lang.Integer"/>
</query>
- <query name="fishingOperationRankOrder">
+ <query cacheable="true" name="fishingOperationRankOrder">
<![CDATA[
SELECT
count(o1.id) + 1 as fishingOperationRankOrder
@@ -254,7 +248,7 @@
- <query name="fishingOperationVesselUseFeatures">
+ <query cacheable="true" name="fishingOperationVesselUseFeatures">
<![CDATA[
SELECT
vum.pmfm.id as pmfmId,
@@ -270,7 +264,7 @@
<query-param name="fishingOperationId" type="java.lang.Integer"/>
</query>
- <query name="fishingOperationGearUseFeatures">
+ <query cacheable="true" name="fishingOperationGearUseFeatures">
<![CDATA[
SELECT
gum.pmfm.id as pmfmId,
@@ -286,7 +280,7 @@
<query-param name="fishingOperationId" type="java.lang.Integer"/>
</query>
- <query name="updateFishingOperationCatchBatch">
+ <query cacheable="true" name="updateFishingOperationCatchBatch">
<![CDATA[
UPDATE FishingOperationImpl o
SET o.catchBatch.id=:catchBatchId
@@ -297,7 +291,7 @@
<query-param name="catchBatchId" type="java.lang.Integer"/>
</query>
- <query name="catchBatch">
+ <query cacheable="true" name="catchBatch">
<![CDATA[
SELECT
cb.id AS catchBatchId,
@@ -328,7 +322,7 @@
<query-param name="pmfmIdSortingType" type="java.lang.Integer"/>
</query>
- <query name="allSpeciesBatchFrequency">
+ <query cacheable="true" name="allSpeciesBatchFrequency">
<![CDATA[
SELECT
b.id as batchId,
@@ -355,7 +349,7 @@
<query-param name="parentBatchId" type="java.lang.Integer"/>
</query>
- <query name="allAttachment">
+ <query cacheable="true" name="allAttachment">
<![CDATA[
SELECT
m.objectType.code as attachmentObjectType,
@@ -375,7 +369,7 @@
<query-param name="pmfmId" type="java.lang.Integer"/>
</query>
- <query name="attachment">
+ <query cacheable="true" name="attachment">
<![CDATA[
SELECT
m.objectType.code as attachmentObjectType,
@@ -468,18 +462,14 @@
<query-param name="statusTemporaryCode" type="java.lang.String"/>
</query>
- <!-- ===================================================================== -->
- <!-- === Requete sur référentiels [REF-XXX] === -->
- <!-- ===================================================================== -->
-
- <!-- [REF-01] Get all program zones -->
- <query cacheable="true" name="allProgramZones">
+ <!-- [REF-T04] Get all locations by level and classification -->
+ <query cacheable="true" name="allLocationsByLevelAndClassificiation">
<![CDATA[
SELECT
- l.id,
- l.label,
- l.name,
- l.status
+ l.id as locationId,
+ l.label as locationLabel,
+ l.name as locationName,
+ l.status as status
FROM LocationImpl l
WHERE
l.locationLevel.id = :locationLevelId
@@ -492,24 +482,26 @@
<query-param name="statusTemporaryCode" type="java.lang.String"/>
</query>
- <!-- [REF-02] Get all countries -->
- <query cacheable="true" name="allCountries">
+ <!-- [REF-T05] Get a location by his id -->
+ <query cacheable="true" name="locationById">
<![CDATA[
SELECT
- l.id,
- l.label,
- l.name,
- l.status
- FROM LocationImpl l
+ l.id as locationId,
+ l.label as locationLabel,
+ l.name as locationName,
+ l.status as status
+ FROM
+ LocationImpl l
WHERE
- l.locationLevel.id = :locationLevelId
- AND l.status.code IN (:statusValidCode, :statusTemporaryCode)
+ l.id = :locationId
]]>
- <query-param name="locationLevelId" type="java.lang.Integer"/>
- <query-param name="statusValidCode" type="java.lang.String"/>
- <query-param name="statusTemporaryCode" type="java.lang.String"/>
+ <query-param name="locationId" type="java.lang.Integer"/>
</query>
+ <!-- ===================================================================== -->
+ <!-- === Requete sur référentiels [REF-XXX] === -->
+ <!-- ===================================================================== -->
+
<!-- [REF-03] Get all fishing operation strata / substrata / localite -->
<query cacheable="true" name="allFishingOperationLocationByParent">
<![CDATA[
@@ -517,7 +509,6 @@
l.id as locationId,
l.label as locationLabel,
l.name as locationName,
- l.locationLevel.id as locationLevelId,
l.status as status
FROM
LocationImpl l,
@@ -537,43 +528,6 @@
<query-param name="statusValidCode" type="java.lang.String"/>
<query-param name="statusTemporaryCode" type="java.lang.String"/>
</query>
-
- <query cacheable="true" name="allFishingOperationLocation">
- <![CDATA[
- SELECT
- l.id as locationId,
- l.label as locationLabel,
- l.name as locationName,
- l.locationLevel.id as locationLevelId,
- l.status as status
- FROM
- LocationImpl l
- WHERE
- l.status.code IN (:statusValidCode, :statusTemporaryCode)
- AND l.locationLevel.id = :locationLevelId
- AND l.locationClassification.id = :locationClassificationId
- ]]>
- <query-param name="locationLevelId" type="java.lang.Integer"/>
- <query-param name="locationClassificationId" type="java.lang.Integer"/>
- <query-param name="statusValidCode" type="java.lang.String"/>
- <query-param name="statusTemporaryCode" type="java.lang.String"/>
- </query>
-
- <query cacheable="true" name="fishingOperationLocationById">
- <![CDATA[
- SELECT
- l.id as locationId,
- l.label as locationLabel,
- l.name as locationName,
- l.locationLevel.id as locationLevelId,
- l.status as status
- FROM
- LocationImpl l
- WHERE
- l.id = :locationId
- ]]>
- <query-param name="locationId" type="java.lang.Integer"/>
- </query>
<!-- [REF-04] et [REF-05] Get all vessel for a given vesselType -->
<query cacheable="true" name="allVessels">
Modified: trunk/tutti-persistence/src/main/xmi/tutti-persistence.zargo
===================================================================
(Binary files differ)
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-03-26 16:47:05 UTC (rev 682)
+++ trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/DatabaseFixtures.java 2013-03-26 17:02:29 UTC (rev 683)
@@ -90,6 +90,10 @@
return 240;
}
+ public int refNbHarbour() {
+ return 1896;
+ }
+
public int refNbProgramZone() {
return 16;
}
Modified: trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/DatabaseResource.java
===================================================================
--- trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/DatabaseResource.java 2013-03-26 16:47:05 UTC (rev 682)
+++ trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/DatabaseResource.java 2013-03-26 17:02:29 UTC (rev 683)
@@ -42,6 +42,7 @@
import org.junit.runner.Description;
import org.junit.runner.notification.Failure;
import org.junit.runners.model.Statement;
+import org.nuiton.util.FileUtil;
import org.nuiton.util.config.ApplicationConfig;
import java.io.BufferedReader;
@@ -171,7 +172,7 @@
fixtures = new DatabaseFixtures();
- resourceDirectory = getTestSpecificDirectory(testClass, "");
+ resourceDirectory = FileUtil.getTestSpecificDirectory(testClass, "", null, BUILD_TIMESTAMP);
RessourceClassLoader loader =
new RessourceClassLoader(testClass.getClassLoader());
@@ -349,31 +350,6 @@
return createEmptyDb(externalDbFile, dbName, p);
}
- public static File getTestSpecificDirectory(Class<?> testClass,
- String name) throws IOException {
- // Trying to look for the temporary folder to store data for the test
- String tempDirPath = System.getProperty("java.io.tmpdir");
- if (tempDirPath == null) {
- // can this really occur ?
- tempDirPath = "";
- if (log.isWarnEnabled()) {
- log.warn("'\"java.io.tmpdir\" not defined");
- }
- }
- File tempDirFile = new File(tempDirPath);
-
- // create the directory to store database data
- String dataBasePath = testClass.getName()
- + File.separator // a directory with the test class name
- + name // a sub-directory with the method name
- + '_'
- + BUILD_TIMESTAMP; // and a timestamp
- File databaseFile = new File(tempDirFile, dataBasePath);
- FileUtils.forceMkdir(databaseFile);
-
- return databaseFile;
- }
-
public Connection createEmptyDb(File directory,
String dbName) throws SQLException, IOException {
Modified: trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/BatchPersistenceServiceWriteTest.java
===================================================================
--- trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/BatchPersistenceServiceWriteTest.java 2013-03-26 16:47:05 UTC (rev 682)
+++ trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/BatchPersistenceServiceWriteTest.java 2013-03-26 17:02:29 UTC (rev 683)
@@ -39,6 +39,7 @@
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 fr.ifremer.tutti.persistence.entities.referential.TuttiLocation;
import org.junit.Assert;
import org.junit.Before;
import org.junit.ClassRule;
@@ -125,9 +126,14 @@
cruise.setId(null);
Calendar calendar = new GregorianCalendar();
cruise.setBeginDate(calendar.getTime());
- cruise.setYear(calendar.get(Calendar.YEAR));
calendar.add(Calendar.MONTH, 1); // add one month
cruise.setEndDate(calendar.getTime());
+ List<TuttiLocation> allHarbour = referentialService.getAllHarbour();
+ Assert.assertNotNull(allHarbour);
+ Assert.assertTrue(allHarbour.size() > 1);
+ cruise.setDepartureLocation(allHarbour.get(0));
+ cruise.setReturnLocation(allHarbour.get(1));
+
cruise = cruiseService.createCruise(cruise);
// Create a first operation, with no cacth batch : to test CatchBatch insert/update :
Modified: trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/CruisePersistenceServiceWriteTest.java
===================================================================
--- trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/CruisePersistenceServiceWriteTest.java 2013-03-26 16:47:05 UTC (rev 682)
+++ trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/CruisePersistenceServiceWriteTest.java 2013-03-26 17:02:29 UTC (rev 683)
@@ -27,12 +27,13 @@
import com.google.common.collect.Lists;
import fr.ifremer.tutti.persistence.DatabaseResource;
import fr.ifremer.tutti.persistence.entities.data.Cruise;
-import fr.ifremer.tutti.persistence.entities.referential.Country;
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 org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.junit.Assert;
import org.junit.Before;
import org.junit.ClassRule;
import org.junit.Test;
@@ -90,21 +91,14 @@
Calendar calendar = new GregorianCalendar();
cruise.setBeginDate(calendar.getTime());
- cruise.setYear(calendar.get(Calendar.YEAR));
-
calendar.add(Calendar.MONTH, 1); // add one month
cruise.setEndDate(calendar.getTime());
- Country country = null;
- List<Country> countries = referentialService.getAllCountry();
- for (Country aCountry : countries) {
- if (aCountry.getLabel() != null && aCountry.getLabel().equals("FRA")) {
- country = aCountry;
- break;
- }
- }
- assertNotNull("Could not load FRA country", country);
- cruise.setCountry(country);
+ List<TuttiLocation> allHarbour = referentialService.getAllHarbour();
+ Assert.assertNotNull(allHarbour);
+ Assert.assertTrue(allHarbour.size() > 1);
+ cruise.setDepartureLocation(allHarbour.get(0));
+ cruise.setReturnLocation(allHarbour.get(1));
List<Gear> gears = referentialService.getAllFishingGear();
cruise.setGear(gears);
@@ -128,6 +122,10 @@
assertNotNull(createdCruise.getId());
assertEquals(cruise.getName(), createdCruise.getName());
assertEquals(cruise.getSurveyPart(), createdCruise.getSurveyPart());
+ assertNotNull(createdCruise.getDepartureLocation());
+ assertEquals(cruise.getDepartureLocation(), createdCruise.getDepartureLocation());
+ assertNotNull(createdCruise.getReturnLocation());
+ assertEquals(cruise.getReturnLocation(), createdCruise.getReturnLocation());
if (log.isInfoEnabled()) {
log.info("Created cruise: " + createdCruise.getId());
@@ -144,14 +142,16 @@
calendar.set(Calendar.MILLISECOND, 0);
assertEquals(calendar.getTime(), reloadedCruise.getEndDate());
assertEquals(cruise.getMultirigNumber(), reloadedCruise.getMultirigNumber());
+ assertEquals(cruise.getDepartureLocation(), reloadedCruise.getDepartureLocation());
+ assertEquals(cruise.getReturnLocation(), reloadedCruise.getReturnLocation());
// -----------------------------------------------------------------------------
// 2. Test with only mandatory properties
// -----------------------------------------------------------------------------
createdCruise.setId(null);
createdCruise.setHeadOfMission(null);
- createdCruise.setBeginDate(null);
- createdCruise.setEndDate(null);
+// createdCruise.setBeginDate(cruise.getBeginDate());
+// createdCruise.setEndDate(cruise.getEndDate());
createdCruise.setComment(null);
createdCruise.setMultirigNumber(null);
@@ -163,20 +163,34 @@
assertNotNull(createdCruise);
assertNotNull(createdCruise.getId());
assertEquals(cruise.getName(), createdCruise.getName());
+ assertNotNull(createdCruise.getDepartureLocation());
+ assertEquals(cruise.getDepartureLocation(), createdCruise.getDepartureLocation());
+ assertNotNull(createdCruise.getReturnLocation());
+ assertEquals(cruise.getReturnLocation(), createdCruise.getReturnLocation());
// Reload to compare
reloadedCruise = service.getCruise(createdCruise.getId());
- assertEquals(createdCruise.getBeginDate(), reloadedCruise.getBeginDate());
- assertEquals(createdCruise.getEndDate(), reloadedCruise.getEndDate());
+ calendar.setTime(createdCruise.getBeginDate());
+ calendar.set(Calendar.SECOND, 0);
+ calendar.set(Calendar.MILLISECOND, 0);
+ assertEquals(calendar.getTime(), reloadedCruise.getBeginDate());
+ calendar.setTime(createdCruise.getEndDate());
+ calendar.set(Calendar.SECOND, 0);
+ calendar.set(Calendar.MILLISECOND, 0);
+ assertEquals(calendar.getTime(), reloadedCruise.getEndDate());
+
+// assertEquals(createdCruise.getBeginDate(), reloadedCruise.getBeginDate());
+// assertEquals(createdCruise.getEndDate(), reloadedCruise.getEndDate());
assertEquals(createdCruise.getComment(), reloadedCruise.getComment());
assertEquals(createdCruise.getSurveyPart(), reloadedCruise.getSurveyPart());
+ assertEquals(cruise.getDepartureLocation(), reloadedCruise.getDepartureLocation());
+ assertEquals(cruise.getReturnLocation(), reloadedCruise.getReturnLocation());
// assertEquals(createdCruise.getMultirigNumber(), reloadedCruise.getMultirigNumber());
assertEquals(1, reloadedCruise.getMultirigNumber(), 0);
assertNull(reloadedCruise.getHeadOfMission());
assertNotNull(reloadedCruise.getVessel());
assertEquals(createdCruise.getVessel(), reloadedCruise.getVessel());
- assertEquals(cruise.getCountry().getId(), reloadedCruise.getCountry().getId());
assertNotNull(reloadedCruise.getVessel());
assertNotNull(reloadedCruise.getGear());
assertEquals(gears.size(), reloadedCruise.getGear().size());
@@ -193,10 +207,13 @@
Calendar calendar = new GregorianCalendar();
cruise.setBeginDate(calendar.getTime());
- cruise.setYear(calendar.get(Calendar.YEAR));
-
calendar.add(Calendar.MONTH, 1); // add one month
cruise.setEndDate(calendar.getTime());
+ List<TuttiLocation> allHarbour = referentialService.getAllHarbour();
+ Assert.assertNotNull(allHarbour);
+ Assert.assertTrue(allHarbour.size() > 1);
+ cruise.setDepartureLocation(allHarbour.get(0));
+ cruise.setReturnLocation(allHarbour.get(1));
cruise = service.createCruise(cruise);
@@ -207,6 +224,8 @@
// Name :
cruise.setName("Unit-test-" + System.currentTimeMillis());
cruise.setSurveyPart("SurveryPart" + cruise.getName());
+ cruise.setDepartureLocation(allHarbour.get(1));
+ cruise.setReturnLocation(allHarbour.get(0));
// Remove gear, then add another gear
Gear previousGear = cruise.getGear(0);
@@ -231,6 +250,8 @@
assertEquals(cruise.getSurveyPart(), reloadedCruise.getSurveyPart());
assertNotNull(reloadedCruise.getGear());
assertEquals(cruise.getGear().size(), reloadedCruise.getGear().size());
- assertEquals(cruise.getGear(0).getId(), reloadedCruise.getGear(0).getId());
+ assertEquals(cruise.getGear(0), reloadedCruise.getGear(0));
+ assertEquals(cruise.getDepartureLocation(), reloadedCruise.getDepartureLocation());
+ assertEquals(cruise.getReturnLocation(), reloadedCruise.getReturnLocation());
}
}
Modified: trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/FishingOperationPersistenceServiceWriteTest.java
===================================================================
--- trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/FishingOperationPersistenceServiceWriteTest.java 2013-03-26 16:47:05 UTC (rev 682)
+++ trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/FishingOperationPersistenceServiceWriteTest.java 2013-03-26 17:02:29 UTC (rev 683)
@@ -31,9 +31,10 @@
import fr.ifremer.tutti.persistence.entities.data.FishingOperation;
import fr.ifremer.tutti.persistence.entities.referential.Caracteristic;
import fr.ifremer.tutti.persistence.entities.referential.CaracteristicType;
-import fr.ifremer.tutti.persistence.entities.referential.FishingOperationLocation;
import fr.ifremer.tutti.persistence.entities.referential.Gear;
+import fr.ifremer.tutti.persistence.entities.referential.TuttiLocation;
import fr.ifremer.tutti.persistence.entities.referential.Vessel;
+import org.junit.Assert;
import org.junit.Before;
import org.junit.ClassRule;
import org.junit.Ignore;
@@ -88,9 +89,17 @@
cruise = cruiseService.getCruise(dbResource.getFixtures().cruiseId());
cruise.setId(null);
cruise.setName("Unit-test-" + System.currentTimeMillis());
- cruise.setBeginDate(new Date());
- cruise.setEndDate(null);
+ Calendar calendar = new GregorianCalendar();
+ cruise.setBeginDate(calendar.getTime());
+
+ calendar.add(Calendar.MONTH, 1); // add one month
+ cruise.setEndDate(calendar.getTime());
cruise.setMultirigNumber(2);
+ List<TuttiLocation> allHarbour = referentialService.getAllHarbour();
+ Assert.assertNotNull(allHarbour);
+ Assert.assertTrue(allHarbour.size() > 1);
+ cruise.setDepartureLocation(allHarbour.get(0));
+ cruise.setReturnLocation(allHarbour.get(1));
// Keep only one gear in the cruise : (need for case n°4)
List<Gear> cruiseGears = cruise.getGear();
@@ -223,13 +232,13 @@
fishingOperation.setVesselUseFeatures(environmentCaracteristics);
fishingOperation.setGearUseFeatures(gearShootingCaracteristics);
- FishingOperationLocation strata = new FishingOperationLocation();
+ TuttiLocation strata = new TuttiLocation();
strata.setId(dbResource.getFixtures().strataId());
fishingOperation.setStrata(strata);
- FishingOperationLocation subStrata = new FishingOperationLocation();
+ TuttiLocation subStrata = new TuttiLocation();
subStrata.setId(dbResource.getFixtures().subStrataId());
fishingOperation.setSubStrata(subStrata);
- FishingOperationLocation localite = new FishingOperationLocation();
+ TuttiLocation localite = new TuttiLocation();
localite.setId(dbResource.getFixtures().localite());
fishingOperation.setLocation(localite);
Modified: trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/ProgramPersistenceServiceReadTest.java
===================================================================
--- trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/ProgramPersistenceServiceReadTest.java 2013-03-26 16:47:05 UTC (rev 682)
+++ trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/ProgramPersistenceServiceReadTest.java 2013-03-26 17:02:29 UTC (rev 683)
@@ -71,8 +71,10 @@
Assert.assertNotNull(actual.getId());
Assert.assertNotNull(actual.getName());
Assert.assertNotNull(actual.getDescription());
- //comment, because in test database, "CAM-CGFS" could have a location that is not a zone
- //Assert.assertNotNull(actual.getZone());
+ //FIXME-TC Change to NotNull when CGFS data will be ok
+ //FIXME-TC See http://forge.codelutin.com/issues/2221
+// Assert.assertNotNull(actual.getZone());
+ Assert.assertNull(actual.getZone());
Assert.assertEquals(programCode, actual.getId());
}
Modified: trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/ProgramPersistenceServiceWriteTest.java
===================================================================
--- trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/ProgramPersistenceServiceWriteTest.java 2013-03-26 16:47:05 UTC (rev 682)
+++ trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/ProgramPersistenceServiceWriteTest.java 2013-03-26 17:02:29 UTC (rev 683)
@@ -26,7 +26,7 @@
import fr.ifremer.tutti.persistence.DatabaseResource;
import fr.ifremer.tutti.persistence.entities.data.Program;
-import fr.ifremer.tutti.persistence.entities.referential.Zone;
+import fr.ifremer.tutti.persistence.entities.referential.TuttiLocation;
import org.junit.Before;
import org.junit.ClassRule;
import org.junit.Test;
@@ -35,6 +35,7 @@
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
/**
@@ -61,7 +62,7 @@
@Test
public void createAndSaveProgram(/*Program bean*/) {
- List<Zone> zones = referentialService.getAllProgramZone();
+ List<TuttiLocation> zones = referentialService.getAllProgramZone();
assertNotNull(zones);
assertTrue(zones.size() > 0);
@@ -79,18 +80,21 @@
Program createdProgram = service.createProgram(program);
assertNotNull(createdProgram);
assertNotNull(createdProgram.getId());
- assertNotNull(createdProgram.getComment());
+ assertNull(createdProgram.getComment());
+ assertNotNull(createdProgram.getDescription());
+ assertNotNull(createdProgram.getZone());
assertEquals(program.getName(), createdProgram.getName());
assertEquals(program.getDescription(), createdProgram.getDescription());
// Reload program and compare
Program reloadedProgram = service.getProgram(createdProgram.getId());
assertNotNull(reloadedProgram);
- assertEquals(createdProgram.getId(), reloadedProgram.getId());
+ assertEquals(createdProgram, reloadedProgram);
+ assertNull(reloadedProgram.getComment());
assertEquals(program.getName(), reloadedProgram.getName());
assertEquals(program.getDescription(), reloadedProgram.getDescription());
assertNotNull(program.getZone());
- assertEquals(program.getZone().getId(), reloadedProgram.getZone().getId());
+ assertEquals(program.getZone(), reloadedProgram.getZone());
// Modify program
program.setId(createdProgram.getId());
@@ -109,8 +113,9 @@
assertEquals(program.getId(), reloadedProgram.getId());
assertEquals(program.getName(), reloadedProgram.getName());
assertEquals(program.getDescription(), reloadedProgram.getDescription());
+ assertNull(reloadedProgram.getComment());
assertNotNull(program.getZone());
- assertEquals(program.getZone().getId(), reloadedProgram.getZone().getId());
+ assertEquals(program.getZone(), reloadedProgram.getZone());
}
}
Modified: trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceServiceReadTest.java
===================================================================
--- trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceServiceReadTest.java 2013-03-26 16:47:05 UTC (rev 682)
+++ trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceServiceReadTest.java 2013-03-26 17:02:29 UTC (rev 683)
@@ -31,14 +31,12 @@
import fr.ifremer.tutti.persistence.entities.TuttiEntities;
import fr.ifremer.tutti.persistence.entities.referential.Caracteristic;
import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValue;
-import fr.ifremer.tutti.persistence.entities.referential.Country;
-import fr.ifremer.tutti.persistence.entities.referential.FishingOperationLocation;
import fr.ifremer.tutti.persistence.entities.referential.Gear;
import fr.ifremer.tutti.persistence.entities.referential.ObjectType;
import fr.ifremer.tutti.persistence.entities.referential.Person;
import fr.ifremer.tutti.persistence.entities.referential.Species;
+import fr.ifremer.tutti.persistence.entities.referential.TuttiLocation;
import fr.ifremer.tutti.persistence.entities.referential.Vessel;
-import fr.ifremer.tutti.persistence.entities.referential.Zone;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.junit.Assert;
@@ -90,17 +88,23 @@
@Test
public void getAllProgramZone() {
- List<Zone> result = service.getAllProgramZone();
+ List<TuttiLocation> result = service.getAllProgramZone();
assertResultList(result, fixtures.refNbProgramZone());
}
@Test
public void getAllCountry() {
- List<Country> result = service.getAllCountry();
+ List<TuttiLocation> result = service.getAllCountry();
assertResultList(result, fixtures.refNbCountry());
}
@Test
+ public void getAllHarbour() {
+ List<TuttiLocation> result = service.getAllHarbour();
+ assertResultList(result, fixtures.refNbHarbour());
+ }
+
+ @Test
public void getAllObjectType() {
List<ObjectType> result = service.getAllObjectType();
assertResultList(result, fixtures.refNbObjectType());
@@ -108,14 +112,14 @@
@Test
public void getObjectType() {
- ObjectType result = service.getObjectType(fixtures.objectTypeCode());
+ ObjectType result = service.getObjectType(fixtures.objectTypeCode());
Assert.assertNotNull(result);
}
@Test
public void getAllFishingOperationStrata(/*String zoneId*/) {
String zoneId = dbResource.getFixtures().zoneId();
- List<FishingOperationLocation> result =
+ List<TuttiLocation> result =
service.getAllFishingOperationStrata(zoneId);
assertResultList(result, fixtures.refNbStrata());
}
@@ -123,7 +127,7 @@
@Test
public void getAllFishingOperationSubStrata(/*String zoneId, String strataId*/) {
String zoneId = dbResource.getFixtures().zoneId();
- List<FishingOperationLocation> result =
+ List<TuttiLocation> result =
service.getAllFishingOperationSubStrata(zoneId, null);
assertResultList(result, 76);
@@ -136,7 +140,7 @@
@Test
public void getAllFishingOperationLocation(/*String zoneId, String strataId, String subStrataId*/) {
String zoneId = dbResource.getFixtures().zoneId();
- List<FishingOperationLocation> result =
+ List<TuttiLocation> result =
service.getAllFishingOperationLocation(zoneId, null, null);
assertResultList(result, fixtures.refNbLocalite());
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/DecoratorService.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/DecoratorService.java 2013-03-26 16:47:05 UTC (rev 682)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/DecoratorService.java 2013-03-26 17:02:29 UTC (rev 683)
@@ -33,13 +33,11 @@
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.Country;
-import fr.ifremer.tutti.persistence.entities.referential.FishingOperationLocation;
import fr.ifremer.tutti.persistence.entities.referential.Gear;
import fr.ifremer.tutti.persistence.entities.referential.Person;
import fr.ifremer.tutti.persistence.entities.referential.Species;
+import fr.ifremer.tutti.persistence.entities.referential.TuttiLocation;
import fr.ifremer.tutti.persistence.entities.referential.Vessel;
-import fr.ifremer.tutti.persistence.entities.referential.Zone;
import org.nuiton.util.decorator.Decorator;
import org.nuiton.util.decorator.DecoratorProvider;
@@ -91,14 +89,12 @@
@Override
protected void loadDecorators() {
- registerTuttiDecorator(Zone.class, "${label}$s#${name}$s", SEPARATOR, " - ");
+ registerTuttiDecorator(TuttiLocation.class, "${label}$s#${name}$s", SEPARATOR, " - ");
registerTuttiDecorator(Cruise.class, "${name}$s", SEPARATOR, " - ");
registerTuttiDecorator(TuttiProtocol.class, "${name}$s", SEPARATOR, " - ");
registerTuttiDecorator(FishingOperation.class, "${stationNumber}$s#${fishingOperationNumber}$s#${multirigAggregation}$s#${gearShootingStartDate}$td/%4$tm/%4$tY", SEPARATOR, " - ");
- registerTuttiDecorator(Country.class, "${label}$s#${name}$s", SEPARATOR, " - ");
registerTuttiDecorator(Gear.class, "${label}$s#${name}$s", SEPARATOR, " - ");
registerTuttiDecorator(Person.class, "${firstName}$s#${lastName}$s#${department}$s", SEPARATOR, " ");
- registerTuttiDecorator(FishingOperationLocation.class, "${label}$s#${name}$s", SEPARATOR, " - ");
registerTuttiDecorator(Caracteristic.class, "${parameterName}$s#${matrixName}$s#${fractionName}$s#${methodName}$s", SEPARATOR, " - ");
registerTuttiDecorator(Caracteristic.class, CARACTERISTIC_PARAMETER_ONLY, "${parameterName}$s", SEPARATOR, " - ");
// registerMultiJXPathDecorator(Caracteristic.class, CARACTERISTIC_WITH_UNIT, "${parameterName}$s#${matrixName}$s#${fractionName}$s#${methodName}$s (${unit}$s)", SEPARATOR, " - ");
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-03-26 16:47:05 UTC (rev 682)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java 2013-03-26 17:02:29 UTC (rev 683)
@@ -44,14 +44,12 @@
import fr.ifremer.tutti.persistence.entities.data.SpeciesBatchFrequency;
import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol;
import fr.ifremer.tutti.persistence.entities.referential.Caracteristic;
-import fr.ifremer.tutti.persistence.entities.referential.Country;
-import fr.ifremer.tutti.persistence.entities.referential.FishingOperationLocation;
import fr.ifremer.tutti.persistence.entities.referential.Gear;
import fr.ifremer.tutti.persistence.entities.referential.ObjectType;
import fr.ifremer.tutti.persistence.entities.referential.Person;
import fr.ifremer.tutti.persistence.entities.referential.Species;
+import fr.ifremer.tutti.persistence.entities.referential.TuttiLocation;
import fr.ifremer.tutti.persistence.entities.referential.Vessel;
-import fr.ifremer.tutti.persistence.entities.referential.Zone;
import fr.ifremer.tutti.persistence.service.TuttiPersistenceServiceLocator;
import fr.ifremer.tutti.service.config.TuttiServiceConfig;
import org.apache.commons.io.IOUtils;
@@ -330,16 +328,21 @@
}
@Override
- public List<Zone> getAllProgramZone() {
+ public List<TuttiLocation> getAllProgramZone() {
return driver.getAllProgramZone();
}
@Override
- public List<Country> getAllCountry() {
+ public List<TuttiLocation> getAllCountry() {
return driver.getAllCountry();
}
@Override
+ public List<TuttiLocation> getAllHarbour() {
+ return driver.getAllHarbour();
+ }
+
+ @Override
public List<Gear> getAllScientificGear() {
return driver.getAllScientificGear();
}
@@ -360,17 +363,17 @@
}
@Override
- public List<FishingOperationLocation> getAllFishingOperationStrata(String zoneId) {
+ public List<TuttiLocation> getAllFishingOperationStrata(String zoneId) {
return driver.getAllFishingOperationStrata(zoneId);
}
@Override
- public List<FishingOperationLocation> getAllFishingOperationSubStrata(String zoneId, String strataId) {
+ public List<TuttiLocation> getAllFishingOperationSubStrata(String zoneId, String strataId) {
return driver.getAllFishingOperationSubStrata(zoneId, strataId);
}
@Override
- public List<FishingOperationLocation> getAllFishingOperationLocation(String zoneId, String strataId, String subStrataId) {
+ public List<TuttiLocation> getAllFishingOperationLocation(String zoneId, String strataId, String subStrataId) {
return driver.getAllFishingOperationLocation(zoneId, strataId, subStrataId);
}
Modified: trunk/tutti-ui-swing/src/main/filtered-resources/tutti-help-en.properties
===================================================================
--- trunk/tutti-ui-swing/src/main/filtered-resources/tutti-help-en.properties 2013-03-26 16:47:05 UTC (rev 682)
+++ trunk/tutti-ui-swing/src/main/filtered-resources/tutti-help-en.properties 2013-03-26 17:02:29 UTC (rev 683)
@@ -1,35 +1,12 @@
-###
-# #%L
-# Tutti :: UI
-# $Id$
-# $HeadURL$
-# %%
-# Copyright (C) 2012 - 2013 Ifremer
-# %%
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as
-# published by the Free Software Foundation, either version 3 of the
-# License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public
-# License along with this program. If not, see
-# <http://www.gnu.org/licenses/gpl-3.0.html>.
-# #L%
-###
#Generated by org.nuiton.jaxx.plugin.GenerateHelpIdsMojo
-#Mon Mar 25 16:24:40 CET 2013
-tutti.createBenthosBatch.action.addSpecies.help=
-tutti.createBenthosBatch.action.cancel.help=
-tutti.createBenthosBatch.action.save.help=
-tutti.createBenthosBatch.field.batchWeight.help=
-tutti.createBenthosBatch.field.sortedUnsortedCategory.help=
-tutti.createBenthosBatch.field.species.help=
-tutti.createBenthosBatch.help=
+#Tue Mar 26 16:11:47 CET 2013
+tutti.createBenthosBatch.action.addSpecies.help=createBenthosBatch.html\#actions
+tutti.createBenthosBatch.action.cancel.help=createBenthosBatch.html\#actions
+tutti.createBenthosBatch.action.save.help=createBenthosBatch.html\#actions
+tutti.createBenthosBatch.field.batchWeight.help=createBenthosBatch.html\#fields
+tutti.createBenthosBatch.field.sortedUnsortedCategory.help=createBenthosBatch.html\#fields
+tutti.createBenthosBatch.field.species.help=createBenthosBatch.html\#fields
+tutti.createBenthosBatch.help=createBenthosBatch.html
tutti.createSpeciesBatch.action.addSpecies.help=createSpeciesBatch.html\#actions
tutti.createSpeciesBatch.action.cancel.help=createSpeciesBatch.html\#actions
tutti.createSpeciesBatch.action.save.help=createSpeciesBatch.html\#actions
@@ -45,31 +22,31 @@
tutti.dbManager.action.openDb.help=dbManager.html\#actions
tutti.dbManager.action.upgradeDb.help=dbManager.html\#actions
tutti.dbManager.help=dbManager.html
-tutti.editBenthosBatch.action.createBatch.help=
-tutti.editBenthosBatch.action.removeBatch.help=
-tutti.editBenthosBatch.action.renameBatch.help=
-tutti.editBenthosBatch.action.splitBatch.help=
-tutti.editBenthosBatch.field.benthosTotalInertWeight.help=
-tutti.editBenthosBatch.field.benthosTotalLivingNotItemizedWeight.help=
-tutti.editBenthosBatch.field.benthosTotalSampleSortedWeight.help=
-tutti.editBenthosBatch.field.benthosTotalSortedWeight.help=
-tutti.editBenthosBatch.field.benthosTotalUnsortedWeight.help=
-tutti.editBenthosBatch.field.benthosTotalWeight.help=
-tutti.editBenthosBatch.filterBatch.help=
+tutti.editBenthosBatch.action.createBatch.help=editBenthosBatch.html\#fields
+tutti.editBenthosBatch.action.removeBatch.help=editBenthosBatch.html\#fields
+tutti.editBenthosBatch.action.renameBatch.help=editBenthosBatch.html\#fields
+tutti.editBenthosBatch.action.splitBatch.help=editBenthosBatch.html\#fields
+tutti.editBenthosBatch.field.benthosTotalInertWeight.help=editBenthosBatch.html\#fields
+tutti.editBenthosBatch.field.benthosTotalLivingNotItemizedWeight.help=editBenthosBatch.html\#fields
+tutti.editBenthosBatch.field.benthosTotalSampleSortedWeight.help=editBenthosBatch.html\#fields
+tutti.editBenthosBatch.field.benthosTotalSortedWeight.help=editBenthosBatch.html\#fields
+tutti.editBenthosBatch.field.benthosTotalUnsortedWeight.help=editBenthosBatch.html\#fields
+tutti.editBenthosBatch.field.benthosTotalWeight.help=editBenthosBatch.html\#fields
+tutti.editBenthosBatch.filterBatch.help=editBenthosBatch.html\#fields
tutti.editBenthosBatch.help=editBenthosBatch.html
-tutti.editBenthosFrequencies.action.cancel.help=
-tutti.editBenthosFrequencies.action.generate.help=
-tutti.editBenthosFrequencies.action.save.help=
-tutti.editBenthosFrequencies.field.lengthStepCaracteristic.help=
-tutti.editBenthosFrequencies.field.maxStep.help=
-tutti.editBenthosFrequencies.field.minStep.help=
-tutti.editBenthosFrequencies.field.mode.autoGen.help=
-tutti.editBenthosFrequencies.field.mode.rafale.help=
-tutti.editBenthosFrequencies.field.mode.simple.help=
-tutti.editBenthosFrequencies.field.mode.simpleCounting.help=
-tutti.editBenthosFrequencies.field.rafaleStep.help=
-tutti.editBenthosFrequencies.field.simpleCounting.help=
-tutti.editBenthosFrequencies.field.step.help=
+tutti.editBenthosFrequencies.action.cancel.help=editBenthosFrequencies.html\#actions
+tutti.editBenthosFrequencies.action.generate.help=editBenthosFrequencies.html\#actions
+tutti.editBenthosFrequencies.action.save.help=editBenthosFrequencies.html\#actions
+tutti.editBenthosFrequencies.field.lengthStepCaracteristic.help=editBenthosFrequencies.html\#fields
+tutti.editBenthosFrequencies.field.maxStep.help=editBenthosFrequencies.html\#fields
+tutti.editBenthosFrequencies.field.minStep.help=editBenthosFrequencies.html\#fields
+tutti.editBenthosFrequencies.field.mode.autoGen.help=editBenthosFrequencies.html\#fields
+tutti.editBenthosFrequencies.field.mode.rafale.help=editBenthosFrequencies.html\#fields
+tutti.editBenthosFrequencies.field.mode.simple.help=editBenthosFrequencies.html\#fields
+tutti.editBenthosFrequencies.field.mode.simpleCounting.help=editBenthosFrequencies.html\#fields
+tutti.editBenthosFrequencies.field.rafaleStep.help=editBenthosFrequencies.html\#fields
+tutti.editBenthosFrequencies.field.simpleCounting.help=editBenthosFrequencies.html\#fields
+tutti.editBenthosFrequencies.field.step.help=editBenthosFrequencies.html\#fields
tutti.editCatchBatch.action.cancelEditCatchBatch.help=editCatchBatch.html\#actions
tutti.editCatchBatch.action.computeWeights.help=editCatchBatch.html\#actions
tutti.editCatchBatch.action.importPupitri.help=editCatchBatch.html\#actions
@@ -96,6 +73,7 @@
tutti.editCruise.field.beginDate.help=editCruise.html\#fields
tutti.editCruise.field.comment.help=editCruise.html\#fields
tutti.editCruise.field.country.help=editCruise.html\#fields
+tutti.editCruise.field.departureLocation.help=editCruise.html\#fields
tutti.editCruise.field.endDate.help=editCruise.html\#fields
tutti.editCruise.field.gear.help=editCruise.html\#fields
tutti.editCruise.field.headOfMission.help=editCruise.html\#fields
@@ -103,6 +81,7 @@
tutti.editCruise.field.multirigNumber.help=editCruise.html\#fields
tutti.editCruise.field.name.help=editCruise.html\#fields
tutti.editCruise.field.program.help=editCruise.html\#fields
+tutti.editCruise.field.returnLocation.help=editCruise.html\#fields
tutti.editCruise.field.surveyPart.help=editCruise.html\#fields
tutti.editCruise.field.vessel.help=editCruise.html\#fields
tutti.editCruise.field.year.help=editCruise.html\#fields
@@ -144,22 +123,22 @@
tutti.editProgram.field.name.help=editProgram.html\#fields
tutti.editProgram.field.zone.help=editProgram.html\#fields
tutti.editProgram.help=editProgram.html
-tutti.editProtocol.action.addBenthosProtocol.help=
+tutti.editProtocol.action.addBenthosProtocol.help=editProtocol.html\#actions
tutti.editProtocol.action.addSpeciesProtocol.help=editProtocol.html\#actions
tutti.editProtocol.action.closeEditProtocol.help=editProtocol.html\#actions
tutti.editProtocol.action.exportProtocolAllCaracteristic.help=editProtocol.html\#actions
-tutti.editProtocol.action.exportProtocolBenthos.help=
+tutti.editProtocol.action.exportProtocolBenthos.help=editProtocol.html\#actions
tutti.editProtocol.action.exportProtocolCaracteristic.tip=editProtocol.html\#actions
tutti.editProtocol.action.exportProtocolSpecies.help=editProtocol.html\#actions
-tutti.editProtocol.action.importProtocolBenthos.help=
+tutti.editProtocol.action.importProtocolBenthos.help=editProtocol.html\#actions
tutti.editProtocol.action.importProtocolCaracteristic.help=editProtocol.html\#actions
tutti.editProtocol.action.importProtocolSpecies.help=editProtocol.html\#actions
-tutti.editProtocol.action.removeBenthosProtocol.help=
+tutti.editProtocol.action.removeBenthosProtocol.help=editProtocol.html\#actions
tutti.editProtocol.action.removeSpeciesProtocol.help=editProtocol.html\#actions
tutti.editProtocol.action.saveProtocol.help=editProtocol.html\#actions
-tutti.editProtocol.action.selectOtherBenthos.help=
+tutti.editProtocol.action.selectOtherBenthos.help=editProtocol.html\#actions
tutti.editProtocol.action.selectOtherSpecies.help=editProtocol.html\#actions
-tutti.editProtocol.field.benthos.help=
+tutti.editProtocol.field.benthos.help=editProtocol.html\#fields
tutti.editProtocol.field.comment.help=editProtocol.html\#fields
tutti.editProtocol.field.gearUseFeature.help=editProtocol.html\#fields
tutti.editProtocol.field.lengthClasses.help=editProtocol.html\#fields
@@ -243,13 +222,13 @@
tutti.selectCruise.field.program.help=selectCruise.html\#fields
tutti.selectCruise.field.protocol.help=selectCruise.html\#fields
tutti.selectCruise.help=selectCruise.html
-tutti.splitBenthosBatch.action.cancel.help=
-tutti.splitBenthosBatch.action.save.help=
-tutti.splitBenthosBatch.field.batchWeightField.help=
-tutti.splitBenthosBatch.field.categoryField.help=
-tutti.splitBenthosBatch.field.sampleWeightField.help=
-tutti.splitBenthosBatch.field.speciesField.help=
-tutti.splitBenthosBatch.help=
+tutti.splitBenthosBatch.action.cancel.help=splitBenthosBatch.html\#actions
+tutti.splitBenthosBatch.action.save.help=splitBenthosBatch.html\#actions
+tutti.splitBenthosBatch.field.batchWeightField.help=splitBenthosBatch.html\#fields
+tutti.splitBenthosBatch.field.categoryField.help=splitBenthosBatch.html\#fields
+tutti.splitBenthosBatch.field.sampleWeightField.help=splitBenthosBatch.html\#fields
+tutti.splitBenthosBatch.field.speciesField.help=splitBenthosBatch.html\#fields
+tutti.splitBenthosBatch.help=splitBenthosBatch.html
tutti.splitSpeciesBatch.action.cancel.help=splitSpeciesBatch.html\#actions
tutti.splitSpeciesBatch.action.save.help=splitSpeciesBatch.html\#actions
tutti.splitSpeciesBatch.field.batchWeightField.help=splitSpeciesBatch.html\#fields
Modified: trunk/tutti-ui-swing/src/main/filtered-resources/tutti-help-fr.properties
===================================================================
--- trunk/tutti-ui-swing/src/main/filtered-resources/tutti-help-fr.properties 2013-03-26 16:47:05 UTC (rev 682)
+++ trunk/tutti-ui-swing/src/main/filtered-resources/tutti-help-fr.properties 2013-03-26 17:02:29 UTC (rev 683)
@@ -1,28 +1,5 @@
-###
-# #%L
-# Tutti :: UI
-# $Id$
-# $HeadURL$
-# %%
-# Copyright (C) 2012 - 2013 Ifremer
-# %%
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as
-# published by the Free Software Foundation, either version 3 of the
-# License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public
-# License along with this program. If not, see
-# <http://www.gnu.org/licenses/gpl-3.0.html>.
-# #L%
-###
#Generated by org.nuiton.jaxx.plugin.GenerateHelpIdsMojo
-#Mon Mar 25 16:24:40 CET 2013
+#Tue Mar 26 16:11:47 CET 2013
tutti.createBenthosBatch.action.addSpecies.help=createBenthosBatch.html\#actions
tutti.createBenthosBatch.action.cancel.help=createBenthosBatch.html\#actions
tutti.createBenthosBatch.action.save.help=createBenthosBatch.html\#actions
@@ -51,12 +28,12 @@
tutti.editBenthosBatch.action.removeSubBatch.help=editBenthosBatch.html\#actions
tutti.editBenthosBatch.action.renameBatch.help=editBenthosBatch.html\#actions
tutti.editBenthosBatch.action.splitBatch.help=editBenthosBatch.html\#actions
-tutti.editBenthosBatch.field.benthosTotalInertWeight.help=
-tutti.editBenthosBatch.field.benthosTotalLivingNotItemizedWeight.help=
-tutti.editBenthosBatch.field.benthosTotalSampleSortedWeight.help=
-tutti.editBenthosBatch.field.benthosTotalSortedWeight.help=
-tutti.editBenthosBatch.field.benthosTotalUnsortedWeight.help=
-tutti.editBenthosBatch.field.benthosTotalWeight.help=
+tutti.editBenthosBatch.field.benthosTotalInertWeight.help=editBenthosBatch.html\#fields
+tutti.editBenthosBatch.field.benthosTotalLivingNotItemizedWeight.help=editBenthosBatch.html\#fields
+tutti.editBenthosBatch.field.benthosTotalSampleSortedWeight.help=editBenthosBatch.html\#fields
+tutti.editBenthosBatch.field.benthosTotalSortedWeight.help=editBenthosBatch.html\#fields
+tutti.editBenthosBatch.field.benthosTotalUnsortedWeight.help=editBenthosBatch.html\#fields
+tutti.editBenthosBatch.field.benthosTotalWeight.help=editBenthosBatch.html\#fields
tutti.editBenthosBatch.field.speciesTotalInertWeight.help=editBenthosBatch.html\#fields
tutti.editBenthosBatch.field.speciesTotalLivingNotItemizedWeight.help=editBenthosBatch.html\#fields
tutti.editBenthosBatch.field.speciesTotalSampleSortedWeight.help=editBenthosBatch.html\#fields
@@ -105,6 +82,7 @@
tutti.editCruise.field.beginDate.help=editCruise.html\#fields
tutti.editCruise.field.comment.help=editCruise.html\#fields
tutti.editCruise.field.country.help=editCruise.html\#fields
+tutti.editCruise.field.departureLocation.help=editCruise.html\#fields
tutti.editCruise.field.endDate.help=editCruise.html\#fields
tutti.editCruise.field.gear.help=editCruise.html\#fields
tutti.editCruise.field.headOfMission.help=editCruise.html\#fields
@@ -112,6 +90,7 @@
tutti.editCruise.field.multirigNumber.help=editCruise.html\#fields
tutti.editCruise.field.name.help=editCruise.html\#fields
tutti.editCruise.field.program.help=editCruise.html\#fields
+tutti.editCruise.field.returnLocation.help=editCruise.html\#fields
tutti.editCruise.field.surveyPart.help=editCruise.html\#fields
tutti.editCruise.field.vessel.help=editCruise.html\#fields
tutti.editCruise.field.year.help=editCruise.html\#fields
@@ -153,22 +132,22 @@
tutti.editProgram.field.name.help=editProgram.html\#fields
tutti.editProgram.field.zone.help=editProgram.html\#fields
tutti.editProgram.help=editProgram.html
-tutti.editProtocol.action.addBenthosProtocol.help=
+tutti.editProtocol.action.addBenthosProtocol.help=editProtocol.html\#actions
tutti.editProtocol.action.addSpeciesProtocol.help=editProtocol.html\#actions
tutti.editProtocol.action.closeEditProtocol.help=editProtocol.html\#actions
tutti.editProtocol.action.exportProtocolAllCaracteristic.help=editProtocol.html\#actions
-tutti.editProtocol.action.exportProtocolBenthos.help=
+tutti.editProtocol.action.exportProtocolBenthos.help=editProtocol.html\#actions
tutti.editProtocol.action.exportProtocolCaracteristic.tip=editProtocol.html\#actions
tutti.editProtocol.action.exportProtocolSpecies.help=editProtocol.html\#actions
-tutti.editProtocol.action.importProtocolBenthos.help=
+tutti.editProtocol.action.importProtocolBenthos.help=editProtocol.html\#actions
tutti.editProtocol.action.importProtocolCaracteristic.help=editProtocol.html\#actions
tutti.editProtocol.action.importProtocolSpecies.help=editProtocol.html\#actions
-tutti.editProtocol.action.removeBenthosProtocol.help=
+tutti.editProtocol.action.removeBenthosProtocol.help=editProtocol.html\#actions
tutti.editProtocol.action.removeSpeciesProtocol.help=editProtocol.html\#actions
tutti.editProtocol.action.saveProtocol.help=editProtocol.html\#actions
-tutti.editProtocol.action.selectOtherBenthos.help=
+tutti.editProtocol.action.selectOtherBenthos.help=editProtocol.html\#actions
tutti.editProtocol.action.selectOtherSpecies.help=editProtocol.html\#actions
-tutti.editProtocol.field.benthos.help=
+tutti.editProtocol.field.benthos.help=editProtocol.html\#fields
tutti.editProtocol.field.comment.help=editProtocol.html\#fields
tutti.editProtocol.field.gearUseFeature.help=editProtocol.html\#fields
tutti.editProtocol.field.lengthClasses.help=editProtocol.html\#fields
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiDataContext.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiDataContext.java 2013-03-26 16:47:05 UTC (rev 682)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiDataContext.java 2013-03-26 17:02:29 UTC (rev 683)
@@ -158,6 +158,7 @@
}
public List<Caracteristic> getCaracteristics() {
+ checkOpened();
if (caracteristics == null) {
if (log.isInfoEnabled()) {
log.info("Loading allCaracteristic");
@@ -168,6 +169,7 @@
}
public List<Caracteristic> getLengthStepCaracteristics() {
+ checkOpened();
if (lengthStepCaracteristics == null) {
if (uiContext.isProtocolFilled()) {
@@ -196,6 +198,7 @@
}
public List<Species> getReferentSpeciesWithSurveyCode() {
+ checkOpened();
if (referentSpeciesWithSurveyCode == null) {
if (uiContext.isProtocolFilled()) {
@@ -233,6 +236,7 @@
}
public List<Species> getReferentBenthosWithSurveyCode() {
+ checkOpened();
if (referentBenthosWithSurveyCode == null) {
if (uiContext.isProtocolFilled()) {
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.css 2013-03-26 16:47:05 UTC (rev 682)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.css 2013-03-26 17:02:29 UTC (rev 683)
@@ -63,24 +63,9 @@
#nameField {
text: {model.getName()};
- _validatorLabel : {_("tutti.editCruise.field.name")};
+ _validatorLabel: {_("tutti.editCruise.field.name")};
}
-#yearLabel {
- text: "tutti.editCruise.field.year";
- labelFor: {yearField};
- toolTipText: "tutti.editCruise.field.year.tip";
- _help: {"tutti.editCruise.field.year.help"};
-}
-
-#yearField {
- property: year;
- model: {model.getYear()};
- useFloat: false;
- numberPattern: {INT_4_DIGITS_PATTERN};
- _validatorLabel : {_("tutti.editCruise.field.year")};
-}
-
#surveyPartLabel {
text: "tutti.editCruise.field.surveyPart";
labelFor: {surveyPartField};
@@ -90,22 +75,35 @@
#surveyPartField {
text: {model.getSurveyPart()};
- _validatorLabel : {_("tutti.editCruise.field.surveyPart")};
+ _validatorLabel: {_("tutti.editCruise.field.surveyPart")};
}
-#countryLabel {
- text: "tutti.editCruise.field.country";
- labelFor: {countryComboBox};
- toolTipText: "tutti.editCruise.field.country.tip";
- _help: {"tutti.editCruise.field.country.help"};
+#departureLocationLabel {
+ text: "tutti.editCruise.field.departureLocation";
+ labelFor: {departureLocationComboBox};
+ toolTipText: "tutti.editCruise.field.departureLocation.tip";
+ _help: {"tutti.editCruise.field.departureLocation.help"};
}
-#countryComboBox {
- property: country;
- selectedItem: {model.getCountry()};
- _validatorLabel : {_("tutti.editCruise.field.country")};
+#departureLocationComboBox {
+ property: departureLocation;
+ selectedItem: {model.getDepartureLocation()};
+ _validatorLabel: {_("tutti.editCruise.field.departureLocation")};
}
+#returnLocationLabel {
+ text: "tutti.editCruise.field.returnLocation";
+ labelFor: {returnLocationComboBox};
+ toolTipText: "tutti.editCruise.field.returnLocation.tip";
+ _help: {"tutti.editCruise.field.returnLocation.help"};
+}
+
+#returnLocationComboBox {
+ property: returnLocation;
+ selectedItem: {model.getReturnLocation()};
+ _validatorLabel: {_("tutti.editCruise.field.returnLocation")};
+}
+
#programLabel {
text: "tutti.editCruise.field.program";
labelFor: {programComboBox};
@@ -116,7 +114,7 @@
#programComboBox {
property: program;
selectedItem: {model.getProgram()};
- _validatorLabel : {_("tutti.editCruise.field.program")};
+ _validatorLabel: {_("tutti.editCruise.field.program")};
}
#beginDateLabel {
@@ -128,7 +126,7 @@
#beginDateField {
date: {model.getBeginDate()};
- _validatorLabel : {_("tutti.editCruise.field.beginDate")};
+ _validatorLabel: {_("tutti.editCruise.field.beginDate")};
}
#endDateLabel {
@@ -140,7 +138,7 @@
#endDateField {
date: {model.getEndDate()};
- _validatorLabel : {_("tutti.editCruise.field.endDate")};
+ _validatorLabel: {_("tutti.editCruise.field.endDate")};
}
#multirigNumberLabel {
@@ -155,7 +153,7 @@
model: {model.getMultirigNumber()};
useFloat: false;
numberPattern: {INT_1_DIGITS_PATTERN};
- _validatorLabel : {_("tutti.editCruise.field.multirigNumber")};
+ _validatorLabel: {_("tutti.editCruise.field.multirigNumber")};
}
#filterVesselLabel {
@@ -190,19 +188,25 @@
buttonGroup: "filterVesselType";
}
+#vesselLabel {
+ text: "tutti.editCruise.field.vessel";
+ labelFor: {vesselComboBox};
+ toolTipText: "tutti.editCruise.field.vessel.tip";
+ _help: {"tutti.editCruise.field.vessel.help"};
+}
+
#vesselComboBox {
- border: {BorderFactory.createTitledBorder(_("tutti.editCruise.field.vessel"))};
property: vessel;
selectedItem: {model.getVessel()};
toolTipText: "tutti.editCruise.field.vessel.tip";
- _validatorLabel : {_("tutti.editCruise.field.vessel")};
+ _validatorLabel: {_("tutti.editCruise.field.vessel")};
_help: {"tutti.editCruise.field.vessel.help"};
}
#gearList {
property: gear;
border: {BorderFactory.createTitledBorder(_("tutti.editCruise.field.gear"))};
- _validatorLabel : {_("tutti.editCruise.field.gear")};
+ _validatorLabel: {_("tutti.editCruise.field.gear")};
toolTipText: "tutti.editCruise.field.gear.tip";
_help: {"tutti.editCruise.field.gear.help"};
}
@@ -210,7 +214,7 @@
#headOfMissionList {
property: headOfMission;
border: {BorderFactory.createTitledBorder(_("tutti.editCruise.field.headOfMission"))};
- _validatorLabel : {_("tutti.editCruise.field.headOfMission")};
+ _validatorLabel: {_("tutti.editCruise.field.headOfMission")};
toolTipText: "tutti.editCruise.field.headOfMission.tip";
_help: {"tutti.editCruise.field.headOfMission.help"};
}
@@ -218,7 +222,7 @@
#headOfSortRoomList {
property: headOfSortRoom;
border: {BorderFactory.createTitledBorder(_("tutti.editCruise.field.headOfSortRoom"))};
- _validatorLabel : {_("tutti.editCruise.field.headOfSortRoom")};
+ _validatorLabel: {_("tutti.editCruise.field.headOfSortRoom")};
toolTipText: "tutti.editCruise.field.headOfSortRoom.tip";
_help: {"tutti.editCruise.field.headOfSortRoom.help"};
}
@@ -231,7 +235,7 @@
#commentField {
text: {model.getComment()};
- _validatorLabel : {_("tutti.editCruise.field.comment")};
+ _validatorLabel: {_("tutti.editCruise.field.comment")};
}
#saveButton {
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-03-26 16:47:05 UTC (rev 682)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.jaxx 2013-03-26 17:02:29 UTC (rev 683)
@@ -26,32 +26,25 @@
<import>
fr.ifremer.tutti.persistence.entities.data.Program
- fr.ifremer.tutti.persistence.entities.referential.Country
+ fr.ifremer.tutti.persistence.entities.referential.TuttiLocation
fr.ifremer.tutti.persistence.entities.referential.Gear
fr.ifremer.tutti.persistence.entities.referential.Person
fr.ifremer.tutti.persistence.entities.referential.Vessel
- fr.ifremer.tutti.ui.swing.TuttiUIContext
fr.ifremer.tutti.ui.swing.TuttiHelpBroker
fr.ifremer.tutti.ui.swing.util.TuttiUI
fr.ifremer.tutti.ui.swing.util.attachment.ButtonAttachment
jaxx.runtime.swing.editor.NumberEditor
jaxx.runtime.swing.editor.bean.BeanFilterableComboBox
- jaxx.runtime.swing.editor.bean.BeanListHeader
jaxx.runtime.swing.editor.bean.BeanDoubleList
org.jdesktop.swingx.JXDatePicker
- javax.swing.DefaultListModel
javax.swing.JSeparator
- javax.swing.ListSelectionModel
javax.swing.SwingConstants
- java.awt.Dimension
-
static org.nuiton.i18n.I18n._
- static jaxx.runtime.SwingUtil.getStringValue
</import>
<script><![CDATA[
@@ -77,11 +70,11 @@
<BeanValidator id='validator' bean='model'
uiClass='jaxx.runtime.validator.swing.ui.ImageValidationUI'>
<field name='program' component='programComboBox'/>
- <field name='year' component='yearField'/>
<field name='surveyPart' component='surveyPartField'/>
<field name='name' component='nameField'/>
<field name='multirigNumber' component='multirigNumberField'/>
- <field name='country' component='countryComboBox'/>
+ <field name='departureLocation' component='departureLocationComboBox'/>
+ <field name='returnLocation' component='returnLocationComboBox'/>
<field name='beginDate' component='beginDateField'/>
<field name='endDate' component='endDateField'/>
<field name='vessel' component='vesselComboBox'/>
@@ -101,36 +94,68 @@
<Table fill='both' constraints='BorderLayout.CENTER'>
- <!-- cruise program / year / program part / name -->
+ <!-- cruise program / survey part -->
<row>
<cell anchor='west'>
<JLabel id='programLabel'/>
</cell>
- <cell weightx='1'>
+ <cell weightx='0.3'>
<BeanFilterableComboBox id='programComboBox' constructorParams='this'
genericType='Program'/>
</cell>
- <cell anchor='west'>
- <JLabel id='yearLabel'/>
- </cell>
- <cell weightx='1'>
- <NumberEditor id='yearField' constructorParams='this'/>
- </cell>
<cell>
<JLabel id='surveyPartLabel'/>
</cell>
- <cell weightx='1'>
+ <cell weightx='0.3'>
<JTextField id='surveyPartField'
onKeyReleased='handler.setText(event, "surveyPart")'/>
</cell>
</row>
- <!-- cruise name -->
+ <!-- departure harbour / begin date -->
<row>
+ <cell anchor='west'>
+ <JLabel id='departureLocationLabel'/>
+ </cell>
<cell>
+ <BeanFilterableComboBox id='departureLocationComboBox'
+ constructorParams='this'
+ genericType='TuttiLocation'/>
+ </cell>
+ <cell>
+ <JLabel id='beginDateLabel'/>
+ </cell>
+ <cell>
+ <JXDatePicker id='beginDateField'
+ onActionPerformed='handler.setDate(event, "beginDate")'/>
+ </cell>
+ </row>
+
+ <!-- landing harbour / end date -->
+ <row>
+ <cell anchor='west'>
+ <JLabel id='returnLocationLabel'/>
+ </cell>
+ <cell>
+ <BeanFilterableComboBox id='returnLocationComboBox'
+ constructorParams='this'
+ genericType='TuttiLocation'/>
+ </cell>
+ <cell>
+ <JLabel id='endDateLabel'/>
+ </cell>
+ <cell>
+ <JXDatePicker id='endDateField'
+ onActionPerformed='handler.setDate(event, "endDate")'/>
+ </cell>
+ </row>
+
+ <!-- cruise name / multirigNumber -->
+ <row>
+ <cell>
<JLabel id='nameLabel'/>
</cell>
- <cell weightx='0.3'>
+ <cell>
<JTextField id='nameField'
onKeyReleased='handler.setText(event, "name")'/>
</cell>
@@ -138,47 +163,29 @@
<JButton id='generateNameButton'
onActionPerformed='handler.generateCampaignName()'/>
</cell>
- <cell>
- <JLabel id='multirigNumberLabel'/>
- </cell>
- <cell weightx='0.3'>
- <NumberEditor id='multirigNumberField' constructorParams='this'/>
- </cell>
</row>
- <!-- cruise country / begin date / end date -->
+ <!-- cruise name / multirigNumber -->
<row>
<cell>
- <JLabel id='countryLabel'/>
+ <JLabel id='multirigNumberLabel'/>
</cell>
- <cell weightx='0.3'>
- <BeanFilterableComboBox id='countryComboBox' constructorParams='this'
- genericType='Country'/>
- </cell>
<cell>
- <JLabel id='beginDateLabel'/>
+ <NumberEditor id='multirigNumberField' constructorParams='this'/>
</cell>
- <cell weightx='0.3'>
- <JXDatePicker id='beginDateField'
- onActionPerformed='handler.setDate(event, "beginDate")'/>
+ <cell columns="2">
+ <JLabel/>
</cell>
- <cell>
- <JLabel id='endDateLabel'/>
- </cell>
- <cell weightx='0.3'>
- <JXDatePicker id='endDateField'
- onActionPerformed='handler.setDate(event, "endDate")'/>
- </cell>
</row>
<!-- cruise vessel / gear -->
<row>
- <cell columns='6'>
+ <cell columns='4'>
<JSeparator constructorParams='SwingConstants.HORIZONTAL'/>
</cell>
</row>
<row>
- <cell columns='6'>
+ <cell columns='4'>
<JPanel id='vesselFilterPane'>
<JLabel id='filterVesselLabel'/>
<JRadioButton id='filterVesselAllButton'
@@ -190,26 +197,25 @@
</JPanel>
</cell>
</row>
- <row weighty='0.3'>
- <!--cell>
+ <row>
+ <cell>
<JLabel id='vesselLabel'/>
- </cell-->
- <cell weightx='0.3' columns="3">
- <JPanel layout='{new BorderLayout()}'>
- <BeanFilterableComboBox id='vesselComboBox' constructorParams='this'
- genericType='Vessel'
- constraints='BorderLayout.NORTH'/>
- </JPanel>
+ </cell>
+ <cell columns="3">
+ <BeanFilterableComboBox id='vesselComboBox' constructorParams='this'
+ genericType='Vessel'/>
</cell>
- <cell columns="3">
+ </row>
+ <row weighty='0.3'>
+ <cell columns="4">
<BeanDoubleList id='gearList' genericType='Gear'/>
</cell>
</row>
<!-- cruise headOfMission / headOfSortRoom -->
<row weighty='0.3'>
- <cell columns='6'>
+ <cell columns='4'>
<JPanel layout='{new GridLayout(1, 0)}'>
<BeanDoubleList id='headOfMissionList' genericType='Person'/>
<BeanDoubleList id='headOfSortRoomList' genericType='Person'/>
@@ -219,7 +225,7 @@
<!-- cruise comment -->
<row weighty='0.3'>
- <cell columns='6'>
+ <cell columns='4'>
<JScrollPane id='commentPane'
onFocusGained='commentField.requestFocus()'>
<JTextArea id='commentField'
@@ -230,7 +236,7 @@
<!-- Form Actions -->
<row>
- <cell columns='6'>
+ <cell columns='4'>
<JPanel layout='{new GridLayout(1, 0)}'>
<JButton id='closeButton'/>
<JButton id='saveButton'/>
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-03-26 16:47:05 UTC (rev 682)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUIHandler.java 2013-03-26 17:02:29 UTC (rev 683)
@@ -181,10 +181,14 @@
persistenceService.getAllProgram(),
model.getProgram());
- initBeanFilterableComboBox(ui.getCountryComboBox(),
- persistenceService.getAllCountry(),
- model.getCountry());
+ initBeanFilterableComboBox(ui.getDepartureLocationComboBox(),
+ persistenceService.getAllHarbour(),
+ model.getDepartureLocation());
+ initBeanFilterableComboBox(ui.getReturnLocationComboBox(),
+ persistenceService.getAllHarbour(),
+ model.getReturnLocation());
+
initBeanFilterableComboBox(ui.getVesselComboBox(),
allVesselList,
model.getVessel());
@@ -210,7 +214,6 @@
model.setModify(model.isCreate());
registerValidators(validator);
-
}
@Override
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUIModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUIModel.java 2013-03-26 16:47:05 UTC (rev 682)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUIModel.java 2013-03-26 17:02:29 UTC (rev 683)
@@ -29,9 +29,9 @@
import fr.ifremer.tutti.persistence.entities.data.Attachment;
import fr.ifremer.tutti.persistence.entities.data.Cruise;
import fr.ifremer.tutti.persistence.entities.data.Program;
-import fr.ifremer.tutti.persistence.entities.referential.Country;
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;
@@ -39,6 +39,7 @@
import org.nuiton.util.beans.Binder;
import org.nuiton.util.beans.BinderFactory;
+import java.util.Calendar;
import java.util.Collection;
import java.util.Date;
import java.util.List;
@@ -59,8 +60,10 @@
public static final String PROPERTY_COMMENT = "comment";
- public static final String PROPERTY_COUNTRY = "country";
+ public static final String PROPERTY_DEPARTURE_LOCATION = "departureLocation";
+ public static final String PROPERTY_LANDING_LOCATION = "returnLocation";
+
public static final String PROPERTY_SURVEY_PART = "surveyPart";
public static final String PROPERTY_VESSEL = "vessel";
@@ -71,8 +74,6 @@
public static final String PROPERTY_HEAD_OF_SORT_ROOM = "headOfSortRoom";
- public static final String PROPERTY_YEAR = "year";
-
public static final String PROPERTY_MULTIRIG_NUMBER = "multirigNumber";
public static final String PROPERTY_BEGIN_DATE = "beginDate";
@@ -91,8 +92,10 @@
protected Program program;
- protected Country country;
+ protected TuttiLocation departureLocation;
+ protected TuttiLocation returnLocation;
+
protected String name;
protected String surveyPart;
@@ -107,8 +110,6 @@
protected String comment;
- protected Integer year;
-
protected Integer multirigNumber;
protected Date beginDate;
@@ -161,16 +162,26 @@
firePropertyChange(PROPERTY_COMMENT, oldValue, comment);
}
- public Country getCountry() {
- return country;
+ public TuttiLocation getDepartureLocation() {
+ return departureLocation;
}
- public void setCountry(Country country) {
- Object oldValue = getCountry();
- this.country = country;
- firePropertyChange(PROPERTY_COUNTRY, oldValue, country);
+ public void setDepartureLocation(TuttiLocation departureLocation) {
+ Object oldValue = getDepartureLocation();
+ this.departureLocation = departureLocation;
+ firePropertyChange(PROPERTY_DEPARTURE_LOCATION, oldValue, departureLocation);
}
+ public TuttiLocation getReturnLocation() {
+ return returnLocation;
+ }
+
+ public void setReturnLocation(TuttiLocation returnLocation) {
+ Object oldValue = getReturnLocation();
+ this.returnLocation = returnLocation;
+ firePropertyChange(PROPERTY_LANDING_LOCATION, oldValue, returnLocation);
+ }
+
public String getSurveyPart() {
return surveyPart;
}
@@ -179,16 +190,6 @@
Object oldValue = getSurveyPart();
this.surveyPart = surveyPart;
firePropertyChange(PROPERTY_SURVEY_PART, oldValue, surveyPart);
- }
-
- public Integer getYear() {
- return year;
- }
-
- public void setYear(Integer year) {
- Object oldValue = getYear();
- this.year = year;
- firePropertyChange(PROPERTY_YEAR, oldValue, year);
firePropertyChange(PROPERTY_CAN_GENERATE_NAME, null, isCanGenerateName());
}
@@ -210,6 +211,7 @@
Object oldValue = getBeginDate();
this.beginDate = beginDate;
firePropertyChange(PROPERTY_BEGIN_DATE, oldValue, beginDate);
+ firePropertyChange(PROPERTY_CAN_GENERATE_NAME, null, isCanGenerateName());
}
public Date getEndDate() {
@@ -289,12 +291,20 @@
}
public boolean isCanGenerateName() {
- return program != null && year != null;
+ return program != null && beginDate != null;
}
public static final String CRUISE_NAME_FORMAT = "%1$s_%2$s";
public String getGeneratedCampaignName() {
+ int year;
+ if (beginDate == null) {
+ year = 0;
+ } else {
+ Calendar c = Calendar.getInstance();
+ c.setTime(beginDate);
+ year = c.get(Calendar.YEAR);
+ }
String result = String.format(CRUISE_NAME_FORMAT, program.getName(), year);
if (StringUtils.isNotEmpty(surveyPart)) {
result += "_" + surveyPart;
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-03-26 16:47:05 UTC (rev 682)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUI.css 2013-03-26 17:02:29 UTC (rev 683)
@@ -55,7 +55,7 @@
beanType: {Program.class};
selectedItem: {model.getProgram()};
enabled: {!programCombobox.isEmpty()};
- _validatorLabel : {_("tutti.selectCruise.field.program")};
+ _validatorLabel: {_("tutti.selectCruise.field.program")};
}
#editProgramButton {
@@ -89,7 +89,7 @@
property: cruise;
selectedItem: {model.getCruise()};
enabled: {!cruiseCombobox.isEmpty()};
- _validatorLabel : {_("tutti.selectCruise.field.cruise")};
+ _validatorLabel: {_("tutti.selectCruise.field.cruise")};
}
#editCruiseButton {
@@ -124,7 +124,7 @@
property: protocol;
selectedItem: {model.getProtocol()};
enabled: {!protocolCombobox.isEmpty()};
- _validatorLabel : {_("tutti.selectCruise.field.protocol")};
+ _validatorLabel: {_("tutti.selectCruise.field.protocol")};
}
#newProtocolComboBox {
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationAction.java 2013-03-26 16:47:05 UTC (rev 682)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationAction.java 2013-03-26 17:02:29 UTC (rev 683)
@@ -31,8 +31,8 @@
import fr.ifremer.tutti.persistence.entities.data.CatchBatch;
import fr.ifremer.tutti.persistence.entities.data.Cruise;
import fr.ifremer.tutti.persistence.entities.data.FishingOperation;
-import fr.ifremer.tutti.persistence.entities.referential.FishingOperationLocation;
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.catches.ComputeWeightsAction;
import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUI;
@@ -398,17 +398,15 @@
} else { //if (!bean.equals(editFishingOperationUIModel.getFishingOperation()) || handler.isAModelModified()) {
- FishingOperationLocation strata = bean.getStrata();
- FishingOperationLocation subStrata = bean.getSubStrata();
- FishingOperationLocation location = bean.getLocation();
+ TuttiLocation strata = bean.getStrata();
+ TuttiLocation subStrata = bean.getSubStrata();
+ TuttiLocation location = bean.getLocation();
Cruise cruise = bean.getCruise();
if (cruise != null) {
+
// update gear universe
ui.getGearComboBox().setData(Lists.newArrayList(cruise.getGear()));
-
- // update vessel universe
- ui.getVesselComboBox().setData(Lists.newArrayList(cruise.getVessel()));
}
editFishingOperationUIModel.fromBean(bean);
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.css 2013-03-26 16:47:05 UTC (rev 682)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.css 2013-03-26 17:02:29 UTC (rev 683)
@@ -89,7 +89,7 @@
#stationNumberField {
text: {model.getStationNumber()};
- _validatorLabel : {_("tutti.editFishingOperation.field.stationNumber")};
+ _validatorLabel: {_("tutti.editFishingOperation.field.stationNumber")};
_selectOnFocus: {true};
}
@@ -105,7 +105,7 @@
model: {model.getFishingOperationNumber()};
useFloat: false;
numberPattern: {INT_6_DIGITS_PATTERN};
- _validatorLabel : {_("tutti.editFishingOperation.field.fishingOperationNumber")};
+ _validatorLabel: {_("tutti.editFishingOperation.field.fishingOperationNumber")};
}
#strataLabel {
@@ -118,7 +118,7 @@
#strataComboBox {
property: strata;
selectedItem: {model.getStrata()};
- _validatorLabel : {_("tutti.editFishingOperation.field.strata")};
+ _validatorLabel: {_("tutti.editFishingOperation.field.strata")};
}
#subStrataLabel {
@@ -131,7 +131,7 @@
#subStrataComboBox {
property: subStrata;
selectedItem: {model.getSubStrata()};
- _validatorLabel : {_("tutti.editFishingOperation.field.subStrata")};
+ _validatorLabel: {_("tutti.editFishingOperation.field.subStrata")};
}
#locationLabel {
@@ -144,33 +144,33 @@
#locationComboBox {
property: location;
selectedItem: {model.getLocation()};
- _validatorLabel : {_("tutti.editFishingOperation.field.location")};
+ _validatorLabel: {_("tutti.editFishingOperation.field.location")};
}
#gearLongitudeLabel {
text: {handler.getGearLongitudeLabelText(handler.getConfig().getCoordinateEditorType())};
- actionIcon: "coordinates";
+ actionIcon: coordinates;
toolTipText: "tutti.editFishingOperation.field.gearLongitude.tip";
_help: {"tutti.editFishingOperation.field.gearLongitude.help"};
}
#gearLatitudeLabel {
text: {handler.getGearLatitudeLabelText(handler.getConfig().getCoordinateEditorType())};
- actionIcon: "coordinates";
+ actionIcon: coordinates;
toolTipText: "tutti.editFishingOperation.field.gearLatitude.tip";
_help: {"tutti.editFishingOperation.field.gearLatitude.help"};
}
#gearDateLabel {
text: "tutti.editFishingOperation.field.gearDate";
- actionIcon: "calendar";
+ actionIcon: calendar;
toolTipText: "tutti.editFishingOperation.field.gearDate.tip";
_help: {"tutti.editFishingOperation.field.gearDate.help"};
}
#gearTimeLabel {
text: "tutti.editFishingOperation.field.gearTime";
- actionIcon: "time";
+ actionIcon: time;
toolTipText: "tutti.editFishingOperation.field.gearTime.tip";
_help: {"tutti.editFishingOperation.field.gearTime.help"};
}
@@ -197,22 +197,20 @@
#vesselLabel {
text: "tutti.editFishingOperation.field.vessel";
- labelFor: {vesselComboBox};
- actionIcon: "vessel";
+ labelFor: {vesselField};
+ actionIcon: vessel;
toolTipText: "tutti.editFishingOperation.field.vessel.tip";
_help: {"tutti.editFishingOperation.field.vessel.help"};
}
-#vesselComboBox {
- property: vessel;
- selectedItem: {model.getVessel()};
- _validatorLabel : {_("tutti.editFishingOperation.field.vessel")};
+#vesselField {
+ text: {handler.decorateVessel(model.getVessel())};
}
#gearLabel {
text: "tutti.editFishingOperation.field.gear";
labelFor: {gearComboBox};
- actionIcon: "gear";
+ actionIcon: gear;
toolTipText: "tutti.editFishingOperation.field.gear.tip";
_help: {"tutti.editFishingOperation.field.gear.help"};
}
@@ -220,7 +218,7 @@
#gearComboBox {
property: gear;
selectedItem: {model.getGear()};
- _validatorLabel : {_("tutti.editFishingOperation.field.gear")};
+ _validatorLabel: {_("tutti.editFishingOperation.field.gear")};
}
#multirigAggregationLabel {
@@ -232,7 +230,7 @@
#multirigAggregationField {
text: {model.getMultirigAggregation()};
- _validatorLabel : {_("tutti.editFishingOperation.field.multirigAggregation")};
+ _validatorLabel: {_("tutti.editFishingOperation.field.multirigAggregation")};
}
.degree {
@@ -272,32 +270,32 @@
property: gearShootingStartLongitudeDegree;
model: {model.getGearShootingStartLongitudeDegree()};
numberPattern: {SIGNED_INT_3_DIGITS_PATTERN};
- _validatorLabel : {_("tutti.editFishingOperation.field.gearShootingStartLongitudeDegree")};
+ _validatorLabel: {_("tutti.editFishingOperation.field.gearShootingStartLongitudeDegree")};
}
#gearShootingStartLongitudeDMSMinuteField {
property: gearShootingStartLongitudeMinute;
model: {model.getGearShootingStartLongitudeMinute()};
- _validatorLabel : {_("tutti.editFishingOperation.field.gearShootingStartLongitudeMinute")};
+ _validatorLabel: {_("tutti.editFishingOperation.field.gearShootingStartLongitudeMinute")};
}
#gearShootingStartLongitudeDMSSecondField {
property: gearShootingStartLongitudeSecond;
model: {model.getGearShootingStartLongitudeSecond()};
- _validatorLabel : {_("tutti.editFishingOperation.field.gearShootingStartLongitudeSecond")};
+ _validatorLabel: {_("tutti.editFishingOperation.field.gearShootingStartLongitudeSecond")};
}
#gearShootingStartLongitudeDMDDegreeField {
property: gearShootingStartLongitudeDegree;
model: {model.getGearShootingStartLongitudeDegree()};
numberPattern: {SIGNED_INT_3_DIGITS_PATTERN};
- _validatorLabel : {_("tutti.editFishingOperation.field.gearShootingStartLongitudeDegree")};
+ _validatorLabel: {_("tutti.editFishingOperation.field.gearShootingStartLongitudeDegree")};
}
#gearShootingStartLongitudeDMDMinuteField {
property: gearShootingStartLongitudeDecimalMinute;
model: {model.getGearShootingStartLongitudeDecimalMinute()};
- _validatorLabel : {_("tutti.editFishingOperation.field.gearShootingStartLongitudeMinute")};
+ _validatorLabel: {_("tutti.editFishingOperation.field.gearShootingStartLongitudeMinute")};
}
#gearShootingStartLongitudeDDField {
@@ -306,7 +304,7 @@
showReset: false;
useFloat: true;
useSign: true;
- _validatorLabel : {_("tutti.editFishingOperation.field.gearShootingStartLongitude")};
+ _validatorLabel: {_("tutti.editFishingOperation.field.gearShootingStartLongitude")};
}
#gearShootingStartLatitudePanel {
@@ -319,32 +317,32 @@
property: gearShootingStartLatitudeDegree;
model: {model.getGearShootingStartLatitudeDegree()};
numberPattern: {SIGNED_INT_2_DIGITS_PATTERN};
- _validatorLabel : {_("tutti.editFishingOperation.field.gearShootingStartLatitudeDegree")};
+ _validatorLabel: {_("tutti.editFishingOperation.field.gearShootingStartLatitudeDegree")};
}
#gearShootingStartLatitudeDMSMinuteField {
property: gearShootingStartLatitudeMinute;
model: {model.getGearShootingStartLatitudeMinute()};
- _validatorLabel : {_("tutti.editFishingOperation.field.gearShootingStartLatitudeMinute")};
+ _validatorLabel: {_("tutti.editFishingOperation.field.gearShootingStartLatitudeMinute")};
}
#gearShootingStartLatitudeDMSSecondField {
property: gearShootingStartLatitudeSecond;
model: {model.getGearShootingStartLatitudeSecond()};
- _validatorLabel : {_("tutti.editFishingOperation.field.gearShootingStartLatitudeSecond")};
+ _validatorLabel: {_("tutti.editFishingOperation.field.gearShootingStartLatitudeSecond")};
}
#gearShootingStartLatitudeDMDDegreeField {
property: gearShootingStartLatitudeDegree;
model: {model.getGearShootingStartLatitudeDegree()};
numberPattern: {SIGNED_INT_2_DIGITS_PATTERN};
- _validatorLabel : {_("tutti.editFishingOperation.field.gearShootingStartLatitudeDegree")};
+ _validatorLabel: {_("tutti.editFishingOperation.field.gearShootingStartLatitudeDegree")};
}
#gearShootingStartLatitudeDMDMinuteField {
property: gearShootingStartLatitudeDecimalMinute;
model: {model.getGearShootingStartLatitudeDecimalMinute()};
- _validatorLabel : {_("tutti.editFishingOperation.field.gearShootingStartLatitudeMinute")};
+ _validatorLabel: {_("tutti.editFishingOperation.field.gearShootingStartLatitudeMinute")};
}
#gearShootingStartLatitudeDDField {
@@ -353,12 +351,12 @@
showReset: false;
useFloat: true;
useSign: true;
- _validatorLabel : {_("tutti.editFishingOperation.field.gearShootingStartLatitude")};
+ _validatorLabel: {_("tutti.editFishingOperation.field.gearShootingStartLatitude")};
}
#gearShootingStartDateField {
date: {model.getGearShootingStartDate()};
- _validatorLabel : {_("tutti.editFishingOperation.field.gearShootingStartDate")};
+ _validatorLabel: {_("tutti.editFishingOperation.field.gearShootingStartDate")};
}
#gearShootingStartTimeField {
@@ -376,32 +374,32 @@
property: gearShootingEndLongitudeDegree;
model: {model.getGearShootingEndLongitudeDegree()};
numberPattern: {SIGNED_INT_3_DIGITS_PATTERN};
- _validatorLabel : {_("tutti.editFishingOperation.field.gearShootingEndLongitudeDegree")};
+ _validatorLabel: {_("tutti.editFishingOperation.field.gearShootingEndLongitudeDegree")};
}
#gearShootingEndLongitudeDMSMinuteField {
property: gearShootingEndLongitudeMinute;
model: {model.getGearShootingEndLongitudeMinute()};
- _validatorLabel : {_("tutti.editFishingOperation.field.gearShootingEndLongitudeMinute")};
+ _validatorLabel: {_("tutti.editFishingOperation.field.gearShootingEndLongitudeMinute")};
}
#gearShootingEndLongitudeDMSSecondField {
property: gearShootingEndLongitudeSecond;
model: {model.getGearShootingEndLongitudeSecond()};
- _validatorLabel : {_("tutti.editFishingOperation.field.gearShootingEndLongitudeSecond")};
+ _validatorLabel: {_("tutti.editFishingOperation.field.gearShootingEndLongitudeSecond")};
}
#gearShootingEndLongitudeDMDDegreeField {
property: gearShootingEndLongitudeDegree;
model: {model.getGearShootingEndLongitudeDegree()};
numberPattern: {SIGNED_INT_3_DIGITS_PATTERN};
- _validatorLabel : {_("tutti.editFishingOperation.field.gearShootingEndLongitudeDegree")};
+ _validatorLabel: {_("tutti.editFishingOperation.field.gearShootingEndLongitudeDegree")};
}
#gearShootingEndLongitudeDMDMinuteField {
property: gearShootingEndLongitudeDecimalMinute;
model: {model.getGearShootingEndLongitudeDecimalMinute()};
- _validatorLabel : {_("tutti.editFishingOperation.field.gearShootingEndLongitudeMinute")};
+ _validatorLabel: {_("tutti.editFishingOperation.field.gearShootingEndLongitudeMinute")};
}
#gearShootingEndLongitudeDDField {
@@ -410,7 +408,7 @@
showReset: false;
useFloat: true;
useSign: true;
- _validatorLabel : {_("tutti.editFishingOperation.field.gearShootingEndLongitude")};
+ _validatorLabel: {_("tutti.editFishingOperation.field.gearShootingEndLongitude")};
}
#gearShootingEndLatitudePanel {
@@ -423,32 +421,32 @@
property: gearShootingEndLatitudeDegree;
model: {model.getGearShootingEndLatitudeDegree()};
numberPattern: {SIGNED_INT_2_DIGITS_PATTERN};
- _validatorLabel : {_("tutti.editFishingOperation.field.gearShootingEndLatitudeDegree")};
+ _validatorLabel: {_("tutti.editFishingOperation.field.gearShootingEndLatitudeDegree")};
}
#gearShootingEndLatitudeDMSMinuteField {
property: gearShootingEndLatitudeMinute;
model: {model.getGearShootingEndLatitudeMinute()};
- _validatorLabel : {_("tutti.editFishingOperation.field.gearShootingEndLatitudeMinute")};
+ _validatorLabel: {_("tutti.editFishingOperation.field.gearShootingEndLatitudeMinute")};
}
#gearShootingEndLatitudeDMSSecondField {
property: gearShootingEndLatitudeSecond;
model: {model.getGearShootingEndLatitudeSecond()};
- _validatorLabel : {_("tutti.editFishingOperation.field.gearShootingEndLatitudeSecond")};
+ _validatorLabel: {_("tutti.editFishingOperation.field.gearShootingEndLatitudeSecond")};
}
#gearShootingEndLatitudeDMDDegreeField {
property: gearShootingEndLatitudeDegree;
model: {model.getGearShootingEndLatitudeDegree()};
numberPattern: {SIGNED_INT_2_DIGITS_PATTERN};
- _validatorLabel : {_("tutti.editFishingOperation.field.gearShootingEndLatitudeDegree")};
+ _validatorLabel: {_("tutti.editFishingOperation.field.gearShootingEndLatitudeDegree")};
}
#gearShootingEndLatitudeDMDMinuteField {
property: gearShootingEndLatitudeDecimalMinute;
model: {model.getGearShootingEndLatitudeDecimalMinute()};
- _validatorLabel : {_("tutti.editFishingOperation.field.gearShootingEndLatitudeMinute")};
+ _validatorLabel: {_("tutti.editFishingOperation.field.gearShootingEndLatitudeMinute")};
}
#gearShootingEndLatitudeDDField {
@@ -457,12 +455,12 @@
showReset: false;
useFloat: true;
useSign: true;
- _validatorLabel : {_("tutti.editFishingOperation.field.gearShootingEndLatitude")};
+ _validatorLabel: {_("tutti.editFishingOperation.field.gearShootingEndLatitude")};
}
#gearShootingEndDateField {
date: {model.getGearShootingEndDate()};
- _validatorLabel : {_("tutti.editFishingOperation.field.gearShootingEndDate")};
+ _validatorLabel: {_("tutti.editFishingOperation.field.gearShootingEndDate")};
}
#gearShootingEndTimeField {
@@ -474,7 +472,7 @@
floatable: false;
borderPainted: false;
opaque: false;
- _validatorLabel : {_("tutti.editFishingOperation.field.fishingOperationValidity")};
+ _validatorLabel: {_("tutti.editFishingOperation.field.fishingOperationValidity")};
toolTipText: "tutti.editFishingOperation.field.fishingOperationValid.tip";
_help: {"tutti.editFishingOperation.field.fishingOperationValid.help"};
}
@@ -517,7 +515,7 @@
numberPattern: {INT_6_DIGITS_PATTERN};
enabled: {!model.isFishingOperationRectiligne()};
toolTipText: {handler.getTrawlDistanceTooltipText(model.getTrawlDistance())};
- _validatorLabel : {_("tutti.editFishingOperation.field.trawlDistance")};
+ _validatorLabel: {_("tutti.editFishingOperation.field.trawlDistance")};
}
#durationLabel {
@@ -530,13 +528,13 @@
#durationField {
text: {handler.getDuration(model.getGearShootingStartDate(), model.getGearShootingEndDate())};
enabled: false;
- _validatorLabel : {_("tutti.editFishingOperation.field.duration")};
+ _validatorLabel: {_("tutti.editFishingOperation.field.duration")};
}
#recorderPersonList {
property: recorderPerson;
border: {BorderFactory.createTitledBorder(_("tutti.editFishingOperation.field.recorderPerson"))};
- _validatorLabel : {_("tutti.editFishingOperation.field.recorderPerson")};
+ _validatorLabel: {_("tutti.editFishingOperation.field.recorderPerson")};
toolTipText: "tutti.editFishingOperation.field.recorderPerson.tip";
_help: {"tutti.editFishingOperation.field.recorderPerson.help"};
}
@@ -549,7 +547,7 @@
#commentField {
text: {model.getComment()};
- _validatorLabel : {_("tutti.editFishingOperation.field.comment")};
+ _validatorLabel: {_("tutti.editFishingOperation.field.comment")};
}
#resetValidStateButton {
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.jaxx 2013-03-26 16:47:05 UTC (rev 682)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.jaxx 2013-03-26 17:02:29 UTC (rev 683)
@@ -25,7 +25,7 @@
decorator='help'
implements='fr.ifremer.tutti.ui.swing.util.TuttiUI<EditFishingOperationUIModel, EditFishingOperationUIHandler>'>
<import>
- fr.ifremer.tutti.persistence.entities.referential.FishingOperationLocation
+ fr.ifremer.tutti.persistence.entities.referential.TuttiLocation
fr.ifremer.tutti.persistence.entities.referential.Gear
fr.ifremer.tutti.persistence.entities.referential.Person
fr.ifremer.tutti.persistence.entities.referential.Vessel
@@ -77,7 +77,6 @@
<field name='comment' component='commentPane'/>
<field name='recorderPerson' component='recorderPersonList'/>
<field name='trawlDistance' component='trawlDistanceField'/>
- <field name='vessel' component='vesselComboBox'/>
<field name='gear' component='gearComboBox'/>
<field name='multirigAggregation' component='multirigAggregationField'/>
<field name='gearShootingStartLatitude'
@@ -195,7 +194,7 @@
<cell weightx='0.3'>
<BeanFilterableComboBox id='strataComboBox'
constructorParams='this'
- genericType='FishingOperationLocation'/>
+ genericType='TuttiLocation'/>
</cell>
<cell>
<JLabel id='subStrataLabel'/>
@@ -203,7 +202,7 @@
<cell weightx='0.3'>
<BeanFilterableComboBox id='subStrataComboBox'
constructorParams='this'
- genericType='FishingOperationLocation'/>
+ genericType='TuttiLocation'/>
</cell>
<cell>
<JLabel id='locationLabel'/>
@@ -211,7 +210,7 @@
<cell weightx='0.3'>
<BeanFilterableComboBox id='locationComboBox'
constructorParams='this'
- genericType='FishingOperationLocation'/>
+ genericType='TuttiLocation'/>
</cell>
</row>
@@ -466,9 +465,7 @@
<JLabel id='vesselLabel'/>
</cell>
<cell weightx="1.0" fill="both">
- <BeanFilterableComboBox id='vesselComboBox'
- constructorParams='this'
- genericType='Vessel'/>
+ <JLabel id='vesselField'/>
</cell>
</row>
<row>
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-03-26 16:47:05 UTC (rev 682)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIHandler.java 2013-03-26 17:02:29 UTC (rev 683)
@@ -31,11 +31,10 @@
import fr.ifremer.tutti.persistence.entities.data.Cruise;
import fr.ifremer.tutti.persistence.entities.data.FishingOperation;
import fr.ifremer.tutti.persistence.entities.data.Program;
-import fr.ifremer.tutti.persistence.entities.referential.FishingOperationLocation;
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.persistence.entities.referential.Zone;
import fr.ifremer.tutti.service.PersistenceService;
import fr.ifremer.tutti.ui.swing.TuttiUIContext;
import fr.ifremer.tutti.ui.swing.content.operation.fishing.AbstractCaracteristicTabUIModel;
@@ -187,7 +186,7 @@
@Override
public void propertyChange(PropertyChangeEvent evt) {
EditFishingOperationUIModel source = (EditFishingOperationUIModel) evt.getSource();
- FishingOperationLocation newStrata = (FishingOperationLocation) evt.getNewValue();
+ TuttiLocation newStrata = (TuttiLocation) evt.getNewValue();
onSelectedStrata(source, newStrata);
}
});
@@ -196,7 +195,7 @@
@Override
public void propertyChange(PropertyChangeEvent evt) {
EditFishingOperationUIModel source = (EditFishingOperationUIModel) evt.getSource();
- FishingOperationLocation newStrata = (FishingOperationLocation) evt.getNewValue();
+ TuttiLocation newStrata = (TuttiLocation) evt.getNewValue();
onSelectedSubStrata(source, newStrata);
}
});
@@ -249,10 +248,6 @@
people,
model.getRecorderPerson());
- initBeanFilterableComboBox(ui.getVesselComboBox(),
- Lists.<Vessel>newArrayList(),
- null);
-
initBeanFilterableComboBox(ui.getGearComboBox(),
Lists.<Gear>newArrayList(),
null);
@@ -266,25 +261,25 @@
Preconditions.checkNotNull(program,
"Could not find program in ui context");
- Zone zone = program.getZone();
+ TuttiLocation zone = program.getZone();
- FishingOperationLocation strata = model.getStrata();
+ TuttiLocation strata = model.getStrata();
String strataId = strata == null ? null : strata.getId();
- FishingOperationLocation subStrata = model.getSubStrata();
+ TuttiLocation subStrata = model.getSubStrata();
String substrataId = subStrata == null ? null : subStrata.getId();
- FishingOperationLocation location = model.getLocation();
+ TuttiLocation location = model.getLocation();
String zoneId = zone.getId();
- List<FishingOperationLocation> stratas =
+ List<TuttiLocation> stratas =
persistenceService.getAllFishingOperationStrata(zoneId);
- List<FishingOperationLocation> subStratas =
+ List<TuttiLocation> subStratas =
persistenceService.getAllFishingOperationSubStrata(zoneId, strataId);
- List<FishingOperationLocation> locations =
+ List<TuttiLocation> locations =
persistenceService.getAllFishingOperationLocation(zoneId, strataId, substrataId);
initBeanFilterableComboBox(ui.getStrataComboBox(), stratas, strata);
@@ -543,7 +538,7 @@
//------------------------------------------------------------------------//
protected void onSelectedStrata(EditFishingOperationUIModel model,
- FishingOperationLocation newStrata) {
+ TuttiLocation newStrata) {
// reset substrata value
model.setSubStrata(null);
@@ -551,15 +546,15 @@
// reset sub strata combo
ui.getSubStrataComboBox().setData(null);
- Zone zone = getDataContext().getProgram().getZone();
+ TuttiLocation zone = getDataContext().getProgram().getZone();
String zoneId = zone.getId();
String strataId = newStrata == null ? null : newStrata.getId();
- List<FishingOperationLocation> subStrata =
+ List<TuttiLocation> subStrata =
persistenceService.getAllFishingOperationSubStrata(zoneId, strataId);
- List<FishingOperationLocation> location =
+ List<TuttiLocation> location =
persistenceService.getAllFishingOperationLocation(zoneId, strataId, null);
ui.getSubStrataComboBox().setData(subStrata);
@@ -585,22 +580,22 @@
}
protected void onSelectedSubStrata(EditFishingOperationUIModel model,
- FishingOperationLocation newSubStrata) {
+ TuttiLocation newSubStrata) {
// reset localite value
model.setLocation(null);
// reset localite combo
ui.getLocationComboBox().setData(null);
- Zone zone = getDataContext().getProgram().getZone();
+ TuttiLocation zone = getDataContext().getProgram().getZone();
String zoneId = zone.getId();
- FishingOperationLocation strata = model.getStrata();
+ TuttiLocation strata = model.getStrata();
String subStrataId = newSubStrata == null ? null : newSubStrata.getId();
String strataId = strata == null ? null : strata.getId();
- List<FishingOperationLocation> location =
+ List<TuttiLocation> location =
persistenceService.getAllFishingOperationLocation(zoneId, strataId, subStrataId);
ui.getLocationComboBox().setData(location);
@@ -648,4 +643,15 @@
getModel().removeAllAttachment(getModel().getAttachment());
getModel().addAllAttachment(attachments);
}
+
+ public String decorateVessel(Vessel vessel) {
+ String result;
+ if (vessel == null) {
+ result = "";
+ } else {
+ result = "<html><strong>" + decorate(vessel) +
+ "</strong></html>";
+ }
+ return result;
+ }
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel.java 2013-03-26 16:47:05 UTC (rev 682)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel.java 2013-03-26 17:02:29 UTC (rev 683)
@@ -30,9 +30,9 @@
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.FishingOperationLocation;
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.persistence.spatial.SexagecimalPosition;
import fr.ifremer.tutti.ui.swing.util.AbstractTuttiBeanUIModel;
@@ -153,10 +153,12 @@
protected Integer fishingOperationNumber;
- protected FishingOperationLocation strata;
+ protected TuttiLocation strata;
- protected FishingOperationLocation subStrata;
+ protected TuttiLocation subStrata;
+ protected TuttiLocation location;
+
protected SexagecimalPosition gearShootingStartLatitudeAsSexagecimal;
protected SexagecimalPosition gearShootingStartLongitudeAsSexagecimal;
@@ -183,8 +185,6 @@
protected Boolean fishingOperationValid;
- protected FishingOperationLocation location;
-
protected String comment;
protected List<Person> recorderPerson = Lists.newArrayList();
@@ -315,21 +315,21 @@
firePropertyChange(PROPERTY_FISHING_OPERATION_NUMBER, oldValue, fishingOperationNumber);
}
- public FishingOperationLocation getStrata() {
+ public TuttiLocation getStrata() {
return strata;
}
- public void setStrata(FishingOperationLocation strata) {
+ public void setStrata(TuttiLocation strata) {
Object oldValue = getStrata();
this.strata = strata;
firePropertyChange(PROPERTY_STRATA, oldValue, strata);
}
- public FishingOperationLocation getSubStrata() {
+ public TuttiLocation getSubStrata() {
return subStrata;
}
- public void setSubStrata(FishingOperationLocation subStrata) {
+ public void setSubStrata(TuttiLocation subStrata) {
Object oldValue = getSubStrata();
this.subStrata = subStrata;
firePropertyChange(PROPERTY_SUB_STRATA, oldValue, subStrata);
@@ -686,11 +686,11 @@
firePropertyChange(PROPERTY_FISHING_OPERATION_VALID, oldValue, fishingOperationValid);
}
- public FishingOperationLocation getLocation() {
+ public TuttiLocation getLocation() {
return location;
}
- public void setLocation(FishingOperationLocation location) {
+ public void setLocation(TuttiLocation location) {
Object oldValue = getLocation();
this.location = location;
firePropertyChange(PROPERTY_LOCATION, oldValue, location);
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIHandler.java 2013-03-26 16:47:05 UTC (rev 682)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIHandler.java 2013-03-26 17:02:29 UTC (rev 683)
@@ -385,6 +385,13 @@
initUI(ui);
+// SwingUtil.applyDataBinding(
+// ui,
+// SpeciesBatchUI.BINDING_CREATE_SPECIES_MELAG_MENU_ENABLED,
+// SpeciesBatchUI.BINDING_REMOVE_SPECIES_BATCH_MENU_ENABLED,
+// SpeciesBatchUI.BINDING_REMOVE_SPECIES_SUB_BATCH_MENU_ENABLED,
+// SpeciesBatchUI.BINDING_RENAME_SPECIES_BATCH_MENU_ENABLED);
+
Map<Integer, SampleCategoryEnum> categoryEnumMap =
SampleCategoryEnum.toIdMapping();
@@ -548,6 +555,7 @@
}
});
+ recomputeBatchActionEnable();
}
@Override
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUI.css 2013-03-26 16:47:05 UTC (rev 682)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUI.css 2013-03-26 17:02:29 UTC (rev 683)
@@ -49,7 +49,7 @@
#nameField {
text: {model.getName()};
- _validatorLabel : {_("tutti.editProgram.field.name")};
+ _validatorLabel: {_("tutti.editProgram.field.name")};
}
#descriptionPane {
@@ -60,7 +60,7 @@
#descriptionField {
text: {getStringValue(model.getDescription())};
- _validatorLabel : {_("tutti.editProgram.field.description")};
+ _validatorLabel: {_("tutti.editProgram.field.description")};
}
#zoneLabel {
@@ -73,7 +73,7 @@
#zoneComboBox {
property: zone;
selectedItem: {model.getZone()};
- _validatorLabel : {_("tutti.editProgram.field.zone")};
+ _validatorLabel: {_("tutti.editProgram.field.zone")};
}
#saveButton {
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUI.jaxx 2013-03-26 16:47:05 UTC (rev 682)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUI.jaxx 2013-03-26 17:02:29 UTC (rev 683)
@@ -25,17 +25,13 @@
implements='fr.ifremer.tutti.ui.swing.util.TuttiUI<EditProgramUIModel, EditProgramUIHandler>'>
<import>
- fr.ifremer.tutti.persistence.entities.referential.Zone
+ fr.ifremer.tutti.persistence.entities.referential.TuttiLocation
- fr.ifremer.tutti.ui.swing.TuttiUIContext
fr.ifremer.tutti.ui.swing.TuttiHelpBroker
fr.ifremer.tutti.ui.swing.util.TuttiUI
jaxx.runtime.swing.editor.bean.BeanFilterableComboBox
- java.awt.Dimension
- javax.swing.ListSelectionModel
-
static org.nuiton.i18n.I18n._
static jaxx.runtime.SwingUtil.getStringValue
</import>
@@ -90,7 +86,7 @@
</cell>
<cell>
<BeanFilterableComboBox id='zoneComboBox' constructorParams='this'
- genericType='Zone'/>
+ genericType='TuttiLocation'/>
</cell>
</row>
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUIModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUIModel.java 2013-03-26 16:47:05 UTC (rev 682)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUIModel.java 2013-03-26 17:02:29 UTC (rev 683)
@@ -25,7 +25,7 @@
*/
import fr.ifremer.tutti.persistence.entities.data.Program;
-import fr.ifremer.tutti.persistence.entities.referential.Zone;
+import fr.ifremer.tutti.persistence.entities.referential.TuttiLocation;
import fr.ifremer.tutti.ui.swing.util.AbstractTuttiBeanUIModel;
import org.nuiton.util.beans.Binder;
import org.nuiton.util.beans.BinderFactory;
@@ -52,7 +52,7 @@
protected String description;
- protected Zone zone;
+ protected TuttiLocation zone;
private List<Program> existingPrograms;
@@ -88,11 +88,11 @@
firePropertyChange(PROPERTY_COMMENT, oldValue, description);
}
- public Zone getZone() {
+ public TuttiLocation getZone() {
return zone;
}
- public void setZone(Zone zone) {
+ public void setZone(TuttiLocation zone) {
Object oldValue = getZone();
this.zone = zone;
firePropertyChange(PROPERTY_ZONE, oldValue, zone);
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-03-26 16:47:05 UTC (rev 682)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiUIHandler.java 2013-03-26 17:02:29 UTC (rev 683)
@@ -705,7 +705,7 @@
protected String decorate(Object object, String context) {
String result = "";
if (object != null) {
- getDecorator(object.getClass(), context).toString(object);
+ result = getDecorator(object.getClass(), context).toString(object);
}
return result;
}
Modified: trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUIModel-error-validation.xml
===================================================================
--- trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUIModel-error-validation.xml 2013-03-26 16:47:05 UTC (rev 682)
+++ trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUIModel-error-validation.xml 2013-03-26 17:02:29 UTC (rev 683)
@@ -39,12 +39,18 @@
</field-validator>
</field>
- <field name="year">
+ <field name="departureLocation">
<field-validator type="required" short-circuit="true">
- <message>tutti.validator.error.cruise.year.required</message>
+ <message>tutti.validator.error.cruise.departureLocation.required</message>
</field-validator>
</field>
+ <field name="returnLocation">
+ <field-validator type="required" short-circuit="true">
+ <message>tutti.validator.error.cruise.returnLocation.required</message>
+ </field-validator>
+ </field>
+
<field name="multirigNumber">
<field-validator type="required" short-circuit="true">
<message>tutti.validator.error.cruise.multirigNumber.required</message>
@@ -77,13 +83,6 @@
</field-validator>
</field>
-
- <field name="country">
- <field-validator type="required" short-circuit="true">
- <message>tutti.validator.error.cruise.country.required</message>
- </field-validator>
- </field>
-
<field name="vessel">
<field-validator type="required" short-circuit="true">
<message>tutti.validator.error.cruise.vessel.required</message>
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-03-26 16:47:05 UTC (rev 682)
+++ trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties 2013-03-26 17:02:29 UTC (rev 683)
@@ -338,6 +338,8 @@
tutti.editCruise.field.comment.tip=
tutti.editCruise.field.country=
tutti.editCruise.field.country.tip=
+tutti.editCruise.field.departureLocation=
+tutti.editCruise.field.departureLocation.tip=
tutti.editCruise.field.endDate=
tutti.editCruise.field.endDate.tip=
tutti.editCruise.field.gear=
@@ -352,6 +354,8 @@
tutti.editCruise.field.name.tip=
tutti.editCruise.field.program=
tutti.editCruise.field.program.tip=
+tutti.editCruise.field.returnLocation=
+tutti.editCruise.field.returnLocation.tip=
tutti.editCruise.field.surveyPart=
tutti.editCruise.field.surveyPart.tip=
tutti.editCruise.field.vessel=
@@ -975,6 +979,7 @@
tutti.validator.error.cruise.beginDate.required=
tutti.validator.error.cruise.country.required=
tutti.validator.error.cruise.dates.endBeforeStart=
+tutti.validator.error.cruise.departureLocation.required=
tutti.validator.error.cruise.endDate.required=
tutti.validator.error.cruise.gear.required=
tutti.validator.error.cruise.headOfMission.required=
@@ -982,6 +987,7 @@
tutti.validator.error.cruise.multirigNumber.required=
tutti.validator.error.cruise.name.required=
tutti.validator.error.cruise.program.required=
+tutti.validator.error.cruise.returnLocation.required=
tutti.validator.error.cruise.vessel.required=
tutti.validator.error.cruise.year.required=
tutti.validator.error.fishingOperation.catcher.required=
Modified: trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties
===================================================================
--- trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2013-03-26 16:47:05 UTC (rev 682)
+++ trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2013-03-26 17:02:29 UTC (rev 683)
@@ -347,8 +347,8 @@
tutti.editCruise.field.beginDate.tip=
tutti.editCruise.field.comment=Commentaire
tutti.editCruise.field.comment.tip=
-tutti.editCruise.field.country=Pays
-tutti.editCruise.field.country.tip=
+tutti.editCruise.field.departureLocation=Port de départ
+tutti.editCruise.field.departureLocation.tip=
tutti.editCruise.field.endDate=Date de fin
tutti.editCruise.field.endDate.tip=
tutti.editCruise.field.gear=Engin(s)
@@ -363,12 +363,12 @@
tutti.editCruise.field.name.tip=
tutti.editCruise.field.program=Série
tutti.editCruise.field.program.tip=
+tutti.editCruise.field.returnLocation=Port d'arrivée
+tutti.editCruise.field.returnLocation.tip=
tutti.editCruise.field.surveyPart=Série partielle
tutti.editCruise.field.surveyPart.tip=
-tutti.editCruise.field.vessel=Navire(s)
+tutti.editCruise.field.vessel=Navire
tutti.editCruise.field.vessel.tip=
-tutti.editCruise.field.year=Année
-tutti.editCruise.field.year.tip=
tutti.editCruise.filterVessel.tip=
tutti.editCruise.filterVesselType=Filtre \:
tutti.editCruise.filterVesselType.all=Tout
@@ -983,6 +983,7 @@
tutti.validator.error.cruise.beginDate.required=La date de début est obligatoire
tutti.validator.error.cruise.country.required=Le pays est obligatoire
tutti.validator.error.cruise.dates.endBeforeStart=La date de fin doit être après la date de début
+tutti.validator.error.cruise.departureLocation.required=Le port d'embarquement est obligatoire
tutti.validator.error.cruise.endDate.required=La date de fin est obligatoire
tutti.validator.error.cruise.gear.required=Au moins un engin doit être sélectionné
tutti.validator.error.cruise.headOfMission.required=Au moins un chef de mission doit être sélectionné
@@ -990,6 +991,7 @@
tutti.validator.error.cruise.multirigNumber.required=Le nombre de poche est obligatoire
tutti.validator.error.cruise.name.required=Le nom de la campagne est obligatoire
tutti.validator.error.cruise.program.required=La série est obligatoire
+tutti.validator.error.cruise.returnLocation.required=Le port de débarquement est obligatoire
tutti.validator.error.cruise.vessel.required=Au moins un bateau doit être sélectionné
tutti.validator.error.cruise.year.required=L'année est obligatoire
tutti.validator.error.fishingOperation.catcher.required=Au moins un saisisseur est obligatoire
1
0