Author: fdesbois Date: 2010-02-12 14:51:40 +0000 (Fri, 12 Feb 2010) New Revision: 348 Modified: trunk/changelog.txt trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/data/AbstractMappedGridDataSource.java trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/BoatActivityCalendar.java trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Boats.java trunk/suiviobsmer-ui/src/main/webapp/BoatActivityCalendar.tml trunk/suiviobsmer-ui/src/main/webapp/Boats.tml trunk/suiviobsmer-ui/src/main/webapp/Synthesis.tml Log: Ano #2103 : Problem with inPlace and GridPage when changing page and return to it : the page is not saved. The inPlace is not used anymore neither the passivate/activate for boatSelectedImmatriculation put in @Persist("flash") to preserve it in BoatInfos. The page loading is necessary to keep page change for navigation and reset boatInfos data to avoid gridDataSource problem (search a boat which is not in the dataSource). Modified: trunk/changelog.txt =================================================================== --- trunk/changelog.txt 2010-02-12 00:58:46 UTC (rev 347) +++ trunk/changelog.txt 2010-02-12 14:51:40 UTC (rev 348) @@ -32,6 +32,8 @@ Anomalies +++++++++ + +- [fdesbois] Ano #2103 : Erreur chargement infos d'un navire - [fdesbois] Ano #2096 : Administration : Mail incomplet lors d'un changement de mot de passe - [fdesbois] Ano #2095 : Administration : Les zones de pêche ayant le même Modified: trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/data/AbstractMappedGridDataSource.java =================================================================== --- trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/data/AbstractMappedGridDataSource.java 2010-02-12 00:58:46 UTC (rev 347) +++ trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/data/AbstractMappedGridDataSource.java 2010-02-12 14:51:40 UTC (rev 348) @@ -3,12 +3,9 @@ import fr.ifremer.suiviobsmer.SuiviObsmerException; import java.util.ArrayList; -import java.util.Collections; -import java.util.Comparator; import java.util.List; import java.util.Map; import org.apache.commons.collections.CollectionUtils; -import org.apache.tapestry5.PropertyConduit; import org.apache.tapestry5.grid.ColumnSort; import org.apache.tapestry5.grid.GridDataSource; import org.apache.tapestry5.grid.SortConstraint; @@ -167,4 +164,8 @@ return listResults; } + public boolean contains(K key) { + return mapResults.containsKey(key); + } + } Modified: trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/BoatActivityCalendar.java =================================================================== --- trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/BoatActivityCalendar.java 2010-02-12 00:58:46 UTC (rev 347) +++ trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/BoatActivityCalendar.java 2010-02-12 14:51:40 UTC (rev 348) @@ -34,6 +34,7 @@ import java.util.List; import org.apache.commons.lang.StringUtils; import org.apache.tapestry5.annotations.IncludeStylesheet; +import org.apache.tapestry5.annotations.InjectPage; import org.apache.tapestry5.annotations.Persist; import org.apache.tapestry5.annotations.Property; import org.apache.tapestry5.annotations.SessionState; @@ -183,4 +184,14 @@ } return profession.getActivityZone().get(zoneIndex); } + + /*************************** RETURN LINK **********************************/ + + @InjectPage + private Boats boatsPage; + + Object onActionFromReturnToBoats() { + boatsPage.setBoatSelectedImmatriculation(getBoat().getImmatriculation()); + return boatsPage; + } } Modified: trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Boats.java =================================================================== --- trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Boats.java 2010-02-12 00:58:46 UTC (rev 347) +++ trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Boats.java 2010-02-12 14:51:40 UTC (rev 348) @@ -121,9 +121,17 @@ private String sampleRowContextId; /** Selected boat immatriculation for showing boatInfos */ - @Property + @Persist("flash") private Integer boatSelectedImmatriculation; + public Integer getBoatSelectedImmatriculation() { + return boatSelectedImmatriculation; + } + + public void setBoatSelectedImmatriculation(Integer boatSelectedImmatriculation) { + this.boatSelectedImmatriculation = boatSelectedImmatriculation; + } + @InjectComponent private FeedBack filterFeedback; @@ -152,16 +160,16 @@ } void onActivate(EventContext ec) { - if (ec.getCount() > 0) { - sampleRowContextId = ec.get(String.class, 0); - if (ec.getCount() > 1) { - boatSelectedImmatriculation = ec.get(Integer.class, 1); - } - } + sampleRowContextId = ec.get(String.class, 0); +// boatSelectedImmatriculation = ec.get(Integer.class, 1); } - Object[] onPassivate() { - return new Object[] { sampleRowContextId, boatSelectedImmatriculation }; +// Object[] onPassivate() { +// return new Object[] { sampleRowContextId, boatSelectedImmatriculation }; +// } + + String onPassivate() { + return sampleRowContextId; } /**************************** Import Forms ********************************/ @@ -531,6 +539,10 @@ // Suppress persistant boat informations companyBoatInfos = null; + if (log.isDebugEnabled()) { + log.debug("Show infos for boat : " + boatImma); + } + if (user.getAdmin() && getCompany() != null) { companySelectedId = getCompany().getTopiaId(); } @@ -641,6 +653,10 @@ * @throws SuiviObsmerException */ public Boat getBoatSelected() throws SuiviObsmerException { + if (log.isDebugEnabled()) { + log.debug("selected imma : " + boatSelectedImmatriculation); + log.debug("exist boat ? : " + getBoats().contains(boatSelectedImmatriculation)); + } return getBoats().get(boatSelectedImmatriculation); } Modified: trunk/suiviobsmer-ui/src/main/webapp/BoatActivityCalendar.tml =================================================================== --- trunk/suiviobsmer-ui/src/main/webapp/BoatActivityCalendar.tml 2010-02-12 00:58:46 UTC (rev 347) +++ trunk/suiviobsmer-ui/src/main/webapp/BoatActivityCalendar.tml 2010-02-12 14:51:40 UTC (rev 348) @@ -5,7 +5,7 @@ <t:if t:test="activityCalendar"> <h1>Calendrier d'activité ${activityCalendar.year}</h1> <p class="acenter"> - <a t:type="pagelink" class="return" t:context="[norow,activityCalendar.boat.immatriculation]" t:page="boats" title="Retour sur ${activityCalendar.boat.name}"> + <a t:type="actionlink" t:id="returnToBoats" class="return" title="Retour sur ${activityCalendar.boat.name}"> <img src="${asset:context:}/img/boat.png" alt="Navire"/> Revenir sur les informations du navire <img src="${asset:context:}/img/boat.png" alt="Navire"/> Modified: trunk/suiviobsmer-ui/src/main/webapp/Boats.tml =================================================================== --- trunk/suiviobsmer-ui/src/main/webapp/Boats.tml 2010-02-12 00:58:46 UTC (rev 347) +++ trunk/suiviobsmer-ui/src/main/webapp/Boats.tml 2010-02-12 14:51:40 UTC (rev 348) @@ -119,7 +119,7 @@ title="Exporter les ${boats.availableRows} navires avec leurs informations privées" /> </a> </h1> - <div t:type="grid" t:source="boats" t:row="boat" t:inPlace="true" + <div t:type="grid" t:source="boats" t:row="boat" t:include="name, immatriculation, districtCode, boatLength, buildYear" t:rowClass="prop:rowStyle" t:rowsPerPage="20"> <p:nameCell> <t:if t:test="canCreateNewContactFromList()"> Modified: trunk/suiviobsmer-ui/src/main/webapp/Synthesis.tml =================================================================== --- trunk/suiviobsmer-ui/src/main/webapp/Synthesis.tml 2010-02-12 00:58:46 UTC (rev 347) +++ trunk/suiviobsmer-ui/src/main/webapp/Synthesis.tml 2010-02-12 14:51:40 UTC (rev 348) @@ -117,7 +117,7 @@ <div class="acenter"> <h2>Sollicitations des navires</h2> <br /> - <p>Ces résultats ne concernent que les lignes du plan d'échantillonnage<br /> ayant une durée moyenne de marées inférieure ou égale à 2</p> + <p>Ces résultats ne concernent que les lignes du plan d'échantillonnage<br /> ayant une durée moyenne de marées inférieure ou égale à 48h</p> <br /> <t:if t:test="user.admin"> <form t:type="form" t:id="filterCompanyForBoarding">