r1777 - in trunk: wao-persistence/src/main/java/fr/ifremer/wao wao-services/src/main/java/fr/ifremer/wao/services/service wao-web/src/main/java/fr/ifremer/wao/web/action/obsmer
Author: tchemit Date: 2014-03-31 15:14:09 +0200 (Mon, 31 Mar 2014) New Revision: 1777 Url: http://forge.codelutin.com/projects/wao/repository/revisions/1777 Log: refs #4483 add I18n on filters + new dates on SampleRowPart + fix contacts filter dateTo Removed: trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/obsmer/LocalizedSampleRowsFilterValues.java Modified: trunk/wao-persistence/src/main/java/fr/ifremer/wao/WaoUtils.java trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/FilterOption.java trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ObsMerSamplingPlan.java trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ObsMerSamplingPlanBuilder.java trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ObsMerSamplingPlanService.java trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/SampleRowsFilterValues.java trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/obsmer/SampleRowsFilterValuesJsonAction.java trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/obsmer/SamplingPlanAction.java Modified: trunk/wao-persistence/src/main/java/fr/ifremer/wao/WaoUtils.java =================================================================== --- trunk/wao-persistence/src/main/java/fr/ifremer/wao/WaoUtils.java 2014-03-31 12:41:30 UTC (rev 1776) +++ trunk/wao-persistence/src/main/java/fr/ifremer/wao/WaoUtils.java 2014-03-31 13:14:09 UTC (rev 1777) @@ -23,6 +23,7 @@ import fr.ifremer.wao.entity.ObsProgram; import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.time.DateUtils; import java.text.DateFormat; import java.text.ParseException; @@ -89,6 +90,10 @@ return currentStr.equals(monthStr); } + public static Date getEndOfMonth(Date month) { + return DateUtils.addMilliseconds(DateUtils.setMonths(month, 1), -1); + } + /** * Wrapper on {@link org.apache.commons.collections4.CollectionUtils#isEqualCollection(java.util.Collection, java.util.Collection)} * that handles null values. Modified: trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/FilterOption.java =================================================================== --- trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/FilterOption.java 2014-03-31 12:41:30 UTC (rev 1776) +++ trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/FilterOption.java 2014-03-31 13:14:09 UTC (rev 1777) @@ -3,8 +3,12 @@ import com.google.common.collect.Ordering; import fr.ifremer.wao.entity.I18nAble; -public class FilterOption implements Comparable<FilterOption> { +import java.io.Serializable; +public class FilterOption implements Comparable<FilterOption>, Serializable { + + private static final long serialVersionUID = 1L; + protected String value; protected String label; Modified: trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ObsMerSamplingPlan.java =================================================================== --- trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ObsMerSamplingPlan.java 2014-03-31 12:41:30 UTC (rev 1776) +++ trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ObsMerSamplingPlan.java 2014-03-31 13:14:09 UTC (rev 1777) @@ -21,10 +21,13 @@ * #L% */ +import com.google.common.collect.Range; import fr.ifremer.wao.WaoUtils; import fr.ifremer.wao.entity.DCF5Code; import fr.ifremer.wao.entity.FishingZone; +import fr.ifremer.wao.entity.SampleMonth; import fr.ifremer.wao.entity.SampleRow; +import fr.ifremer.wao.entity.SampleRowLog; import fr.ifremer.wao.entity.TerrestrialLocation; import org.apache.commons.collections4.CollectionUtils; @@ -35,7 +38,6 @@ import java.util.Iterator; import java.util.LinkedHashMap; import java.util.List; -import java.util.Locale; import java.util.Map; public class ObsMerSamplingPlan implements Iterable<ObsMerSamplingPlan.ObsMerSamplingPlanFacadePart>, Serializable { @@ -43,11 +45,6 @@ private static final long serialVersionUID = 1L; /** - * Locale used by this sampling plan. Need to be here as part of future cache index. - */ - protected Locale locale; - - /** * All facades of the sampling plan. */ protected Collection<ObsMerSamplingPlanFacadePart> facades; @@ -64,21 +61,21 @@ /** * Total of observation times in days expected. - * + * <p/> * <strong>Note:</strong> can be null. */ protected Double observationTimesInDaysTotalExpected; /** * Total of observation times in days real. - * + * <p/> * <strong>Note:</strong> can be null. */ protected Long observationTimesInDaysTotalReal; /** * Total of observation times in days estimated. - * + * <p/> * <strong>Note:</strong> can be null. */ protected Long observationTimesInDaysTotalEstimated; @@ -88,6 +85,9 @@ */ protected List<Date> months; + /** + * Universe of filter values. + */ protected SampleRowsFilterValues filterValues; public ObsMerSamplingPlan(List<Date> months, @@ -335,6 +335,21 @@ protected String sampleRowId; + /** + * Date of the latest sample log. + */ + protected Date latestSampleLogCreateDate; + + /** + * Sample month range (from the first sample month to the last one). + */ + protected Range<Date> sampleRowMonthPeriod; + + /** + * Last sample month end of month. + */ + protected Date lastSampleMonthEndOfMonth; + public ObsMerSamplingPlanSampleRowPart(Map<Date, ObsMerSamplingPlanStatistics> nbTidesPerMonth, SampleRow sampleRow, Double observationTimesInDaysExpected, @@ -411,6 +426,24 @@ professionDescriptionWithoutDCF5 = sampleRow.getProfessionDescriptionWithoutDCF5(); samplingStrategy = "";//TODO sampleRow.getSamplingStrategy().getI18nKey(); sampleRowId = sampleRow.getTopiaId(); + + // compute lastSampleLogCreateDate + if (sampleRow.isSampleRowLogNotEmpty()) { + for (SampleRowLog sampleRowLog : sampleRow.getSampleRowLog()) { + if (latestSampleLogCreateDate == null || + sampleRowLog.getCreateDate().after(latestSampleLogCreateDate)) { + latestSampleLogCreateDate = sampleRowLog.getCreateDate(); + } + } + } + + // compute sampleRowPeriod + List<SampleMonth> sampleMonth = sampleRow.getSampleMonth(); + Date dateFrom = sampleMonth.get(0).getPeriodDate(); + Date dateTo = sampleMonth.get(sampleMonth.size() - 1).getPeriodDate(); + sampleRowMonthPeriod = Range.closed(dateFrom, dateTo); + + lastSampleMonthEndOfMonth = WaoUtils.getEndOfMonth(dateTo); } public String getSamplingStrategy() { @@ -421,6 +454,18 @@ return sampleRowId; } + public Date getLatestSampleLogCreateDate() { + return latestSampleLogCreateDate; + } + + public Range<Date> getSampleRowMonthPeriod() { + return sampleRowMonthPeriod; + } + + public Date getLastSampleMonthEndOfMonth() { + return lastSampleMonthEndOfMonth; + } + public int getNbObservants() { return nbObservants; } Modified: trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ObsMerSamplingPlanBuilder.java =================================================================== --- trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ObsMerSamplingPlanBuilder.java 2014-03-31 12:41:30 UTC (rev 1776) +++ trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ObsMerSamplingPlanBuilder.java 2014-03-31 13:14:09 UTC (rev 1777) @@ -35,6 +35,7 @@ import java.util.Collection; import java.util.Date; import java.util.List; +import java.util.Locale; import java.util.Map; import java.util.TreeMap; @@ -72,21 +73,21 @@ /** * To compute the high total expected. * - * @see ObsMerSamplingPlan#highTotalExpected + * @see ObsMerSamplingPlan#highTotals */ protected int highTotalExpected; /** * To compute the high total real. * - * @see ObsMerSamplingPlan#highTotalReal + * @see ObsMerSamplingPlan#highTotals */ protected int highTotalReal; /** * To compute the high total estimated. * - * @see ObsMerSamplingPlan#highTotalEstimated + * @see ObsMerSamplingPlan#highTotals */ protected int highTotalEstimated; @@ -132,9 +133,9 @@ */ protected Map<Date, MutableInt> totalRealForMonths; - public ObsMerSamplingPlanBuilder(SampleRowsFilter sampleRowsFilter) { + public ObsMerSamplingPlanBuilder(Locale locale, SampleRowsFilter sampleRowsFilter) { this.sampleRowsFilter = sampleRowsFilter; - this.sampleRowsFilterValues = new SampleRowsFilterValues(); + this.sampleRowsFilterValues = new SampleRowsFilterValues(locale); this.facadeMap = new TreeMap<>(); this.observationTimesInDaysTotalExpected = new MutableDouble(); this.observationTimesInDaysTotalReal = new MutableLong(); Modified: trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ObsMerSamplingPlanService.java =================================================================== --- trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ObsMerSamplingPlanService.java 2014-03-31 12:41:30 UTC (rev 1776) +++ trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ObsMerSamplingPlanService.java 2014-03-31 13:14:09 UTC (rev 1777) @@ -33,6 +33,7 @@ import fr.ifremer.wao.ContactsFilter; import fr.ifremer.wao.SampleRowsFilter; import fr.ifremer.wao.WaoTechnicalException; +import fr.ifremer.wao.WaoUtils; import fr.ifremer.wao.entity.Boat; import fr.ifremer.wao.entity.Boats; import fr.ifremer.wao.entity.Company; @@ -380,10 +381,13 @@ List<SampleRow> sampleRows = dao.findAll(sampleRowsFilter); // creation du plan d'echantillonnage - ObsMerSamplingPlanBuilder builder = new ObsMerSamplingPlanBuilder(sampleRowsFilter); + ObsMerSamplingPlanBuilder builder = new ObsMerSamplingPlanBuilder(serviceContext.getLocale(), + sampleRowsFilter); + // begin of month Date periodFrom = sampleRowsFilter.getPeriodFrom(); - Date periodTo = sampleRowsFilter.getPeriodTo(); + // end of month + Date periodTo = WaoUtils.getEndOfMonth(sampleRowsFilter.getPeriodTo()); for (SampleRow sampleRow : sampleRows) { Modified: trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/SampleRowsFilterValues.java =================================================================== --- trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/SampleRowsFilterValues.java 2014-03-31 12:41:30 UTC (rev 1776) +++ trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/SampleRowsFilterValues.java 2014-03-31 13:14:09 UTC (rev 1777) @@ -1,14 +1,19 @@ package fr.ifremer.wao.services.service; import fr.ifremer.wao.entity.DCF5Code; +import fr.ifremer.wao.entity.FishingGearDCF; import fr.ifremer.wao.entity.FishingZone; import fr.ifremer.wao.entity.SampleRow; +import fr.ifremer.wao.entity.TargetSpeciesDCF; import fr.ifremer.wao.entity.TerrestrialLocation; import java.io.Serializable; +import java.util.Locale; import java.util.SortedSet; import java.util.TreeSet; +import static org.nuiton.i18n.I18n.l; + /** * Bean to hold all values that user can select to fill {@link fr.ifremer.wao.SampleRowsFilter}. */ @@ -16,6 +21,11 @@ private static final long serialVersionUID = 1L; + /** + * Locale used by this sampling plan. Need to be here as part of future cache index. + */ + protected Locale locale; + protected SortedSet<FilterOption> fishingZoneFacadeNames = new TreeSet<>(); protected SortedSet<FilterOption> fishingZoneSectorNames = new TreeSet<>(); @@ -36,6 +46,10 @@ /** Values are the code and the label i18n key. */ protected SortedSet<FilterOption> targetSpeciesDcfs = new TreeSet<>(); + public SampleRowsFilterValues(Locale locale) { + this.locale=locale; + } + public void addSampleRow(SampleRow sampleRow) { for (FishingZone fishingZone : sampleRow.getFishingZone()) { fishingZoneFacadeNames.add(FilterOption.forString(fishingZone.getFacadeName())); @@ -53,15 +67,21 @@ terrestrialDistrict.getDescription())); } for (DCF5Code dcf5Code : sampleRow.getdCF5Code()) { + FishingGearDCF fishingGearDCF = dcf5Code.getFishingGearDCF(); + String fishingGearLabel = fishingGearDCF.getCode() + " - " + l(locale, fishingGearDCF.getI18nKey()); fishingGearDcfs.add( FilterOption.forValueAndLabel( - dcf5Code.getFishingGearDCF().getTopiaId(), - dcf5Code.getFishingGearDCF().getI18nKey())); - if (dcf5Code.getTargetSpeciesDCF() != null) { + fishingGearDCF.getTopiaId(), + fishingGearLabel) + ); + TargetSpeciesDCF targetSpeciesDCF = dcf5Code.getTargetSpeciesDCF(); + if (targetSpeciesDCF != null) { + String targetspeciesLabel = targetSpeciesDCF.getCode() + " - " + l(locale, targetSpeciesDCF.getI18nKey()); targetSpeciesDcfs.add( FilterOption.forValueAndLabel( - dcf5Code.getTargetSpeciesDCF().getTopiaId(), - dcf5Code.getTargetSpeciesDCF().getI18nKey())); + targetSpeciesDCF.getTopiaId(), + targetspeciesLabel) + ); } } } @@ -101,4 +121,8 @@ public SortedSet<FilterOption> getTargetSpeciesDcfs() { return targetSpeciesDcfs; } + + public Locale getLocale() { + return locale; + } } Deleted: trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/obsmer/LocalizedSampleRowsFilterValues.java =================================================================== --- trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/obsmer/LocalizedSampleRowsFilterValues.java 2014-03-31 12:41:30 UTC (rev 1776) +++ trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/obsmer/LocalizedSampleRowsFilterValues.java 2014-03-31 13:14:09 UTC (rev 1777) @@ -1,61 +0,0 @@ -package fr.ifremer.wao.web.action.obsmer; - -import fr.ifremer.wao.entity.SampleRow; -import fr.ifremer.wao.services.WaoCacheElement; -import fr.ifremer.wao.services.service.FilterOption; -import fr.ifremer.wao.services.service.SampleRowsFilterValues; - -import java.util.Locale; -import java.util.SortedSet; - -public class LocalizedSampleRowsFilterValues implements WaoCacheElement { - - protected Locale locale; - - protected SampleRowsFilterValues decorated; - - public LocalizedSampleRowsFilterValues(Locale locale, SampleRowsFilterValues decorated) { - this.locale = locale; - this.decorated = decorated; - } - - public void addSampleRow(SampleRow sampleRow) { - decorated.addSampleRow(sampleRow); - } - - public SortedSet<FilterOption> getTargetSpeciesDcfs() { - return decorated.getTargetSpeciesDcfs(); - } - - public SortedSet<FilterOption> getTerrestrialDistricts() { - return decorated.getTerrestrialDistricts(); - } - - public SortedSet<FilterOption> getSampleRowCodes() { - return decorated.getSampleRowCodes(); - } - - public SortedSet<FilterOption> getFishingZoneSectorNames() { - return decorated.getFishingZoneSectorNames(); - } - - public SortedSet<FilterOption> getCompanies() { - return decorated.getCompanies(); - } - - public SortedSet<FilterOption> getProgramNames() { - return decorated.getProgramNames(); - } - - public SortedSet<FilterOption> getSamplingStrategies() { - return decorated.getSamplingStrategies(); - } - - public SortedSet<FilterOption> getFishingZoneFacadeNames() { - return decorated.getFishingZoneFacadeNames(); - } - - public SortedSet<FilterOption> getFishingGearDcfs() { - return decorated.getFishingGearDcfs(); - } -} Modified: trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/obsmer/SampleRowsFilterValuesJsonAction.java =================================================================== --- trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/obsmer/SampleRowsFilterValuesJsonAction.java 2014-03-31 12:41:30 UTC (rev 1776) +++ trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/obsmer/SampleRowsFilterValuesJsonAction.java 2014-03-31 13:14:09 UTC (rev 1777) @@ -13,9 +13,9 @@ protected transient ObsMerSamplingPlanService service; - protected transient SampleRowsFilter filter; + protected SampleRowsFilter filter; - protected LocalizedSampleRowsFilterValues filterValues; + protected SampleRowsFilterValues filterValues; public void setService(ObsMerSamplingPlanService service) { this.service = service; @@ -40,14 +40,12 @@ ObsMerSamplingPlan samplingPlan = service.getSamplingPlan(filter); - SampleRowsFilterValues filterValues = samplingPlan.getFilterValues(); + filterValues = samplingPlan.getFilterValues(); - this.filterValues = new LocalizedSampleRowsFilterValues(getLocale(), filterValues); - return SUCCESS; } - public LocalizedSampleRowsFilterValues getFilterValues() { + public SampleRowsFilterValues getFilterValues() { return filterValues; } Modified: trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/obsmer/SamplingPlanAction.java =================================================================== --- trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/obsmer/SamplingPlanAction.java 2014-03-31 12:41:30 UTC (rev 1776) +++ trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/obsmer/SamplingPlanAction.java 2014-03-31 13:14:09 UTC (rev 1777) @@ -25,6 +25,7 @@ import fr.ifremer.wao.SampleRowsFilter; import fr.ifremer.wao.services.service.ObsMerSamplingPlan; import fr.ifremer.wao.services.service.ObsMerSamplingPlanService; +import fr.ifremer.wao.services.service.SampleRowsFilterValues; import fr.ifremer.wao.web.WaoJspActionSupport; public class SamplingPlanAction extends WaoJspActionSupport implements Preparable { @@ -71,11 +72,8 @@ return getSession().getSampleRowToHighlightId(); } - public LocalizedSampleRowsFilterValues getFilterValues() { - LocalizedSampleRowsFilterValues filterValues = - new LocalizedSampleRowsFilterValues( - getLocale(), - getSamplingPlan().getFilterValues()); + public SampleRowsFilterValues getFilterValues() { + SampleRowsFilterValues filterValues = getSamplingPlan().getFilterValues(); return filterValues; }
participants (1)
-
tchemit@users.forge.codelutin.com