Wao-commits
Threads by month
- ----- 2026 -----
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- 2352 discussions
[Suiviobsmer-commits] r1073 - trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages
by sletellier@users.labs.libre-entreprise.org 18 Mar '11
by sletellier@users.labs.libre-entreprise.org 18 Mar '11
18 Mar '11
Author: sletellier
Date: 2011-03-18 09:46:30 +0000 (Fri, 18 Mar 2011)
New Revision: 1073
Log:
Fix build
Modified:
trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/SamplingPlan.java
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 18:11:32 UTC (rev 1072)
+++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/SamplingPlan.java 2011-03-18 09:46:30 UTC (rev 1073)
@@ -149,14 +149,6 @@
}
}
- public void onSelectedFromAddSampleRowCode() {
- getModelFactory().addSampleRowCode();
- }
-
- public void onSelectedFromRemoveSampleRowCode() {
- getModelFactory().removeSampleRowCode();
- }
-
/**************************** EXPORT **************************************/
StreamResponse onActionFromExportSamplingPlan() {
1
0
[Suiviobsmer-commits] r1072 - in trunk/wao-business/src/main: java/fr/ifremer/wao/service resources/i18n xmi
by bleny@users.labs.libre-entreprise.org 17 Mar '11
by bleny@users.labs.libre-entreprise.org 17 Mar '11
17 Mar '11
Author: bleny
Date: 2011-03-17 18:11:32 +0000 (Thu, 17 Mar 2011)
New Revision: 1072
Log:
add method in service for filtering purpose
Modified:
trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceSamplingImpl.java
trunk/wao-business/src/main/resources/i18n/wao-business_en_GB.properties
trunk/wao-business/src/main/resources/i18n/wao-business_fr_FR.properties
trunk/wao-business/src/main/xmi/wao.zargo
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-17 17:14:22 UTC (rev 1071)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceSamplingImpl.java 2011-03-17 18:11:32 UTC (rev 1072)
@@ -40,6 +40,7 @@
import fr.ifremer.wao.bean.FacadeRowImpl;
import fr.ifremer.wao.bean.ObsProgram;
import fr.ifremer.wao.bean.SamplingFilter;
+import fr.ifremer.wao.bean.SamplingFilterValues;
import fr.ifremer.wao.bean.SamplingStrategy;
import fr.ifremer.wao.bean.UserRole;
import fr.ifremer.wao.entity.Boat;
@@ -1447,4 +1448,9 @@
List<TargetSpeciesDCF> dcfSpecies = transaction.findByQuery(query);
return dcfSpecies;
}
+
+ @Override
+ protected SamplingFilterValues executeGetPossibleValuesForFilter(TopiaContext transaction, SamplingFilter filter) throws Exception {
+ throw new UnsupportedOperationException("not yet implemented");
+ }
}
Modified: trunk/wao-business/src/main/resources/i18n/wao-business_en_GB.properties
===================================================================
--- trunk/wao-business/src/main/resources/i18n/wao-business_en_GB.properties 2011-03-17 17:14:22 UTC (rev 1071)
+++ trunk/wao-business/src/main/resources/i18n/wao-business_en_GB.properties 2011-03-17 18:11:32 UTC (rev 1072)
@@ -193,6 +193,7 @@
wao.error.serviceSampling.getNewSampleRow=
wao.error.serviceSampling.getNewSampleRowCode=
wao.error.serviceSampling.getNewSampleRowLog=
+wao.error.serviceSampling.getPossibleValuesForFilter=
wao.error.serviceSampling.getPrograms=
wao.error.serviceSampling.getSampleRow=
wao.error.serviceSampling.getSampleRowByCode=
Modified: trunk/wao-business/src/main/resources/i18n/wao-business_fr_FR.properties
===================================================================
--- trunk/wao-business/src/main/resources/i18n/wao-business_fr_FR.properties 2011-03-17 17:14:22 UTC (rev 1071)
+++ trunk/wao-business/src/main/resources/i18n/wao-business_fr_FR.properties 2011-03-17 18:11:32 UTC (rev 1072)
@@ -193,6 +193,7 @@
wao.error.serviceSampling.getNewSampleRow=
wao.error.serviceSampling.getNewSampleRowCode=Impossible de r\u00E9cup\u00E9rer un nouveau code pour une ligne d'\u00E9chantillonnage
wao.error.serviceSampling.getNewSampleRowLog=
+wao.error.serviceSampling.getPossibleValuesForFilter=
wao.error.serviceSampling.getPrograms=Impossible de charger la liste des programmes
wao.error.serviceSampling.getSampleRow=Impossible de charger la ligne d'\u00E9chantillon ayant pour identifiant \: %1$s
wao.error.serviceSampling.getSampleRowByCode=Impossible de charger la ligne d'\u00E9chantillon ayant pour code %1$s
Modified: trunk/wao-business/src/main/xmi/wao.zargo
===================================================================
(Binary files differ)
1
0
[Suiviobsmer-commits] r1071 - in trunk/wao-ui/src/main: java/fr/ifremer/wao/ui/base java/fr/ifremer/wao/ui/components resources/fr/ifremer/wao/ui/components
by sletellier@users.labs.libre-entreprise.org 17 Mar '11
by sletellier@users.labs.libre-entreprise.org 17 Mar '11
17 Mar '11
Author: sletellier
Date: 2011-03-17 17:14:22 +0000 (Thu, 17 Mar 2011)
New Revision: 1071
Log:
Debug and improve code line selection
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/components/SamplingFilterComponent.java
trunk/wao-ui/src/main/resources/fr/ifremer/wao/ui/components/SamplingFilterComponent.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 16:54:18 UTC (rev 1070)
+++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/base/AbstractFilteredPage.java 2011-03-17 17:14:22 UTC (rev 1071)
@@ -46,8 +46,11 @@
import org.apache.tapestry5.ioc.services.PropertyAccess;
import org.slf4j.Logger;
+import java.util.ArrayList;
import java.util.List;
+import static fr.ifremer.wao.ui.data.TapestryUtil.getEntityFromModel;
+
/**
* AbstractFilteredPage
*
@@ -118,6 +121,12 @@
@Persist
private boolean edited = false;
+ @Persist
+ private GenericSelectModel<SampleRow> sampleRowSelectModel;
+
+ @Persist
+ private String sampleRowId;
+
public boolean isObserverSelect() {
return observerSelect;
}
@@ -127,11 +136,13 @@
}
public String getSampleRowId() {
- return getModelFactory().getSampleRowId();
+ return sampleRowId;
}
public void setSampleRowId(String sampleRowId) {
- getModelFactory().setSampleRowId(sampleRowId);
+ this.sampleRowId = sampleRowId;
+ SampleRow sampleRow = getEntityFromModel(getSampleRowSelectModel(), sampleRowId);
+ getFilter().setSampleRow(sampleRow);
}
public String getCompanyId() {
@@ -203,11 +214,24 @@
}
public void onSelectedFromAddSampleRowCode() {
- getModelFactory().addSampleRowCode();
+ if (getSampleRowId() != null) {
+
+ List<SampleRow> rows = getFilter().getSampleRows();
+ if (rows == null) {
+ rows = new ArrayList<SampleRow>();
+ getFilter().setSampleRows(rows);
+ }
+ SampleRow sampleRow = getSampleRowSelectModel().findObject(getSampleRowId());
+ if ( ! rows.contains(sampleRow)) {
+ rows.add(sampleRow);
+ }
+ }
}
public void onSelectedFromRemoveSampleRowCode() {
- getModelFactory().removeSampleRowCode();
+ if (getSampleRowId() != null) {
+ getFilter().getSampleRows().remove(getSampleRowSelectModel().findObject(getSampleRowId()));
+ }
}
/**
@@ -298,10 +322,26 @@
}
/**
- * @see ModelFactory#getSampleRowSelectModel()
+ * Get select model for sampleRows. Depends on filter (Sampling part only).
+ * The sampleRow set from filter is temporarly extracted to avoid returning
+ * only one element in the select.
+ *
+ * @return the GenericSelectModel<SampleRow> for sampleRows
+ * @throws WaoException
*/
public GenericSelectModel<SampleRow> getSampleRowSelectModel() throws WaoException {
- return getModelFactory().getSampleRowSelectModel();
+ if (sampleRowSelectModel == null) {
+ // WARN : no use of sampleRow filter
+
+ List<SampleRow> rowsFiltered = getFilter().getSampleRows();
+ getFilter().setSampleRows(null);
+ List<SampleRow> sampleRows = serviceSampling.getSampleRowsByFilter(getFilter());
+ getFilter().setSampleRows(rowsFiltered);
+
+ sampleRowSelectModel = new GenericSelectModel<SampleRow>(sampleRows, SampleRow.class,
+ SampleRow.PROPERTY_CODE, SampleRow.TOPIA_ID, propertyAccess);
+ }
+ return sampleRowSelectModel;
}
/**
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 16:54:18 UTC (rev 1070)
+++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/base/ModelFactory.java 2011-03-17 17:14:22 UTC (rev 1071)
@@ -22,8 +22,10 @@
import org.apache.tapestry5.internal.OptionModelImpl;
import org.apache.tapestry5.internal.SelectModelImpl;
import org.apache.tapestry5.ioc.services.PropertyAccess;
+import org.chenillekit.tapestry.core.models.GenericMultipleSelectModel;
import java.util.ArrayList;
+import java.util.Collections;
import java.util.List;
import static fr.ifremer.wao.ui.data.TapestryUtil.getEntityFromModel;
@@ -53,7 +55,7 @@
/**
* Generic select models
*/
- protected GenericSelectModel<SampleRow> sampleRowSelectModel;
+ protected GenericMultipleSelectModel<SampleRow> sampleRowSelectModel;
protected GenericSelectModel<TerrestrialLocation> terrestrialLocationSelectModel;
protected GenericSelectModel<Company> companySelectModel;
protected GenericSelectModel<WaoUser> observerSelectModel;
@@ -70,7 +72,6 @@
/**
* Id
*/
- protected String sampleRowId;
protected String companyId;
protected String observerId;
protected String fishingGearDCFId;
@@ -100,16 +101,6 @@
return user;
}
- public String getSampleRowId() {
- return sampleRowId;
- }
-
- public void setSampleRowId(String sampleRowId) {
- this.sampleRowId = sampleRowId;
- SampleRow sampleRow = getEntityFromModel(getSampleRowSelectModel(), sampleRowId);
- getFilter().setSampleRow(sampleRow);
- }
-
public String getCompanyId() {
return companyId;
}
@@ -167,7 +158,7 @@
public void resetSampleRowSelectModel() throws WaoException {
sampleRowSelectModel = null;
- sampleRowId = null;
+ getFilter().setSampleRow(null);
}
public void resetObserverSelectModel() {
@@ -257,28 +248,6 @@
return facadeSelectModel;
}
-
- public void addSampleRowCode() {
- if (getSampleRowId() != null) {
-
- List<SampleRow> rows = getFilter().getSampleRows();
- if (rows == null) {
- rows = new ArrayList<SampleRow>();
- getFilter().setSampleRows(rows);
- }
- SampleRow sampleRow = getSampleRowSelectModel().findObject(getSampleRowId());
- if ( ! rows.contains(sampleRow)) {
- rows.add(sampleRow);
- }
- }
- }
-
- public void removeSampleRowCode() {
- if (getSampleRowId() != null) {
- getFilter().getSampleRows().remove(getSampleRowSelectModel().findObject(getSampleRowId()));
- }
- }
-
/**
* Models
*/
@@ -306,10 +275,10 @@
* The sampleRow set from filter is temporarly extracted to avoid returning
* only one element in the select.
*
- * @return the GenericSelectModel<SampleRow> for sampleRows
+ * @return the GenericMultipleSelectModel<SampleRow> for sampleRows
* @throws WaoException
*/
- public GenericSelectModel<SampleRow> getSampleRowSelectModel() throws WaoException {
+ public GenericMultipleSelectModel<SampleRow> getSampleRowSelectModel() throws WaoException {
if (sampleRowSelectModel == null) {
// WARN : no use of sampleRow filter
@@ -318,7 +287,7 @@
List<SampleRow> sampleRows = serviceSampling.getSampleRowsByFilter(getFilter());
getFilter().setSampleRows(rowsFiltered);
- sampleRowSelectModel = new GenericSelectModel<SampleRow>(sampleRows, SampleRow.class,
+ sampleRowSelectModel = new GenericMultipleSelectModel<SampleRow>(sampleRows, SampleRow.class,
SampleRow.PROPERTY_CODE, SampleRow.TOPIA_ID, propertyAccess);
}
return sampleRowSelectModel;
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 16:54:18 UTC (rev 1070)
+++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/components/SamplingFilterComponent.java 2011-03-17 17:14:22 UTC (rev 1071)
@@ -3,6 +3,7 @@
import fr.ifremer.wao.bean.SamplingFilter;
import fr.ifremer.wao.entity.SampleRow;
import fr.ifremer.wao.ui.base.ModelFactory;
+import fr.ifremer.wao.ui.data.GenericSelectModel;
import org.apache.tapestry5.ComponentResources;
import org.apache.tapestry5.annotations.InjectComponent;
import org.apache.tapestry5.annotations.Parameter;
@@ -10,11 +11,15 @@
import org.apache.tapestry5.annotations.Property;
import org.apache.tapestry5.corelib.components.Zone;
import org.apache.tapestry5.ioc.annotations.Inject;
+import org.chenillekit.tapestry.core.encoders.MultipleValueEncoder;
import org.nuiton.util.PeriodDates;
import org.slf4j.Logger;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
/**
* @author sletellier <letellier at codelutin.com>
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 16:54:18 UTC (rev 1070)
+++ trunk/wao-ui/src/main/resources/fr/ifremer/wao/ui/components/SamplingFilterComponent.tml 2011-03-17 17:14:22 UTC (rev 1071)
@@ -42,7 +42,10 @@
<input t:type="select" t:model="modelFactory.terrestrialDistrictSelectModel" t:value="modelFactory.terrestrialDistrictId"/>
</t:if>
<label for="sampleRowId">${message:wao.ui.field.SampleRow.code} :</label>
- <select t:type="select" t:id="sampleRowId" t:model="modelFactory.sampleRowSelectModel" t:value="modelFactory.sampleRowId"/>
+
+ <select t:type="ck/MultipleSelect" t:model="modelFactory.sampleRowSelectModel" t:value="filter.sampleRows" size="4"
+ t:encoder="modelFactory.sampleRowSelectModel"/>
+ <!--select t:type="select" t:id="sampleRowId" t:model="modelFactory.sampleRowSelectModel" t:value="modelFactory.sampleRowId"/>
<input t:type="submit" class="ico22px add" t:id="addSampleRowCode" value="Add"
title="Ajouter un code de ligne"/>
<input t:type="submit" class="ico22px remove" t:id="removeSampleRowCode" value="Remove"
@@ -51,7 +54,7 @@
<li style="display: inline;" t:type="loop" t:source="filter.sampleRows" t:value="row" t:volatile="true">
${row.code}
</li>
- </ul>
+ </ul-->
</div>
<div>
<label for="fishingGearDCF">${message:wao.ui.entity.fishingGearDCF} :</label>
1
0
[Suiviobsmer-commits] r1070 - in trunk: . wao-business/src/main/java/fr/ifremer/wao/entity wao-business/src/main/java/fr/ifremer/wao/service
by bleny@users.labs.libre-entreprise.org 17 Mar '11
by bleny@users.labs.libre-entreprise.org 17 Mar '11
17 Mar '11
Author: bleny
Date: 2011-03-17 16:54:18 +0000 (Thu, 17 Mar 2011)
New Revision: 1070
Log:
fix unexpected validation error when contact observation begin date is a the end of the month
Modified:
trunk/pom.xml
trunk/wao-business/src/main/java/fr/ifremer/wao/entity/SampleRowImpl.java
trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceContactImpl.java
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2011-03-17 15:16:54 UTC (rev 1069)
+++ trunk/pom.xml 2011-03-17 16:54:18 UTC (rev 1070)
@@ -312,7 +312,7 @@
<!-- libraries version -->
<nuitonI18nVersion>2.3.1</nuitonI18nVersion>
- <nuitonUtilsVersion>2.0</nuitonUtilsVersion>
+ <nuitonUtilsVersion>2.1-SNAPSHOT</nuitonUtilsVersion>
<nuitonWebVersion>1.0</nuitonWebVersion>
<topiaVersion>2.5.2</topiaVersion>
<eugeneVersion>2.3.1</eugeneVersion>
Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/entity/SampleRowImpl.java
===================================================================
--- trunk/wao-business/src/main/java/fr/ifremer/wao/entity/SampleRowImpl.java 2011-03-17 15:16:54 UTC (rev 1069)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/entity/SampleRowImpl.java 2011-03-17 16:54:18 UTC (rev 1070)
@@ -79,37 +79,37 @@
*/
@Override
public SampleMonth getSampleMonth(Date date) {
- if (getSampleMonth() == null) {
- return null;
- }
-//// Calendar ref = new GregorianCalendar();
-//// ref.setTime(date);
-// //log.info("Ref : " + date);
-// for (SampleMonth curr : getSampleMonth()) {
-// //log.info("Curr month : " + curr.getPeriodDate() + " : " + curr.getPeriodMonth() + " / " + curr.getPeriodYear());
-//// if (ref.get(Calendar.MONTH) == (curr.getPeriodMonth()-1) && ref.get(Calendar.YEAR) == curr.getPeriodYear()) {
-//// return curr;
-//// }
-// Date min = DateUtil.setFirstDayOfMonth(curr.getPeriodDate());
-// Date max = DateUtil.setLastDayOfMonth(curr.getPeriodDate());
-// if (DateUtil.between(date, min, max)) {
-// return curr;
-// }
-// }
- if (sampleMonthMap != null) {
- // Direct access if map is defined from prepareDataByMonth
- String dateFormatted = monthFormat.format(date);
- return sampleMonthMap.get(dateFormatted);
- } else {
- for (SampleMonth curr : getSampleMonth()) {
- Date min = DateUtil.setFirstDayOfMonth(curr.getPeriodDate());
- Date max = DateUtil.setLastDayOfMonth(curr.getPeriodDate());
- if (DateUtil.between(date, min, max)) {
- return curr;
+ // will be returned
+ SampleMonth sampleMonth = null;
+
+ if (getSampleMonth() != null) {
+ if (sampleMonthMap == null) {
+ for (SampleMonth curr : getSampleMonth()) {
+ Date firstDayOfMonth = DateUtil.setFirstDayOfMonth(curr.getPeriodDate());
+ Date lastDayOfMonth = DateUtil.setLastDayOfMonth(curr.getPeriodDate());
+
+ boolean dateIsInMonth = DateUtil.between(date, firstDayOfMonth, lastDayOfMonth);
+ if (dateIsInMonth) {
+ sampleMonth = curr;
+ }
+
+ if (log.isDebugEnabled()) {
+ log.debug("date " + date + " is in month " + monthFormat.format(curr.getPeriodDate()) +
+ " [" + firstDayOfMonth + " ; " + lastDayOfMonth + "] : " + dateIsInMonth);
+ }
}
+ } else {
+ // Direct access if map is defined from prepareDataByMonth
+ String dateFormatted = monthFormat.format(date);
+ return sampleMonthMap.get(dateFormatted);
}
}
- return null;
+
+ if (log.isDebugEnabled()) {
+ log.debug("sampleMonth for date " + date + " is " + (sampleMonth == null ? "null" : monthFormat.format(sampleMonth.getPeriodDate())));
+ }
+
+ return sampleMonth;
}
@Override
Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceContactImpl.java
===================================================================
--- trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceContactImpl.java 2011-03-17 15:16:54 UTC (rev 1069)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceContactImpl.java 2011-03-17 16:54:18 UTC (rev 1070)
@@ -501,12 +501,18 @@
// Validation for saving contact depends on contactState
ContactState contactState = contact.getContactState();
+ Date observationBeginDate = contact.getObservationBeginDate();
if (log.isDebugEnabled()) {
- log.debug("For state : " + contactState);
+ log.debug("For state : " + contactState + " and observation begin date " + observationBeginDate);
}
- Date observationBeginDate = contact.getObservationBeginDate();
- if (success && observationBeginDate != null && ! contact.getSampleRow().isValid(observationBeginDate)) {
+ boolean operationBeginDateIsValid = contact.getSampleRow().isValid(observationBeginDate);
+
+ if (log.isDebugEnabled()) {
+ log.debug("operation begin data is valid : " + operationBeginDateIsValid);
+ }
+
+ if (success && observationBeginDate != null && ! operationBeginDateIsValid) {
success = false;
message = "La date de début de la marée doit correspondre à un " +
"mois valide (non vide) de la ligne " + contact.getSampleRow().getCode();
1
0
[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
by sletellier@users.labs.libre-entreprise.org 17 Mar '11
by sletellier@users.labs.libre-entreprise.org 17 Mar '11
17 Mar '11
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"/>
1
0
[Suiviobsmer-commits] r1068 - trunk/wao-business/src/main/java/fr/ifremer/wao
by bleny@users.labs.libre-entreprise.org 17 Mar '11
by bleny@users.labs.libre-entreprise.org 17 Mar '11
17 Mar '11
Author: bleny
Date: 2011-03-17 13:15:58 +0000 (Thu, 17 Mar 2011)
New Revision: 1068
Log:
update migration for obsDeb samplingplan
Modified:
trunk/wao-business/src/main/java/fr/ifremer/wao/PostgresMigrationCallback.java
Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/PostgresMigrationCallback.java
===================================================================
--- trunk/wao-business/src/main/java/fr/ifremer/wao/PostgresMigrationCallback.java 2011-03-17 13:15:23 UTC (rev 1067)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/PostgresMigrationCallback.java 2011-03-17 13:15:58 UTC (rev 1068)
@@ -794,7 +794,7 @@
@Override
protected void addCreationDateToContacts_3_0(List<String> queries) {
- queries.add("ALTER TABLE Contact ADD creationDate TIMESTAMP WITHOUT TIME ZONE NOT NULL");
+ queries.add("ALTER TABLE Contact ADD creationDate TIMESTAMP WITHOUT TIME ZONE");
queries.add("UPDATE Contact SET creationDate=topiaCreateDate");
}
@@ -824,6 +824,16 @@
queries.add("ALTER TABLE SampleRow ADD observationUnit CHARACTER VARYING(255);");
queries.add("ALTER TABLE SampleRow ADD CONSTRAINT observationUnit_fkey FOREIGN KEY (observationUnit) REFERENCES TerrestrialDivision(topiaId);");
+ queries.add("CREATE TABLE SampleRow_Observers (" +
+ "sampleRow character varying(255) NOT NULL," +
+ "observers character varying(255) NOT NULL," +
+ "CONSTRAINT observers_fkey FOREIGN KEY (observers) " +
+ "REFERENCES WaoUser (topiaid) MATCH SIMPLE " +
+ "ON UPDATE NO ACTION ON DELETE NO ACTION," +
+ "CONSTRAINT SampleRow_fkey FOREIGN KEY (SampleRow) " +
+ "REFERENCES SampleRow (topiaid) MATCH SIMPLE " +
+ "ON UPDATE NO ACTION ON DELETE NO ACTION);");
+
}
@Override
1
0
Author: bleny
Date: 2011-03-17 13:15:23 +0000 (Thu, 17 Mar 2011)
New Revision: 1067
Log:
update eugene version
Modified:
trunk/pom.xml
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2011-03-16 18:07:49 UTC (rev 1066)
+++ trunk/pom.xml 2011-03-17 13:15:23 UTC (rev 1067)
@@ -315,7 +315,7 @@
<nuitonUtilsVersion>2.0</nuitonUtilsVersion>
<nuitonWebVersion>1.0</nuitonWebVersion>
<topiaVersion>2.5.2</topiaVersion>
- <eugeneVersion>2.3</eugeneVersion>
+ <eugeneVersion>2.3.1</eugeneVersion>
<tapestryVersion>5.2.4</tapestryVersion>
<hibernateVersion>3.3.2.GA</hibernateVersion>
<jfreeVersion>1.0.12</jfreeVersion>
1
0
[Suiviobsmer-commits] r1066 - in trunk/wao-business/src/main: java/fr/ifremer/wao xmi
by bleny@users.labs.libre-entreprise.org 16 Mar '11
by bleny@users.labs.libre-entreprise.org 16 Mar '11
16 Mar '11
Author: bleny
Date: 2011-03-16 18:07:49 +0000 (Wed, 16 Mar 2011)
New Revision: 1066
Log:
#2614 model and migration
Modified:
trunk/wao-business/src/main/java/fr/ifremer/wao/PostgresMigrationCallback.java
trunk/wao-business/src/main/java/fr/ifremer/wao/WaoMigrationCallBack.java
trunk/wao-business/src/main/xmi/wao.zargo
Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/PostgresMigrationCallback.java
===================================================================
--- trunk/wao-business/src/main/java/fr/ifremer/wao/PostgresMigrationCallback.java 2011-03-16 16:22:44 UTC (rev 1065)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/PostgresMigrationCallback.java 2011-03-16 18:07:49 UTC (rev 1066)
@@ -793,6 +793,12 @@
}
@Override
+ protected void addCreationDateToContacts_3_0(List<String> queries) {
+ queries.add("ALTER TABLE Contact ADD creationDate TIMESTAMP WITHOUT TIME ZONE NOT NULL");
+ queries.add("UPDATE Contact SET creationDate=topiaCreateDate");
+ }
+
+ @Override
protected void addTerrestrialDivisions_3_0(List<String> queries) {
queries.add("CREATE TABLE TerrestrialDivision (" +
"topiaId CHARACTER VARYING(255) PRIMARY KEY," +
Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/WaoMigrationCallBack.java
===================================================================
--- trunk/wao-business/src/main/java/fr/ifremer/wao/WaoMigrationCallBack.java 2011-03-16 16:22:44 UTC (rev 1065)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/WaoMigrationCallBack.java 2011-03-16 18:07:49 UTC (rev 1066)
@@ -137,6 +137,8 @@
protected abstract void addAdminRolesToAdmin_3_0(TopiaContextImplementor tx, List<String> queries) throws TopiaException;
+ protected abstract void addCreationDateToContacts_3_0(List<String> queries);
+
protected static final Version[] VERSIONS = new Version[] {
VersionUtil.valueOf("1.0"),
VersionUtil.valueOf("1.1"),
@@ -476,6 +478,8 @@
List<String> queries = new LinkedList<String>();
+ addCreationDateToContacts_3_0(queries);
+
addAdminRolesToAdmin_3_0(tx, queries);
addTerrestrialDivisions_3_0(queries);
Modified: trunk/wao-business/src/main/xmi/wao.zargo
===================================================================
(Binary files differ)
1
0
[Suiviobsmer-commits] r1065 - in trunk/wao-ui/src/main: java/fr/ifremer/wao/ui/base java/fr/ifremer/wao/ui/components java/fr/ifremer/wao/ui/pages resources/fr/ifremer/wao/ui/components webapp
by sletellier@users.labs.libre-entreprise.org 16 Mar '11
by sletellier@users.labs.libre-entreprise.org 16 Mar '11
16 Mar '11
Author: sletellier
Date: 2011-03-16 16:22:44 +0000 (Wed, 16 Mar 2011)
New Revision: 1065
Log:
[#2636] remaniement pour adapter wao ?\195?\160 ObsDeb
Added:
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/resources/fr/ifremer/wao/ui/components/SamplingFilterComponent.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/ModelFactory.java
trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Boats.java
trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Contacts.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/webapp/SamplingPlan.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-15 17:26:14 UTC (rev 1064)
+++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/base/AbstractFilteredPage.java 2011-03-16 16:22:44 UTC (rev 1065)
@@ -46,7 +46,6 @@
import org.apache.tapestry5.ioc.services.PropertyAccess;
import org.slf4j.Logger;
-import java.util.ArrayList;
import java.util.List;
/**
@@ -169,6 +168,7 @@
public ModelFactory getModelFactory() {
if (modelFactory == null) {
modelFactory = new ModelFactory<SamplingFilter>(propertyAccess,
+ user,
serviceReferential,
serviceSampling,
serviceBoat,
@@ -183,33 +183,22 @@
protected boolean isAvailableDataForFiltersOnly() {
return AbstractFilteredPage.this.isAvailableDataForFiltersOnly();
}
+
+ @Override
+ public void resetFilter() {
+ AbstractFilteredPage.this.resetFilter();
+ }
};
}
return modelFactory;
}
public void onSelectedFromAddSampleRowCode() {
- if (getSampleRowId() != null) {
-
- List<SampleRow> rows = getFilter().getSampleRows();
- if (rows == null) {
- rows = new ArrayList<SampleRow>();
- getFilter().setSampleRows(rows);
- }
- SampleRow sampleRow = getSampleRowSelectModel().findObject(getSampleRowId());
- if ( ! rows.contains(sampleRow)) {
- rows.add(sampleRow);
- }
-
- edited = true;
- }
+ getModelFactory().addSampleRowCode();
}
public void onSelectedFromRemoveSampleRowCode() {
- if (getSampleRowId() != null) {
- getFilter().getSampleRows().remove(getSampleRowSelectModel().findObject(getSampleRowId()));
- edited = true;
- }
+ getModelFactory().removeSampleRowCode();
}
/**
@@ -228,12 +217,12 @@
}
/**
- * @see ModelFactory#initSelectFilters(fr.ifremer.wao.bean.ConnectedUser, boolean, boolean, boolean)
+ * @see ModelFactory#initSelectFilters(boolean, boolean, boolean)
*/
protected void initSelectFilters(boolean companySelect,
boolean observerSelect, boolean programSelect) throws WaoException {
- getModelFactory().initSelectFilters(user, companySelect, observerSelect, programSelect);
+ getModelFactory().initSelectFilters(companySelect, observerSelect, programSelect);
}
/**
@@ -301,6 +290,8 @@
*/
protected abstract boolean isAvailableDataForFiltersOnly();
+ protected abstract void resetFilter();
+
public String[] onProvideCompletionsFromBoatName(String input) throws WaoException {
List<String> results = serviceBoat.getBoatNamesStartWith(input);
return results.toArray(new String[results.size()]);
@@ -357,8 +348,6 @@
getFilter().setTerrestrialDistrict(district);
}
- private boolean edited;
-
/**
* EVENT :: selected on refreshByCompany submit button. Reset selects for
* company selected : programs, facades, sectors, sampleRows and observers.
@@ -382,7 +371,7 @@
getModelFactory().resetProgramSelectModel();
getProgramSelectModel();
}
- edited = true;
+ getModelFactory().setEdited(true);
}
/**
@@ -398,7 +387,7 @@
// Reset facades
getFilter().setFacadeName(null);
onSelectedFromRefreshByFacade();
- getModelFactory().resetFacadeSelect();
+ getModelFactory().resetFacadeSelectModel();
}
/**
@@ -414,7 +403,7 @@
// Reset sectors
getFilter().setSectorName(null);
onSelectedFromRefreshBySector();
- getModelFactory().resetSectorSelect();
+ getModelFactory().resetSectorSelectModel();
}
/**
@@ -431,8 +420,8 @@
onSelectedFromSearch();
// Reset sampleRows;
getFilter().setSampleRow(null);
- getModelFactory().resetSampleRowSelect();
- edited = true;
+ getModelFactory().resetSampleRowSelectModel();
+ getModelFactory().setEdited(true);
}
/**
@@ -441,7 +430,7 @@
* @return true if the page filter is in edited state.
*/
protected boolean isEdited() {
- return edited;
+ return getModelFactory().isEdited();
}
/**
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-15 17:26:14 UTC (rev 1064)
+++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/base/ModelFactory.java 2011-03-16 16:22:44 UTC (rev 1065)
@@ -27,7 +27,7 @@
import java.util.List;
/**
- * @author sletellier
+ * @author sletellier <letellier at codelutin.com>
*/
public abstract class ModelFactory <E extends SamplingFilter> {
@@ -38,8 +38,10 @@
protected PropertyAccess propertyAccess;
- private boolean observerSelect;
- private boolean programSelect;
+ protected boolean observerSelect;
+ protected boolean programSelect;
+ protected ConnectedUser user;
+ protected boolean edited = false;
/**
* Services
@@ -76,15 +78,37 @@
protected String targetSpeciesDCFId;
protected String terrestrialDistrictId;
- public ModelFactory(PropertyAccess propertyAccess, ServiceReferential serviceReferential, ServiceSampling serviceSampling, ServiceBoat serviceBoat, ServiceUser serviceUser) {
+ public ModelFactory(PropertyAccess propertyAccess,
+ ConnectedUser user,
+ ServiceReferential serviceReferential,
+ ServiceSampling serviceSampling,
+ ServiceBoat serviceBoat,
+ ServiceUser serviceUser) {
+
+ this.user = user;
this.propertyAccess = propertyAccess;
this.serviceReferential = serviceReferential;
this.serviceSampling = serviceSampling;
this.serviceBoat = serviceBoat;
this.serviceUser = serviceUser;
+
+ // Initialize filter
+ resetFilter();
}
+ public ConnectedUser getUser() {
+ return user;
+ }
+
+ public boolean isEdited() {
+ return edited;
+ }
+
+ public void setEdited(boolean edited) {
+ this.edited = edited;
+ }
+
public boolean isObserverSelect() {
return observerSelect;
}
@@ -141,22 +165,22 @@
this.terrestrialDistrictId = terrestrialDistrictId;
}
- public void resetCompanySelect() throws WaoException {
+ public void resetCompanySelectModel() throws WaoException {
companySelectModel = null;
getCompanySelectModel();
}
- public void resetFacadeSelect() throws WaoException {
+ public void resetFacadeSelectModel() throws WaoException {
facadeSelectModel = null;
getFacadeSelectModel();
}
- public void resetSectorSelect() throws WaoException {
+ public void resetSectorSelectModel() throws WaoException {
sectorSelectModel = null;
getSectorSelectModel();
}
- public void resetSampleRowSelect() throws WaoException {
+ public void resetSampleRowSelectModel() throws WaoException {
sampleRowSelectModel = null;
getSampleRowSelectModel();
}
@@ -169,7 +193,18 @@
programSelectModel = null;
}
+ 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());
+ }
+ }
+
/**
* Initialize all select for filters. By default, only facade, sector and
* sampleRow selects will be initialized.
@@ -179,8 +214,10 @@
* @param programSelect
* @throws WaoException
*/
- public void initSelectFilters(ConnectedUser user, boolean companySelect,
- boolean observerSelect, boolean programSelect) throws WaoException {
+ public void initSelectFilters(
+ boolean companySelect,
+ boolean observerSelect,
+ boolean programSelect) throws WaoException {
this.observerSelect = observerSelect;
this.programSelect = programSelect;
@@ -193,7 +230,7 @@
}
if (user.isAdmin() && companySelect) {
- resetCompanySelect();
+ resetCompanySelectModel();
if (getFilter().getCompany() != null) {
setCompanyId(getFilter().getCompany().getTopiaId());
}
@@ -219,14 +256,21 @@
getProgramSelectModel();
}
- resetFacadeSelect();
- resetSectorSelect();
- resetSampleRowSelect();
+ resetFacadeSelectModel();
+ resetSectorSelectModel();
+ resetSampleRowSelectModel();
+
+ initCompagnyFilter();
}
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
@@ -251,7 +295,36 @@
return facadeSelectModel;
}
+
+ public void addSampleRowCode() {
+ if (getSampleRowId() != null) {
+
+ List<SampleRow> rows = getFilter().getSampleRows();
+ if (rows == null) {
+ rows = new ArrayList<SampleRow>();
+ getFilter().setSampleRows(rows);
+ }
+ SampleRow sampleRow = getSampleRowSelectModel().findObject(getSampleRowId());
+ if ( ! rows.contains(sampleRow)) {
+ rows.add(sampleRow);
+ }
+
+ edited = true;
+ }
+ }
+
+ public void removeSampleRowCode() {
+ if (getSampleRowId() != null) {
+ getFilter().getSampleRows().remove(getSampleRowSelectModel().findObject(getSampleRowId()));
+ edited = true;
+ }
+ }
+
/**
+ * Models
+ */
+
+ /**
* Get select model for fishingZone sector. Depends on facadeName and
* company set in filter.
*
Added: 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 (rev 0)
+++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/base/SamplingPlanModelFactory.java 2011-03-16 16:22:44 UTC (rev 1065)
@@ -0,0 +1,70 @@
+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.ServiceBoat;
+import fr.ifremer.wao.service.ServiceReferential;
+import fr.ifremer.wao.service.ServiceSampling;
+import fr.ifremer.wao.service.ServiceUser;
+import org.apache.tapestry5.annotations.InjectComponent;
+import org.apache.tapestry5.annotations.Persist;
+import org.apache.tapestry5.corelib.components.Form;
+import org.apache.tapestry5.ioc.services.PropertyAccess;
+import org.nuiton.util.PeriodDates;
+
+import java.util.Calendar;
+import java.util.GregorianCalendar;
+
+/**
+ * @author sletellier <letellier at codelutin.com>
+ */
+public class SamplingPlanModelFactory extends ModelFactory<SamplingFilter> {
+
+ @Persist
+ protected SamplingFilter filter;
+
+ @InjectComponent
+ private Form filtersForm;
+
+ public SamplingPlanModelFactory(PropertyAccess propertyAccess,
+ ConnectedUser user,
+ ServiceReferential serviceReferential,
+ ServiceSampling serviceSampling,
+ ServiceBoat serviceBoat,
+ ServiceUser serviceUser) {
+
+ super(propertyAccess, user, serviceReferential, serviceSampling, serviceBoat, serviceUser);
+ }
+
+ @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);
+ }
+}
Added: 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 (rev 0)
+++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/components/SamplingFilterComponent.java 2011-03-16 16:22:44 UTC (rev 1065)
@@ -0,0 +1,134 @@
+package fr.ifremer.wao.ui.components;
+
+import fr.ifremer.wao.bean.SamplingFilter;
+import fr.ifremer.wao.entity.SampleRow;
+import fr.ifremer.wao.ui.base.ModelFactory;
+import org.apache.tapestry5.annotations.InjectComponent;
+import org.apache.tapestry5.annotations.Parameter;
+import org.apache.tapestry5.annotations.Persist;
+import org.apache.tapestry5.annotations.Property;
+import org.apache.tapestry5.corelib.components.Zone;
+import org.apache.tapestry5.ioc.annotations.Inject;
+import org.nuiton.util.PeriodDates;
+import org.slf4j.Logger;
+
+import java.text.DateFormat;
+import java.text.SimpleDateFormat;
+
+/**
+ * @author sletellier <letellier at codelutin.com>
+ */
+public class SamplingFilterComponent {
+
+ @Inject
+ private Logger log;
+
+ @Parameter(required = true)
+ private ModelFactory<? extends SamplingFilter> modelFactory;
+
+ @Parameter(required = true)
+ private String legendMsg;
+
+ @Parameter(required = false)
+ private Boolean visibleOnStartup;
+
+ @InjectComponent
+ private Zone filtersZone;
+
+ @Persist
+ private boolean reset;
+
+ @Persist
+ private Object owner;
+
+ @Persist
+ private Boolean filtersVisible;
+
+ /**
+ * Current SampleRow from loop
+ */
+ @Property
+ private SampleRow row;
+
+ public String getLegendMsg() {
+ return legendMsg;
+ }
+
+ // True by default
+ public Boolean getVisibleOnStartup() {
+ if (visibleOnStartup == null) {
+ visibleOnStartup = true;
+ }
+ return visibleOnStartup;
+ }
+
+ public Boolean getFiltersVisible() {
+ if (filtersVisible == null) {
+ filtersVisible = getVisibleOnStartup();
+ }
+ return filtersVisible;
+ }
+
+ public void setFiltersVisible(Boolean filtersVisible) {
+ this.filtersVisible = filtersVisible;
+ }
+
+ public void switchFiltersVisible() {
+ filtersVisible = !filtersVisible;
+ }
+
+ public Zone getFiltersZone() {
+ return filtersZone;
+ }
+
+ public SamplingFilter getFilter() {
+ return modelFactory.getFilter();
+ }
+
+ public ModelFactory getModelFactory() {
+ return modelFactory;
+ }
+
+ public void setModelFactory(ModelFactory<? extends SamplingFilter> modelFactory) {
+ this.modelFactory = modelFactory;
+ }
+
+ public DateFormat getDateFormat() {
+ return new SimpleDateFormat("MM/yyyy");
+ }
+
+ /**
+ * Activate reset filter
+ */
+ void onSelectedFromReset() {
+ reset = true;
+ }
+
+ /**
+ * Do filtering
+ *
+ * @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();
+ getFilter().setPeriod(period);
+ }
+ return owner;
+ }
+
+ /**
+ * Register owner to refresh
+ *
+ * @param owner page to refresh on submit
+ */
+ public void setOwner(Object owner) {
+ this.owner = owner;
+ }
+}
Modified: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Boats.java
===================================================================
--- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Boats.java 2011-03-15 17:26:14 UTC (rev 1064)
+++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Boats.java 2011-03-16 16:22:44 UTC (rev 1065)
@@ -160,7 +160,8 @@
// Initialize filters using AbstractFilteredPage superclass
initSelectFilters(false, false, false);
// The company of connected user will be contributed to abstractFilteredPage
- initCompanyFilter();
+ // TODO sletellier remove it ? : up in initSelectFilters
+// initCompanyFilter();
companyBoatInfos = null;
}
@@ -370,6 +371,11 @@
return true;
}
+ @Override
+ protected void resetFilter() {
+ this.boatFilter = null;
+ }
+
/**
* Retrieve sampleRow from business with id from url context. The sampleRowId from context is set by SamplingPlan page.
* When the sampleRow is not null, the filters are disabled to optimize searching boats for this row.
@@ -790,7 +796,7 @@
// WARNING :: Reset sampleRow select for edition mode, no limit for
// showing sampleRows instead of filters
getFilter().setNbMonthFinishedFromToday(null);
- getModelFactory().resetSampleRowSelect();
+ getModelFactory().resetSampleRowSelectModel();
getFilter().setNbMonthFinishedFromToday(-1);
}
return boatInfosZone.getBody();
Modified: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Contacts.java
===================================================================
--- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Contacts.java 2011-03-15 17:26:14 UTC (rev 1064)
+++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Contacts.java 2011-03-16 16:22:44 UTC (rev 1065)
@@ -132,8 +132,10 @@
if (fullView == null) {
fullView = user.isAdmin();
}
+
// The company of connected user will be contributed to abstractFilteredPage
- initCompanyFilter();
+ // TODO sletellier remove it ? : up in initSelectFilters
+// initCompanyFilter();
}
@Log
@@ -197,6 +199,11 @@
return false;
}
+ @Override
+ protected void resetFilter() {
+ this.contactFilter = null;
+ }
+
Object onActionFromShowFilters() {
// Initialize filters
initSelectFilters(true, true, true);
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-15 17:26:14 UTC (rev 1064)
+++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/SamplingPlan.java 2011-03-16 16:22:44 UTC (rev 1065)
@@ -30,20 +30,21 @@
import fr.ifremer.wao.bean.FacadeRow;
import fr.ifremer.wao.bean.ObsProgram;
import fr.ifremer.wao.bean.SamplingFilter;
-import fr.ifremer.wao.bean.SamplingFilterImpl;
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.service.ServiceBoat;
import fr.ifremer.wao.service.ServiceReferential;
import fr.ifremer.wao.service.ServiceSampling;
-import fr.ifremer.wao.ui.base.AbstractFilteredPage;
+import fr.ifremer.wao.service.ServiceUser;
+import fr.ifremer.wao.ui.base.SamplingPlanModelFactory;
import fr.ifremer.wao.ui.components.Layout;
+import fr.ifremer.wao.ui.components.SamplingFilterComponent;
import fr.ifremer.wao.ui.data.ExportStreamResponse;
import fr.ifremer.wao.ui.data.RequiresAuthentication;
import fr.ifremer.wao.ui.services.WaoManager;
import org.apache.commons.collections.CollectionUtils;
-import org.apache.commons.lang.BooleanUtils;
import org.apache.tapestry5.StreamResponse;
import org.apache.tapestry5.annotations.Import;
import org.apache.tapestry5.annotations.InjectComponent;
@@ -51,10 +52,9 @@
import org.apache.tapestry5.annotations.Persist;
import org.apache.tapestry5.annotations.Property;
import org.apache.tapestry5.annotations.SessionState;
-import org.apache.tapestry5.corelib.components.Form;
-import org.apache.tapestry5.corelib.components.Zone;
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;
@@ -65,9 +65,7 @@
import java.text.DateFormat;
import java.text.NumberFormat;
import java.text.SimpleDateFormat;
-import java.util.Calendar;
import java.util.Date;
-import java.util.GregorianCalendar;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -81,30 +79,45 @@
*/
@RequiresAuthentication(allowedPrograms = {ObsProgram.OBSMER, ObsProgram.OBSVENTE})
@Import(stylesheet = "context:css/sampling.css")
-public class SamplingPlan extends AbstractFilteredPage {
+public class SamplingPlan {
@Inject
- private Logger logger;
+ private Logger log;
@Inject
- private WaoManager manager;
+ private PropertyAccess propertyAccess;
@Inject
- private Messages messages;
+ private ServiceReferential serviceReferential;
@Inject
private ServiceSampling serviceSampling;
@Inject
- private ServiceReferential serviceReferential;
+ private ServiceBoat serviceBoat;
+ @Inject
+ private ServiceUser serviceUser;
+
+ @Inject
+ private WaoManager manager;
+
+ @Inject
+ private Messages messages;
+
@InjectComponent
+ private SamplingFilterComponent filterComponent;
+
+ @InjectComponent
private Layout layout;
@SessionState
@Property
private ConnectedUser user;
+ @Persist
+ private SamplingPlanModelFactory modelFactory;
+
private long nbTidesExpectedTime;
private long nbTidesRealTime;
@@ -113,22 +126,47 @@
private long totalTidesRealTime;
+ public SamplingPlanModelFactory getModelFactory() {
+ if (modelFactory == null) {
+ modelFactory = new SamplingPlanModelFactory(propertyAccess,
+ user, serviceReferential, serviceSampling, serviceBoat, serviceUser);
+ }
+ return modelFactory;
+ }
+
+ public void setModelFactory(SamplingPlanModelFactory modelFactory) {
+ this.modelFactory = modelFactory;
+ }
+
/**
* Page initialization
*/
void setupRender() {
- if (isFiltersVisible()) {
- // Initialize filters
- initSelectFilters(true, false, true);
- }
+ // 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
- initCompanyFilter();
+ // TODO sletellier remove it ? : up in initSelectFilters
+// initCompanyFilter();
}
-
+
+ public void onSelectedFromAddSampleRowCode() {
+ getModelFactory().addSampleRowCode();
+ }
+
+ public void onSelectedFromRemoveSampleRowCode() {
+ getModelFactory().removeSampleRowCode();
+ }
+
/**************************** EXPORT **************************************/
StreamResponse onActionFromExportSamplingPlan() {
@@ -150,90 +188,33 @@
/**************************** FILTERS *************************************/
- @Persist
- private SamplingFilter filter;
-
- @InjectComponent
- private Zone filtersZone;
-
- @InjectComponent
- private Form filtersForm;
-
- private boolean reset;
-
- public PeriodDates getPeriod() {
- return getFilter().getPeriod();
- }
-
- @Override
- public SamplingFilter getFilter() throws WaoException {
- if (filter == null) {
- 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);
- }
- return filter;
- }
-
- @Override
- protected boolean isAvailableDataForFiltersOnly() {
- return false;
- }
-
- @Persist
- private Boolean showFilters;
-
public boolean isFiltersVisible() {
- if (showFilters == null) {
- showFilters = false;
- }
- return BooleanUtils.isTrue(showFilters);
+ return filterComponent.getFiltersVisible();
}
Object onActionFromShowFilters() {
- showFilters = ! showFilters;
+ filterComponent.switchFiltersVisible();
+
// Initialize filters
- initSelectFilters(true, false, true);
+ modelFactory.initSelectFilters(true, false, true);
if (isFiltersVisible()) {
- return filtersZone.getBody();
+ return filterComponent.getFiltersZone().getBody();
} else {
- return filtersZone;
+ return filterComponent.getFiltersZone();
}
}
- void onSelectedFromReset() {
- reset = true;
+ public PeriodDates getPeriod() {
+ return getFilter().getPeriod();
}
-
- Object onSuccessFromFiltersForm() {
- if (isEdited()) {
- return filtersZone.getBody();
- }
- if (reset) {
- // Don't reset period in filters
- PeriodDates period = getFilter().getPeriod();
- filter = null;
- getFilter().setPeriod(period);
- }
- return this;
+ public SamplingFilter getFilter() {
+ return getModelFactory().getFilter();
}
+
/**************************** MAIN ACTIONS ********************************/
@Persist
@@ -252,8 +233,8 @@
void onActionFromChangeFilterEstimatedTides() {
boolean oldValue = getFilter().getEstimatedTides();
- if (logger.isDebugEnabled()) {
- logger.debug("Change estimatedTides in filter to : " + !oldValue);
+ if (log.isDebugEnabled()) {
+ log.debug("Change estimatedTides in filter to : " + !oldValue);
}
getFilter().setEstimatedTides(!oldValue);
}
@@ -304,8 +285,8 @@
*/
public List<SampleRow> getData() throws WaoException {
if (data == null) {
- if (logger.isDebugEnabled()) {
- logger.debug("sampleRows filter sent to service : " +
+ if (log.isDebugEnabled()) {
+ log.debug("sampleRows filter sent to service : " +
getFilter().getSampleRows());
}
@@ -454,8 +435,8 @@
this.row = row;
Integer expected = getNbTidesExpected(), real = getNbTidesReal();
- if (logger.isDebugEnabled()) {
- logger.debug( String.format("for month %s and row %s : expected = %s, real = %s",
+ if (log.isDebugEnabled()) {
+ log.debug( String.format("for month %s and row %s : expected = %s, real = %s",
getDateFormat().format(month), row.getCode(), expected, real));
}
@@ -470,8 +451,8 @@
totalExpectedForMonths.put(month, totalExpected);
totalRealForMonths.put(month, totalReal);
- if (logger.isDebugEnabled()) {
- logger.debug( String.format("totals for month %s : expected = %s, actual = %s",
+ if (log.isDebugEnabled()) {
+ log.debug( String.format("totals for month %s : expected = %s, actual = %s",
getDateFormat().format(month), totalExpected, totalReal));
}
@@ -480,9 +461,9 @@
}
- if (logger.isDebugEnabled()) {
+ if (log.isDebugEnabled()) {
for (Map.Entry<Date, Integer> expected : totalExpectedForMonths.entrySet()) {
- logger.debug( String.format("totals for month %s : expected = %s, actual = %s",
+ log.debug( String.format("totals for month %s : expected = %s, actual = %s",
getDateFormat().format(expected.getKey()), expected.getValue(),
totalRealForMonths.get(expected.getKey())));
}
@@ -497,8 +478,8 @@
setTotalsForMonths();
}
Integer total = totalExpectedForMonths.get(month);
- if (logger.isDebugEnabled()) {
- logger.debug(String.format("total for month %s is %s", getDateFormat().format(month), total));
+ if (log.isDebugEnabled()) {
+ log.debug(String.format("total for month %s is %s", getDateFormat().format(month), total));
}
return total;
}
@@ -664,7 +645,7 @@
try {
serviceSampling.deleteSampleRow(row);
} catch (WaoBusinessException eee) {
- String error = manager.getErrorMessage(eee, messages, logger);
+ String error = manager.getErrorMessage(eee, messages, log);
layout.addError(error);
}
}
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-15 17:26:14 UTC (rev 1064)
+++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Synthesis.java 2011-03-16 16:22:44 UTC (rev 1065)
@@ -42,8 +42,14 @@
import fr.ifremer.wao.entity.Indicator;
import fr.ifremer.wao.entity.IndicatorLevel;
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.ServiceSynthesis;
+import fr.ifremer.wao.service.ServiceUser;
import fr.ifremer.wao.ui.base.AbstractFilteredPage;
+import fr.ifremer.wao.ui.base.SamplingPlanModelFactory;
+import fr.ifremer.wao.ui.components.SamplingFilterComponent;
import fr.ifremer.wao.ui.data.ChartUtils;
import fr.ifremer.wao.ui.data.ChartUtils.ChartType;
import fr.ifremer.wao.ui.data.RequiresAuthentication;
@@ -63,6 +69,7 @@
import org.apache.tapestry5.corelib.components.Zone;
import org.apache.tapestry5.ioc.Messages;
import org.apache.tapestry5.ioc.annotations.Inject;
+import org.apache.tapestry5.ioc.services.PropertyAccess;
import org.jfree.chart.JFreeChart;
import org.nuiton.util.PeriodDates;
import org.slf4j.Logger;
@@ -89,12 +96,27 @@
*/
@RequiresAuthentication(allowedRoles = {UserRole.ADMIN, UserRole.COORDINATOR, UserRole.OBSERVER, UserRole.PROFESSIONAL})
@Import(stylesheet = "context:css/synthesis.css")
-public class Synthesis extends AbstractFilteredPage {
+public class Synthesis {
@Environmental
private RenderSupport renderSupport;
@Inject
+ private PropertyAccess propertyAccess;
+
+ @Inject
+ private ServiceReferential serviceReferential;
+
+ @Inject
+ private ServiceSampling serviceSampling;
+
+ @Inject
+ private ServiceBoat serviceBoat;
+
+ @Inject
+ private ServiceUser serviceUser;
+
+ @Inject
private WaoManager manager;
@Inject
@@ -103,6 +125,9 @@
@Inject
private Logger log;
+ @InjectComponent
+ private SamplingFilterComponent filterComponent;
+
@SessionState
@Property
private ConnectedUser user;
@@ -125,13 +150,35 @@
@Inject
private Messages messages;
+ @Persist
+ private SamplingPlanModelFactory modelFactory;
+
+ public SamplingPlanModelFactory getModelFactory() {
+ if (modelFactory == null) {
+ modelFactory = new SamplingPlanModelFactory(propertyAccess,
+ user, serviceReferential, serviceSampling, serviceBoat, serviceUser);
+ }
+ return modelFactory;
+ }
+
+ public void setModelFactory(SamplingPlanModelFactory modelFactory) {
+ this.modelFactory = modelFactory;
+ }
+
void setupRender() {
// make filters keep company between submissions
- initSelectFilters(true, false, true);
+ 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() {
@@ -255,20 +302,8 @@
/********************* FILTERS ********************************************/
- @Persist
- private SamplingFilter dataSamplingFilter;
-
- @Override
public SamplingFilter getFilter() throws WaoException {
- if (dataSamplingFilter == null) {
- dataSamplingFilter = new SamplingFilterImpl();
- if (user.isCoordinatorOrObserver()) {
- dataSamplingFilter.setCompany(user.getCompany());
- }
- dataSamplingFilter.setObsProgram(user.getProfile().getObsProgram());
- dataSamplingFilter.setEstimatedTides(true);
- }
- return dataSamplingFilter;
+ return getModelFactory().getFilter();
}
public PeriodDates getPeriod() throws WaoException {
@@ -282,35 +317,7 @@
return getFilter().getPeriod();
}
- @Override
- protected boolean isAvailableDataForFiltersOnly() {
- return false;
- }
-
- void onSelectedFromReset() {
- reset = true;
- }
-
- Object onSuccessFromFiltersForm() {
- if (isEdited()) {
- return filtersZone.getBody();
- }
- if (reset) {
- dataSamplingFilter = null;
- }
- return this;
- }
-
- /**
- * Current SampleRow from loop
- */
- @Property
- private SampleRow row;
-
/********************* DYNAMICAL GRAPH : DATA SAMPLING ********************/
-
- @InjectComponent
- private Zone filtersZone;
@Persist
private ChartType dataSamplingChartType;
Added: 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 (rev 0)
+++ trunk/wao-ui/src/main/resources/fr/ifremer/wao/ui/components/SamplingFilterComponent.tml 2011-03-16 16:22:44 UTC (rev 1065)
@@ -0,0 +1,78 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns:t="http://tapestry.apache.org/schema/tapestry_5_1_0.xsd"
+ xmlns:p="tapestry:parameter">
+ <div t:type="zone" t:id="filtersZone" t:visible="prop:filtersVisible" id="so-sampling-filters">
+ <fieldset>
+ <legend>${legendMsg}</legend>
+ <div class="so-filters-form">
+ <form t:type="form" t:id="filtersForm" t:zone="so-sampling-filters" action="post">
+ <t:errors/>
+ <div class="t-beaneditor">
+ <div>
+ <label for="periodBegin">${message:wao.ui.form.periodFrom}</label>
+ <input t:type="datefield" class="width70" t:id="periodBegin" t:value="filter.period.fromDate" t:format="MM/yyyy"
+ t:validate="required"/>
+ <label for="periodEnd">${message:wao.ui.form.period.to} </label>
+ <input t:type="datefield" class="width70" t:id="periodEnd" t:value="filter.period.thruDate" t:format="MM/yyyy"
+ t:validate="required"/>
+ </div>
+ <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="submit" class="ico22px refresh" t:id="modelFactory.refreshByCompany"
+ value="${message:wao.ui.filters.refresh}"
+ title="${message:wao.ui.filters.refresh}"/-->
+ </t:if>
+ <label for="programName">${message:wao.ui.field.SampleRow.programName} :</label>
+ <select t:type="select" t:id="programName" t:model="modelFactory.programSelectModel" t:value="filter.programName"/>
+
+ </div>
+ <div>
+ <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"
+ title="${message:wao.ui.filters.refresh}"/-->
+ <label for="sectorName">${message:wao.ui.field.FishingZone.sectorName} :</label>
+ <select t:type="select" t:id="sectorName" t:model="modelFactory.sectorSelectModel" t:value="filter.sectorName"/>
+ <!--input t:type="submit" class="ico22px refresh" t:id="modelFactory.refreshBySector" value="Refresh"
+ title="${message:wao.ui.filters.refresh}"/-->
+ <t:if test="modelFactory.user.obsVente">
+ <label>${message:wao.ui.field.SampleRow.terrestrialLocation} :</label>
+ <input t:type="select" t:model="modelFactory.terrestrialDistrictSelectModel" t:value="modelFactory.terrestrialDistrictId"/>
+ </t:if>
+ <label for="sampleRowId">${message:wao.ui.field.SampleRow.code} :</label>
+ <select t:type="select" t:id="sampleRowId" t:model="modelFactory.sampleRowSelectModel" t:value="modelFactory.sampleRowId"/>
+ <input t:type="submit" class="ico22px add" t:id="addSampleRowCode" value="Add"
+ title="Ajouter un code de ligne"/>
+ <input t:type="submit" class="ico22px remove" t:id="removeSampleRowCode" value="Remove"
+ title="Retirer un code de ligne"/>
+ <ul>
+ <li style="display: inline;" t:type="loop" t:source="filter.sampleRows" t:value="row" t:volatile="true">
+ ${row.code}
+ </li>
+ </ul>
+ </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"/>
+ <label for="targetSpeciesDCF">${message:wao.ui.entity.targetSpeciesDCF} :</label>
+ <input t:type="select" t:id="targetSpeciesDCF" t:model="modelFactory.dcfSpeciesSelectModel"
+ 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"/>
+ </t:if>
+ </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"/>
+ <input t:type="submit" class="ico undo" t:id="reset" value="Reset"
+ title="Remettre les filtres par défaut"/>
+ </div>
+ </div>
+ </form>
+ </div>
+ </fieldset>
+ </div>
+</html>
\ No newline at end of file
Modified: trunk/wao-ui/src/main/webapp/SamplingPlan.tml
===================================================================
--- trunk/wao-ui/src/main/webapp/SamplingPlan.tml 2011-03-15 17:26:14 UTC (rev 1064)
+++ trunk/wao-ui/src/main/webapp/SamplingPlan.tml 2011-03-16 16:22:44 UTC (rev 1065)
@@ -77,74 +77,18 @@
</div>
</div>
<div>
- ${format:wao.ui.form.periodFromTo=dateFormat.format(period.fromDate),dateFormat.format(period.thruDate)}
- <a t:type="actionlink" t:id="showFilters" t:zone="so-sampling-filters" class="display-form">${message:wao.ui.misc.advancedSearch}</a>
+ ${format:wao.ui.form.periodFromTo=dateFormat.format(period.fromDate),dateFormat.format(period.thruDate)}
+
+ <a t:type="actionlink" t:id="showFilters" t:zone="so-sampling-filters" class="display-form">
+ ${message:wao.ui.misc.advancedSearch}
+ </a>
</div>
- <div t:type="zone" t:id="filtersZone" t:visible="prop:filtersVisible" id="so-sampling-filters">
- <fieldset>
- <legend>${message:wao.ui.misc.advancedSearch}</legend>
- <div class="so-filters-form">
- <form t:type="form" t:id="filtersForm" t:zone="so-sampling-filters" action="post">
- <t:errors />
- <div class="t-beaneditor">
- <div>
- <label for="periodBegin">${message:wao.ui.form.periodFrom}</label>
- <input t:type="datefield" class="width70" t:id="periodBegin" t:value="period.fromDate" t:format="MM/yyyy" t:validate="required"/>
- <label for="periodEnd"> ${message:wao.ui.form.period.to} </label>
- <input t:type="datefield" class="width70" t:id="periodEnd" t:value="period.thruDate" t:format="MM/yyyy" t:validate="required" />
- </div>
- <div>
- <t:if t:test="user.admin">
- <label for="company">${message:wao.ui.entity.Company} :</label>
- <input t:type="select" t:id="company" t:model="companySelectModel" value="companyId"/>
- <input t:type="submit" class="ico22px refresh" t:id="refreshByCompany" value="${message:wao.ui.filters.refresh}"
- title="${message:wao.ui.filters.refresh}" />
- </t:if>
- <label for="programName">${message:wao.ui.field.SampleRow.programName} :</label>
- <select t:type="select" t:id="programName" t:model="programSelectModel" t:value="filter.programName" />
- </div>
- <div>
- <label for="facadeName">${message:wao.ui.field.FishingZone.facadeName} :</label>
- <select t:type="select" t:id="facadeName" t:model="facadeSelectModel" t:value="filter.facadeName" />
- <input t:type="submit" class="ico22px refresh" t:id="refreshByFacade" value="Refresh"
- title="${message:wao.ui.filters.refresh}"/>
- <label for="sectorName">${message:wao.ui.field.FishingZone.sectorName} :</label>
- <select t:type="select" t:id="sectorName" t:model="sectorSelectModel" t:value="filter.sectorName" />
- <input t:type="submit" class="ico22px refresh" t:id="refreshBySector" value="Refresh"
- title="${message:wao.ui.filters.refresh}"/>
- <t:if test="user.obsVente">
- <label>${message:wao.ui.field.SampleRow.terrestrialLocation} :</label>
- <input t:type="select" t:model="terrestrialDistrictSelectModel" t:value="terrestrialDistrictId" />
- </t:if>
- <label for="sampleRowId">${message:wao.ui.field.SampleRow.code} :</label>
- <select t:type="select" t:id="sampleRowId" t:model="sampleRowSelectModel" t:value="sampleRowId" />
- <input t:type="submit" class="ico22px add" t:id="addSampleRowCode" value="Add" title="Ajouter un code de ligne"/>
- <input t:type="submit" class="ico22px remove" t:id="removeSampleRowCode" value="Remove" title="Retirer un code de ligne" />
- <ul>
- <li style="display: inline;" t:type="loop" t:source="filter.sampleRows" t:value="row" t:volatile="true">
- ${row.code}
- </li>
- </ul>
- </div>
- <div>
- <label for="fishingGearDCF">${message:wao.ui.entity.fishingGearDCF} :</label>
- <input t:type="select" t:id="fishingGearDCF" t:model="dcfGearSelectModel" value="fishingGearDCFId"/>
- <label for="targetSpeciesDCF">${message:wao.ui.entity.targetSpeciesDCF} :</label>
- <input t:type="select" t:id="targetSpeciesDCF" t:model="dcfSpeciesSelectModel" value="targetSpeciesDCFId"/>
- <t:if test="user.obsVente">
- <label t:for="samplingStrategy">${message:wao.ui.field.SampleRow.samplingStrategy} :</label>
- <input t:type="select" t:id="samplingStrategy" value="filter.samplingStrategy" />
- </t:if>
- </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" />
- <input t:type="submit" class="ico undo" t:id="reset" value="Reset" title="Remettre les filtres par défaut" />
- </div>
- </div>
- </form>
- </div>
- </fieldset>
- </div>
+
+ <!--FIXME sletellier 20110316 : visible on parameter dont work in this case....-->
+ <t:samplingFilterComponent t:id="filterComponent"
+ t:visibleOnStartup="false"
+ t:modelFactory="modelFactory"
+ t:legendMsg="${message:wao.ui.misc.advancedSearch}"/>
</div>
<t:zone t:id="samplingZone">
<table class="t-data-grid">
Modified: trunk/wao-ui/src/main/webapp/Synthesis.tml
===================================================================
--- trunk/wao-ui/src/main/webapp/Synthesis.tml 2011-03-15 17:26:14 UTC (rev 1064)
+++ trunk/wao-ui/src/main/webapp/Synthesis.tml 2011-03-16 16:22:44 UTC (rev 1065)
@@ -31,79 +31,84 @@
xmlns:t="http://tapestry.apache.org/schema/tapestry_5_1_0.xsd" xmlns:p="tapestry:parameter">
- <fieldset>
- <legend>${message:wao.ui.filters.filters}</legend>
- <div t:type="zone" t:id="filtersZone" class="so-filters-form" id="so-datasampling-filters">
- <!--<div t:type="zone" t:id="dataSamplingFiltersZone" t:update="show" id="so-datasampling-filters">-->
- <form t:type="form" t:id="filtersForm" t:zone="so-datasampling-filters">
- <t:errors />
- <div class="t-beaneditor">
- <div class="filterRow">
- <label for="periodBegin">${message:wao.ui.form.periodFrom} :</label>
- <input t:type="datefield" class="width70" t:id="periodBegin" t:value="period.fromDate" t:format="MM/yyyy" t:validate="required"/>
- <label for="periodEnd">${message:wao.ui.form.period.to} :</label>
- <input t:type="datefield" class="width70" t:id="periodEnd" t:value="period.thruDate" t:format="MM/yyyy" t:validate="required"/>
- </div>
- <div>
- <t:if t:test="user.admin">
- <label t:for="company">${message:wao.ui.entity.Company} :</label>
- <input t:type="select" t:id="company" t:model="companySelectModel" value="companyId"/>
- <input t:type="submit" class="ico22px refresh" t:id="refreshByCompany" value="${message:wao.ui.filters.refresh}"
- title="${message:wao.ui.filters.refresh}"/>
- </t:if>
- <label for="programName">${message:wao.ui.field.SampleRow.programName} :</label>
- <select t:type="select" t:id="programName" t:model="programSelectModel" value="filter.programName" />
- <input t:type="submit" class="ico22px refresh" t:id="refreshByProgram" value="${message:wao.ui.filters.refresh}"
- title="${message:wao.ui.filters.refresh}"/>
- </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="facadeSelectModel" value="filter.facadeName" />
- <input t:type="submit" class="ico22px refresh" t:id="refreshByFacade" value="${message:wao.ui.filters.refresh}"
- title="${message:wao.ui.filters.refresh}"/>
- <label for="sectorName">${message:wao.ui.field.FishingZone.sectorName} :</label>
- <select t:type="select" t:id="sectorName" t:model="sectorSelectModel" value="filter.sectorName" />
- <input t:type="submit" class="ico22px refresh" t:id="refreshBySector" value="${message:wao.ui.filters.refresh}"
- title="${message:wao.ui.filters.refresh}"/>
- <t:if test="user.obsVente">
- <label>${message:wao.ui.field.SampleRow.terrestrialLocation} :</label>
- <input t:type="select" t:model="terrestrialDistrictSelectModel" t:value="terrestrialDistrictId" />
- </t:if>
- <label for="sampleRowId">${message:wao.ui.field.SampleRow.code} :</label>
- <select t:type="select" t:id="sampleRowId" t:model="sampleRowSelectModel" t:value="sampleRowId" />
- <input t:type="submit" class="ico22px add" t:id="addSampleRowCode" value="Add" title="Ajouter un code de ligne"/>
- <input t:type="submit" class="ico22px remove" t:id="removeSampleRowCode" value="Remove" title="Retirer un code de ligne" />
- <ul>
- <li style="display: inline;" t:type="loop" t:source="filter.sampleRows" t:value="row" t:volatile="true">
- ${row.code}
- </li>
- </ul>
+ <!--fieldset>
+ <legend>${message:wao.ui.filters.filters}</legend>
+ <div t:type="zone" t:id="filtersZone" class="so-filters-form" id="so-datasampling-filters">
+ <! - -<div t:type="zone" t:id="dataSamplingFiltersZone" t:update="show" id="so-datasampling-filters"> - ->
+ <form t:type="form" t:id="filtersForm" t:zone="so-datasampling-filters">
+ <t:errors />
+ <div class="t-beaneditor">
+ <div class="filterRow">
+ <label for="periodBegin">${message:wao.ui.form.periodFrom} :</label>
+ <input t:type="datefield" class="width70" t:id="periodBegin" t:value="period.fromDate" t:format="MM/yyyy" t:validate="required"/>
+ <label for="periodEnd">${message:wao.ui.form.period.to} :</label>
+ <input t:type="datefield" class="width70" t:id="periodEnd" t:value="period.thruDate" t:format="MM/yyyy" t:validate="required"/>
+ </div>
+ <div>
+ <t:if t:test="user.admin">
+ <label t:for="company">${message:wao.ui.entity.Company} :</label>
+ <input t:type="select" t:id="company" t:model="companySelectModel" value="companyId"/>
+ <input t:type="submit" class="ico22px refresh" t:id="refreshByCompany" value="${message:wao.ui.filters.refresh}"
+ title="${message:wao.ui.filters.refresh}"/>
+ </t:if>
+ <label for="programName">${message:wao.ui.field.SampleRow.programName} :</label>
+ <select t:type="select" t:id="programName" t:model="programSelectModel" value="filter.programName" />
+ <input t:type="submit" class="ico22px refresh" t:id="refreshByProgram" value="${message:wao.ui.filters.refresh}"
+ title="${message:wao.ui.filters.refresh}"/>
+ </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="facadeSelectModel" value="filter.facadeName" />
+ <input t:type="submit" class="ico22px refresh" t:id="refreshByFacade" value="${message:wao.ui.filters.refresh}"
+ title="${message:wao.ui.filters.refresh}"/>
+ <label for="sectorName">${message:wao.ui.field.FishingZone.sectorName} :</label>
+ <select t:type="select" t:id="sectorName" t:model="sectorSelectModel" value="filter.sectorName" />
+ <input t:type="submit" class="ico22px refresh" t:id="refreshBySector" value="${message:wao.ui.filters.refresh}"
+ title="${message:wao.ui.filters.refresh}"/>
+ <t:if test="user.obsVente">
+ <label>${message:wao.ui.field.SampleRow.terrestrialLocation} :</label>
+ <input t:type="select" t:model="terrestrialDistrictSelectModel" t:value="terrestrialDistrictId" />
+ </t:if>
+ <label for="sampleRowId">${message:wao.ui.field.SampleRow.code} :</label>
+ <select t:type="select" t:id="sampleRowId" t:model="sampleRowSelectModel" t:value="sampleRowId" />
+ <input t:type="submit" class="ico22px add" t:id="addSampleRowCode" value="Add" title="Ajouter un code de ligne"/>
+ <input t:type="submit" class="ico22px remove" t:id="removeSampleRowCode" value="Remove" title="Retirer un code de ligne" />
+ <ul>
+ <li style="display: inline;" t:type="loop" t:source="filter.sampleRows" t:value="row" t:volatile="true">
+ ${row.code}
+ </li>
+ </ul>
- <!--<t:label t:for="program" />:
- <input t:type="select" t:id="program" t:model="programSelectModel" value="programId" />-->
- </div>
- <div>
- <label for="fishingGearDCF">${message:wao.ui.entity.fishingGearDCF} :</label>
- <input t:type="select" t:id="fishingGearDCF" t:model="dcfGearSelectModel" value="fishingGearDCFId"/>
- <label for="targetSpeciesDCF">${message:wao.ui.entity.targetSpeciesDCF} :</label>
- <input t:type="select" t:id="targetSpeciesDCF" t:model="dcfSpeciesSelectModel" value="targetSpeciesDCFId"/>
- </div>
- <div class="filterRow">
- <input t:type="checkbox" t:id="estimatedTides" value="filter.estimatedTides" />
- <label for="estimatedTides" title="${message:wao.ui.form.estimatedTides.description}">${message:wao.ui.form.estimatedTides}</label>
- </div>
- <div class="t-beaneditor-row aright">
- <input t:type="submit" class="ico search-32px" t:id="search" value="${message:wao.ui.action.filter}" title="${message:wao.ui.action.filter}" />
- <input t:type="submit" class="ico undo" t:id="reset" value="${message:wao.ui.action.resetFields}" title="${message:wao.ui.action.resetFields}" />
- </div>
- </div>
- </form>
- <!--</div>-->
- </div>
- </fieldset>
+ <! - -<t:label t:for="program" />:
+ <input t:type="select" t:id="program" t:model="programSelectModel" value="programId" />- - >
+ </div>
+ <div>
+ <label for="fishingGearDCF">${message:wao.ui.entity.fishingGearDCF} :</label>
+ <input t:type="select" t:id="fishingGearDCF" t:model="dcfGearSelectModel" value="fishingGearDCFId"/>
+ <label for="targetSpeciesDCF">${message:wao.ui.entity.targetSpeciesDCF} :</label>
+ <input t:type="select" t:id="targetSpeciesDCF" t:model="dcfSpeciesSelectModel" value="targetSpeciesDCFId"/>
+ </div>
+ <div class="filterRow">
+ <input t:type="checkbox" t:id="estimatedTides" value="filter.estimatedTides" />
+ <label for="estimatedTides" title="${message:wao.ui.form.estimatedTides.description}">${message:wao.ui.form.estimatedTides}</label>
+ </div>
+ <div class="t-beaneditor-row aright">
+ <input t:type="submit" class="ico search-32px" t:id="search" value="${message:wao.ui.action.filter}" title="${message:wao.ui.action.filter}" />
+ <input t:type="submit" class="ico undo" t:id="reset" value="${message:wao.ui.action.resetFields}" title="${message:wao.ui.action.resetFields}" />
+ </div>
+ </div>
+ </form>
+ <! - -</div> - ->
+ </div>
+ </fieldset-->
- <div class="mtop30" />
+ <t:samplingFilterComponent
+ t:id="filterComponent"
+ t:modelFactory="modelFactory"
+ t:legendMsg="${message:wao.ui.filters.filters}"/>
+ <div class="mtop30"/>
+
<!-- MENU : delegator -->
<div class="clearfix">
<div class="fleft" id="so-synthesis-menu">
1
0
[Suiviobsmer-commits] r1064 - in trunk/wao-ui/src/main/java/fr/ifremer/wao/ui: base pages
by sletellier@users.labs.libre-entreprise.org 15 Mar '11
by sletellier@users.labs.libre-entreprise.org 15 Mar '11
15 Mar '11
Author: sletellier
Date: 2011-03-15 17:26:14 +0000 (Tue, 15 Mar 2011)
New Revision: 1064
Log:
Introduce ModelFactory, deprectated AbstractFilteredPage delegate to this one
Added:
trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/base/ModelFactory.java
Modified:
trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/base/AbstractFilteredPage.java
trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Boats.java
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-15 15:40:11 UTC (rev 1063)
+++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/base/AbstractFilteredPage.java 2011-03-15 17:26:14 UTC (rev 1064)
@@ -27,7 +27,6 @@
import fr.ifremer.wao.WaoException;
import fr.ifremer.wao.bean.ConnectedUser;
import fr.ifremer.wao.bean.SamplingFilter;
-import fr.ifremer.wao.bean.SamplingFilterImpl;
import fr.ifremer.wao.entity.Company;
import fr.ifremer.wao.entity.FishingGearDCF;
import fr.ifremer.wao.entity.SampleRow;
@@ -40,13 +39,9 @@
import fr.ifremer.wao.service.ServiceUser;
import fr.ifremer.wao.ui.data.FiltersModel;
import fr.ifremer.wao.ui.data.GenericSelectModel;
-import org.apache.tapestry5.OptionModel;
import org.apache.tapestry5.SelectModel;
import org.apache.tapestry5.annotations.Persist;
-import org.apache.tapestry5.annotations.Property;
import org.apache.tapestry5.annotations.SessionState;
-import org.apache.tapestry5.internal.OptionModelImpl;
-import org.apache.tapestry5.internal.SelectModelImpl;
import org.apache.tapestry5.ioc.annotations.Inject;
import org.apache.tapestry5.ioc.services.PropertyAccess;
import org.slf4j.Logger;
@@ -113,47 +108,95 @@
private ServiceUser serviceUser;
@Persist
- private GenericSelectModel<SampleRow> sampleRowSelectModel;
+ private ModelFactory modelFactory;
- @Property
- private String sampleRowId;
-
- @Persist
- private SelectModel facadeSelectModel;
+ public boolean isObserverSelect() {
+ return getModelFactory().isObserverSelect();
+ }
- @Persist
- private SelectModel sectorSelectModel;
+ public boolean isProgramSelect() {
+ return getModelFactory().isProgramSelect();
+ }
- @Persist
- private GenericSelectModel<Company> companySelectModel;
+ public String getSampleRowId() {
+ return getModelFactory().getSampleRowId();
+ }
- @Property
- private String companyId;
+ public void setSampleRowId(String sampleRowId) {
+ getModelFactory().setSampleRowId(sampleRowId);
+ }
- @Persist
- private GenericSelectModel<WaoUser> observerSelectModel;
+ public String getCompanyId() {
+ return getModelFactory().getCompanyId();
+ }
- @Property
- private String observerId;
+ public void setCompanyId(String companyId) {
+ getModelFactory().setCompanyId(companyId);
+ }
- @Persist
- private SelectModel programSelectModel;
+ public String getObserverId() {
+ return getModelFactory().getObserverId();
+ }
- @Persist
- private boolean observerSelect;
+ public void setObserverId(String observerId) {
+ getModelFactory().setObserverId(observerId);
+ }
- @Persist
- private boolean programSelect;
+ public String getFishingGearDCFId() {
+ return getModelFactory().getFishingGearDCFId();
+ }
+ public void setFishingGearDCFId(String fishingGearDCFId) {
+ getModelFactory().setFishingGearDCFId(fishingGearDCFId);
+ }
+
+ public String getTargetSpeciesDCFId() {
+ return getModelFactory().getTargetSpeciesDCFId();
+ }
+
+ public void setTargetSpeciesDCFId(String targetSpeciesDCFId) {
+ getModelFactory().setTargetSpeciesDCFId(targetSpeciesDCFId);
+ }
+
+ public String getTerrestrialDistrictId() {
+ return getModelFactory().getTerrestrialDistrictId();
+ }
+
+ public void setTerrestrialDistrictId(String terrestrialDistrictId) {
+ getModelFactory().setTerrestrialDistrictId(terrestrialDistrictId);
+ }
+
+ public ModelFactory getModelFactory() {
+ if (modelFactory == null) {
+ modelFactory = new ModelFactory<SamplingFilter>(propertyAccess,
+ serviceReferential,
+ serviceSampling,
+ serviceBoat,
+ serviceUser) {
+
+ @Override
+ public SamplingFilter getFilter() {
+ return AbstractFilteredPage.this.getFilter();
+ }
+
+ @Override
+ protected boolean isAvailableDataForFiltersOnly() {
+ return AbstractFilteredPage.this.isAvailableDataForFiltersOnly();
+ }
+ };
+ }
+ return modelFactory;
+ }
+
public void onSelectedFromAddSampleRowCode() {
- if (sampleRowId != null) {
+ if (getSampleRowId() != null) {
List<SampleRow> rows = getFilter().getSampleRows();
if (rows == null) {
rows = new ArrayList<SampleRow>();
getFilter().setSampleRows(rows);
}
- SampleRow sampleRow = getSampleRowSelectModel().findObject(sampleRowId);
+ SampleRow sampleRow = getSampleRowSelectModel().findObject(getSampleRowId());
if ( ! rows.contains(sampleRow)) {
rows.add(sampleRow);
}
@@ -163,8 +206,8 @@
}
public void onSelectedFromRemoveSampleRowCode() {
- if (sampleRowId != null) {
- getFilter().getSampleRows().remove(getSampleRowSelectModel().findObject(sampleRowId));
+ if (getSampleRowId() != null) {
+ getFilter().getSampleRows().remove(getSampleRowSelectModel().findObject(getSampleRowId()));
edited = true;
}
}
@@ -185,229 +228,68 @@
}
/**
- * 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
+ * @see ModelFactory#initSelectFilters(fr.ifremer.wao.bean.ConnectedUser, boolean, boolean, boolean)
*/
protected void initSelectFilters(boolean companySelect,
boolean observerSelect, boolean programSelect) throws WaoException {
- this.observerSelect = observerSelect;
- this.programSelect = programSelect;
- if (getFilter().getSampleRow() != null) {
- if (log.isDebugEnabled()) {
- log.debug("SampleRow filtered : " + getFilter().getSampleRow());
- }
- sampleRowId = getFilter().getSampleRow().getTopiaId();
- }
-
- if (user.isAdmin() && companySelect) {
- resetCompanySelect();
- if (getFilter().getCompany() != null) {
- companyId = getFilter().getCompany().getTopiaId();
- }
- }
-// else if (!user.isAdmin()) {
-// if (log.isDebugEnabled()) {
-// log.debug("Company filtered : " + user.getCompany());
-// }
-// getFilter().setCompany(user.getCompany());
-// }
-
- if (observerSelect) {
- observerSelectModel = null;
- getObserverSelectModel();
-
- if (getFilter().getObserver() != null) {
- observerId = getFilter().getObserver().getTopiaId();
- }
- }
-
- if (programSelect) {
- programSelectModel = null;
- getProgramSelectModel();
- }
-
- resetFacadeSelect();
- resetSectorSelect();
- resetSampleRowSelect();
+ getModelFactory().initSelectFilters(user, companySelect, observerSelect, programSelect);
}
- protected void resetCompanySelect() throws WaoException {
- companySelectModel = null;
- getCompanySelectModel();
- }
-
- protected void resetFacadeSelect() throws WaoException {
- facadeSelectModel = null;
- getFacadeSelectModel();
- }
-
- protected void resetSectorSelect() throws WaoException {
- sectorSelectModel = null;
- getSectorSelectModel();
- }
-
- protected void resetSampleRowSelect() throws WaoException {
- sampleRowSelectModel = null;
- getSampleRowSelectModel();
- }
-
/**
- * Get select model for fishingZone facade. Depends on company set in
- * filter.
- *
- * @return the SelectModel for facade names
- * @throws WaoException
+ * @see ModelFactory#getFacadeSelectModel()
*/
public SelectModel getFacadeSelectModel() throws WaoException {
- if (facadeSelectModel == null) {
- List<OptionModel> options = new ArrayList<OptionModel>();
- for (String facadeName : serviceReferential.getFacades(getFilter())) {
- options.add(new OptionModelImpl(facadeName,facadeName));
- }
- facadeSelectModel = new SelectModelImpl(null, options);
- }
- return facadeSelectModel;
+ return getModelFactory().getFacadeSelectModel();
}
/**
- * Get select model for fishingZone sector. Depends on facadeName and
- * company set in filter.
- *
- * @return the SelectModel for sector names
- * @throws WaoException
+ * @see ModelFactory#getSectorSelectModel()
*/
public SelectModel getSectorSelectModel() throws WaoException {
- if (sectorSelectModel == null) {
- List<OptionModel> options = new ArrayList<OptionModel>();
- for (String sectorName : serviceReferential.getSectors(getFilter())) {
- options.add(new OptionModelImpl(sectorName,sectorName));
- }
- sectorSelectModel = new SelectModelImpl(null, options);
- }
- return sectorSelectModel;
+ return getModelFactory().getSectorSelectModel();
}
/**
- * Get select model for sampleRows. Depends on filter (Sampling part only).
- * The sampleRow set from filter is temporarly extracted to avoid returning
- * only one element in the select.
- *
- * @return the GenericSelectModel<SampleRow> for sampleRows
- * @throws WaoException
+ * @see ModelFactory#getSampleRowSelectModel()
*/
public GenericSelectModel<SampleRow> getSampleRowSelectModel() throws WaoException {
- if (sampleRowSelectModel == null) {
- // WARN : no use of sampleRow filter
-
- List<SampleRow> rowsFiltered = getFilter().getSampleRows();
- getFilter().setSampleRows(null);
- List<SampleRow> sampleRows = serviceSampling.getSampleRowsByFilter(getFilter());
- getFilter().setSampleRows(rowsFiltered);
-
- sampleRowSelectModel = new GenericSelectModel<SampleRow>(sampleRows, SampleRow.class,
- SampleRow.PROPERTY_CODE, SampleRow.TOPIA_ID, propertyAccess);
- }
- return sampleRowSelectModel;
+ return getModelFactory().getSampleRowSelectModel();
}
/**
- * Get select model for companies. Depends on
- * {@link #isAvailableDataForFiltersOnly()} () } to return only activated
- * companies. This select model is only used by admin users.
- *
- * @return the GenericSelectModel<Company> for companies
- * @throws WaoException
+ * @see ModelFactory#getCompanySelectModel()
*/
public GenericSelectModel<Company> getCompanySelectModel() throws WaoException {
- if (companySelectModel == null) {
- List<Company> companies = serviceUser.getCompanies(isAvailableDataForFiltersOnly());
- companySelectModel = new GenericSelectModel<Company>(companies,Company.class,
- Company.PROPERTY_NAME, Company.TOPIA_ID, propertyAccess);
- }
- return companySelectModel;
+ return getModelFactory().getCompanySelectModel();
}
/**
- * Get the select model for observers. Depends on
- * {@link #isAvailableDataForFiltersOnly() } to return only activated
- * companies.
- *
- * @return the GenericSelectModel<WaoUser> for observers
- * @throws WaoException
+ * @see ModelFactory#getObserverSelectModel()
*/
public GenericSelectModel<WaoUser> getObserverSelectModel() throws WaoException {
- if (observerSelectModel == null) {
- List<WaoUser> observers =
- serviceUser.getObservers(getFilter().getCompany(),
- isAvailableDataForFiltersOnly());
- observerSelectModel = new GenericSelectModel<WaoUser>(observers,WaoUser.class,
- "fullName", "topiaId", propertyAccess);
- }
- return observerSelectModel;
+ return getModelFactory().getObserverSelectModel();
}
/**
- * Get select model for sampleRow program. Depends on company set in
- * filter.
- *
- * @return the SelectModel for program names
- * @throws WaoException
+ * @see ModelFactory#getProgramSelectModel()
*/
public SelectModel getProgramSelectModel() throws WaoException {
- if (programSelectModel == null) {
- List<OptionModel> options = new ArrayList<OptionModel>();
- for (String programName : serviceSampling.getPrograms(getFilter().getCompany())) {
- options.add(new OptionModelImpl(programName, programName));
- }
- programSelectModel = new SelectModelImpl(null, options);
- }
- return programSelectModel;
+ return getModelFactory().getProgramSelectModel();
}
- @Property
- @Persist
- private String fishingGearDCFId;
-
- private GenericSelectModel<FishingGearDCF> dcfGearSelectModel;
-
+ /**
+ * @see ModelFactory#getDcfGearSelectModel()
+ */
public GenericSelectModel<FishingGearDCF> getDcfGearSelectModel() throws WaoException {
- if (dcfGearSelectModel == null) {
- // 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,
- "fullDescription", FishingGearDCF.TOPIA_ID, propertyAccess);
- }
- return dcfGearSelectModel;
+ return getModelFactory().getDcfGearSelectModel();
}
- @Property
- @Persist
- private String targetSpeciesDCFId;
-
- private GenericSelectModel<TargetSpeciesDCF> dcfSpeciesSelectModel;
-
+ /**
+ * @see ModelFactory#getDcfSpeciesSelectModel()
+ */
public GenericSelectModel<TargetSpeciesDCF> getDcfSpeciesSelectModel() throws WaoException {
- if (dcfSpeciesSelectModel == null) {
- // 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,
- "fullDescription", TargetSpeciesDCF.TOPIA_ID, propertyAccess);
- }
- return dcfSpeciesSelectModel;
+ return getModelFactory().getDcfSpeciesSelectModel();
}
protected abstract SamplingFilter getFilter() throws WaoException;
@@ -424,6 +306,7 @@
return results.toArray(new String[results.size()]);
}
+
/**
* Called when search submit button is pressed. This method is useful to
* refresh all filters data from selects.
@@ -433,19 +316,19 @@
public void onSelectedFromSearch() throws WaoException {
if (log.isDebugEnabled()) {
log.debug("REFRESH FILTERS DATA");
- log.debug("observerSelect : " + observerSelect);
+ log.debug("observerSelect : " + isObserverSelect());
}
//SampleRow row = getSampleRowSelectModel().findObject(sampleRowId);
// getFilter().setSampleRow(row);
if (user.isAdmin()) {
- Company company = getCompanySelectModel().findObject(companyId);
+ Company company = getCompanySelectModel().findObject(getCompanyId());
getFilter().setCompany(company);
} else {
getFilter().setCompany(user.getCompany());
}
- if (observerSelect) {
- WaoUser observer = getObserverSelectModel().findObject(observerId);
+ if (isObserverSelect()) {
+ WaoUser observer = getObserverSelectModel().findObject(getObserverId());
if (log.isDebugEnabled()) {
log.debug("Observer selected : " +
(observer != null ? observer.getFullName() : "null"));
@@ -453,15 +336,17 @@
getFilter().setObserver(observer);
}
+ String fishingGearDCFId = getFishingGearDCFId();
if (fishingGearDCFId != null) {
FishingGearDCF fishingGearDCF = getDcfGearSelectModel().findObject(fishingGearDCFId);
getFilter().setFishingGearDCF(fishingGearDCF);
}
+ String targetSpeciesDCFId = getTargetSpeciesDCFId();
if (targetSpeciesDCFId != null) {
TargetSpeciesDCF targetSpeciesDCF = getDcfSpeciesSelectModel().findObject(targetSpeciesDCFId);
getFilter().setTargetSpeciesDCF(targetSpeciesDCF);
}
- updateLocation(terrestrialDistrictId);
+ updateLocation(getTerrestrialDistrictId());
}
public void updateLocation(String terrestrialDistrictId) {
@@ -487,14 +372,14 @@
// Reset programs (the behavior is needed even if programSelect is false)
getFilter().setProgramName(null);
onSelectedFromRefreshByProgram();
- if (observerSelect) {
+ if (isObserverSelect()) {
// Reset observers
getFilter().setObserver(null);
- observerSelectModel = null;
+ getModelFactory().resetObserverSelectModel();
getObserverSelectModel();
}
- if (programSelect) {
- programSelectModel = null;
+ if (isProgramSelect()) {
+ getModelFactory().resetProgramSelectModel();
getProgramSelectModel();
}
edited = true;
@@ -513,7 +398,7 @@
// Reset facades
getFilter().setFacadeName(null);
onSelectedFromRefreshByFacade();
- resetFacadeSelect();
+ getModelFactory().resetFacadeSelect();
}
/**
@@ -529,7 +414,7 @@
// Reset sectors
getFilter().setSectorName(null);
onSelectedFromRefreshBySector();
- resetSectorSelect();
+ getModelFactory().resetSectorSelect();
}
/**
@@ -546,7 +431,7 @@
onSelectedFromSearch();
// Reset sampleRows;
getFilter().setSampleRow(null);
- resetSampleRowSelect();
+ getModelFactory().resetSampleRowSelect();
edited = true;
}
@@ -559,18 +444,10 @@
return edited;
}
- @Property
- @Persist
- private String terrestrialDistrictId;
-
- private GenericSelectModel<TerrestrialLocation> terrestrialLocationSelectModel;
-
+ /**
+ * @see ModelFactory#getTerrestrialDistrictSelectModel()
+ */
public GenericSelectModel<TerrestrialLocation> getTerrestrialDistrictSelectModel() throws WaoException {
- if (terrestrialLocationSelectModel == null) {
- List<TerrestrialLocation> districts = serviceReferential.getAllTerrestrialDistricts(new SamplingFilterImpl());
- terrestrialLocationSelectModel = new GenericSelectModel<TerrestrialLocation>(districts, TerrestrialLocation.class,
- "description", SampleRow.TOPIA_ID, propertyAccess);
- }
- return terrestrialLocationSelectModel;
+ return getModelFactory().getTerrestrialDistrictSelectModel();
}
}
Added: 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 (rev 0)
+++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/base/ModelFactory.java 2011-03-15 17:26:14 UTC (rev 1064)
@@ -0,0 +1,385 @@
+package fr.ifremer.wao.ui.base;
+
+import fr.ifremer.wao.WaoException;
+import fr.ifremer.wao.bean.ConnectedUser;
+import fr.ifremer.wao.bean.SamplingFilter;
+import fr.ifremer.wao.bean.SamplingFilterImpl;
+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.TerrestrialLocation;
+import fr.ifremer.wao.entity.WaoUser;
+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.data.GenericSelectModel;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.tapestry5.OptionModel;
+import org.apache.tapestry5.SelectModel;
+import org.apache.tapestry5.internal.OptionModelImpl;
+import org.apache.tapestry5.internal.SelectModelImpl;
+import org.apache.tapestry5.ioc.services.PropertyAccess;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author sletellier
+ */
+public abstract class ModelFactory <E extends SamplingFilter> {
+
+ /**
+ * Logger.
+ */
+ private static final Log log = LogFactory.getLog(ModelFactory.class);
+
+ protected PropertyAccess propertyAccess;
+
+ private boolean observerSelect;
+ private boolean programSelect;
+
+ /**
+ * Services
+ */
+ protected ServiceReferential serviceReferential;
+ protected ServiceSampling serviceSampling;
+ protected ServiceBoat serviceBoat;
+ protected ServiceUser serviceUser;
+
+ /**
+ * Generic select models
+ */
+ protected GenericSelectModel<SampleRow> sampleRowSelectModel;
+ protected GenericSelectModel<TerrestrialLocation> terrestrialLocationSelectModel;
+ protected GenericSelectModel<Company> companySelectModel;
+ protected GenericSelectModel<WaoUser> observerSelectModel;
+ protected GenericSelectModel<FishingGearDCF> dcfGearSelectModel;
+ protected GenericSelectModel<TargetSpeciesDCF> dcfSpeciesSelectModel;
+
+ /**
+ * Select models
+ */
+ protected SelectModel facadeSelectModel;
+ protected SelectModel sectorSelectModel;
+ protected SelectModel programSelectModel;
+
+ /**
+ * Id
+ */
+ protected String sampleRowId;
+ protected String companyId;
+ protected String observerId;
+ protected String fishingGearDCFId;
+ protected String targetSpeciesDCFId;
+ protected String terrestrialDistrictId;
+
+ public ModelFactory(PropertyAccess propertyAccess, ServiceReferential serviceReferential, ServiceSampling serviceSampling, ServiceBoat serviceBoat, ServiceUser serviceUser) {
+ this.propertyAccess = propertyAccess;
+
+ this.serviceReferential = serviceReferential;
+ this.serviceSampling = serviceSampling;
+ this.serviceBoat = serviceBoat;
+ this.serviceUser = serviceUser;
+ }
+
+ public boolean isObserverSelect() {
+ return observerSelect;
+ }
+
+ public boolean isProgramSelect() {
+ return programSelect;
+ }
+
+ public String getSampleRowId() {
+ return sampleRowId;
+ }
+
+ public void setSampleRowId(String sampleRowId) {
+ this.sampleRowId = sampleRowId;
+ }
+
+ public String getCompanyId() {
+ return companyId;
+ }
+
+ public void setCompanyId(String companyId) {
+ this.companyId = companyId;
+ }
+
+ public String getObserverId() {
+ return observerId;
+ }
+
+ public void setObserverId(String observerId) {
+ this.observerId = observerId;
+ }
+
+ public String getFishingGearDCFId() {
+ return fishingGearDCFId;
+ }
+
+ public void setFishingGearDCFId(String fishingGearDCFId) {
+ this.fishingGearDCFId = fishingGearDCFId;
+ }
+
+ public String getTargetSpeciesDCFId() {
+ return targetSpeciesDCFId;
+ }
+
+ public void setTargetSpeciesDCFId(String targetSpeciesDCFId) {
+ this.targetSpeciesDCFId = targetSpeciesDCFId;
+ }
+
+ public String getTerrestrialDistrictId() {
+ return terrestrialDistrictId;
+ }
+
+ public void setTerrestrialDistrictId(String terrestrialDistrictId) {
+ this.terrestrialDistrictId = terrestrialDistrictId;
+ }
+
+ public void resetCompanySelect() throws WaoException {
+ companySelectModel = null;
+ getCompanySelectModel();
+ }
+
+ public void resetFacadeSelect() throws WaoException {
+ facadeSelectModel = null;
+ getFacadeSelectModel();
+ }
+
+ public void resetSectorSelect() throws WaoException {
+ sectorSelectModel = null;
+ getSectorSelectModel();
+ }
+
+ public void resetSampleRowSelect() throws WaoException {
+ sampleRowSelectModel = null;
+ getSampleRowSelectModel();
+ }
+
+ public void resetObserverSelectModel() {
+ observerSelectModel = null;
+ }
+
+ public void resetProgramSelectModel() {
+ programSelectModel = null;
+ }
+
+
+ /**
+ * 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
+ */
+ public void initSelectFilters(ConnectedUser user, boolean companySelect,
+ boolean observerSelect, boolean programSelect) throws WaoException {
+
+ 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) {
+ resetCompanySelect();
+ 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();
+ }
+
+ resetFacadeSelect();
+ resetSectorSelect();
+ resetSampleRowSelect();
+ }
+
+ public abstract E getFilter();
+
+ /**
+ * Used to show only active company and observers.
+ *
+ * @return true if only active users will be showed, false otherwise
+ */
+ protected abstract boolean isAvailableDataForFiltersOnly();
+
+ /**
+ * Get select model for fishingZone facade. Depends on company set in
+ * filter.
+ *
+ * @return the SelectModel for facade names
+ * @throws WaoException
+ */
+ public SelectModel getFacadeSelectModel() throws WaoException {
+ if (facadeSelectModel == null) {
+ List<OptionModel> options = new ArrayList<OptionModel>();
+ for (String facadeName : serviceReferential.getFacades(getFilter())) {
+ options.add(new OptionModelImpl(facadeName,facadeName));
+ }
+ facadeSelectModel = new SelectModelImpl(null, options);
+ }
+ return facadeSelectModel;
+ }
+
+ /**
+ * Get select model for fishingZone sector. Depends on facadeName and
+ * company set in filter.
+ *
+ * @return the SelectModel for sector names
+ * @throws WaoException
+ */
+ public SelectModel getSectorSelectModel() throws WaoException {
+ if (sectorSelectModel == null) {
+ List<OptionModel> options = new ArrayList<OptionModel>();
+ for (String sectorName : serviceReferential.getSectors(getFilter())) {
+ options.add(new OptionModelImpl(sectorName,sectorName));
+ }
+ sectorSelectModel = new SelectModelImpl(null, options);
+ }
+ return sectorSelectModel;
+ }
+
+ /**
+ * Get select model for sampleRows. Depends on filter (Sampling part only).
+ * The sampleRow set from filter is temporarly extracted to avoid returning
+ * only one element in the select.
+ *
+ * @return the GenericSelectModel<SampleRow> for sampleRows
+ * @throws WaoException
+ */
+ public GenericSelectModel<SampleRow> getSampleRowSelectModel() throws WaoException {
+ if (sampleRowSelectModel == null) {
+ // WARN : no use of sampleRow filter
+
+ List<SampleRow> rowsFiltered = getFilter().getSampleRows();
+ getFilter().setSampleRows(null);
+ List<SampleRow> sampleRows = serviceSampling.getSampleRowsByFilter(getFilter());
+ getFilter().setSampleRows(rowsFiltered);
+
+ sampleRowSelectModel = new GenericSelectModel<SampleRow>(sampleRows, SampleRow.class,
+ SampleRow.PROPERTY_CODE, SampleRow.TOPIA_ID, propertyAccess);
+ }
+ return sampleRowSelectModel;
+ }
+
+ /**
+ * Get select model for companies. Depends on
+ * {@link #isAvailableDataForFiltersOnly()} () } to return only activated
+ * companies. This select model is only used by admin users.
+ *
+ * @return the GenericSelectModel<Company> for companies
+ * @throws WaoException
+ */
+ public GenericSelectModel<Company> getCompanySelectModel() throws WaoException {
+ if (companySelectModel == null) {
+ List<Company> companies = serviceUser.getCompanies(isAvailableDataForFiltersOnly());
+ companySelectModel = new GenericSelectModel<Company>(companies,Company.class,
+ Company.PROPERTY_NAME, Company.TOPIA_ID, propertyAccess);
+ }
+ return companySelectModel;
+ }
+
+ /**
+ * Get the select model for observers. Depends on
+ * {@link #isAvailableDataForFiltersOnly() } to return only activated
+ * companies.
+ *
+ * @return the GenericSelectModel<WaoUser> for observers
+ * @throws WaoException
+ */
+ public GenericSelectModel<WaoUser> getObserverSelectModel() throws WaoException {
+ if (observerSelectModel == null) {
+ List<WaoUser> observers =
+ serviceUser.getObservers(getFilter().getCompany(),
+ isAvailableDataForFiltersOnly());
+ observerSelectModel = new GenericSelectModel<WaoUser>(observers,WaoUser.class,
+ "fullName", "topiaId", propertyAccess);
+ }
+ return observerSelectModel;
+ }
+
+ /**
+ * Get select model for sampleRow program. Depends on company set in
+ * filter.
+ *
+ * @return the SelectModel for program names
+ * @throws WaoException
+ */
+ public SelectModel getProgramSelectModel() throws WaoException {
+ if (programSelectModel == null) {
+ List<OptionModel> options = new ArrayList<OptionModel>();
+ for (String programName : serviceSampling.getPrograms(getFilter().getCompany())) {
+ options.add(new OptionModelImpl(programName, programName));
+ }
+ programSelectModel = new SelectModelImpl(null, options);
+ }
+ return programSelectModel;
+ }
+
+ public GenericSelectModel<FishingGearDCF> getDcfGearSelectModel() throws WaoException {
+ if (dcfGearSelectModel == null) {
+ // 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,
+ "fullDescription", FishingGearDCF.TOPIA_ID, propertyAccess);
+ }
+ return dcfGearSelectModel;
+ }
+
+ public GenericSelectModel<TargetSpeciesDCF> getDcfSpeciesSelectModel() throws WaoException {
+ if (dcfSpeciesSelectModel == null) {
+ // 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,
+ "fullDescription", TargetSpeciesDCF.TOPIA_ID, propertyAccess);
+ }
+ return dcfSpeciesSelectModel;
+ }
+
+ public GenericSelectModel<TerrestrialLocation> getTerrestrialDistrictSelectModel() throws WaoException {
+ if (terrestrialLocationSelectModel == null) {
+ List<TerrestrialLocation> districts = serviceReferential.getAllTerrestrialDistricts(new SamplingFilterImpl());
+ terrestrialLocationSelectModel = new GenericSelectModel<TerrestrialLocation>(districts, TerrestrialLocation.class,
+ "description", SampleRow.TOPIA_ID, propertyAccess);
+ }
+ return terrestrialLocationSelectModel;
+ }
+}
Modified: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Boats.java
===================================================================
--- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Boats.java 2011-03-15 15:40:11 UTC (rev 1063)
+++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Boats.java 2011-03-15 17:26:14 UTC (rev 1064)
@@ -790,7 +790,7 @@
// WARNING :: Reset sampleRow select for edition mode, no limit for
// showing sampleRows instead of filters
getFilter().setNbMonthFinishedFromToday(null);
- resetSampleRowSelect();
+ getModelFactory().resetSampleRowSelect();
getFilter().setNbMonthFinishedFromToday(-1);
}
return boatInfosZone.getBody();
1
0