Author: tchemit Date: 2013-02-03 18:12:00 +0100 (Sun, 03 Feb 2013) New Revision: 313 Url: http://forge.codelutin.com/projects/tutti/repository/revisions/313 Log: rename memocode to refTaxCode for Species - add cruiseCode in Species - add method to load as well cruiseCode from protocol Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistence.java trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceDevImpl.java trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceImpl.java trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceServiceImpl.java trunk/tutti-persistence/src/main/xmi/tutti-persistence.zargo trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/entities/protocol/TuttiProtocolsTest.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-service/src/main/resources/i18n/tutti-service_fr_FR.properties trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchUIHandler.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchUIHandler.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/plankton/PlanktonBatchUIHandler.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/CreateSpeciesBatchUIHandler.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-02-03 17:11:07 UTC (rev 312) +++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistence.java 2013-02-03 17:12:00 UTC (rev 313) @@ -101,7 +101,8 @@ * @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<FishingOperationLocation> getAllFishingOperationSubStrata(String zoneId, + String strataId); /** * Get the list of location of type substra that match the given zone id or @@ -114,7 +115,9 @@ * @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<FishingOperationLocation> getAllFishingOperationLocation(String zoneId, + String strataId, + String subStrataId); /** * @return all scientific vessels (used by a {@link Cruise}). @@ -132,9 +135,22 @@ */ List<Vessel> getAllFishingVessel(); + /** + * Get all species with no {@link Species#cruiseCode} filled. + * + * @return all species with no {@code cruiseCode} filled at all. + * @since 0.1 + */ List<Species> getAllSpecies(); - Species getSpecies(String speciesId); + /** + * Get all species with {@link Species#cruiseCode} filled by optional protocol. + * + * @param protocol optional protocol to fill some species cruisecode. + * @return all species with {@code cruiseCode} filled for species definied in protocol. + * @since 1.0 + */ + List<Species> getAllSpecies(TuttiProtocol protocol); /** * @return all caracteristics of the system. Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceDevImpl.java =================================================================== --- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceDevImpl.java 2013-02-03 17:11:07 UTC (rev 312) +++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceDevImpl.java 2013-02-03 17:12:00 UTC (rev 313) @@ -48,6 +48,7 @@ import fr.ifremer.tutti.persistence.entities.data.Program; import fr.ifremer.tutti.persistence.entities.data.SpeciesBatch; import fr.ifremer.tutti.persistence.entities.data.SpeciesBatchFrequency; +import fr.ifremer.tutti.persistence.entities.protocol.SpeciesProtocol; import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol; import fr.ifremer.tutti.persistence.entities.referential.Caracteristic; import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValue; @@ -251,8 +252,14 @@ } @Override - public Species getSpecies(String id) { - Species result = getBean(Species.class.getName(), id); + public List<Species> getAllSpecies(TuttiProtocol protocol) { + List<Species> result = getAllSpecies(); + if (protocol!=null && !protocol.isSpeciesEmpty()) { + Map<String, Species> map =TuttiEntities.splitById(result); + for (SpeciesProtocol speciesProtocol : protocol.getSpecies()) { + map.get(speciesProtocol.getSpeciesId()).setCruiseCode(speciesProtocol.getCruiseCode()); + } + } return result; } @@ -1325,26 +1332,26 @@ sp = new Species(); sp.setId(UUID.randomUUID().toString()); - sp.setCodeMemo("BAR"); - sp.setGenusSpecies("Bar"); + sp.setRefTaxCode("BAR"); + sp.setName("Bar"); putInCache(Species.class, sp); sp = new Species(); sp.setId(UUID.randomUUID().toString()); - sp.setCodeMemo("CHIN"); - sp.setGenusSpecies("Chinchard"); + sp.setRefTaxCode("CHIN"); + sp.setName("Chinchard"); putInCache(Species.class, sp); sp = new Species(); sp.setId(UUID.randomUUID().toString()); - sp.setCodeMemo("FLE"); - sp.setGenusSpecies("Flet"); + sp.setRefTaxCode("FLE"); + sp.setName("Flet"); putInCache(Species.class, sp); sp = new Species(); sp.setId(UUID.randomUUID().toString()); - sp.setCodeMemo("LIM"); - sp.setGenusSpecies("Limande"); + sp.setRefTaxCode("LIM"); + sp.setName("Limande"); putInCache(Species.class, sp); ca = createQualitativeCaracteristic("MacroWaste", CaracteristicEnum.MacroWasteCategory.name()); 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-02-03 17:11:07 UTC (rev 312) +++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceImpl.java 2013-02-03 17:12:00 UTC (rev 313) @@ -24,6 +24,7 @@ * #L% */ +import fr.ifremer.tutti.persistence.entities.TuttiEntities; import fr.ifremer.tutti.persistence.entities.data.AccidentalBatch; import fr.ifremer.tutti.persistence.entities.data.BenthosBatch; import fr.ifremer.tutti.persistence.entities.data.CatchBatch; @@ -34,6 +35,7 @@ import fr.ifremer.tutti.persistence.entities.data.Program; import fr.ifremer.tutti.persistence.entities.data.SpeciesBatch; import fr.ifremer.tutti.persistence.entities.data.SpeciesBatchFrequency; +import fr.ifremer.tutti.persistence.entities.protocol.SpeciesProtocol; import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol; import fr.ifremer.tutti.persistence.entities.referential.Caracteristic; import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValue; @@ -62,6 +64,7 @@ import java.io.IOException; import java.util.List; +import java.util.Map; /** * @author tchemit <chemit@codelutin.com> @@ -202,8 +205,15 @@ } @Override - public Species getSpecies(String speciesId) { - return referentialService.getSpecies(speciesId); + public List<Species> getAllSpecies(TuttiProtocol protocol) { + List<Species> result = referentialService.getAllSpecies(); + if (protocol != null && !protocol.isSpeciesEmpty()) { + Map<String, Species> map = TuttiEntities.splitById(result); + for (SpeciesProtocol speciesProtocol : protocol.getSpecies()) { + map.get(speciesProtocol.getSpeciesId()).setCruiseCode(speciesProtocol.getCruiseCode()); + } + } + return result; } @Override 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-02-03 17:11:07 UTC (rev 312) +++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceServiceImpl.java 2013-02-03 17:12:00 UTC (rev 313) @@ -557,7 +557,7 @@ Species target = new Species(); target.setId(String.valueOf(source.getReferenceTaxonId())); target.setName(source.getName()); - target.setCodeMemo(source.getRefTaxCode()); + target.setRefTaxCode(source.getRefTaxCode()); fr.ifremer.adagio.core.dao.referential.Status status = statusDao.load(source.getStatus().getValue()); setStatus(status, target); return target; Modified: trunk/tutti-persistence/src/main/xmi/tutti-persistence.zargo =================================================================== (Binary files differ) Modified: trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/entities/protocol/TuttiProtocolsTest.java =================================================================== --- trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/entities/protocol/TuttiProtocolsTest.java 2013-02-03 17:11:07 UTC (rev 312) +++ trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/entities/protocol/TuttiProtocolsTest.java 2013-02-03 17:12:00 UTC (rev 313) @@ -69,6 +69,8 @@ "- !SpeciesProtocol\n" + " id: 1\n" + " calcifySampleEnabled: true\n" + + " cruiseCode: BAR\n" + + " genusSpecies: bar\n" + " lengthStepPmfmId: 1394\n" + " maturityEnabled: true\n" + " sexEnabled: true\n" + @@ -79,6 +81,8 @@ " ageEnabled: true\n" + " calcifySampleEnabled: true\n" + " countIfNoFrequencyEnabled: true\n" + + " cruiseCode: CHIN\n" + + " genusSpecies: chinchard\n" + " lengthStepPmfmId: 323\n" + " maturityEnabled: true\n" + " sexEnabled: true\n" + @@ -144,6 +148,8 @@ Assert.assertNotNull(sp1); Assert.assertEquals("1", sp1.getId()); Assert.assertEquals("11242", sp1.getSpeciesId()); + Assert.assertEquals("BAR", sp1.getCruiseCode()); + Assert.assertEquals("bar", sp1.getGenusSpecies()); Assert.assertEquals("1394", sp1.getLengthStepPmfmId()); Assert.assertFalse(sp1.isAgeEnabled()); Assert.assertTrue(sp1.isCalcifySampleEnabled()); @@ -157,6 +163,8 @@ Assert.assertNotNull(sp2); Assert.assertEquals("2", sp2.getId()); Assert.assertEquals("3835", sp2.getSpeciesId()); + Assert.assertEquals("CHIN", sp2.getCruiseCode()); + Assert.assertEquals("chinchard", sp2.getGenusSpecies()); Assert.assertEquals("323", sp2.getLengthStepPmfmId()); Assert.assertTrue(sp2.isAgeEnabled()); Assert.assertTrue(sp2.isCalcifySampleEnabled()); @@ -181,6 +189,8 @@ SpeciesProtocol sp1 = new SpeciesProtocol(); sp1.setId("1"); sp1.setSpeciesId("11242"); + sp1.setCruiseCode("BAR"); + sp1.setGenusSpecies("bar"); sp1.setLengthStepPmfmId("1394"); sp1.setCalcifySampleEnabled(true); sp1.setMaturityEnabled(true); @@ -191,6 +201,8 @@ SpeciesProtocol sp2 = new SpeciesProtocol(); sp2.setId("2"); sp2.setSpeciesId("3835"); + sp2.setCruiseCode("CHIN"); + sp2.setGenusSpecies("chinchard"); sp2.setLengthStepPmfmId("323"); sp2.setAgeEnabled(true); sp2.setCalcifySampleEnabled(true); 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-02-03 17:11:07 UTC (rev 312) +++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/DecoratorService.java 2013-02-03 17:12:00 UTC (rev 313) @@ -64,8 +64,10 @@ String getLabel(); } - public static final String SPECIES_BY_CODE = "byCode"; + public static final String SPECIES_BY_CRUISE_CODE= "byCruiseCode"; + public static final String SPECIES_BY_REF_TAX_CODE = "byRefTaxCode"; + public static final String SPECIES_BY_GENUS = "byGenus"; public static final String CARACTERISTIC_WITH_UNIT = "withUnit"; @@ -114,8 +116,9 @@ registerMultiJXPathDecorator(Caracteristic.class, "${parameterName}$s#${matrixName}$s#${fractionName}$s#${methodName}$s", SEPARATOR, " - "); registerMultiJXPathDecorator(Caracteristic.class, CARACTERISTIC_WITH_UNIT, "${parameterName}$s#${matrixName}$s#${fractionName}$s#${methodName}$s (${unit}$s)", SEPARATOR, " - "); registerMultiJXPathDecorator(CaracteristicQualitativeValue.class, "${name}$s", SEPARATOR, " - "); - registerMultiJXPathDecorator(Species.class, "${codeMemo}$s#${name}$s", SEPARATOR, " - "); - registerMultiJXPathDecorator(Species.class, SPECIES_BY_CODE, "${codeMemo}$s", SEPARATOR, " - "); + registerMultiJXPathDecorator(Species.class, "${refTaxCode}$s#${name}$s", SEPARATOR, " - "); + registerMultiJXPathDecorator(Species.class, SPECIES_BY_CRUISE_CODE, "${cruiseCode}$s#${refTaxCode}$s#${name}$s", SEPARATOR, " - "); + registerMultiJXPathDecorator(Species.class, SPECIES_BY_REF_TAX_CODE, "${refTaxCode}$s", SEPARATOR, " - "); registerMultiJXPathDecorator(Species.class, SPECIES_BY_GENUS, "${name}$s", SEPARATOR, " - "); registerMultiJXPathDecorator(SpeciesProtocol.class, "${speciesId}", SEPARATOR, " - "); registerMultiJXPathDecorator(Attachment.class, "${name}$s", SEPARATOR, " - "); @@ -149,13 +152,15 @@ n_("tutti.property.methodName"); n_("tutti.property.cruise"); n_("tutti.property.fishingOperation"); + n_("tutti.property.fishingOperationLocation"); n_("tutti.property.zone"); n_("tutti.property.vessel"); n_("tutti.property.country"); n_("tutti.property.gear"); n_("tutti.property.user"); n_("tutti.property.strata"); - n_("tutti.property.codeMemo"); + n_("tutti.property.refTaxCode"); + n_("tutti.property.cruiseCode"); n_("tutti.property.species"); n_("tutti.property.genusSpecies"); n_("tutti.property.sortedUnsortedCategory"); 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-02-03 17:11:07 UTC (rev 312) +++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java 2013-02-03 17:12:00 UTC (rev 313) @@ -213,8 +213,8 @@ } @Override - public Species getSpecies(String speciesId) { - return driver.getSpecies(speciesId); + public List<Species> getAllSpecies(TuttiProtocol protocol) { + return driver.getAllSpecies(protocol); } @Override Modified: trunk/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties =================================================================== --- trunk/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties 2013-02-03 17:11:07 UTC (rev 312) +++ trunk/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties 2013-02-03 17:12:00 UTC (rev 313) @@ -8,13 +8,14 @@ tutti.option.version.description=Version courante de l'application tutti.property.attachment=Pièce jointe tutti.property.caracteristic=Caractéristique -tutti.property.codeMemo=Code Memo tutti.property.country=Pays tutti.property.cruise=Campagne +tutti.property.cruiseCode=Code campagne tutti.property.date=Date tutti.property.department=Département tutti.property.firstName=Prénom tutti.property.fishingOperation=Trait +tutti.property.fishingOperationLocation=Lieu tutti.property.fractionName=Fraction tutti.property.gear=Engin tutti.property.genusSpecies=Nom scientifique @@ -29,6 +30,7 @@ tutti.property.parameterName=Paramètre tutti.property.program=Série de campagne tutti.property.protocol=Protocol de saisie +tutti.property.refTaxCode=Code permanent tutti.property.sortedUnsortedCategory=Vrac / Hors Vrac tutti.property.species=Espèce tutti.property.stationNumber=Numéro de station Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchUIHandler.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchUIHandler.java 2013-02-03 17:11:07 UTC (rev 312) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchUIHandler.java 2013-02-03 17:12:00 UTC (rev 313) @@ -221,7 +221,7 @@ // Species (by code) column Decorator<Species> decorator = getDecorator( - Species.class, DecoratorService.SPECIES_BY_CODE); + Species.class, DecoratorService.SPECIES_BY_REF_TAX_CODE); addComboDataColumnToModel(columnModel, AccidentalBatchTableModel.SPECIES_BY_CODE, 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-02-03 17:11:07 UTC (rev 312) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchUIHandler.java 2013-02-03 17:12:00 UTC (rev 313) @@ -225,7 +225,7 @@ // Species (by code) column Decorator<Species> decorator = getDecorator( - Species.class, DecoratorService.SPECIES_BY_CODE); + Species.class, DecoratorService.SPECIES_BY_REF_TAX_CODE); addComboDataColumnToModel(columnModel, BenthosBatchTableModel.SPECIES_BY_CODE, Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/plankton/PlanktonBatchUIHandler.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/plankton/PlanktonBatchUIHandler.java 2013-02-03 17:11:07 UTC (rev 312) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/plankton/PlanktonBatchUIHandler.java 2013-02-03 17:12:00 UTC (rev 313) @@ -221,7 +221,7 @@ { // Species (by code) column Decorator<Species> decorator = getDecorator( - Species.class, DecoratorService.SPECIES_BY_CODE); + Species.class, DecoratorService.SPECIES_BY_REF_TAX_CODE); addComboDataColumnToModel(columnModel, PlanktonBatchTableModel.SPECIES_BY_CODE, 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-02-03 17:11:07 UTC (rev 312) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIHandler.java 2013-02-03 17:12:00 UTC (rev 313) @@ -40,7 +40,6 @@ 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.PersistenceService; import fr.ifremer.tutti.ui.swing.TuttiUI; import fr.ifremer.tutti.ui.swing.content.operation.AbstractTuttiBatchTableUIHandler; import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUI; @@ -78,6 +77,7 @@ import java.io.Serializable; import java.util.EnumMap; import java.util.List; +import java.util.Map; import java.util.Set; import static org.nuiton.i18n.I18n._; @@ -96,6 +96,9 @@ public static JAXXContextEntryDef<List<Caracteristic>> FREQUENCY_LENGTH_CONTEXT_ENTRY = JAXXUtil.newListContextEntryDef("frequencyLength"); + public static JAXXContextEntryDef<List<Species>> SPECIES_UNIVERSE_CONTEXT_ENTRY = + JAXXUtil.newListContextEntryDef("speciesUniverse"); + public static final Set<String> SAMPLING_PROPERTIES = Sets.newHashSet( SpeciesBatchRowModel.PROPERTY_SAMPLE_CATEGORY, SpeciesBatchRowModel.PROPERTY_SPECIES, @@ -394,10 +397,40 @@ model.setTableViewMode(TableViewMode.ALL); ui.setContextValue(model); - //TODO Use protocol values if exists ? - PersistenceService service = - context.getService(PersistenceService.class); - List<Caracteristic> lengthCaracterics = service.getAllCaracteristic(); + List<Caracteristic> lengthCaracterics; + + TuttiProtocol protocol = null; + + if (context.isProtocolFilled()) { + + // get loaded protocol + + protocol = TuttiUIUtil.getProtocol(ui); + Preconditions.checkNotNull( + protocol, + "Could not find protocol in ui context"); + + lengthCaracterics = Lists.newArrayListWithCapacity( + protocol.sizeLengthClassesPmfmId()); + + Map<String, Caracteristic> allCaractericsById = + TuttiEntities.splitById(persistenceService.getAllCaracteristic()); + + if (!protocol.isLengthClassesPmfmIdEmpty()) { + for (String id : protocol.getLengthClassesPmfmId()) { + lengthCaracterics.add(allCaractericsById.get(id)); + } + } + + } else { + + // use all caracteristics + lengthCaracterics = Lists.newArrayList(persistenceService.getAllCaracteristic()); + } + + List<Species> speciesList = persistenceService.getAllSpecies(protocol); + + SPECIES_UNIVERSE_CONTEXT_ENTRY.setContextValue(ui, speciesList); FREQUENCY_LENGTH_CONTEXT_ENTRY.setContextValue(ui, lengthCaracterics); } @@ -412,6 +445,9 @@ List<SampleCategoryType> samplingOrder; + List<Species> speciesUniverse = + SPECIES_UNIVERSE_CONTEXT_ENTRY.getContextValue(ui); + List<Species> allSpecies; TuttiProtocol protocol = null; @@ -439,8 +475,7 @@ SampleCategoryType.maturity, SampleCategoryType.age); - allSpecies = Lists.newArrayList( - persistenceService.getAllSpecies()); + allSpecies = Lists.newArrayList(speciesUniverse); // each species can use any category for (Species species : allSpecies) { @@ -464,17 +499,18 @@ // fill available species from protocol - allSpecies = Lists.newArrayList(); - List<SpeciesProtocol> protocolSpecies = protocol.getSpecies(); - for (SpeciesProtocol protocolSpecy : protocolSpecies) { - Species species = persistenceService.getSpecies( - protocolSpecy.getSpeciesId()); - allSpecies.add(species); - speciesSampleCategories.put(species, SampleCategoryType.sortedUnsorted); - speciesSampleCategories.put(species, SampleCategoryType.size); - speciesSampleCategories.put(species, SampleCategoryType.sex); - speciesSampleCategories.put(species, SampleCategoryType.maturity); - speciesSampleCategories.put(species, SampleCategoryType.age); + allSpecies = Lists.newArrayListWithCapacity(protocol.sizeSpecies()); + if (!protocol.isSpeciesEmpty()) { + Map<String, Species> map = TuttiEntities.splitById(speciesUniverse); + for (SpeciesProtocol protocolSpecy : protocol.getSpecies()) { + Species species = map.get(protocolSpecy.getSpeciesId()); + allSpecies.add(species); + speciesSampleCategories.put(species, SampleCategoryType.sortedUnsorted); + speciesSampleCategories.put(species, SampleCategoryType.size); + speciesSampleCategories.put(species, SampleCategoryType.sex); + speciesSampleCategories.put(species, SampleCategoryType.maturity); + speciesSampleCategories.put(species, SampleCategoryType.age); + } } } Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/CreateSpeciesBatchUIHandler.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/CreateSpeciesBatchUIHandler.java 2013-02-03 17:11:07 UTC (rev 312) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/CreateSpeciesBatchUIHandler.java 2013-02-03 17:12:00 UTC (rev 313) @@ -126,7 +126,7 @@ Species newValue = (Species) evt.getNewValue(); if (log.isInfoEnabled()) { - log.info("New Selected species " + (newValue == null ? null : newValue.getCodeMemo())); + log.info("New Selected species " + (newValue == null ? null : newValue.getRefTaxCode())); } if (newValue == null || source.getSpeciesUsed() == null) {