Author: sletellier Date: 2011-03-30 14:54:13 +0000 (Wed, 30 Mar 2011) New Revision: 1118 Log: - Make reset filter using service - Move possible value initialisation to bean - Rename SamplingPlanFilterManager to SamplingFilterManager - Up to nuiton-utils 2.2-SNAPSHOT to have setLastDayOfYear and setFirstDayOfYear methods Added: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/base/SamplingFilterManager.java Removed: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/base/SamplingPlanFilterManager.java Modified: trunk/pom.xml trunk/wao-business/src/main/java/fr/ifremer/wao/bean/SamplingFilterValuesImpl.java trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceSamplingImpl.java trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/base/FilterManager.java trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/SamplingPlan.java trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Synthesis.java Modified: trunk/pom.xml =================================================================== --- trunk/pom.xml 2011-03-30 12:52:41 UTC (rev 1117) +++ trunk/pom.xml 2011-03-30 14:54:13 UTC (rev 1118) @@ -312,7 +312,7 @@ <!-- libraries version --> <nuitonI18nVersion>2.3.1</nuitonI18nVersion> - <nuitonUtilsVersion>2.1</nuitonUtilsVersion> + <nuitonUtilsVersion>2.2-SNAPSHOT</nuitonUtilsVersion> <nuitonWebVersion>1.0</nuitonWebVersion> <topiaVersion>2.5.2</topiaVersion> <eugeneVersion>2.3.3</eugeneVersion> Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/bean/SamplingFilterValuesImpl.java =================================================================== --- trunk/wao-business/src/main/java/fr/ifremer/wao/bean/SamplingFilterValuesImpl.java 2011-03-30 12:52:41 UTC (rev 1117) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/bean/SamplingFilterValuesImpl.java 2011-03-30 14:54:13 UTC (rev 1118) @@ -24,6 +24,7 @@ package fr.ifremer.wao.bean; import fr.ifremer.wao.entity.Company; +import fr.ifremer.wao.entity.DCF5Code; import fr.ifremer.wao.entity.FishingGearDCF; import fr.ifremer.wao.entity.SampleRow; import fr.ifremer.wao.entity.TargetSpeciesDCF; @@ -360,6 +361,21 @@ @Override public void fill(List<SampleRow> sampleRows) { - throw new UnsupportedOperationException("not yet implemented"); + for (SampleRow sampleRow : sampleRows) { + addCompanies(sampleRow.getCompany()); + addFacadeNames(sampleRow.getFacade()); + addPrograms(sampleRow.getProgramName()); + addSectorsNames(sampleRow.getSectors()); + Collection<DCF5Code> dcf5Codes = sampleRow.getDCF5Code(); + if (dcf5Codes != null) { + for (DCF5Code dcf5Code : dcf5Codes) { + addFishingGearDCFCodes(dcf5Code.getFishingGearDCF()); + addTargetSpeciesDCFCodes(dcf5Code.getTargetSpeciesDCF()); + } + } + addTerrestrialDistricts(sampleRow.getTerrestrialLocation()); + addAllObservers(sampleRow.getObservers()); + } + addAllSampleRows(sampleRows); } } //SamplingFilterValuesImpl 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 2011-03-30 12:52:41 UTC (rev 1117) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceSamplingImpl.java 2011-03-30 14:54:13 UTC (rev 1118) @@ -89,6 +89,7 @@ import org.apache.commons.collections.CollectionUtils; import org.apache.commons.io.IOUtils; import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang.time.DateUtils; import org.apache.commons.mail.EmailException; import org.nuiton.topia.TopiaContext; import org.nuiton.topia.TopiaException; @@ -98,7 +99,6 @@ import org.nuiton.util.PeriodDates; import org.nuiton.util.StringUtil; import org.nuiton.util.beans.Binder; -import org.nuiton.util.beans.BinderFactory; import org.nuiton.util.beans.BinderModelBuilder; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -120,7 +120,6 @@ import java.util.Iterator; import java.util.LinkedList; import java.util.List; -import java.util.Map; /** * ServiceSamplingImpl @@ -1369,25 +1368,9 @@ public SamplingFilterValues executeGetPossibleValuesForFilter(TopiaContext transaction, SamplingFilter filter) throws Exception { List<SampleRow> sampleRows = executeGetSampleRowsByFilter(transaction, filter); - // Extract datas - // TODO sletellier 20110318 : move this on SamplingFilterValues ? + // Fill datas SamplingFilterValues result = new SamplingFilterValuesImpl(); - for (SampleRow sampleRow : sampleRows) { - result.addCompanies(sampleRow.getCompany()); - result.addFacadeNames(sampleRow.getFacade()); - result.addPrograms(sampleRow.getProgramName()); - result.addSectorsNames(sampleRow.getSectors()); - Collection<DCF5Code> dcf5Codes = sampleRow.getDCF5Code(); - if (dcf5Codes != null) { - for (DCF5Code dcf5Code : dcf5Codes) { - result.addFishingGearDCFCodes(dcf5Code.getFishingGearDCF()); - result.addTargetSpeciesDCFCodes(dcf5Code.getTargetSpeciesDCF()); - } - } - result.addTerrestrialDistricts(sampleRow.getTerrestrialLocation()); - result.addAllObservers(sampleRow.getObservers()); - } - result.addAllSampleRows(sampleRows); + result.fill(sampleRows); return result; } @@ -1395,7 +1378,30 @@ @Override protected SamplingFilter executeNewSamplingFilter(TopiaContext transaction, ConnectedUser connectedUser) { SamplingFilter samplingFilter = new SamplingFilterImpl(); + + // in the firsts months of a new year go from now to 6 months before + // in the rest of the year, just start at the beginning of the current year + Date toDate = context.getCurrentDate(); + Date fromDate = context.getCurrentDate(); + if (DateUtil.getMonth(fromDate) < 3) { + fromDate = DateUtils.addMonths(fromDate, -6); + } else { + fromDate = DateUtil.setFirstDayOfYear(fromDate); + } + + fromDate = DateUtil.setMinTimeOfDay(fromDate); + toDate = DateUtil.setMinTimeOfDay(toDate); + samplingFilter.setObsProgram(connectedUser.getProfile().getObsProgram()); + samplingFilter.setPeriod(new PeriodDates(fromDate, toDate)); + samplingFilter.setEstimatedTides(true); + + // Very very important to do that at beginning + // Evo #2227 : Guest user has no default company filter + if (connectedUser.isCoordinatorOrObserver()) { + samplingFilter.setCompany(connectedUser.getCompany()); + } + return samplingFilter; } } Modified: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/base/FilterManager.java =================================================================== --- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/base/FilterManager.java 2011-03-30 12:52:41 UTC (rev 1117) +++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/base/FilterManager.java 2011-03-30 14:54:13 UTC (rev 1118) @@ -80,16 +80,6 @@ public ConnectedUser getUser() { return user; } - public void initCompagnyFilter() { - // Very very important to do that at beginning - // Evo #2227 : Guest user has no default company filter - if (user.isCoordinatorOrObserver()) { - if (log.isDebugEnabled()) { - log.debug("Company filtered : " + user.getCompany().getName()); - } - getFilter().setCompany(user.getCompany()); - } - } public abstract E getFilter(); Copied: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/base/SamplingFilterManager.java (from rev 1112, trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/base/SamplingPlanFilterManager.java) =================================================================== --- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/base/SamplingFilterManager.java (rev 0) +++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/base/SamplingFilterManager.java 2011-03-30 14:54:13 UTC (rev 1118) @@ -0,0 +1,59 @@ +/* + * #%L + * Wao :: Web Interface + * + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2009 - 2011 Ifremer + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero 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 Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * #L% + */ +package fr.ifremer.wao.ui.base; + +import fr.ifremer.wao.bean.ConnectedUser; +import fr.ifremer.wao.bean.SamplingFilter; +import fr.ifremer.wao.service.ServiceSampling; +import org.apache.tapestry5.annotations.Persist; + +/** + * @author sletellier <letellier at codelutin.com> + */ +public class SamplingFilterManager extends FilterManager<SamplingFilter> { + + @Persist + protected SamplingFilter filter; + + public SamplingFilterManager(ConnectedUser user, + ServiceSampling serviceSampling) { + + super(user, serviceSampling); + } + + @Override + public SamplingFilter getFilter() { + return filter; + } + + @Override + protected boolean isAvailableDataForFiltersOnly() { + return false; + } + + @Override + public void resetFilter() { + filter = serviceSampling.newSamplingFilter(user); + } +} Deleted: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/base/SamplingPlanFilterManager.java =================================================================== --- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/base/SamplingPlanFilterManager.java 2011-03-30 12:52:41 UTC (rev 1117) +++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/base/SamplingPlanFilterManager.java 2011-03-30 14:54:13 UTC (rev 1118) @@ -1,87 +0,0 @@ -/* - * #%L - * Wao :: Web Interface - * - * $Id$ - * $HeadURL$ - * %% - * Copyright (C) 2009 - 2011 Ifremer - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero 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 Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * #L% - */ -package fr.ifremer.wao.ui.base; - -import fr.ifremer.wao.bean.ConnectedUser; -import fr.ifremer.wao.bean.SamplingFilter; -import fr.ifremer.wao.bean.SamplingFilterImpl; -import fr.ifremer.wao.service.ServiceSampling; -import org.apache.tapestry5.annotations.InjectComponent; -import org.apache.tapestry5.annotations.Persist; -import org.apache.tapestry5.corelib.components.Form; -import org.nuiton.util.PeriodDates; - -import java.util.Calendar; -import java.util.GregorianCalendar; - -/** - * @author sletellier <letellier at codelutin.com> - */ -public class SamplingPlanFilterManager extends FilterManager<SamplingFilter> { - - @Persist - protected SamplingFilter filter; - - @InjectComponent - private Form filtersForm; - - public SamplingPlanFilterManager(ConnectedUser user, - ServiceSampling serviceSampling) { - - super(user, serviceSampling); - } - - @Override - public SamplingFilter getFilter() { - return filter; - } - - @Override - protected boolean isAvailableDataForFiltersOnly() { - return false; - } - - @Override - public void resetFilter() { - - filter = new SamplingFilterImpl(); - // Initialize period - PeriodDates period = PeriodDates.createMonthsPeriodFromToday(11); - - GregorianCalendar initialFromDate = new GregorianCalendar(); - // in the firsts months of a new year go from now to 6 months before - // in the rest of the year, just start at the beginning of the current year - if (initialFromDate.get(Calendar.MONTH) < 3) { - initialFromDate.add(Calendar.MONTH, -6); - } else { - initialFromDate.set(Calendar.DAY_OF_YEAR, 1); - } - period.setFromDate(initialFromDate.getTime()); - filter.setPeriod(period); - filter.setObsProgram(user.getProfile().getObsProgram()); - filter.setEstimatedTides(true); - - initCompagnyFilter(); - } -} Modified: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/SamplingPlan.java =================================================================== --- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/SamplingPlan.java 2011-03-30 12:52:41 UTC (rev 1117) +++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/SamplingPlan.java 2011-03-30 14:54:13 UTC (rev 1118) @@ -34,11 +34,8 @@ import fr.ifremer.wao.entity.FishingZone; import fr.ifremer.wao.entity.SampleMonth; import fr.ifremer.wao.entity.SampleRow; -import fr.ifremer.wao.service.ServiceBoat; -import fr.ifremer.wao.service.ServiceReferential; import fr.ifremer.wao.service.ServiceSampling; -import fr.ifremer.wao.service.ServiceUser; -import fr.ifremer.wao.ui.base.SamplingPlanFilterManager; +import fr.ifremer.wao.ui.base.SamplingFilterManager; import fr.ifremer.wao.ui.components.Layout; import fr.ifremer.wao.ui.components.SamplingFilterComponent; import fr.ifremer.wao.ui.data.ExportStreamResponse; @@ -54,7 +51,6 @@ import org.apache.tapestry5.annotations.SessionState; import org.apache.tapestry5.ioc.Messages; import org.apache.tapestry5.ioc.annotations.Inject; -import org.apache.tapestry5.ioc.services.PropertyAccess; import org.nuiton.util.PeriodDates; import org.nuiton.util.StringUtil; import org.nuiton.util.StringUtil.ToString; @@ -104,7 +100,7 @@ private ConnectedUser user; @Persist - private SamplingPlanFilterManager filterManager; + private SamplingFilterManager filterManager; private long nbTidesExpectedTime; @@ -114,14 +110,14 @@ private long totalTidesRealTime; - public SamplingPlanFilterManager getFilterManager() { + public SamplingFilterManager getFilterManager() { if (filterManager == null) { - filterManager = new SamplingPlanFilterManager(user, serviceSampling); + filterManager = new SamplingFilterManager(user, serviceSampling); } return filterManager; } - public void setFilterManager(SamplingPlanFilterManager filterManager) { + public void setFilterManager(SamplingFilterManager filterManager) { this.filterManager = filterManager; } Modified: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Synthesis.java =================================================================== --- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Synthesis.java 2011-03-30 12:52:41 UTC (rev 1117) +++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Synthesis.java 2011-03-30 14:54:13 UTC (rev 1118) @@ -42,7 +42,7 @@ import fr.ifremer.wao.entity.IndicatorLevel; import fr.ifremer.wao.service.ServiceSampling; import fr.ifremer.wao.service.ServiceSynthesis; -import fr.ifremer.wao.ui.base.SamplingPlanFilterManager; +import fr.ifremer.wao.ui.base.SamplingFilterManager; import fr.ifremer.wao.ui.components.SamplingFilterComponent; import fr.ifremer.wao.ui.data.ChartUtils; import fr.ifremer.wao.ui.data.ChartUtils.ChartType; @@ -132,16 +132,16 @@ private Messages messages; @Persist - private SamplingPlanFilterManager filterManager; + private SamplingFilterManager filterManager; - public SamplingPlanFilterManager getFilterManager() { + public SamplingFilterManager getFilterManager() { if (filterManager == null) { - filterManager = new SamplingPlanFilterManager(user, serviceSampling); + filterManager = new SamplingFilterManager(user, serviceSampling); } return filterManager; } - public void setFilterManager(SamplingPlanFilterManager filterManager) { + public void setFilterManager(SamplingFilterManager filterManager) { this.filterManager = filterManager; }