[Suiviobsmer-commits] r1069 - in trunk/wao-ui/src/main: java/fr/ifremer/wao/ui/base java/fr/ifremer/wao/ui/components java/fr/ifremer/wao/ui/data java/fr/ifremer/wao/ui/pages resources/fr/ifremer/wao/ui/components webapp
Author: sletellier Date: 2011-03-17 15:16:54 +0000 (Thu, 17 Mar 2011) New Revision: 1069 Log: Debug reset on samplingFilter 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/ModelFactory.java trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/base/SamplingPlanModelFactory.java trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/components/SamplingFilterComponent.java trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/data/TapestryUtil.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 trunk/wao-ui/src/main/resources/fr/ifremer/wao/ui/components/SamplingFilterComponent.tml trunk/wao-ui/src/main/webapp/Synthesis.tml 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 2011-03-17 13:15:58 UTC (rev 1068) +++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/base/AbstractFilteredPage.java 2011-03-17 15:16:54 UTC (rev 1069) @@ -109,12 +109,21 @@ @Persist private ModelFactory modelFactory; + @Persist + private boolean observerSelect; + + @Persist + private boolean programSelect; + + @Persist + private boolean edited = false; + public boolean isObserverSelect() { - return getModelFactory().isObserverSelect(); + return observerSelect; } public boolean isProgramSelect() { - return getModelFactory().isProgramSelect(); + return programSelect; } public String getSampleRowId() { @@ -217,12 +226,61 @@ } /** - * @see ModelFactory#initSelectFilters(boolean, boolean, boolean) + * Initialize all select for filters. By default, only facade, sector and + * sampleRow selects will be initialized. + * + * @param companySelect if true, company select will be initialized + * @param observerSelect if true, observer select will be initialized + * @param programSelect + * @throws WaoException */ - protected void initSelectFilters(boolean companySelect, - boolean observerSelect, boolean programSelect) throws WaoException { + public void initSelectFilters( + boolean companySelect, + boolean observerSelect, + boolean programSelect) throws WaoException { - getModelFactory().initSelectFilters(companySelect, observerSelect, programSelect); + this.observerSelect = observerSelect; + this.programSelect = programSelect; + + if (getFilter().getSampleRow() != null) { + if (log.isDebugEnabled()) { + log.debug("SampleRow filtered : " + getFilter().getSampleRow()); + } + setSampleRowId(getFilter().getSampleRow().getTopiaId()); + } + + if (user.isAdmin() && companySelect) { + getModelFactory().resetCompanySelectModel(); + if (getFilter().getCompany() != null) { + setCompanyId(getFilter().getCompany().getTopiaId()); + } + } +// else if (!user.isAdmin()) { +// if (log.isDebugEnabled()) { +// log.debug("Company filtered : " + user.getCompany()); +// } +// getFilter().setCompany(user.getCompany()); +// } + + if (observerSelect) { + getModelFactory().resetObserverSelectModel(); + getObserverSelectModel(); + + if (getFilter().getObserver() != null) { + setObserverId(getFilter().getObserver().getTopiaId()); + } + } + + if (programSelect) { + getModelFactory().resetProgramSelectModel(); + getProgramSelectModel(); + } + + getModelFactory().resetFacadeSelectModel(); + getModelFactory().resetSectorSelectModel(); + getModelFactory().resetSampleRowSelectModel(); + + getModelFactory().initCompagnyFilter(); } /** @@ -371,7 +429,7 @@ getModelFactory().resetProgramSelectModel(); getProgramSelectModel(); } - getModelFactory().setEdited(true); + edited = true; } /** @@ -421,7 +479,7 @@ // Reset sampleRows; getFilter().setSampleRow(null); getModelFactory().resetSampleRowSelectModel(); - getModelFactory().setEdited(true); + edited = true; } /** @@ -430,7 +488,7 @@ * @return true if the page filter is in edited state. */ protected boolean isEdited() { - return getModelFactory().isEdited(); + return edited; } /** Modified: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/base/ModelFactory.java =================================================================== --- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/base/ModelFactory.java 2011-03-17 13:15:58 UTC (rev 1068) +++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/base/ModelFactory.java 2011-03-17 15:16:54 UTC (rev 1069) @@ -26,6 +26,8 @@ import java.util.ArrayList; import java.util.List; +import static fr.ifremer.wao.ui.data.TapestryUtil.getEntityFromModel; + /** * @author sletellier <letellier at codelutin.com> */ @@ -38,10 +40,7 @@ protected PropertyAccess propertyAccess; - protected boolean observerSelect; - protected boolean programSelect; protected ConnectedUser user; - protected boolean edited = false; /** * Services @@ -101,28 +100,14 @@ return user; } - public boolean isEdited() { - return edited; - } - - public void setEdited(boolean edited) { - this.edited = edited; - } - - public boolean isObserverSelect() { - return observerSelect; - } - - public boolean isProgramSelect() { - return programSelect; - } - public String getSampleRowId() { return sampleRowId; } public void setSampleRowId(String sampleRowId) { this.sampleRowId = sampleRowId; + SampleRow sampleRow = getEntityFromModel(getSampleRowSelectModel(), sampleRowId); + getFilter().setSampleRow(sampleRow); } public String getCompanyId() { @@ -131,6 +116,8 @@ public void setCompanyId(String companyId) { this.companyId = companyId; + Company company = getEntityFromModel(getCompanySelectModel(), companyId); + getFilter().setCompany(company); } public String getObserverId() { @@ -139,6 +126,8 @@ public void setObserverId(String observerId) { this.observerId = observerId; + WaoUser observer = getEntityFromModel(getObserverSelectModel(), observerId); + getFilter().setObserver(observer); } public String getFishingGearDCFId() { @@ -147,6 +136,8 @@ public void setFishingGearDCFId(String fishingGearDCFId) { this.fishingGearDCFId = fishingGearDCFId; + FishingGearDCF fishingGearDCF = getEntityFromModel(getDcfGearSelectModel(), fishingGearDCFId); + getFilter().setFishingGearDCF(fishingGearDCF); } public String getTargetSpeciesDCFId() { @@ -155,6 +146,8 @@ public void setTargetSpeciesDCFId(String targetSpeciesDCFId) { this.targetSpeciesDCFId = targetSpeciesDCFId; + TargetSpeciesDCF targetSpeciesDCF = getEntityFromModel(getDcfSpeciesSelectModel(), targetSpeciesDCFId); + getFilter().setTargetSpeciesDCF(targetSpeciesDCF); } public String getTerrestrialDistrictId() { @@ -163,32 +156,48 @@ public void setTerrestrialDistrictId(String terrestrialDistrictId) { this.terrestrialDistrictId = terrestrialDistrictId; + TerrestrialLocation terrestrialDistrict = getEntityFromModel(getTerrestrialDistrictSelectModel(), terrestrialDistrictId); + getFilter().setTerrestrialDistrict(terrestrialDistrict); } public void resetCompanySelectModel() throws WaoException { companySelectModel = null; - getCompanySelectModel(); + companyId = null; } - public void resetFacadeSelectModel() throws WaoException { - facadeSelectModel = null; - getFacadeSelectModel(); - } - - public void resetSectorSelectModel() throws WaoException { - sectorSelectModel = null; - getSectorSelectModel(); - } - public void resetSampleRowSelectModel() throws WaoException { sampleRowSelectModel = null; - getSampleRowSelectModel(); + sampleRowId = null; } public void resetObserverSelectModel() { observerSelectModel = null; + observerId = null; } + public void resetTerrestrialDistrictModel() { + terrestrialLocationSelectModel = null; + terrestrialDistrictId = null; + } + + public void resetTargetSpeciesDCFModel() { + dcfSpeciesSelectModel = null; + targetSpeciesDCFId = null; + } + + public void resetFishingGearDCFModel() { + dcfGearSelectModel = null; + fishingGearDCFId = null; + } + + public void resetFacadeSelectModel() throws WaoException { + facadeSelectModel = null; + } + + public void resetSectorSelectModel() throws WaoException { + sectorSelectModel = null; + } + public void resetProgramSelectModel() { programSelectModel = null; } @@ -204,73 +213,26 @@ } } + public abstract E getFilter(); /** - * Initialize all select for filters. By default, only facade, sector and - * sampleRow selects will be initialized. - * - * @param companySelect if true, company select will be initialized - * @param observerSelect if true, observer select will be initialized - * @param programSelect - * @throws WaoException + * Method to initialize filter, is call on constructor */ - public void initSelectFilters( - boolean companySelect, - boolean observerSelect, - boolean programSelect) throws WaoException { + public abstract void resetFilter(); - this.observerSelect = observerSelect; - this.programSelect = programSelect; - - if (getFilter().getSampleRow() != null) { - if (log.isDebugEnabled()) { - log.debug("SampleRow filtered : " + getFilter().getSampleRow()); - } - setSampleRowId(getFilter().getSampleRow().getTopiaId()); - } - - if (user.isAdmin() && companySelect) { - resetCompanySelectModel(); - if (getFilter().getCompany() != null) { - setCompanyId(getFilter().getCompany().getTopiaId()); - } - } -// else if (!user.isAdmin()) { -// if (log.isDebugEnabled()) { -// log.debug("Company filtered : " + user.getCompany()); -// } -// getFilter().setCompany(user.getCompany()); -// } - - if (observerSelect) { - resetObserverSelectModel(); - getObserverSelectModel(); - - if (getFilter().getObserver() != null) { - setObserverId(getFilter().getObserver().getTopiaId()); - } - } - - if (programSelect) { - resetProgramSelectModel(); - getProgramSelectModel(); - } - + public void resetModels() { + resetCompanySelectModel(); resetFacadeSelectModel(); - resetSectorSelectModel(); + resetObserverSelectModel(); + resetProgramSelectModel(); resetSampleRowSelectModel(); - - initCompagnyFilter(); + resetSectorSelectModel(); + resetTerrestrialDistrictModel(); + resetTargetSpeciesDCFModel(); + resetFishingGearDCFModel(); } - public abstract E getFilter(); - /** - * Method to initialize filter, is call on constructor - */ - public abstract void resetFilter(); - - /** * Used to show only active company and observers. * * @return true if only active users will be showed, false otherwise @@ -308,15 +270,12 @@ if ( ! rows.contains(sampleRow)) { rows.add(sampleRow); } - - edited = true; } } public void removeSampleRowCode() { if (getSampleRowId() != null) { getFilter().getSampleRows().remove(getSampleRowSelectModel().findObject(getSampleRowId())); - edited = true; } } Modified: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/base/SamplingPlanModelFactory.java =================================================================== --- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/base/SamplingPlanModelFactory.java 2011-03-17 13:15:58 UTC (rev 1068) +++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/base/SamplingPlanModelFactory.java 2011-03-17 15:16:54 UTC (rev 1069) @@ -66,5 +66,7 @@ filter.setPeriod(period); filter.setObsProgram(user.getProfile().getObsProgram()); filter.setEstimatedTides(true); + + initCompagnyFilter(); } } Modified: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/components/SamplingFilterComponent.java =================================================================== --- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/components/SamplingFilterComponent.java 2011-03-17 13:15:58 UTC (rev 1068) +++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/components/SamplingFilterComponent.java 2011-03-17 15:16:54 UTC (rev 1069) @@ -3,6 +3,7 @@ import fr.ifremer.wao.bean.SamplingFilter; import fr.ifremer.wao.entity.SampleRow; import fr.ifremer.wao.ui.base.ModelFactory; +import org.apache.tapestry5.ComponentResources; import org.apache.tapestry5.annotations.InjectComponent; import org.apache.tapestry5.annotations.Parameter; import org.apache.tapestry5.annotations.Persist; @@ -23,6 +24,9 @@ @Inject private Logger log; + @Inject + private ComponentResources ressources; + @Parameter(required = true) private ModelFactory<? extends SamplingFilter> modelFactory; @@ -32,13 +36,13 @@ @Parameter(required = false) private Boolean visibleOnStartup; + @Parameter(required = false) + private Boolean showEstimatedTides; + @InjectComponent private Zone filtersZone; @Persist - private boolean reset; - - @Persist private Object owner; @Persist @@ -54,6 +58,14 @@ return legendMsg; } + // False by default + public Boolean getShowEstimatedTides() { + if (showEstimatedTides == null) { + showEstimatedTides = false; + } + return showEstimatedTides; + } + // True by default public Boolean getVisibleOnStartup() { if (visibleOnStartup == null) { @@ -100,6 +112,8 @@ /** * Activate reset filter */ + private boolean reset; + void onSelectedFromReset() { reset = true; } @@ -110,25 +124,16 @@ * @return owner (for refresh) if filter is edited */ Object onSuccessFromFiltersForm() { - if (getModelFactory().isEdited()) { - return filtersZone.getBody(); - } if (reset) { // Don't reset period in filters PeriodDates period = getFilter().getPeriod(); getModelFactory().resetFilter(); + getModelFactory().resetModels(); getFilter().setPeriod(period); } - return owner; - } - /** - * Register owner to refresh - * - * @param owner page to refresh on submit - */ - public void setOwner(Object owner) { - this.owner = owner; + // Return owner + return ressources.getContainer(); } } Modified: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/data/TapestryUtil.java =================================================================== --- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/data/TapestryUtil.java 2011-03-17 13:15:58 UTC (rev 1068) +++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/data/TapestryUtil.java 2011-03-17 15:16:54 UTC (rev 1069) @@ -20,6 +20,9 @@ */ package fr.ifremer.wao.ui.data; +import org.apache.commons.lang.StringUtils; +import org.nuiton.topia.persistence.TopiaEntity; + import java.util.Arrays; /** @@ -30,6 +33,13 @@ */ public class TapestryUtil { + public static <T> T getEntityFromModel(GenericSelectModel<T> model, String id) { + if (StringUtils.isEmpty(id)) { + return null; + } + return model.findObject(id); + } + public static String getFirstString(Object[] activationContext) { String firstString = null; if (activationContext.length > 0) { 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-17 13:15:58 UTC (rev 1068) +++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/SamplingPlan.java 2011-03-17 15:16:54 UTC (rev 1069) @@ -45,6 +45,7 @@ import fr.ifremer.wao.ui.data.RequiresAuthentication; import fr.ifremer.wao.ui.services.WaoManager; import org.apache.commons.collections.CollectionUtils; +import org.apache.tapestry5.PersistenceConstants; import org.apache.tapestry5.StreamResponse; import org.apache.tapestry5.annotations.Import; import org.apache.tapestry5.annotations.InjectComponent; @@ -142,21 +143,10 @@ * Page initialization */ void setupRender() { - // Initialize filters - getModelFactory().initSelectFilters(true, false, true); - // Initialize fullView depends on user admin role if (fullView == null) { fullView = user.isAdmin(); } - - // Register this as owner to ollow component to refresh this - // TODO sletellier 20110316 : find a better way ? - filterComponent.setOwner(this); - - // The company of connected user will be contributed to abstractFilteredPage - // TODO sletellier remove it ? : up in initSelectFilters -// initCompanyFilter(); } public void onSelectedFromAddSampleRowCode() { @@ -196,9 +186,6 @@ filterComponent.switchFiltersVisible(); - // Initialize filters - modelFactory.initSelectFilters(true, false, true); - if (isFiltersVisible()) { return filterComponent.getFiltersZone().getBody(); } else { 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-17 13:15:58 UTC (rev 1068) +++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Synthesis.java 2011-03-17 15:16:54 UTC (rev 1069) @@ -166,19 +166,9 @@ } void setupRender() { - // make filters keep company between submissions - getModelFactory().initSelectFilters(true, false, true); - // add a special CSS to make global synthesis page printable without // menu, filters, etc. renderSupport.addStylesheetLink("css/synthesis-print.css", "print"); - - // Register this as owner to ollow component to refresh this - // TODO sletellier 20110316 : find a better way ? - filterComponent.setOwner(this); - - // TODO sletellier : other have this call to initCompanyFilter() here - // you forgot him ? The call is up in initSelectFilters... } public SynthesisId getActiveSynthesis() { Modified: trunk/wao-ui/src/main/resources/fr/ifremer/wao/ui/components/SamplingFilterComponent.tml =================================================================== --- trunk/wao-ui/src/main/resources/fr/ifremer/wao/ui/components/SamplingFilterComponent.tml 2011-03-17 13:15:58 UTC (rev 1068) +++ trunk/wao-ui/src/main/resources/fr/ifremer/wao/ui/components/SamplingFilterComponent.tml 2011-03-17 15:16:54 UTC (rev 1069) @@ -19,7 +19,7 @@ <div> <t:if t:test="modelFactory.user.admin"> <label for="company">${message:wao.ui.entity.Company} :</label> - <input t:type="select" t:id="company" t:model="modelFactory.companySelectModel" value="modelFactory.companyId"/> + <input t:type="select" t:id="company" t:model="modelFactory.companySelectModel" t:value="modelFactory.companyId"/> <!--input t:type="submit" class="ico22px refresh" t:id="modelFactory.refreshByCompany" value="${message:wao.ui.filters.refresh}" title="${message:wao.ui.filters.refresh}"/--> @@ -28,7 +28,7 @@ <select t:type="select" t:id="programName" t:model="modelFactory.programSelectModel" t:value="filter.programName"/> </div> - <div> + <div class="filterRow" t:type="zone" t:id="sampleRowZone" t:update="show"> <label for="facadeName">${message:wao.ui.field.FishingZone.facadeName} :</label> <select t:type="select" t:id="facadeName" t:model="modelFactory.facadeSelectModel" t:value="filter.facadeName"/> <!--input t:type="submit" class="ico22px refresh" t:id="modelFactory.refreshByFacade" value="Refresh" @@ -55,15 +55,20 @@ </div> <div> <label for="fishingGearDCF">${message:wao.ui.entity.fishingGearDCF} :</label> - <input t:type="select" t:id="fishingGearDCF" t:model="modelFactory.dcfGearSelectModel" value="modelFactory.fishingGearDCFId"/> + <input t:type="select" t:id="fishingGearDCF" t:model="modelFactory.dcfGearSelectModel" t:value="modelFactory.fishingGearDCFId"/> <label for="targetSpeciesDCF">${message:wao.ui.entity.targetSpeciesDCF} :</label> - <input t:type="select" t:id="targetSpeciesDCF" t:model="modelFactory.dcfSpeciesSelectModel" - value="modelFactory.targetSpeciesDCFId"/> + <input t:type="select" t:id="targetSpeciesDCF" t:model="modelFactory.dcfSpeciesSelectModel" t:value="modelFactory.targetSpeciesDCFId"/> <t:if test="modelFactory.user.obsVente"> <label t:for="samplingStrategy">${message:wao.ui.field.SampleRow.samplingStrategy} :</label> - <input t:type="select" t:id="samplingStrategy" value="filter.samplingStrategy"/> + <input t:type="select" t:id="samplingStrategy" t:value="filter.samplingStrategy"/> </t:if> </div> + <t:if test="showEstimatedTides"> + <div class="filterRow"> + <input t:type="checkbox" t:id="estimatedTides" t:value="filter.estimatedTides" /> + <label for="estimatedTides" title="${message:wao.ui.form.estimatedTides.description}">${message:wao.ui.form.estimatedTides}</label> + </div> + </t:if> <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"/> Modified: trunk/wao-ui/src/main/webapp/Synthesis.tml =================================================================== --- trunk/wao-ui/src/main/webapp/Synthesis.tml 2011-03-17 13:15:58 UTC (rev 1068) +++ trunk/wao-ui/src/main/webapp/Synthesis.tml 2011-03-17 15:16:54 UTC (rev 1069) @@ -105,6 +105,7 @@ <t:samplingFilterComponent t:id="filterComponent" t:modelFactory="modelFactory" + t:showEstimatedTides="true" t:legendMsg="${message:wao.ui.filters.filters}"/> <div class="mtop30"/>
participants (1)
-
sletellier@users.labs.libre-entreprise.org