r526 - in trunk: tutti-persistence/src/main/java/fr/ifremer/tutti/persistence tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/data tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/batch tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service tutti-service/src/main/java/fr/ifremer/tutti/service tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catc
Author: tchemit Date: 2013-03-04 16:26:13 +0100 (Mon, 04 Mar 2013) New Revision: 526 Url: http://forge.codelutin.com/projects/tutti/repository/revisions/526 Log: refs #1963: [CAPTURE] - Global - Ajouter pi?\195?\168ce jointe sur tous les onglets (obtenir depuis le service le sur lot) Added: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/data/BatchContainer.java 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/service/BatchPersistenceService.java trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/BatchPersistenceServiceImpl.java trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/batch/ScientificCruiseCatchBatchValidator.java trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/AttachmentPersistenceServiceWriteTest.java trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIHandler.java 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-04 09:10:58 UTC (rev 525) +++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistence.java 2013-03-04 15:26:13 UTC (rev 526) @@ -26,6 +26,7 @@ import fr.ifremer.tutti.persistence.entities.data.AccidentalBatch; 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.Cruise; import fr.ifremer.tutti.persistence.entities.data.FishingOperation; @@ -261,7 +262,6 @@ /** * Get all attachments for the given object {@code objectId}. * - * * @param objectId id of the object * @return list of all attachments for the given {@code objectId}. */ @@ -424,15 +424,16 @@ //------------------------------------------------------------------------// /** - * Get all root {@link SpeciesBatch} for the given fishing operation. + * Get the batch parent of all root {@link SpeciesBatch} for the given + * fishing operation. * <p/> * <strong>Note:</strong> All childs of the batch should be loaded here. * * @param fishingOperationId if of the fishing operation to seek * @return the list of root {@link SpeciesBatch} - * @since 1.0 + * @since 1.0.2 */ - List<SpeciesBatch> getAllRootSpeciesBatch(String fishingOperationId); + BatchContainer<SpeciesBatch> getRootSpeciesBatch(String fishingOperationId); @Transactional(readOnly = false) SpeciesBatch createSpeciesBatch(SpeciesBatch bean, String parentBatchId); 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-04 09:10:58 UTC (rev 525) +++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceImpl.java 2013-03-04 15:26:13 UTC (rev 526) @@ -29,6 +29,7 @@ import fr.ifremer.adagio.core.service.technical.CacheService; import fr.ifremer.tutti.persistence.entities.data.AccidentalBatch; 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.Cruise; import fr.ifremer.tutti.persistence.entities.data.FishingOperation; @@ -514,8 +515,8 @@ //------------------------------------------------------------------------// @Override - public List<SpeciesBatch> getAllRootSpeciesBatch(String fishingOperationId) { - return batchService.getAllRootSpeciesBatch(fishingOperationId); + public BatchContainer<SpeciesBatch> getRootSpeciesBatch(String fishingOperationId) { + return batchService.getRootSpeciesBatch(fishingOperationId); } @Override 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-04 09:10:58 UTC (rev 525) +++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceNoDbImpl.java 2013-03-04 15:26:13 UTC (rev 526) @@ -26,6 +26,7 @@ import fr.ifremer.tutti.persistence.entities.data.AccidentalBatch; 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.Cruise; import fr.ifremer.tutti.persistence.entities.data.FishingOperation; @@ -334,7 +335,7 @@ } @Override - public List<SpeciesBatch> getAllRootSpeciesBatch(String fishingOperationId) { + public BatchContainer<SpeciesBatch> getRootSpeciesBatch(String fishingOperationId) { throw new RuntimeException("method not implemented"); } Added: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/data/BatchContainer.java =================================================================== --- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/data/BatchContainer.java (rev 0) +++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/data/BatchContainer.java 2013-03-04 15:26:13 UTC (rev 526) @@ -0,0 +1,49 @@ +package fr.ifremer.tutti.persistence.entities.data; + +/* + * #%L + * Tutti :: Persistence + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2012 - 2013 Ifremer + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ + +import com.google.common.collect.Lists; + +import java.util.List; + +/** + * Container of batches. + * + * @author tchemit <chemit@codelutin.com> + * @since 1.0.2 + */ +public class BatchContainer<B extends AbstractBatch> extends AbstractTuttiDataEntity { + private static final long serialVersionUID = 1L; + + protected final List<B> children = Lists.newArrayList(); + + public List<B> getChildren() { + return children; + } + + public void addChildren(B batch) { + children.add(batch); + } +} Property changes on: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/data/BatchContainer.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/BatchPersistenceService.java =================================================================== --- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/BatchPersistenceService.java 2013-03-04 09:10:58 UTC (rev 525) +++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/BatchPersistenceService.java 2013-03-04 15:26:13 UTC (rev 526) @@ -28,6 +28,7 @@ import fr.ifremer.adagio.core.dao.data.batch.CatchBatchExtendDao; import fr.ifremer.adagio.core.dao.data.batch.validator.CatchBatchValidationException; import fr.ifremer.tutti.persistence.TuttiPersistenceServiceImplementor; +import fr.ifremer.tutti.persistence.entities.data.BatchContainer; import fr.ifremer.tutti.persistence.entities.data.CatchBatch; import fr.ifremer.tutti.persistence.entities.data.SpeciesBatch; import fr.ifremer.tutti.persistence.entities.data.SpeciesBatchFrequency; @@ -103,15 +104,16 @@ //------------------------------------------------------------------------// /** - * Get all root {@link SpeciesBatch} for the given fishing operation. + * Get the batch parent of all root {@link SpeciesBatch} for the given + * fishing operation. * <p/> * <strong>Note:</strong> All childs of the batch should be loaded here. * * @param fishingOperationId if of the fishing operation to seek * @return the list of root {@link SpeciesBatch} - * @since 1.0 + * @since 1.0.2 */ - List<SpeciesBatch> getAllRootSpeciesBatch(String fishingOperationId); + BatchContainer<SpeciesBatch> getRootSpeciesBatch(String fishingOperationId); @Transactional(readOnly = false) SpeciesBatch createSpeciesBatch(SpeciesBatch bean, String parentBatchId); Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/BatchPersistenceServiceImpl.java =================================================================== --- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/BatchPersistenceServiceImpl.java 2013-03-04 09:10:58 UTC (rev 525) +++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/BatchPersistenceServiceImpl.java 2013-03-04 15:26:13 UTC (rev 526) @@ -42,6 +42,7 @@ import fr.ifremer.adagio.core.dao.referential.taxon.ReferenceTaxon; import fr.ifremer.adagio.core.dao.referential.taxon.ReferenceTaxonImpl; import fr.ifremer.adagio.core.dao.technical.synchronization.SynchronizationStatus; +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; @@ -279,18 +280,22 @@ //------------------------------------------------------------------------// @Override - public List<SpeciesBatch> getAllRootSpeciesBatch(String fishingOperationId) { + public BatchContainer<SpeciesBatch> getRootSpeciesBatch(String fishingOperationId) { // Load batch tree Integer catchBatchId = catchBatchDao.getIdByFishingOperationId(Integer.valueOf(fishingOperationId)); fr.ifremer.adagio.core.dao.data.batch.CatchBatch catchBatch = catchBatchDao.loadFullTree(catchBatchId); - List<SpeciesBatch> result = new ArrayList<SpeciesBatch>(); - // Vrac / Species SortingBatch vracSpeciesBatch = catchBatchDao.getSortingBatch(catchBatch.getChildBatchs(), "pmfmId", enumeration.PMFM_ID_SORTED_UNSORTED, enumeration.QUALITATIVE_VRAC_ID, "pmfmId", enumeration.PMFM_ID_SORTING_TYPE, enumeration.QUALITATIVE_ID_SORTING_TYPE_SPECIES); + + // container of speciesBatch is arbitraty put on vrac type (there is + // no common ancestor for all species batch). + BatchContainer result = new BatchContainer<SpeciesBatch>(); + result.setId(String.valueOf(vracSpeciesBatch.getId())); + for (Batch batch1 : vracSpeciesBatch.getChildBatchs()) { SortingBatch source = (SortingBatch) batch1; @@ -301,7 +306,7 @@ SpeciesBatch target = new SpeciesBatch(); entityToBean(source, target); - result.add(target); + result.addChildren(target); } } @@ -316,12 +321,57 @@ SpeciesBatch target = new SpeciesBatch(); entityToBean(source, target); - result.add(target); + result.addChildren(target); } } + return result; } +// @Override +// public List<SpeciesBatch> getAllRootSpeciesBatch(String fishingOperationId) { +// +// // Load batch tree +// Integer catchBatchId = catchBatchDao.getIdByFishingOperationId(Integer.valueOf(fishingOperationId)); +// fr.ifremer.adagio.core.dao.data.batch.CatchBatch catchBatch = catchBatchDao.loadFullTree(catchBatchId); +// +// List<SpeciesBatch> result = new ArrayList<SpeciesBatch>(); +// +// // Vrac / Species +// SortingBatch vracSpeciesBatch = catchBatchDao.getSortingBatch(catchBatch.getChildBatchs(), +// "pmfmId", enumeration.PMFM_ID_SORTED_UNSORTED, enumeration.QUALITATIVE_VRAC_ID, +// "pmfmId", enumeration.PMFM_ID_SORTING_TYPE, enumeration.QUALITATIVE_ID_SORTING_TYPE_SPECIES); +// for (Batch batch1 : vracSpeciesBatch.getChildBatchs()) { +// SortingBatch source = (SortingBatch) batch1; +// +// // evict some special batches : Life (or Biota) and Inert +// if (source.getReferenceTaxon() != null +// && !enumeration.REFERENCE_TAXON_ID_LIFE.equals(source.getReferenceTaxon().getId()) +// && !enumeration.REFERENCE_TAXON_ID_INERT.equals(source.getReferenceTaxon().getId())) { +// SpeciesBatch target = new SpeciesBatch(); +// +// entityToBean(source, target); +// result.add(target); +// } +// } +// +// // Hors-Vrac / Species +// SortingBatch horsVracSpeciesBatch = catchBatchDao.getSortingBatch(catchBatch.getChildBatchs(), +// "pmfmId", enumeration.PMFM_ID_SORTED_UNSORTED, enumeration.QUALITATIVE_HORS_VRAC_ID, +// "pmfmId", enumeration.PMFM_ID_SORTING_TYPE, enumeration.QUALITATIVE_ID_SORTING_TYPE_SPECIES); +// if (horsVracSpeciesBatch != null) { +// for (Batch batch : horsVracSpeciesBatch.getChildBatchs()) { +// SortingBatch source = (SortingBatch) batch; +// +// SpeciesBatch target = new SpeciesBatch(); +// +// entityToBean(source, target); +// result.add(target); +// } +// } +// return result; +// } + @Override public SpeciesBatch createSpeciesBatch(SpeciesBatch bean, String parentBatchId) { Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/batch/ScientificCruiseCatchBatchValidator.java =================================================================== --- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/batch/ScientificCruiseCatchBatchValidator.java 2013-03-04 09:10:58 UTC (rev 525) +++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/batch/ScientificCruiseCatchBatchValidator.java 2013-03-04 15:26:13 UTC (rev 526) @@ -121,6 +121,7 @@ } } + //FIXME - make this work with data to repair :( // Vrac > Benthos SortingBatch benthosBatch = catchBatchDao.getSortingBatch(vracBatch.getChildBatchs(), "pmfmId", enumeration.PMFM_ID_SORTING_TYPE, @@ -160,6 +161,7 @@ addWarning(errors, n_("tutti.persistence.batch.validation.horsVracSpeciesNotFound")); } + //FIXME - make this work with data to repair :( // Hors Vrac > Benthos SortingBatch benthosBatch = catchBatchDao.getSortingBatch(horsVracBatch.getChildBatchs(), "pmfmId", enumeration.PMFM_ID_SORTING_TYPE, Modified: trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/AttachmentPersistenceServiceWriteTest.java =================================================================== --- trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/AttachmentPersistenceServiceWriteTest.java 2013-03-04 09:10:58 UTC (rev 525) +++ trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/AttachmentPersistenceServiceWriteTest.java 2013-03-04 15:26:13 UTC (rev 526) @@ -25,14 +25,12 @@ */ import fr.ifremer.tutti.persistence.DatabaseResource; -import fr.ifremer.tutti.persistence.TuttiRunner; import fr.ifremer.tutti.persistence.entities.data.AttachementObjectTypeEnum; import fr.ifremer.tutti.persistence.entities.data.Attachment; import org.junit.Assert; import org.junit.Before; import org.junit.ClassRule; import org.junit.Test; -import org.junit.runner.RunWith; import java.io.File; import java.util.List; @@ -43,7 +41,6 @@ * @author tchemit <chemit@codelutin.com> * @since 1.0.2 */ -@RunWith(TuttiRunner.class) public class AttachmentPersistenceServiceWriteTest { @ClassRule 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-04 09:10:58 UTC (rev 525) +++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java 2013-03-04 15:26:13 UTC (rev 526) @@ -32,6 +32,7 @@ import fr.ifremer.tutti.persistence.config.TuttiPersistenceConfig; import fr.ifremer.tutti.persistence.entities.data.AccidentalBatch; 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.Cruise; import fr.ifremer.tutti.persistence.entities.data.FishingOperation; @@ -535,8 +536,8 @@ //------------------------------------------------------------------------// @Override - public List<SpeciesBatch> getAllRootSpeciesBatch(String fishingOperationId) { - return driver.getAllRootSpeciesBatch(fishingOperationId); + public BatchContainer<SpeciesBatch> getRootSpeciesBatch(String fishingOperationId) { + return driver.getRootSpeciesBatch(fishingOperationId); } @Override 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-04 09:10:58 UTC (rev 525) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIHandler.java 2013-03-04 15:26:13 UTC (rev 526) @@ -31,6 +31,7 @@ import com.google.common.collect.Sets; import fr.ifremer.tutti.persistence.entities.TuttiEntities; import fr.ifremer.tutti.persistence.entities.data.Attachment; +import fr.ifremer.tutti.persistence.entities.data.BatchContainer; import fr.ifremer.tutti.persistence.entities.data.FishingOperation; import fr.ifremer.tutti.persistence.entities.data.SampleCategoryEnum; import fr.ifremer.tutti.persistence.entities.data.SpeciesBatch; @@ -209,9 +210,20 @@ if (!TuttiEntities.isNew(bean)) { // get all batch species root (says the one with only a species sample category) - List<SpeciesBatch> catches = - persistenceService.getAllRootSpeciesBatch(bean.getId()); + BatchContainer<SpeciesBatch> rootSpeciesBatch = + persistenceService.getRootSpeciesBatch(bean.getId()); + model.setRootBatchId(rootSpeciesBatch.getId()); + + if (log.isInfoEnabled()) { + log.info("species root batch id: " + model.getRootBatchId()); + } + + List<SpeciesBatch> catches = rootSpeciesBatch.getChildren(); + +// List<SpeciesBatch> catches = +// persistenceService.getAllRootSpeciesBatch(bean.getId()); +// for (SpeciesBatch aBatch : catches) { // root batch sample categroy is species @@ -609,7 +621,7 @@ { // File column addColumnToModel(columnModel, - AttachmentCellComponent.newEditor(ui.getAttachmentEditor()), + AttachmentCellComponent.newEditor(ui), AttachmentCellComponent.newRender( getDecorator(Attachment.class, null), n_("tutti.tooltip.attachment.none")),
participants (1)
-
tchemit@users.forge.codelutin.com