[Suiviobsmer-commits] r802 - in trunk: wao-business/src/main/java/fr/ifremer/wao/entity wao-business/src/main/java/fr/ifremer/wao/service wao-business/src/main/xmi wao-ui/src/main/java/fr/ifremer/wao/ui/base wao-ui/src/main/webapp
Author: bleny Date: 2010-11-26 10:11:05 +0000 (Fri, 26 Nov 2010) New Revision: 802 Log: update filters in sampling plan Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/entity/DCF5CodeImpl.java trunk/wao-business/src/main/java/fr/ifremer/wao/entity/FishingGearDCFImpl.java trunk/wao-business/src/main/java/fr/ifremer/wao/entity/TargetSpeciesDCFImpl.java trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceSamplingImpl.java trunk/wao-business/src/main/xmi/wao.zargo trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/base/AbstractFilteredPage.java trunk/wao-ui/src/main/webapp/SamplingPlan.tml Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/entity/DCF5CodeImpl.java =================================================================== --- trunk/wao-business/src/main/java/fr/ifremer/wao/entity/DCF5CodeImpl.java 2010-11-25 15:30:03 UTC (rev 801) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/entity/DCF5CodeImpl.java 2010-11-26 10:11:05 UTC (rev 802) @@ -40,12 +40,16 @@ @Override public String getFishingGearDescription() { - return _("DCF.gear." + getFishingGearDCF()); + return getFishingGearDCF().getDescription(); } @Override public String getTargetSpeciesDescription() { - return _("DCF.species." + getTargetSpeciesDCF()); + String description = null; + if (getTargetSpeciesDCF() != null) { + description = getTargetSpeciesDCF().getDescription(); + } + return description; } @Override Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/entity/FishingGearDCFImpl.java =================================================================== --- trunk/wao-business/src/main/java/fr/ifremer/wao/entity/FishingGearDCFImpl.java 2010-11-25 15:30:03 UTC (rev 801) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/entity/FishingGearDCFImpl.java 2010-11-26 10:11:05 UTC (rev 802) @@ -1,5 +1,7 @@ package fr.ifremer.wao.entity; +import static org.nuiton.i18n.I18n._; + /** * @author bleny */ @@ -14,4 +16,8 @@ setCode(code); } + @Override + public String getDescription() { + return _(FishingGearDCF.class.getName() + "." + getCode()); + } } Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/entity/TargetSpeciesDCFImpl.java =================================================================== --- trunk/wao-business/src/main/java/fr/ifremer/wao/entity/TargetSpeciesDCFImpl.java 2010-11-25 15:30:03 UTC (rev 801) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/entity/TargetSpeciesDCFImpl.java 2010-11-26 10:11:05 UTC (rev 802) @@ -1,5 +1,7 @@ package fr.ifremer.wao.entity; +import static org.nuiton.i18n.I18n._; + /** * @author bleny */ @@ -13,4 +15,9 @@ super(); setCode(code); } + + @Override + public String getDescription() { + return _(TargetSpeciesDCF.class.getName() + "." + getCode()); + } } Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceSamplingImpl.java =================================================================== --- trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceSamplingImpl.java 2010-11-25 15:30:03 UTC (rev 801) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceSamplingImpl.java 2010-11-26 10:11:05 UTC (rev 802) @@ -103,7 +103,6 @@ import java.util.LinkedList; import java.util.List; import java.util.Map; -import java.util.Set; /** * ServiceSamplingImpl @@ -441,30 +440,6 @@ SampleRowDAO dao = WaoDAOHelper.getSampleRowDAO(transaction); -// // FishingZone properties -// String fishingZoneAlias = "Z"; -// String fishingZoneFacadeProperty = -// TopiaQuery.getProperty(fishingZoneAlias, FishingZone.FACADE_NAME); -// String fishingZoneSectorProperty = -// TopiaQuery.getProperty(fishingZoneAlias, FishingZone.SECTOR_NAME); -// String fishingZoneDistrictProperty = -// TopiaQuery.getProperty(fishingZoneAlias, FishingZone.DISTRICT_CODE); -// String fishingZoneSampleRowProperty = -// TopiaQuery.getProperty(fishingZoneAlias, FishingZone.SAMPLE_ROW); -// -// // SampleRow properties -// String sampleRowAlias = "S"; -// String sampleRowCodeProperty = -// TopiaQuery.getProperty(sampleRowAlias, SampleRow.CODE); -// -// // Query -// TopiaQuery query = dao.createQuery(sampleRowAlias).addDistinct(). -// addFrom(FishingZone.class, fishingZoneAlias). -// // TODO-fdesbois-2010-06-07 for ToPIA 2.4 : replace this statement by addInElements -// add(sampleRowAlias + " IN elements(" + fishingZoneSampleRowProperty + ")"); -// -// filter.prepareQueryForSampling(query, sampleRowAlias, fishingZoneAlias); - WaoQueryBuilder builder = context.newQueryBuilder(); WaoQueryHelper.SampleRowProperty sampleRowProperty = @@ -1165,12 +1140,61 @@ } @Override - protected Set<String> executeGetDCFGears(TopiaContext transaction, SamplingFilter filter) throws Exception { - throw new UnsupportedOperationException(); + protected List<FishingGearDCF> executeGetDCFGears(TopiaContext transaction, SamplingFilter filter) throws Exception { + + // return all distinct fishing gear DCF codes used in sample-rows filtered by filter + + WaoQueryBuilder builder = context.newQueryBuilder(); + + WaoQueryHelper.SampleRowProperty sampleRowProperty = + builder.initializeForSampleRow(true); + + WaoQueryHelper.FishingZoneProperty fishingZoneProperty = WaoQueryHelper.newFishingZoneProperty(); + WaoQueryHelper.DCF5CodeProperty dcf5CodeProperty = WaoQueryHelper.newDCF5CodeProperty(); + WaoQueryHelper.FishingGearDCFProperty fishingGearDCFProperty = WaoQueryHelper.newFishingGearDCFProperty(); + + TopiaQuery query = builder.applySamplingFilter(filter). + addDistinct(). + setSelect(fishingGearDCFProperty.$alias()). + addJoin(sampleRowProperty.fishingZone(), fishingZoneProperty.$alias(), false). + addJoin(sampleRowProperty.dCF5Code(), dcf5CodeProperty.$alias(), false). + addJoin(dcf5CodeProperty.fishingGearDCF(), fishingGearDCFProperty.$alias(), false). + addOrder(fishingGearDCFProperty.code()); + + if (log.isDebugEnabled()) { + log.debug("query to get distinct DCF fishing gears : " + query); + } + + List<FishingGearDCF> dcfGears = transaction.findByQuery(query); + return dcfGears; } @Override - protected Set<String> executeGetDCFSpecies(TopiaContext transaction, SamplingFilter filter) throws Exception { - throw new UnsupportedOperationException(); + protected List<TargetSpeciesDCF> executeGetDCFSpecies(TopiaContext transaction, SamplingFilter filter) throws Exception { + + // return all distinct target species DCF codes used in sample-rows filtered by filter + + WaoQueryBuilder builder = context.newQueryBuilder(); + + WaoQueryHelper.SampleRowProperty sampleRowProperty = builder.initializeForSampleRow(true); + + WaoQueryHelper.FishingZoneProperty fishingZoneProperty = WaoQueryHelper.newFishingZoneProperty(); + WaoQueryHelper.DCF5CodeProperty dcf5CodeProperty = WaoQueryHelper.newDCF5CodeProperty(); + WaoQueryHelper.TargetSpeciesDCFProperty targetSpeciesDCFProperty = WaoQueryHelper.newTargetSpeciesDCFProperty(); + + TopiaQuery query = builder.applySamplingFilter(filter). + addDistinct(). + setSelect(targetSpeciesDCFProperty.$alias()). + addJoin(sampleRowProperty.fishingZone(), fishingZoneProperty.$alias(), false). + addJoin(sampleRowProperty.dCF5Code(), dcf5CodeProperty.$alias(), false). + addJoin(dcf5CodeProperty.targetSpeciesDCF(), targetSpeciesDCFProperty.$alias(), false). + addOrder(targetSpeciesDCFProperty.code()); + + if (log.isDebugEnabled()) { + log.debug("query to get distinct DCF target species : " + query); + } + + List<TargetSpeciesDCF> dcfSpecies = transaction.findByQuery(query); + return dcfSpecies; } } Modified: trunk/wao-business/src/main/xmi/wao.zargo =================================================================== (Binary files differ) Modified: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/base/AbstractFilteredPage.java =================================================================== --- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/base/AbstractFilteredPage.java 2010-11-25 15:30:03 UTC (rev 801) +++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/base/AbstractFilteredPage.java 2010-11-26 10:11:05 UTC (rev 802) @@ -28,7 +28,9 @@ import fr.ifremer.wao.bean.ConnectedUser; import fr.ifremer.wao.bean.SamplingFilter; import fr.ifremer.wao.entity.Company; +import fr.ifremer.wao.entity.FishingGearDCF; import fr.ifremer.wao.entity.SampleRow; +import fr.ifremer.wao.entity.TargetSpeciesDCF; import fr.ifremer.wao.entity.WaoUser; import fr.ifremer.wao.service.ServiceBoat; import fr.ifremer.wao.service.ServiceReferential; @@ -50,8 +52,6 @@ import java.util.ArrayList; import java.util.List; -import static org.nuiton.i18n.I18n._; - /** * AbstractFilteredPage * @@ -312,7 +312,7 @@ getFilter().setSampleRows(rowsFiltered); sampleRowSelectModel = new GenericSelectModel<SampleRow>(sampleRows, SampleRow.class, - "code", "topiaId", propertyAccess); + SampleRow.CODE, SampleRow.TOPIA_ID, propertyAccess); } return sampleRowSelectModel; } @@ -329,7 +329,7 @@ if (companySelectModel == null) { List<Company> companies = serviceUser.getCompanies(isAvailableDataForFiltersOnly()); companySelectModel = new GenericSelectModel<Company>(companies,Company.class, - "name","topiaId",propertyAccess); + Company.NAME, Company.TOPIA_ID, propertyAccess); } return companySelectModel; } @@ -348,7 +348,7 @@ serviceUser.getObservers(getFilter().getCompany(), isAvailableDataForFiltersOnly()); observerSelectModel = new GenericSelectModel<WaoUser>(observers,WaoUser.class, - "fullName","topiaId",propertyAccess); + "fullName", "topiaId", propertyAccess); } return observerSelectModel; } @@ -371,30 +371,42 @@ return programSelectModel; } - private SelectModel dcfGearSelectModel; + @Property + @Persist + private String fishingGearDCFId; - public SelectModel getDcfGearSelectModel() throws WaoException { + private GenericSelectModel<FishingGearDCF> dcfGearSelectModel; + + public GenericSelectModel<FishingGearDCF> getDcfGearSelectModel() throws WaoException { if (dcfGearSelectModel == null) { - List<OptionModel> options = new ArrayList<OptionModel>(); - for (String dcfGear : serviceSampling.getDCFGears(getFilter())) { - options.add(new OptionModelImpl(dcfGear + " - " + - _("DCF.gear." + dcfGear), dcfGear)); - } - dcfGearSelectModel = new SelectModelImpl(null, options); + // don't filter with already defined DCFs + FishingGearDCF keptFishingGearDCF = getFilter().getFishingGearDCF(); + getFilter().setFishingGearDCF(null); + List<FishingGearDCF> fishingGearDCFs = serviceSampling.getDCFGears(getFilter()); + getFilter().setFishingGearDCF(keptFishingGearDCF); + + dcfGearSelectModel = new GenericSelectModel<FishingGearDCF>(fishingGearDCFs, FishingGearDCF.class, + FishingGearDCF.CODE, FishingGearDCF.TOPIA_ID, propertyAccess); } return dcfGearSelectModel; } - private SelectModel dcfSpeciesSelectModel; + @Property + @Persist + private String targetSpeciesDCFId; - public SelectModel getDcfSpeciesSelectModel() throws WaoException { + private GenericSelectModel<TargetSpeciesDCF> dcfSpeciesSelectModel; + + public GenericSelectModel<TargetSpeciesDCF> getDcfSpeciesSelectModel() throws WaoException { if (dcfSpeciesSelectModel == null) { - List<OptionModel> options = new ArrayList<OptionModel>(); - for (String dcfSpecies : serviceSampling.getDCFSpecies(getFilter())) { - options.add(new OptionModelImpl(dcfSpecies + " - " + - _("DCF.species." + dcfSpecies), dcfSpecies)); - } - dcfSpeciesSelectModel = new SelectModelImpl(null, options); + // don't filter with already defined DCFs + TargetSpeciesDCF keptTargetSpeciesDCF = getFilter().getTargetSpeciesDCF(); + getFilter().setTargetSpeciesDCF(null); + List<TargetSpeciesDCF> targetSpeciesDCFs = serviceSampling.getDCFSpecies(getFilter()); + getFilter().setTargetSpeciesDCF(keptTargetSpeciesDCF); + + dcfSpeciesSelectModel = new GenericSelectModel<TargetSpeciesDCF>(targetSpeciesDCFs, TargetSpeciesDCF.class, + TargetSpeciesDCF.CODE, TargetSpeciesDCF.TOPIA_ID, propertyAccess); } return dcfSpeciesSelectModel; } @@ -441,6 +453,15 @@ } getFilter().setObserver(observer); } + + if (fishingGearDCFId != null) { + FishingGearDCF fishingGearDCF = getDcfGearSelectModel().findObject(fishingGearDCFId); + getFilter().setFishingGearDCF(fishingGearDCF); + } + if (targetSpeciesDCFId != null) { + TargetSpeciesDCF targetSpeciesDCF = getDcfSpeciesSelectModel().findObject(targetSpeciesDCFId); + getFilter().setTargetSpeciesDCF(targetSpeciesDCF); + } } private boolean edited; Modified: trunk/wao-ui/src/main/webapp/SamplingPlan.tml =================================================================== --- trunk/wao-ui/src/main/webapp/SamplingPlan.tml 2010-11-25 15:30:03 UTC (rev 801) +++ trunk/wao-ui/src/main/webapp/SamplingPlan.tml 2010-11-26 10:11:05 UTC (rev 802) @@ -124,9 +124,9 @@ </div> <div> <t:label t:for="fishingGearDCF" /> : - <input t:type="select" t:id="fishingGearDCF" t:model="dcfGearSelectModel" value="filter.fishingGearDCF"/> + <input t:type="select" t:id="fishingGearDCF" t:model="dcfGearSelectModel" value="fishingGearDCFId"/> <t:label t:for="targetSpeciesDCF" /> : - <input t:type="select" t:id="targetSpeciesDCF" t:model="dcfSpeciesSelectModel" value="filter.targetSpeciesDCF"/> + <input t:type="select" t:id="targetSpeciesDCF" t:model="dcfSpeciesSelectModel" value="targetSpeciesDCFId"/> </div> <div class="t-beaneditor-row aright"> <input t:type="submit" class="ico search-32px" t:id="search" value="Search" title="Rechercher les lignes du plan correspondants aux filtres saisies" />
participants (1)
-
bleny@users.labs.libre-entreprise.org