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] r1155 - 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 07 Apr '11
by sletellier@users.labs.libre-entreprise.org 07 Apr '11
07 Apr '11
Author: sletellier
Date: 2011-04-07 09:49:29 +0000 (Thu, 07 Apr 2011)
New Revision: 1155
Log:
Move filterManagers on filterComponents
Removed:
trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/base/BoatFilterManager.java
trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/base/ContactFilterManager.java
trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/base/FilterManager.java
trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/base/SamplingFilterManager.java
Modified:
trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/components/BoatFilterComponent.java
trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/components/ContactFilterComponent.java
trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/components/FilterComponent.java
trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/components/SamplingFilterComponent.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/ObsDebSamplingPlan.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/Boats.tml
trunk/wao-ui/src/main/webapp/Contacts.tml
trunk/wao-ui/src/main/webapp/ObsDebSamplingPlan.tml
trunk/wao-ui/src/main/webapp/SamplingPlan.tml
trunk/wao-ui/src/main/webapp/Synthesis.tml
Deleted: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/base/BoatFilterManager.java
===================================================================
--- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/base/BoatFilterManager.java 2011-04-07 08:43:40 UTC (rev 1154)
+++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/base/BoatFilterManager.java 2011-04-07 09:49:29 UTC (rev 1155)
@@ -1,109 +0,0 @@
-/*
- * #%L
- * Wao :: Web Interface
- *
- * $Id$
- * $HeadURL$
- * %%
- * Copyright (C) 2009 - 2011 Ifremer
- * %%
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- * #L%
- */
-package fr.ifremer.wao.ui.base;
-
-import fr.ifremer.wao.bean.BoatFilter;
-import fr.ifremer.wao.bean.BoatFilterValues;
-import fr.ifremer.wao.bean.ConnectedUser;
-import fr.ifremer.wao.entity.SampleRow;
-import fr.ifremer.wao.service.ServiceBoat;
-
-import java.util.List;
-
-/**
- * @author sletellier <letellier at codelutin.com>
- */
-public class BoatFilterManager extends FilterManager<BoatFilter> {
-
- protected ServiceBoat serviceBoat;
-
- /*
- * Datas
- */
- protected BoatFilterValues possibleValuesForFilter;
-
- protected SampleRow sampleRow;
-
- public BoatFilterManager(ConnectedUser user,
- ServiceBoat serviceBoat) {
-
- super(user);
-
- this.serviceBoat = serviceBoat;
- }
-
- @Override
- protected boolean isAvailableDataForFiltersOnly() {
- return false;
- }
-
- @Override
- public void resetFilter() {
- sampleRow = null;
- filter = serviceBoat.newBoatFilter(user);
- }
-
- @Override
- public void updateSearchFields() {
- updatePossibleValuesForFilter();
- }
-
- public BoatFilterValues getPossibleValuesForFilter() {
- return getPossibleValuesForFilter(false);
- }
-
- public BoatFilterValues updatePossibleValuesForFilter() {
- return getPossibleValuesForFilter(true);
- }
-
- protected BoatFilterValues getPossibleValuesForFilter(boolean update) {
- if (update || possibleValuesForFilter == null) {
- possibleValuesForFilter = serviceBoat.getPossibleValuesForFilter(getFilter());
- }
- return possibleValuesForFilter;
- }
-
- public String[] getShipOwnerNamesContains(String input) {
- List<String> results = serviceBoat.getShipOwnerNamesContains(input);
- return results.toArray(new String[results.size()]);
- }
-
- public String[] getBoatNamesStartWith(String input) {
- List<String> results = serviceBoat.getBoatNamesStartWith(input);
- return results.toArray(new String[results.size()]);
- }
-
- public SampleRow getSampleRow() {
- return sampleRow;
- }
-
- public void setSampleRow(SampleRow sampleRow) {
- getFilter().setSampleRow(sampleRow);
- getFilter().setSampleRowExists(true);
- }
-
- public boolean isSampleRowExists() {
- return getFilter().isSampleRowExists();
- }
-}
Deleted: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/base/ContactFilterManager.java
===================================================================
--- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/base/ContactFilterManager.java 2011-04-07 08:43:40 UTC (rev 1154)
+++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/base/ContactFilterManager.java 2011-04-07 09:49:29 UTC (rev 1155)
@@ -1,67 +0,0 @@
-package fr.ifremer.wao.ui.base;
-
-import fr.ifremer.wao.bean.ConnectedUser;
-import fr.ifremer.wao.bean.ContactFilter;
-import fr.ifremer.wao.bean.ContactFilterValues;
-import fr.ifremer.wao.bean.ContactState;
-import fr.ifremer.wao.service.ServiceContact;
-import org.apache.tapestry5.SelectModel;
-import org.apache.tapestry5.ioc.Messages;
-import org.apache.tapestry5.util.EnumSelectModel;
-
-import java.util.List;
-
-/**
- * @author sletellier <letellier at codelutin.com>
- */
-public class ContactFilterManager extends FilterManager<ContactFilter> {
-
- protected ServiceContact serviceContact;
-
- /*
- * Datas
- */
- protected ContactFilterValues possibleValuesForFilter;
-
- public ContactFilterManager(ConnectedUser user, ServiceContact serviceContact) {
- super(user);
- this.serviceContact = serviceContact;
- }
-
- @Override
- public void resetFilter() {
- filter = serviceContact.newContactFilter(user);
- }
-
- @Override
- protected boolean isAvailableDataForFiltersOnly() {
- return false;
- }
-
- @Override
- public void updateSearchFields() {
- updatePossibleValuesForFilter();
- }
-
- public ContactFilterValues getPossibleValuesForFilter() {
- return getPossibleValuesForFilter(false);
- }
-
- public ContactFilterValues updatePossibleValuesForFilter() {
- return getPossibleValuesForFilter(true);
- }
-
- protected ContactFilterValues getPossibleValuesForFilter(boolean update) {
- if (update || possibleValuesForFilter == null) {
- possibleValuesForFilter = serviceContact.getPossibleValuesForFilter(getFilter());
- }
- return possibleValuesForFilter;
- }
-
- public SelectModel getContactStateSelectModel(Messages messages) {
- List<ContactState> allowedStates = ContactState.getAllowedStates(user.getProfile().getObsProgram());
- return new EnumSelectModel(ContactState.class, messages,
- // just convert list to array
- allowedStates.toArray(new ContactState[allowedStates.size()]));
- }
-}
Deleted: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/base/FilterManager.java
===================================================================
--- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/base/FilterManager.java 2011-04-07 08:43:40 UTC (rev 1154)
+++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/base/FilterManager.java 2011-04-07 09:49:29 UTC (rev 1155)
@@ -1,76 +0,0 @@
-/*
- * #%L
- * Wao :: Web Interface
- *
- * $Id$
- * $HeadURL$
- * %%
- * Copyright (C) 2009 - 2011 Ifremer
- * %%
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- * #L%
- */
-package fr.ifremer.wao.ui.base;
-
-import fr.ifremer.wao.bean.ConnectedUser;
-import fr.ifremer.wao.bean.SamplingFilter;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * @author sletellier <letellier at codelutin.com>
- */
-public abstract class FilterManager<E extends SamplingFilter> {
-
- /**
- * Logger.
- */
- private static final Logger log = LoggerFactory.getLogger(FilterManager.class);
-
- protected ConnectedUser user;
-
- protected E filter;
-
- public FilterManager(ConnectedUser user) {
- this.user = user;
- }
-
- public ConnectedUser getUser() {
- return user;
- }
-
- public E getFilter() {
- if (filter == null) {
- resetFilter();
- }
- return filter;
- }
-
- /**
- * 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
- */
- protected abstract boolean isAvailableDataForFiltersOnly();
-
- /**
- * Used to update search fields
- */
- public abstract void updateSearchFields();
-}
Deleted: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/base/SamplingFilterManager.java
===================================================================
--- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/base/SamplingFilterManager.java 2011-04-07 08:43:40 UTC (rev 1154)
+++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/base/SamplingFilterManager.java 2011-04-07 09:49:29 UTC (rev 1155)
@@ -1,90 +0,0 @@
-/*
- * #%L
- * Wao :: Web Interface
- *
- * $Id$
- * $HeadURL$
- * %%
- * Copyright (C) 2009 - 2011 Ifremer
- * %%
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- * #L%
- */
-package fr.ifremer.wao.ui.base;
-
-import fr.ifremer.wao.bean.ConnectedUser;
-import fr.ifremer.wao.bean.SamplingFilter;
-import fr.ifremer.wao.bean.SamplingFilterValues;
-import fr.ifremer.wao.service.ServiceSampling;
-import org.nuiton.util.PeriodDates;
-
-/**
- * @author sletellier <letellier at codelutin.com>
- */
-public class SamplingFilterManager extends FilterManager<SamplingFilter> {
-
- /*
- * Services
- */
- protected ServiceSampling serviceSampling;
-
- /*
- * Datas
- */
- protected SamplingFilterValues possibleValuesForFilter;
-
- public SamplingFilterManager(ConnectedUser user,
- ServiceSampling serviceSampling) {
-
- super(user);
-
- this.serviceSampling = serviceSampling;
- }
-
- @Override
- protected boolean isAvailableDataForFiltersOnly() {
- return false;
- }
-
- @Override
- public void resetFilter() {
- // Don't reset period in filters
- PeriodDates period = (filter == null ? null : filter.getPeriod());
- filter = serviceSampling.newSamplingFilter(user);
-
- if (period != null) {
- filter.setPeriod(period);
- }
- }
-
- @Override
- public void updateSearchFields() {
- updatePossibleValuesForFilter();
- }
-
- public SamplingFilterValues getPossibleValuesForFilter() {
- return getPossibleValuesForFilter(false);
- }
-
- public SamplingFilterValues updatePossibleValuesForFilter() {
- return getPossibleValuesForFilter(true);
- }
-
- protected SamplingFilterValues getPossibleValuesForFilter(boolean update) {
- if (update || possibleValuesForFilter == null) {
- possibleValuesForFilter = serviceSampling.getPossibleValuesForFilter(getFilter());
- }
- return possibleValuesForFilter;
- }
-}
Modified: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/components/BoatFilterComponent.java
===================================================================
--- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/components/BoatFilterComponent.java 2011-04-07 08:43:40 UTC (rev 1154)
+++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/components/BoatFilterComponent.java 2011-04-07 09:49:29 UTC (rev 1155)
@@ -2,37 +2,99 @@
import fr.ifremer.wao.WaoException;
import fr.ifremer.wao.bean.BoatFilter;
-import fr.ifremer.wao.bean.SamplingFilterValues;
-import fr.ifremer.wao.ui.base.BoatFilterManager;
+import fr.ifremer.wao.bean.BoatFilterValues;
+import fr.ifremer.wao.entity.SampleRow;
+import fr.ifremer.wao.service.ServiceBoat;
import org.apache.tapestry5.annotations.InjectComponent;
+import org.apache.tapestry5.annotations.Parameter;
+import org.apache.tapestry5.annotations.Persist;
+import java.util.List;
+
/**
* @author sletellier <letellier at codelutin.com>
*/
-public class BoatFilterComponent extends FilterComponent<BoatFilter, BoatFilterManager> {
+public class BoatFilterComponent extends FilterComponent<BoatFilter> {
@InjectComponent
private FeedBack filterFeedback;
- public SamplingFilterValues getPossibleValuesForFilter() {
+ @Parameter(required = true)
+ private ServiceBoat serviceBoat;
+ /*
+ * Datas
+ */
+ @Persist
+ private BoatFilterValues possibleValuesForFilter;
+
+ @Persist
+ private SampleRow sampleRow;
+
+ @Override
+ protected boolean isAvailableDataForFiltersOnly() {
+ return false;
+ }
+
+ @Override
+ public void resetFilter() {
+ sampleRow = null;
+ setFilter(serviceBoat.newBoatFilter(getUser()));
+ }
+
+ @Override
+ public void updateSearchFields() {
+ updatePossibleValuesForFilter();
+ }
+
+ public BoatFilterValues getPossibleValuesForFilter() {
// Manage sampleRow from context
- if (getFilterManager().isSampleRowExists()) {
- filterFeedback.addInfo("Vous êtes en cours de sélection d'un navire pour la ligne du plan " + getFilterManager().getSampleRow().getCode());
+ if (isSampleRowExists()) {
+ filterFeedback.addInfo("Vous êtes en cours de sélection d'un navire pour la ligne du plan " + getSampleRow().getCode());
}
- return getFilterManager().getPossibleValuesForFilter();
+ return getPossibleValuesForFilter(false);
}
+ public BoatFilterValues updatePossibleValuesForFilter() {
+ return getPossibleValuesForFilter(true);
+ }
+
+ protected BoatFilterValues getPossibleValuesForFilter(boolean update) {
+ if (update || possibleValuesForFilter == null) {
+ possibleValuesForFilter = serviceBoat.getPossibleValuesForFilter(getFilter());
+ }
+ return possibleValuesForFilter;
+ }
+
+ public String[] getShipOwnerNamesContains(String input) {
+ List<String> results = serviceBoat.getShipOwnerNamesContains(input);
+ return results.toArray(new String[results.size()]);
+ }
+
+ public String[] getBoatNamesStartWith(String input) {
+ List<String> results = serviceBoat.getBoatNamesStartWith(input);
+ return results.toArray(new String[results.size()]);
+ }
+
+ public SampleRow getSampleRow() {
+ return sampleRow;
+ }
+
+ public void setSampleRow(SampleRow sampleRow) {
+ getFilter().setSampleRow(sampleRow);
+ getFilter().setSampleRowExists(true);
+ }
+
public String[] onProvideCompletionsFromShipOwnerName(String input) {
- return getFilterManager().getShipOwnerNamesContains(input);
+ return getShipOwnerNamesContains(input);
}
public String[] onProvideCompletionsFromBoatName(String input) throws WaoException {
- return getFilterManager().getBoatNamesStartWith(input);
+ return getBoatNamesStartWith(input);
}
public boolean isSampleRowExists() {
- return getFilterManager().isSampleRowExists();
+ return getFilter().isSampleRowExists();
}
}
Modified: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/components/ContactFilterComponent.java
===================================================================
--- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/components/ContactFilterComponent.java 2011-04-07 08:43:40 UTC (rev 1154)
+++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/components/ContactFilterComponent.java 2011-04-07 09:49:29 UTC (rev 1155)
@@ -1,31 +1,73 @@
package fr.ifremer.wao.ui.components;
-import fr.ifremer.wao.bean.ConnectedUser;
import fr.ifremer.wao.bean.ContactFilter;
import fr.ifremer.wao.bean.ContactFilterValues;
-import fr.ifremer.wao.ui.base.ContactFilterManager;
+import fr.ifremer.wao.bean.ContactState;
+import fr.ifremer.wao.service.ServiceContact;
import org.apache.tapestry5.SelectModel;
+import org.apache.tapestry5.annotations.Parameter;
+import org.apache.tapestry5.annotations.Persist;
import org.apache.tapestry5.ioc.Messages;
import org.apache.tapestry5.ioc.annotations.Inject;
+import org.apache.tapestry5.util.EnumSelectModel;
+import java.util.List;
+
/**
* @author sletellier <letellier at codelutin.com>
*/
-public class ContactFilterComponent extends FilterComponent<ContactFilter, ContactFilterManager> {
+public class ContactFilterComponent extends FilterComponent<ContactFilter> {
@Inject
private Messages messages;
- public ConnectedUser getUser() {
- return getFilterManager().getUser();
+ @Parameter(required = true)
+ private ServiceContact serviceContact;
+
+ /*
+ * Datas
+ */
+ @Persist
+ private ContactFilterValues possibleValuesForFilter;
+
+ @Override
+ public void resetFilter() {
+ setFilter(serviceContact.newContactFilter(getUser()));
}
+ @Override
+ protected boolean isAvailableDataForFiltersOnly() {
+ return false;
+ }
+
+ @Override
+ public void updateSearchFields() {
+ updatePossibleValuesForFilter();
+ }
+
public ContactFilterValues getPossibleValuesForFilter() {
+ return getPossibleValuesForFilter(false);
+ }
- return getFilterManager().getPossibleValuesForFilter();
+ public ContactFilterValues updatePossibleValuesForFilter() {
+ return getPossibleValuesForFilter(true);
}
+ protected ContactFilterValues getPossibleValuesForFilter(boolean update) {
+ if (update || possibleValuesForFilter == null) {
+ possibleValuesForFilter = serviceContact.getPossibleValuesForFilter(getFilter());
+ }
+ return possibleValuesForFilter;
+ }
+
public SelectModel getContactStateSelectModel() {
- return getFilterManager().getContactStateSelectModel(messages);
+ return getContactStateSelectModel(messages);
}
+
+ public SelectModel getContactStateSelectModel(Messages messages) {
+ List<ContactState> allowedStates = ContactState.getAllowedStates(getUser().getProfile().getObsProgram());
+ return new EnumSelectModel(ContactState.class, messages,
+ // just convert list to array
+ allowedStates.toArray(new ContactState[allowedStates.size()]));
+ }
}
Modified: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/components/FilterComponent.java
===================================================================
--- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/components/FilterComponent.java 2011-04-07 08:43:40 UTC (rev 1154)
+++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/components/FilterComponent.java 2011-04-07 09:49:29 UTC (rev 1155)
@@ -1,7 +1,7 @@
package fr.ifremer.wao.ui.components;
+import fr.ifremer.wao.bean.ConnectedUser;
import fr.ifremer.wao.bean.SamplingFilter;
-import fr.ifremer.wao.ui.base.FilterManager;
import org.apache.tapestry5.ComponentResources;
import org.apache.tapestry5.annotations.InjectComponent;
import org.apache.tapestry5.annotations.Parameter;
@@ -16,7 +16,7 @@
/**
* @author sletellier <letellier at codelutin.com>
*/
-public abstract class FilterComponent<E extends SamplingFilter, F extends FilterManager<E>> {
+public abstract class FilterComponent<E extends SamplingFilter> {
@Inject
private Logger log;
@@ -25,8 +25,43 @@
private ComponentResources resources;
@Parameter(required = true)
- private F filterManager;
+ private ConnectedUser user;
+ @Persist
+ private E filter;
+
+ public ConnectedUser getUser() {
+ return user;
+ }
+
+ public E getFilter() {
+ if (filter == null) {
+ resetFilter();
+ }
+ return filter;
+ }
+
+ public void setFilter(E filter) {
+ this.filter = filter;
+ }
+
+ /**
+ * 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
+ */
+ protected abstract boolean isAvailableDataForFiltersOnly();
+
+ /**
+ * Used to update search fields
+ */
+ public abstract void updateSearchFields();
+
@Parameter(required = false)
private Boolean visibleOnStartup;
@@ -67,18 +102,6 @@
return filtersZone;
}
- public E getFilter() {
- return filterManager.getFilter();
- }
-
- public F getFilterManager() {
- return filterManager;
- }
-
- public void setFilterManager(F filterManager) {
- this.filterManager = filterManager;
- }
-
public DateFormat getDateFormat() {
return new SimpleDateFormat("MM/yyyy");
}
@@ -107,11 +130,11 @@
public Object onSuccessFromFiltersForm() {
if (isReset()) {
- getFilterManager().resetFilter();
+ resetFilter();
}
// Limite search panel
- getFilterManager().updateSearchFields();
+ updateSearchFields();
if (isRefresh()) {
// Refresh search panel
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-04-07 08:43:40 UTC (rev 1154)
+++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/components/SamplingFilterComponent.java 2011-04-07 09:49:29 UTC (rev 1155)
@@ -25,13 +25,15 @@
import fr.ifremer.wao.bean.SamplingFilter;
import fr.ifremer.wao.bean.SamplingFilterValues;
-import fr.ifremer.wao.ui.base.SamplingFilterManager;
+import fr.ifremer.wao.service.ServiceSampling;
import org.apache.tapestry5.annotations.Parameter;
+import org.apache.tapestry5.annotations.Persist;
+import org.nuiton.util.PeriodDates;
/**
* @author sletellier <letellier at codelutin.com>
*/
-public class SamplingFilterComponent extends FilterComponent<SamplingFilter, SamplingFilterManager> {
+public class SamplingFilterComponent extends FilterComponent<SamplingFilter> {
@Parameter(required = false)
private Boolean showEstimatedTides;
@@ -39,6 +41,63 @@
@Parameter(required = true)
private String legendMsg;
+ /*
+ * Services
+ */
+ @Parameter(required = true)
+ private ServiceSampling serviceSampling;
+
+ /*
+ * Datas
+ */
+ @Persist
+ private SamplingFilterValues possibleValuesForFilter;
+
+ @Persist
+ private boolean initFlag;
+
+ @Override
+ protected boolean isAvailableDataForFiltersOnly() {
+ return false;
+ }
+
+ @Override
+ public void resetFilter() {
+ // Don't reset period in filters
+ PeriodDates period = null;
+ if (initFlag) {
+ SamplingFilter filter = getFilter();
+ period = (filter == null ? null : filter.getPeriod());
+ } else {
+ initFlag = true;
+ }
+ setFilter(serviceSampling.newSamplingFilter(getUser()));
+
+ if (period != null) {
+ getFilter().setPeriod(period);
+ }
+ }
+
+ @Override
+ public void updateSearchFields() {
+ updatePossibleValuesForFilter();
+ }
+
+ public SamplingFilterValues getPossibleValuesForFilter() {
+ return getPossibleValuesForFilter(false);
+ }
+
+ public SamplingFilterValues updatePossibleValuesForFilter() {
+ return getPossibleValuesForFilter(true);
+ }
+
+ protected SamplingFilterValues getPossibleValuesForFilter(boolean update) {
+ if (update || possibleValuesForFilter == null) {
+ possibleValuesForFilter = serviceSampling.getPossibleValuesForFilter(getFilter());
+ }
+ return possibleValuesForFilter;
+ }
+
// False by default
public Boolean getShowEstimatedTides() {
if (showEstimatedTides == null) {
@@ -47,10 +106,6 @@
return showEstimatedTides;
}
- public SamplingFilterValues getPossibleValuesForFilter() {
- return getFilterManager().getPossibleValuesForFilter();
- }
-
public String getLegendMsg() {
return legendMsg;
}
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-04-07 08:43:40 UTC (rev 1154)
+++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Boats.java 2011-04-07 09:49:29 UTC (rev 1155)
@@ -41,19 +41,14 @@
import fr.ifremer.wao.service.ServiceReferential;
import fr.ifremer.wao.service.ServiceSampling;
import fr.ifremer.wao.service.ServiceUser;
-import fr.ifremer.wao.ui.base.BoatFilterManager;
import fr.ifremer.wao.ui.components.BoatFilterComponent;
import fr.ifremer.wao.ui.components.Layout;
import fr.ifremer.wao.ui.data.BoatDataSource;
import fr.ifremer.wao.ui.data.ExportStreamResponse;
-import fr.ifremer.wao.ui.data.GenericSelectModel;
import fr.ifremer.wao.ui.data.RequiresAuthentication;
import fr.ifremer.wao.ui.services.WaoManager;
import org.apache.commons.lang.BooleanUtils;
-import org.apache.commons.lang.StringUtils;
import org.apache.tapestry5.Block;
-import org.apache.tapestry5.Link;
-import org.apache.tapestry5.PersistenceConstants;
import org.apache.tapestry5.StreamResponse;
import org.apache.tapestry5.annotations.Import;
import org.apache.tapestry5.annotations.InjectComponent;
@@ -63,10 +58,8 @@
import org.apache.tapestry5.annotations.Property;
import org.apache.tapestry5.annotations.SessionState;
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.apache.tapestry5.services.PageRenderLinkSource;
import org.slf4j.Logger;
import java.io.IOException;
@@ -115,6 +108,10 @@
@Inject
private PropertyAccess propertyAccess;
+ public ServiceBoat getServiceBoat() {
+ return serviceBoat;
+ }
+
void setupRender() throws WaoException {
// if (boatSelectedImmatriculation != null && getBoatSelected() == null) {
@@ -181,21 +178,6 @@
@Persist
private Integer boatSelectedImmatriculation;
- @Persist
- private BoatFilterManager filterManager;
-
- public BoatFilterManager getFilterManager() {
- if (filterManager == null) {
- filterManager = new BoatFilterManager(user, serviceBoat);
- }
- return filterManager;
- }
-
- public void setFilterManager(BoatFilterManager filterManager) {
- this.filterManager = filterManager;
- }
-
-
/** Filters to apply on boats list */
// @Persist
// private BoatFilter boatFilter;
@@ -230,7 +212,7 @@
}
public BoatFilter getBoatFilter() throws WaoException {
- return filterManager.getFilter();
+ return filterComponent.getFilter();
}
// @Override
@@ -392,7 +374,7 @@
}
public boolean canCreateNewContactFromList() throws WaoException {
- if (!user.isAdmin() && !user.isProfessional() && !user.isReadOnly() && getFilterManager().isSampleRowExists()) {
+ if (!user.isAdmin() && !user.isProfessional() && !user.isReadOnly() && filterComponent.isSampleRowExists()) {
return boat.canCreateContact(user.getProfile().getObsProgram(), user.getCompany());
}
return false;
@@ -706,7 +688,7 @@
Object onActionFromAddNewContactFromBoat(int boatImmatriculation) throws WaoException {
// Get selected sampleRow
- SampleRow sampleRow = getFilterManager().getSampleRow();
+ SampleRow sampleRow = filterComponent.getSampleRow();
// Get boat from list
boat = getBoats().get(boatImmatriculation);
//contacts.createNewContact(boat, sampleRow);
@@ -720,7 +702,7 @@
ElligibleBoat elligible = getCompanyBoatInfos().getElligibleBoat(sampleRowCode);
SampleRow sampleRow = elligible.getSampleRow();
// Keep it in manager
- getFilterManager().setSampleRow(sampleRow);
+ filterComponent.setSampleRow(sampleRow);
Contact newContact = serviceContact.getNewContact(user, sampleRow, getBoatSelected());
// contacts.createNewContact(getBoatSelected(), sampleRow);
contacts.setContactSelectedId(newContact.getTopiaId());
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-04-07 08:43:40 UTC (rev 1154)
+++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Contacts.java 2011-04-07 09:49:29 UTC (rev 1155)
@@ -38,7 +38,7 @@
import fr.ifremer.wao.service.ServiceContact;
import fr.ifremer.wao.service.ServiceReferential;
import fr.ifremer.wao.service.ServiceUser;
-import fr.ifremer.wao.ui.base.ContactFilterManager;
+import fr.ifremer.wao.ui.components.ContactFilterComponent;
import fr.ifremer.wao.ui.components.Layout;
import fr.ifremer.wao.ui.data.ContactDataSource;
import fr.ifremer.wao.ui.data.ExportStreamResponse;
@@ -108,20 +108,13 @@
@Inject
private Messages messages;
- @Persist
- private ContactFilterManager filterManager;
+ @InjectComponent
+ private ContactFilterComponent filterComponent;
- public ContactFilterManager getFilterManager() {
- if (filterManager == null) {
- filterManager = new ContactFilterManager(user, serviceContact);
- }
- return filterManager;
+ public ServiceContact getServiceContact() {
+ return serviceContact;
}
- public void setFilterManager(ContactFilterManager filterManager) {
- this.filterManager = filterManager;
- }
-
public String getLabelForEnum(Enum value) {
return messages.get(value.getDeclaringClass().getSimpleName() + "." + value.name());
}
@@ -157,7 +150,7 @@
private ContactState stateFilter;
public ContactFilter getContactFilter() throws WaoException {
- return getFilterManager().getFilter();
+ return filterComponent.getFilter();
}
public boolean isFiltersVisible() {
Modified: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/ObsDebSamplingPlan.java
===================================================================
--- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/ObsDebSamplingPlan.java 2011-04-07 08:43:40 UTC (rev 1154)
+++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/ObsDebSamplingPlan.java 2011-04-07 09:49:29 UTC (rev 1155)
@@ -30,7 +30,7 @@
import fr.ifremer.wao.entity.SampleRow;
import fr.ifremer.wao.io.ImportResults;
import fr.ifremer.wao.service.ServiceSampling;
-import fr.ifremer.wao.ui.base.SamplingFilterManager;
+import fr.ifremer.wao.ui.components.SamplingFilterComponent;
import fr.ifremer.wao.ui.data.ExportStreamResponse;
import fr.ifremer.wao.ui.data.ImportEngine;
import fr.ifremer.wao.ui.data.RequiresAuthentication;
@@ -85,9 +85,16 @@
@InjectComponent
private Zone importExportZone;
+ @InjectComponent
+ private SamplingFilterComponent filterComponent;
+
+ public ServiceSampling getServiceSampling() {
+ return serviceSampling;
+ }
+
public boolean getShowFilters() {
if (showFilters == null) {
- showFilters = getFilterManager().getFilter().isPeriodFilteredOnly();
+ showFilters = filterComponent.getFilter().isPeriodFilteredOnly();
}
return showFilters;
}
@@ -109,19 +116,6 @@
return importExportZone;
}
-
- /********* FILTERS ********/
-
- @Persist
- private SamplingFilterManager filterManager;
-
- public SamplingFilterManager getFilterManager() {
- if (filterManager == null) {
- filterManager = new SamplingFilterManager(connectedUser, serviceSampling);
- }
- return filterManager;
- }
-
/********* GRID ********/
private GridDataSource sampleRows;
@@ -131,7 +125,7 @@
public GridDataSource getSampleRows() {
if (sampleRows == null) {
- sampleRows = new SampleRowDataSource(getFilterManager().getFilter(), serviceSampling);
+ sampleRows = new SampleRowDataSource(filterComponent.getFilter(), serviceSampling);
}
return sampleRows;
}
@@ -172,7 +166,7 @@
public InputStream getStream() throws IOException {
InputStream csv = null;
try {
- csv = serviceSampling.exportSamplingPlanCsv(connectedUser, getFilterManager().getFilter());
+ csv = serviceSampling.exportSamplingPlanCsv(connectedUser, filterComponent.getFilter());
} catch (WaoException eee) {
throw new IOException(eee);
}
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-04-07 08:43:40 UTC (rev 1154)
+++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/SamplingPlan.java 2011-04-07 09:49:29 UTC (rev 1155)
@@ -35,7 +35,6 @@
import fr.ifremer.wao.entity.SampleMonth;
import fr.ifremer.wao.entity.SampleRow;
import fr.ifremer.wao.service.ServiceSampling;
-import fr.ifremer.wao.ui.base.SamplingFilterManager;
import fr.ifremer.wao.ui.components.Layout;
import fr.ifremer.wao.ui.components.SamplingFilterComponent;
import fr.ifremer.wao.ui.data.ExportStreamResponse;
@@ -99,9 +98,6 @@
@Property
private ConnectedUser user;
- @Persist
- private SamplingFilterManager filterManager;
-
private long nbTidesExpectedTime;
private long nbTidesRealTime;
@@ -110,17 +106,10 @@
private long totalTidesRealTime;
- public SamplingFilterManager getFilterManager() {
- if (filterManager == null) {
- filterManager = new SamplingFilterManager(user, serviceSampling);
- }
- return filterManager;
+ public ServiceSampling getServiceSampling() {
+ return serviceSampling;
}
- public void setFilterManager(SamplingFilterManager filterManager) {
- this.filterManager = filterManager;
- }
-
/**
* Page initialization
*/
@@ -172,7 +161,7 @@
}
public SamplingFilter getFilter() {
- return getFilterManager().getFilter();
+ return filterComponent.getFilter();
}
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-04-07 08:43:40 UTC (rev 1154)
+++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Synthesis.java 2011-04-07 09:49:29 UTC (rev 1155)
@@ -42,7 +42,6 @@
import fr.ifremer.wao.entity.IndicatorLevel;
import fr.ifremer.wao.service.ServiceSampling;
import fr.ifremer.wao.service.ServiceSynthesis;
-import fr.ifremer.wao.ui.base.SamplingFilterManager;
import fr.ifremer.wao.ui.components.SamplingFilterComponent;
import fr.ifremer.wao.ui.data.ChartUtils;
import fr.ifremer.wao.ui.data.ChartUtils.ChartType;
@@ -131,20 +130,10 @@
@Inject
private Messages messages;
- @Persist
- private SamplingFilterManager filterManager;
-
- public SamplingFilterManager getFilterManager() {
- if (filterManager == null) {
- filterManager = new SamplingFilterManager(user, serviceSampling);
- }
- return filterManager;
+ public ServiceSampling getServiceSampling() {
+ return serviceSampling;
}
- public void setFilterManager(SamplingFilterManager filterManager) {
- this.filterManager = filterManager;
- }
-
void setupRender() {
// add a special CSS to make global synthesis page printable without
// menu, filters, etc.
@@ -273,7 +262,7 @@
/********************* FILTERS ********************************************/
public SamplingFilter getFilter() throws WaoException {
- return getFilterManager().getFilter();
+ return filterComponent.getFilter();
}
public PeriodDates getPeriod() throws WaoException {
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-04-07 08:43:40 UTC (rev 1154)
+++ trunk/wao-ui/src/main/resources/fr/ifremer/wao/ui/components/SamplingFilterComponent.tml 2011-04-07 09:49:29 UTC (rev 1155)
@@ -47,7 +47,7 @@
<input t:type="datefield" class="width70" t:id="periodEnd" t:value="filter.period.thruDate" t:format="MM/yyyy"
t:validate="required"/>
</div>
- <t:if test="filterManager.user.obsDeb">
+ <t:if test="user.obsDeb">
<!-- filter fields only for obsdeb-->
<div>
<label for="observationUnit">${message:wao.ui.field.SampleRow.observationUnit}</label>
@@ -68,7 +68,7 @@
<p:else>
<!-- filter field for ObsMer and ObsVente -->
<div>
- <t:if t:test="filterManager.user.admin">
+ <t:if t:test="user.admin">
<label for="company">${message:wao.ui.entity.Company} :</label>
<t:topiaEntitySelector t:id="company"
t:clazzName="Company"
@@ -91,7 +91,7 @@
<t:simpleSelector t:id="sectorName"
t:values="possibleValuesForFilter.sectorsNamesAsList"
t:selectedValue="filter.sectorName"/>
- <t:if test="filterManager.user.obsVente">
+ <t:if test="user.obsVente">
<label>${message:wao.ui.field.SampleRow.terrestrialLocation} :</label>
<t:topiaEntitySelector t:id="terrestrialDistrict"
t:clazzName="TerrestrialLocation"
@@ -113,7 +113,7 @@
t:labelPropertyName="fullDescription"
t:values="possibleValuesForFilter.targetSpeciesDCFCodesAsList"
t:selectedValue="filter.targetSpeciesDCF"/>
- <t:if test="filterManager.user.obsVente">
+ <t:if test="user.obsVente">
<label t:for="samplingStrategy">${message:wao.ui.field.SampleRow.samplingStrategy} :</label>
<input t:type="select" t:id="samplingStrategy" t:value="filter.samplingStrategy"/>
</t:if>
Modified: trunk/wao-ui/src/main/webapp/Boats.tml
===================================================================
--- trunk/wao-ui/src/main/webapp/Boats.tml 2011-04-07 08:43:40 UTC (rev 1154)
+++ trunk/wao-ui/src/main/webapp/Boats.tml 2011-04-07 09:49:29 UTC (rev 1155)
@@ -44,7 +44,8 @@
</a>
</div-->
<t:boatFilterComponent t:id="filterComponent"
- t:filterManager="filterManager"/>
+ t:user="user"
+ t:serviceBoat="serviceBoat"/>
</fieldset>
</div>
<!--t:filters t:title="Filtres de recherche" t:mainId="so-boats-filters"-->
Modified: trunk/wao-ui/src/main/webapp/Contacts.tml
===================================================================
--- trunk/wao-ui/src/main/webapp/Contacts.tml 2011-04-07 08:43:40 UTC (rev 1154)
+++ trunk/wao-ui/src/main/webapp/Contacts.tml 2011-04-07 09:49:29 UTC (rev 1155)
@@ -59,7 +59,8 @@
</div>
<t:contactFilterComponent t:id="filterComponent"
- t:filterManager="filterManager"/>
+ t:user="user"
+ t:serviceContact="serviceContact"/>
<!-- FILTRES -->
<!--div t:type="zone" class="so-filters" t:id="filtersZone" t:visible="prop:filtersVisible" id="so-contacts-filters">
<fieldset>
Modified: trunk/wao-ui/src/main/webapp/ObsDebSamplingPlan.tml
===================================================================
--- trunk/wao-ui/src/main/webapp/ObsDebSamplingPlan.tml 2011-04-07 08:43:40 UTC (rev 1154)
+++ trunk/wao-ui/src/main/webapp/ObsDebSamplingPlan.tml 2011-04-07 09:49:29 UTC (rev 1155)
@@ -41,7 +41,8 @@
<t:zone t:id="filtersZone" t:visible="showFilters">
<t:samplingFilterComponent t:id="samplingFilter"
t:visibleOnStartup="true"
- t:filterManager="filterManager"
+ t:user="connectedUser"
+ t:serviceSampling="serviceSampling"
t:legendMsg="${message:wao.ui.misc.advancedSearch}" />
</t:zone>
Modified: trunk/wao-ui/src/main/webapp/SamplingPlan.tml
===================================================================
--- trunk/wao-ui/src/main/webapp/SamplingPlan.tml 2011-04-07 08:43:40 UTC (rev 1154)
+++ trunk/wao-ui/src/main/webapp/SamplingPlan.tml 2011-04-07 09:49:29 UTC (rev 1155)
@@ -87,7 +87,8 @@
<!--FIXME sletellier 20110316 : visible on parameter dont work in this case....-->
<t:samplingFilterComponent t:id="filterComponent"
t:visibleOnStartup="false"
- t:filterManager="filterManager"
+ t:user="user"
+ t:serviceSampling="serviceSampling"
t:legendMsg="${message:wao.ui.misc.advancedSearch}"/>
</div>
<t:zone t:id="samplingZone">
Modified: trunk/wao-ui/src/main/webapp/Synthesis.tml
===================================================================
--- trunk/wao-ui/src/main/webapp/Synthesis.tml 2011-04-07 08:43:40 UTC (rev 1154)
+++ trunk/wao-ui/src/main/webapp/Synthesis.tml 2011-04-07 09:49:29 UTC (rev 1155)
@@ -104,7 +104,8 @@
<t:samplingFilterComponent
t:id="filterComponent"
- t:filterManager="filterManager"
+ t:user="user"
+ t:serviceSampling="serviceSampling"
t:showEstimatedTides="true"
t:legendMsg="${message:wao.ui.filters.filters}"/>
1
0
[Suiviobsmer-commits] r1154 - in trunk: wao-business/src/main/java/fr/ifremer/wao/bean wao-business/src/main/java/fr/ifremer/wao/service wao-business/src/main/resources/i18n wao-business/src/main/xmi wao-ui/src/main/java/fr/ifremer/wao/ui/base wao-ui/src/main/java/fr/ifremer/wao/ui/components wao-ui/src/main/java/fr/ifremer/wao/ui/pages wao-ui/src/main/resources/fr/ifremer/wao/ui/components wao-ui/src/main/webapp
by sletellier@users.labs.libre-entreprise.org 07 Apr '11
by sletellier@users.labs.libre-entreprise.org 07 Apr '11
07 Apr '11
Author: sletellier
Date: 2011-04-07 08:43:40 +0000 (Thu, 07 Apr 2011)
New Revision: 1154
Log:
Final pass of refactor, AbstractFilteredPage can be removed
Added:
trunk/wao-business/src/main/java/fr/ifremer/wao/bean/ContactFilterValuesImpl.java
trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/base/ContactFilterManager.java
trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/components/ContactFilterComponent.java
trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/components/FilterComponent.java
trunk/wao-ui/src/main/resources/fr/ifremer/wao/ui/components/ContactFilterComponent.tml
Removed:
trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/components/AbstractFilterComponent.java
Modified:
trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceBoatImpl.java
trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceContactImpl.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
trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/base/SamplingFilterManager.java
trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/components/BoatFilterComponent.java
trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/components/SamplingFilterComponent.java
trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/components/TopiaEntitySelector.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/resources/fr/ifremer/wao/ui/components/TopiaEntitySelector.tml
trunk/wao-ui/src/main/webapp/Contacts.tml
Added: trunk/wao-business/src/main/java/fr/ifremer/wao/bean/ContactFilterValuesImpl.java
===================================================================
--- trunk/wao-business/src/main/java/fr/ifremer/wao/bean/ContactFilterValuesImpl.java (rev 0)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/bean/ContactFilterValuesImpl.java 2011-04-07 08:43:40 UTC (rev 1154)
@@ -0,0 +1,48 @@
+package fr.ifremer.wao.bean;
+
+import fr.ifremer.wao.entity.ContactStateMotif;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * @author sletellier <letellier at codelutin.com>
+ */
+public class ContactFilterValuesImpl extends ContactFilterValues {
+
+ @Override
+ public void addContactStateMotifs(ContactStateMotif toAdd) {
+ if (toAdd == null) {
+ return;
+ }
+ if (getContactStateMotifs() == null) {
+ setContactStateMotifs(new ArrayList<ContactStateMotif>());
+ }
+ if (!containsContactStateMotifs(toAdd)) {
+ super.addContactStateMotifs(toAdd);
+ }
+ }
+
+ @Override
+ public void addAllContactStateMotifs(Collection<ContactStateMotif> toAdds) {
+ if (toAdds == null) {
+ return;
+ }
+ if (getContactStateMotifs() == null) {
+ setContactStateMotifs(new ArrayList<ContactStateMotif>());
+ }
+ if (!containsAllContactStateMotifs(toAdds)) {
+ super.addAllContactStateMotifs(toAdds);
+ } else {
+ for (ContactStateMotif toAdd : toAdds) {
+ addContactStateMotifs(toAdd);
+ }
+ }
+ }
+
+ @Override
+ public List<ContactStateMotif> getContactStateMotifsAsList() {
+ return getAsList(getContactStateMotifs());
+ }
+}
Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceBoatImpl.java
===================================================================
--- trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceBoatImpl.java 2011-04-07 08:43:29 UTC (rev 1153)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceBoatImpl.java 2011-04-07 08:43:40 UTC (rev 1154)
@@ -701,6 +701,12 @@
protected BoatFilterValues executeGetPossibleValuesForFilter(TopiaContext transaction, BoatFilter filter) throws Exception {
BoatFilterValues result = new BoatFilterValuesImpl();
+
+ Integer startIndex = filter.getStartIndex();
+ Integer endIndex = filter.getEndIndex();
+ filter.setStartIndex(null);
+ filter.setEndIndex(null);
+
if (filter.getFacadeName() == null && filter.getSectorName() == null) {
ServiceReferential serviceReferential = context.getServiceFactory().getServiceReferential();
ServiceSampling serviceSampling = context.getServiceFactory().getServiceSampling();
@@ -723,6 +729,9 @@
result.fill(rows);
}
+ filter.setStartIndex(startIndex);
+ filter.setEndIndex(endIndex);
+
return result;
}
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-04-07 08:43:29 UTC (rev 1153)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceContactImpl.java 2011-04-07 08:43:40 UTC (rev 1154)
@@ -38,6 +38,8 @@
import fr.ifremer.wao.bean.ConnectedUser;
import fr.ifremer.wao.bean.ContactFilter;
import fr.ifremer.wao.bean.ContactFilterImpl;
+import fr.ifremer.wao.bean.ContactFilterValues;
+import fr.ifremer.wao.bean.ContactFilterValuesImpl;
import fr.ifremer.wao.bean.ContactState;
import fr.ifremer.wao.bean.ContactStatus;
import fr.ifremer.wao.bean.ContactStatus.NullSampleMonthException;
@@ -109,6 +111,7 @@
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
+import java.util.Collection;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.HashMap;
@@ -1524,4 +1527,30 @@
return contactFilter;
}
+
+ @Override
+ protected ContactFilterValues executeGetPossibleValuesForFilter(TopiaContext transaction, ContactFilter filter) throws Exception {
+
+ // Dont use index
+ Integer startIndex = filter.getStartIndex();
+ Integer endIndex = filter.getEndIndex();
+ filter.setStartIndex(null);
+ filter.setEndIndex(null);
+ Map<String, Contact> contacts = executeGetContacts(transaction, filter);
+ filter.setStartIndex(startIndex);
+ filter.setEndIndex(endIndex);
+
+ ContactFilterValues result = new ContactFilterValuesImpl();
+ List<SampleRow> rows = extractSampleRows(contacts.values());
+ result.fill(rows);
+ return result;
+ }
+
+ protected List<SampleRow> extractSampleRows(Collection<Contact> contacts) {
+ List<SampleRow> result = new ArrayList<SampleRow>();
+ for (Contact contact : contacts) {
+ result.add(contact.getSampleRow());
+ }
+ return result;
+ }
}
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-04-07 08:43:29 UTC (rev 1153)
+++ trunk/wao-business/src/main/resources/i18n/wao-business_en_GB.properties 2011-04-07 08:43:40 UTC (rev 1154)
@@ -164,6 +164,7 @@
wao.error.serviceContact.getContacts=
wao.error.serviceContact.getNbContacts=
wao.error.serviceContact.getNewContact=
+wao.error.serviceContact.getPossibleValuesForFilter=
wao.error.serviceContact.importContactCsv=
wao.error.serviceContact.newContactFilter=
wao.error.serviceContact.saveComment=
@@ -211,6 +212,7 @@
wao.error.serviceSampling.getSampleRowsOrderedByFishingZone=
wao.error.serviceSampling.importSamplingPlanCsv=
wao.error.serviceSampling.newSamplingFilter=
+wao.error.serviceSampling.validateSampleRow=
wao.error.serviceSynthesis.getAllIndicatorLogs=
wao.error.serviceSynthesis.getBoardingBoats=
wao.error.serviceSynthesis.getComplianceBoardingIndicator=
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-04-07 08:43:29 UTC (rev 1153)
+++ trunk/wao-business/src/main/resources/i18n/wao-business_fr_FR.properties 2011-04-07 08:43:40 UTC (rev 1154)
@@ -164,6 +164,7 @@
wao.error.serviceContact.getContacts=Impossible de filtrer la liste des contacts
wao.error.serviceContact.getNbContacts=Impossible de compter le nombre de contacts filtr\u00E9s
wao.error.serviceContact.getNewContact=Impossible d'instancier un nouveau contact
+wao.error.serviceContact.getPossibleValuesForFilter=
wao.error.serviceContact.importContactCsv=Impossible d'importer les contacts
wao.error.serviceContact.newContactFilter=
wao.error.serviceContact.saveComment=
@@ -211,6 +212,7 @@
wao.error.serviceSampling.getSampleRowsOrderedByFishingZone=Impossible de r\u00E9cup\u00E9rer la liste des lignes du plan d'\u00E9chantillonnage
wao.error.serviceSampling.importSamplingPlanCsv=Erreur \u00E0 la ligne %1$d [CODE \= %2$s]
wao.error.serviceSampling.newSamplingFilter=
+wao.error.serviceSampling.validateSampleRow=
wao.error.serviceSynthesis.getAllIndicatorLogs=
wao.error.serviceSynthesis.getBoardingBoats=Impossible de r\u00E9cup\u00E9rer les donn\u00E9es du graphique concernant les embarquements sur les navires
wao.error.serviceSynthesis.getComplianceBoardingIndicator=
Modified: trunk/wao-business/src/main/xmi/wao.zargo
===================================================================
(Binary files differ)
Added: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/base/ContactFilterManager.java
===================================================================
--- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/base/ContactFilterManager.java (rev 0)
+++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/base/ContactFilterManager.java 2011-04-07 08:43:40 UTC (rev 1154)
@@ -0,0 +1,67 @@
+package fr.ifremer.wao.ui.base;
+
+import fr.ifremer.wao.bean.ConnectedUser;
+import fr.ifremer.wao.bean.ContactFilter;
+import fr.ifremer.wao.bean.ContactFilterValues;
+import fr.ifremer.wao.bean.ContactState;
+import fr.ifremer.wao.service.ServiceContact;
+import org.apache.tapestry5.SelectModel;
+import org.apache.tapestry5.ioc.Messages;
+import org.apache.tapestry5.util.EnumSelectModel;
+
+import java.util.List;
+
+/**
+ * @author sletellier <letellier at codelutin.com>
+ */
+public class ContactFilterManager extends FilterManager<ContactFilter> {
+
+ protected ServiceContact serviceContact;
+
+ /*
+ * Datas
+ */
+ protected ContactFilterValues possibleValuesForFilter;
+
+ public ContactFilterManager(ConnectedUser user, ServiceContact serviceContact) {
+ super(user);
+ this.serviceContact = serviceContact;
+ }
+
+ @Override
+ public void resetFilter() {
+ filter = serviceContact.newContactFilter(user);
+ }
+
+ @Override
+ protected boolean isAvailableDataForFiltersOnly() {
+ return false;
+ }
+
+ @Override
+ public void updateSearchFields() {
+ updatePossibleValuesForFilter();
+ }
+
+ public ContactFilterValues getPossibleValuesForFilter() {
+ return getPossibleValuesForFilter(false);
+ }
+
+ public ContactFilterValues updatePossibleValuesForFilter() {
+ return getPossibleValuesForFilter(true);
+ }
+
+ protected ContactFilterValues getPossibleValuesForFilter(boolean update) {
+ if (update || possibleValuesForFilter == null) {
+ possibleValuesForFilter = serviceContact.getPossibleValuesForFilter(getFilter());
+ }
+ return possibleValuesForFilter;
+ }
+
+ public SelectModel getContactStateSelectModel(Messages messages) {
+ List<ContactState> allowedStates = ContactState.getAllowedStates(user.getProfile().getObsProgram());
+ return new EnumSelectModel(ContactState.class, messages,
+ // just convert list to array
+ allowedStates.toArray(new ContactState[allowedStates.size()]));
+ }
+}
Modified: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/base/SamplingFilterManager.java
===================================================================
--- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/base/SamplingFilterManager.java 2011-04-07 08:43:29 UTC (rev 1153)
+++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/base/SamplingFilterManager.java 2011-04-07 08:43:40 UTC (rev 1154)
@@ -27,6 +27,7 @@
import fr.ifremer.wao.bean.SamplingFilter;
import fr.ifremer.wao.bean.SamplingFilterValues;
import fr.ifremer.wao.service.ServiceSampling;
+import org.nuiton.util.PeriodDates;
/**
* @author sletellier <letellier at codelutin.com>
@@ -58,7 +59,13 @@
@Override
public void resetFilter() {
+ // Don't reset period in filters
+ PeriodDates period = (filter == null ? null : filter.getPeriod());
filter = serviceSampling.newSamplingFilter(user);
+
+ if (period != null) {
+ filter.setPeriod(period);
+ }
}
@Override
Deleted: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/components/AbstractFilterComponent.java
===================================================================
--- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/components/AbstractFilterComponent.java 2011-04-07 08:43:29 UTC (rev 1153)
+++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/components/AbstractFilterComponent.java 2011-04-07 08:43:40 UTC (rev 1154)
@@ -1,109 +0,0 @@
-package fr.ifremer.wao.ui.components;
-
-import fr.ifremer.wao.bean.SamplingFilter;
-import fr.ifremer.wao.ui.base.FilterManager;
-import org.apache.tapestry5.ComponentResources;
-import org.apache.tapestry5.annotations.InjectComponent;
-import org.apache.tapestry5.annotations.Parameter;
-import org.apache.tapestry5.annotations.Persist;
-import org.apache.tapestry5.corelib.components.Zone;
-import org.apache.tapestry5.ioc.annotations.Inject;
-import org.slf4j.Logger;
-
-import java.text.DateFormat;
-import java.text.SimpleDateFormat;
-
-/**
- * @author sletellier <letellier at codelutin.com>
- */
-public abstract class AbstractFilterComponent<E extends SamplingFilter, F extends FilterManager<E>> {
-
- @Inject
- private Logger log;
-
- @Inject
- private ComponentResources resources;
-
- @Parameter(required = true)
- private F filterManager;
-
- @Parameter(required = false)
- private Boolean visibleOnStartup;
-
- @InjectComponent
- private Zone filtersZone;
-
- @Persist
- private Boolean filtersVisible;
-
- public ComponentResources getResources() {
- return resources;
- }
-
- // 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 E getFilter() {
- return filterManager.getFilter();
- }
-
- public F getFilterManager() {
- return filterManager;
- }
-
- public void setFilterManager(F filterManager) {
- this.filterManager = filterManager;
- }
-
- public DateFormat getDateFormat() {
- return new SimpleDateFormat("MM/yyyy");
- }
-
- /**
- * Activate reset filter
- */
- private boolean reset;
- private boolean refresh;
-
- public boolean isReset() {
- return reset;
- }
-
- public boolean isRefresh() {
- return refresh;
- }
-
- public void onSelectedFromReset() {
- reset = true;
- }
-
- public void onSelectedFromRefresh() {
- refresh = true;
- }
-
- public abstract Object onSuccessFromFiltersForm();
-}
Modified: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/components/BoatFilterComponent.java
===================================================================
--- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/components/BoatFilterComponent.java 2011-04-07 08:43:29 UTC (rev 1153)
+++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/components/BoatFilterComponent.java 2011-04-07 08:43:40 UTC (rev 1154)
@@ -9,7 +9,7 @@
/**
* @author sletellier <letellier at codelutin.com>
*/
-public class BoatFilterComponent extends AbstractFilterComponent<BoatFilter, BoatFilterManager> {
+public class BoatFilterComponent extends FilterComponent<BoatFilter, BoatFilterManager> {
@InjectComponent
private FeedBack filterFeedback;
@@ -24,24 +24,6 @@
return getFilterManager().getPossibleValuesForFilter();
}
- @Override
- public Object onSuccessFromFiltersForm() {
- if (isReset()) {
- getFilterManager().resetFilter();
- }
-
- // Limite search panel
- getFilterManager().updatePossibleValuesForFilter();
-
- if (isRefresh()) {
- // Refresh search panel
- return this;
- } else {
- // Refresh owner
- return getResources().getContainer();
- }
- }
-
public String[] onProvideCompletionsFromShipOwnerName(String input) {
return getFilterManager().getShipOwnerNamesContains(input);
}
@@ -49,4 +31,8 @@
public String[] onProvideCompletionsFromBoatName(String input) throws WaoException {
return getFilterManager().getBoatNamesStartWith(input);
}
+
+ public boolean isSampleRowExists() {
+ return getFilterManager().isSampleRowExists();
+ }
}
Added: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/components/ContactFilterComponent.java
===================================================================
--- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/components/ContactFilterComponent.java (rev 0)
+++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/components/ContactFilterComponent.java 2011-04-07 08:43:40 UTC (rev 1154)
@@ -0,0 +1,31 @@
+package fr.ifremer.wao.ui.components;
+
+import fr.ifremer.wao.bean.ConnectedUser;
+import fr.ifremer.wao.bean.ContactFilter;
+import fr.ifremer.wao.bean.ContactFilterValues;
+import fr.ifremer.wao.ui.base.ContactFilterManager;
+import org.apache.tapestry5.SelectModel;
+import org.apache.tapestry5.ioc.Messages;
+import org.apache.tapestry5.ioc.annotations.Inject;
+
+/**
+ * @author sletellier <letellier at codelutin.com>
+ */
+public class ContactFilterComponent extends FilterComponent<ContactFilter, ContactFilterManager> {
+
+ @Inject
+ private Messages messages;
+
+ public ConnectedUser getUser() {
+ return getFilterManager().getUser();
+ }
+
+ public ContactFilterValues getPossibleValuesForFilter() {
+
+ return getFilterManager().getPossibleValuesForFilter();
+ }
+
+ public SelectModel getContactStateSelectModel() {
+ return getFilterManager().getContactStateSelectModel(messages);
+ }
+}
Copied: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/components/FilterComponent.java (from rev 1143, trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/components/AbstractFilterComponent.java)
===================================================================
--- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/components/FilterComponent.java (rev 0)
+++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/components/FilterComponent.java 2011-04-07 08:43:40 UTC (rev 1154)
@@ -0,0 +1,124 @@
+package fr.ifremer.wao.ui.components;
+
+import fr.ifremer.wao.bean.SamplingFilter;
+import fr.ifremer.wao.ui.base.FilterManager;
+import org.apache.tapestry5.ComponentResources;
+import org.apache.tapestry5.annotations.InjectComponent;
+import org.apache.tapestry5.annotations.Parameter;
+import org.apache.tapestry5.annotations.Persist;
+import org.apache.tapestry5.corelib.components.Zone;
+import org.apache.tapestry5.ioc.annotations.Inject;
+import org.slf4j.Logger;
+
+import java.text.DateFormat;
+import java.text.SimpleDateFormat;
+
+/**
+ * @author sletellier <letellier at codelutin.com>
+ */
+public abstract class FilterComponent<E extends SamplingFilter, F extends FilterManager<E>> {
+
+ @Inject
+ private Logger log;
+
+ @Inject
+ private ComponentResources resources;
+
+ @Parameter(required = true)
+ private F filterManager;
+
+ @Parameter(required = false)
+ private Boolean visibleOnStartup;
+
+ @InjectComponent
+ private Zone filtersZone;
+
+ @Persist
+ private Boolean filtersVisible;
+
+ public ComponentResources getResources() {
+ return resources;
+ }
+
+ // 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 E getFilter() {
+ return filterManager.getFilter();
+ }
+
+ public F getFilterManager() {
+ return filterManager;
+ }
+
+ public void setFilterManager(F filterManager) {
+ this.filterManager = filterManager;
+ }
+
+ public DateFormat getDateFormat() {
+ return new SimpleDateFormat("MM/yyyy");
+ }
+
+ /**
+ * Activate reset filter
+ */
+ private boolean reset;
+ private boolean refresh;
+
+ public boolean isReset() {
+ return reset;
+ }
+
+ public boolean isRefresh() {
+ return refresh;
+ }
+
+ public void onSelectedFromReset() {
+ reset = true;
+ }
+
+ public void onSelectedFromRefresh() {
+ refresh = true;
+ }
+
+ public Object onSuccessFromFiltersForm() {
+ if (isReset()) {
+ getFilterManager().resetFilter();
+ }
+
+ // Limite search panel
+ getFilterManager().updateSearchFields();
+
+ if (isRefresh()) {
+ // Refresh search panel
+ return this;
+ } else {
+ // Refresh owner
+ return getResources().getContainer();
+ }
+ }
+}
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-04-07 08:43:29 UTC (rev 1153)
+++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/components/SamplingFilterComponent.java 2011-04-07 08:43:40 UTC (rev 1154)
@@ -27,12 +27,11 @@
import fr.ifremer.wao.bean.SamplingFilterValues;
import fr.ifremer.wao.ui.base.SamplingFilterManager;
import org.apache.tapestry5.annotations.Parameter;
-import org.nuiton.util.PeriodDates;
/**
* @author sletellier <letellier at codelutin.com>
*/
-public class SamplingFilterComponent extends AbstractFilterComponent<SamplingFilter, SamplingFilterManager> {
+public class SamplingFilterComponent extends FilterComponent<SamplingFilter, SamplingFilterManager> {
@Parameter(required = false)
private Boolean showEstimatedTides;
@@ -55,30 +54,4 @@
public String getLegendMsg() {
return legendMsg;
}
-
- /**
- * Do filtering
- *
- * @return owner (for refresh) if filter is edited
- */
- @Override
- public Object onSuccessFromFiltersForm() {
- if (isReset()) {
- // Don't reset period in filters
- PeriodDates period = getFilter().getPeriod();
- getFilterManager().resetFilter();
- getFilter().setPeriod(period);
- }
-
- // Limite search panel
- getFilterManager().updatePossibleValuesForFilter();
-
- if (isRefresh()) {
- // Refresh search panel
- return getFiltersZone().getBody();
- } else {
- // Refresh owner
- return getResources().getContainer();
- }
- }
}
Modified: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/components/TopiaEntitySelector.java
===================================================================
--- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/components/TopiaEntitySelector.java 2011-04-07 08:43:29 UTC (rev 1153)
+++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/components/TopiaEntitySelector.java 2011-04-07 08:43:40 UTC (rev 1154)
@@ -72,6 +72,9 @@
private Boolean multiple;
@Parameter(required = false)
+ private Boolean disabled;
+
+ @Parameter(required = false)
private E selectedValue;
@Parameter(required = false)
@@ -191,6 +194,17 @@
this.multiple = multiple;
}
+ public Boolean getDisabled() {
+ if (disabled == null) {
+ disabled = false;
+ }
+ return disabled;
+ }
+
+ public void setDisabled(Boolean disabled) {
+ this.disabled = disabled;
+ }
+
/**
* Model used by {@link fr.ifremer.wao.ui.components.TopiaEntitySelector}
*
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-04-07 08:43:29 UTC (rev 1153)
+++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Boats.java 2011-04-07 08:43:40 UTC (rev 1154)
@@ -26,7 +26,6 @@
import fr.ifremer.wao.WaoException;
import fr.ifremer.wao.bean.BoatFilter;
-import fr.ifremer.wao.bean.BoatFilterImpl;
import fr.ifremer.wao.bean.CompanyBoatInfos;
import fr.ifremer.wao.bean.ConnectedUser;
import fr.ifremer.wao.bean.SamplingFilter;
@@ -36,17 +35,14 @@
import fr.ifremer.wao.entity.Company;
import fr.ifremer.wao.entity.Contact;
import fr.ifremer.wao.entity.ElligibleBoat;
-import fr.ifremer.wao.entity.Profession;
import fr.ifremer.wao.entity.SampleRow;
import fr.ifremer.wao.service.ServiceBoat;
import fr.ifremer.wao.service.ServiceContact;
import fr.ifremer.wao.service.ServiceReferential;
import fr.ifremer.wao.service.ServiceSampling;
import fr.ifremer.wao.service.ServiceUser;
-import fr.ifremer.wao.ui.base.AbstractFilteredPage;
import fr.ifremer.wao.ui.base.BoatFilterManager;
import fr.ifremer.wao.ui.components.BoatFilterComponent;
-import fr.ifremer.wao.ui.components.FeedBack;
import fr.ifremer.wao.ui.components.Layout;
import fr.ifremer.wao.ui.data.BoatDataSource;
import fr.ifremer.wao.ui.data.ExportStreamResponse;
@@ -56,7 +52,6 @@
import org.apache.commons.lang.BooleanUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.tapestry5.Block;
-import org.apache.tapestry5.EventContext;
import org.apache.tapestry5.Link;
import org.apache.tapestry5.PersistenceConstants;
import org.apache.tapestry5.StreamResponse;
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-04-07 08:43:29 UTC (rev 1153)
+++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Contacts.java 2011-04-07 08:43:40 UTC (rev 1154)
@@ -28,20 +28,17 @@
import fr.ifremer.wao.WaoException;
import fr.ifremer.wao.bean.ConnectedUser;
import fr.ifremer.wao.bean.ContactFilter;
-import fr.ifremer.wao.bean.ContactFilterImpl;
import fr.ifremer.wao.bean.ContactState;
import fr.ifremer.wao.bean.SamplingFilter;
import fr.ifremer.wao.bean.UserRole;
import fr.ifremer.wao.bean.ValidationResult;
import fr.ifremer.wao.entity.Contact;
-import fr.ifremer.wao.entity.ContactStateMotif;
-import fr.ifremer.wao.entity.TerrestrialLocation;
import fr.ifremer.wao.entity.WaoUser;
import fr.ifremer.wao.io.ImportResults;
import fr.ifremer.wao.service.ServiceContact;
import fr.ifremer.wao.service.ServiceReferential;
import fr.ifremer.wao.service.ServiceUser;
-import fr.ifremer.wao.ui.base.AbstractFilteredPage;
+import fr.ifremer.wao.ui.base.ContactFilterManager;
import fr.ifremer.wao.ui.components.Layout;
import fr.ifremer.wao.ui.data.ContactDataSource;
import fr.ifremer.wao.ui.data.ExportStreamResponse;
@@ -52,7 +49,6 @@
import org.apache.commons.lang.BooleanUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.tapestry5.ComponentResources;
-import org.apache.tapestry5.SelectModel;
import org.apache.tapestry5.StreamResponse;
import org.apache.tapestry5.annotations.Environmental;
import org.apache.tapestry5.annotations.Import;
@@ -69,16 +65,12 @@
import org.apache.tapestry5.services.BeanModelSource;
import org.apache.tapestry5.services.javascript.JavaScriptSupport;
import org.apache.tapestry5.upload.services.UploadedFile;
-import org.apache.tapestry5.util.EnumSelectModel;
import org.slf4j.Logger;
import java.io.IOException;
import java.io.InputStream;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Calendar;
-import java.util.GregorianCalendar;
import java.util.List;
/**
@@ -92,7 +84,7 @@
@SuppressWarnings({"UnusedDeclaration"})
@RequiresAuthentication(allowedRoles = {UserRole.ADMIN, UserRole.COORDINATOR, UserRole.OBSERVER})
@Import(stylesheet = "context:css/contacts.css")
-public class Contacts extends AbstractFilteredPage {
+public class Contacts {
@Inject
private Logger logger;
@@ -116,6 +108,20 @@
@Inject
private Messages messages;
+ @Persist
+ private ContactFilterManager filterManager;
+
+ public ContactFilterManager getFilterManager() {
+ if (filterManager == null) {
+ filterManager = new ContactFilterManager(user, serviceContact);
+ }
+ return filterManager;
+ }
+
+ public void setFilterManager(ContactFilterManager filterManager) {
+ this.filterManager = filterManager;
+ }
+
public String getLabelForEnum(Enum value) {
return messages.get(value.getDeclaringClass().getSimpleName() + "." + value.name());
}
@@ -123,17 +129,10 @@
@Log
void setupRender() throws WaoException {
contacts = null;
- // Initialize filters if needed
- if (isFiltersVisible()) {
- initSelectFilters(true, true, true);
- }
// Initialize fullView to true for admin user
if (fullView == null) {
fullView = user.isAdmin();
}
-
- // The company of connected user will be contributed to abstractFilteredPage
- initCompanyFilter();
}
@Log
@@ -146,8 +145,8 @@
@Persist
private ContactFilter contactFilter;
- @InjectComponent
- private Zone filtersZone;
+// @InjectComponent
+// private Zone filtersZone;
@InjectComponent
private Zone importExportZone;
@@ -158,13 +157,7 @@
private ContactState stateFilter;
public ContactFilter getContactFilter() throws WaoException {
- if (contactFilter == null) {
- if (logger.isDebugEnabled()) {
- logger.debug("Init contactFilter");
- }
- contactFilter = serviceContact.newContactFilter(user);
- }
- return contactFilter;
+ return getFilterManager().getFilter();
}
public boolean isFiltersVisible() {
@@ -174,22 +167,10 @@
StringUtils.isEmpty(getContactFilter().getBoatName());
}
- @Override
protected SamplingFilter getFilter() throws WaoException {
return getContactFilter();
}
- @Override
- protected boolean isAvailableDataForFiltersOnly() {
- return false;
- }
-
- Object onActionFromShowFilters() {
- // Initialize filters
- initSelectFilters(true, true, true);
- return filtersZone.getBody();
- }
-
Object onActionFromShowImportExport() {
return importExportZone.getBody();
}
@@ -198,90 +179,90 @@
reset = true;
}
- @Log
- Object onSuccessFromFiltersForm() throws WaoException {
- if (StringUtils.isNotEmpty(contactStateMotifId)) {
- getContactFilter().setContactStateMotif(getContactStateMotifSelectModel().findObject(contactStateMotifId));
- }
- if (isEdited()) {
- return filtersZone.getBody();
- }
- if (reset) {
- contactFilter = null;
- }
-// else {
-// filtersVisible = true;
+// @Log
+// Object onSuccessFromFiltersForm() throws WaoException {
+// if (StringUtils.isNotEmpty(contactStateMotifId)) {
+// getContactFilter().setContactStateMotif(getContactStateMotifSelectModel().findObject(contactStateMotifId));
// }
- return this;
- }
+// if (isEdited()) {
+// return filtersZone.getBody();
+// }
+// if (reset) {
+// contactFilter = null;
+// }
+//// else {
+//// filtersVisible = true;
+//// }
+// return this;
+// }
- public void onChangeFromSampleRow(String sampleRowId) {
- getFilter().setSampleRow(getSampleRowSelectModel().findObject(sampleRowId));
- if (logger.isDebugEnabled()) {
- logger.debug("change sample row code in filter to " + getFilter().getSampleRow());
- }
- }
+// public void onChangeFromSampleRow(String sampleRowId) {
+// getFilter().setSampleRow(getSampleRowSelectModel().findObject(sampleRowId));
+// if (logger.isDebugEnabled()) {
+// logger.debug("change sample row code in filter to " + getFilter().getSampleRow());
+// }
+// }
@Inject
private ServiceReferential serviceReferential;
- @Property
- @Persist
- private String terrestrialLocationId;
+// @Property
+// @Persist
+// private String terrestrialLocationId;
- public Zone onValueChangedTerrestrialDistrict(String terrestrialDistrictId) {
- updateLocation(terrestrialDistrictId);
- return filtersZone;
- }
+// public Zone onValueChangedTerrestrialDistrict(String terrestrialDistrictId) {
+// updateLocation(terrestrialDistrictId);
+// return filtersZone;
+// }
- private GenericSelectModel<TerrestrialLocation> terrestrialLocationSelectModel;
+// private GenericSelectModel<TerrestrialLocation> terrestrialLocationSelectModel;
+//
+// public GenericSelectModel<TerrestrialLocation> getTerrestrialLocationSelectModel() {
+// List<TerrestrialLocation> locations = new ArrayList<TerrestrialLocation>();
+// if (getFilter().getTerrestrialDistrict() != null) {
+// // it may occurs if the user reset the filters
+// serviceReferential.getAllTerrestrialLocations(getContactFilter(),
+// getFilter().getTerrestrialDistrict().getDistrictCode());
+// }
+// terrestrialLocationSelectModel = new GenericSelectModel<TerrestrialLocation>(locations,
+// TerrestrialLocation.class, "description", TerrestrialLocation.TOPIA_ID, propertyAccess);
+// return terrestrialLocationSelectModel;
+// }
- public GenericSelectModel<TerrestrialLocation> getTerrestrialLocationSelectModel() {
- List<TerrestrialLocation> locations = new ArrayList<TerrestrialLocation>();
- if (getFilter().getTerrestrialDistrict() != null) {
- // it may occurs if the user reset the filters
- serviceReferential.getAllTerrestrialLocations(getContactFilter(),
- getFilter().getTerrestrialDistrict().getDistrictCode());
- }
- terrestrialLocationSelectModel = new GenericSelectModel<TerrestrialLocation>(locations,
- TerrestrialLocation.class, "description", TerrestrialLocation.TOPIA_ID, propertyAccess);
- return terrestrialLocationSelectModel;
- }
+// public SelectModel getContactStateSelectModel() {
+// List<ContactState> allowedStates = ContactState.getAllowedStates(user.getProfile().getObsProgram());
+// return new EnumSelectModel(ContactState.class, messages,
+// // just convert list to array
+// allowedStates.toArray(new ContactState[allowedStates.size()]));
+// }
- public SelectModel getContactStateSelectModel() {
- List<ContactState> allowedStates = ContactState.getAllowedStates(user.getProfile().getObsProgram());
- return new EnumSelectModel(ContactState.class, messages,
- // just convert list to array
- allowedStates.toArray(new ContactState[allowedStates.size()]));
- }
+// @Property
+// @Persist
+// private String contactStateMotifId;
+//
+// private GenericSelectModel<ContactStateMotif> contactStateMotifSelectModel;
+//
+// public GenericSelectModel<ContactStateMotif> getContactStateMotifSelectModel() {
+// if (contactStateMotifSelectModel == null) {
+// if (contactFilter.getState() != null) {
+// List<ContactStateMotif> motifs = serviceReferential.getAllContactStateMotifs(contactFilter.getState());
+// if (motifs.size() != 0) {
+// contactStateMotifSelectModel = new GenericSelectModel<ContactStateMotif>(
+// motifs, ContactStateMotif.class, "translation", ContactStateMotif.TOPIA_ID, propertyAccess);
+// }
+// }
+// }
+// return contactStateMotifSelectModel;
+// }
- @Property
- @Persist
- private String contactStateMotifId;
+// public Zone onValueChangedFromState(ContactState contactState) {
+// contactFilter.setState(contactState);
+// // refresh
+// contactStateMotifSelectModel = null;
+// contactStateMotifId = null;
+// return filtersZone;
+// }
- private GenericSelectModel<ContactStateMotif> contactStateMotifSelectModel;
-
- public GenericSelectModel<ContactStateMotif> getContactStateMotifSelectModel() {
- if (contactStateMotifSelectModel == null) {
- if (contactFilter.getState() != null) {
- List<ContactStateMotif> motifs = serviceReferential.getAllContactStateMotifs(contactFilter.getState());
- if (motifs.size() != 0) {
- contactStateMotifSelectModel = new GenericSelectModel<ContactStateMotif>(
- motifs, ContactStateMotif.class, "translation", ContactStateMotif.TOPIA_ID, propertyAccess);
- }
- }
- }
- return contactStateMotifSelectModel;
- }
-
- public Zone onValueChangedFromState(ContactState contactState) {
- contactFilter.setState(contactState);
- // refresh
- contactStateMotifSelectModel = null;
- contactStateMotifId = null;
- return filtersZone;
- }
-
/**************************** CONTACT IMPORT/EXPORT ***********************/
@Property
Added: trunk/wao-ui/src/main/resources/fr/ifremer/wao/ui/components/ContactFilterComponent.tml
===================================================================
--- trunk/wao-ui/src/main/resources/fr/ifremer/wao/ui/components/ContactFilterComponent.tml (rev 0)
+++ trunk/wao-ui/src/main/resources/fr/ifremer/wao/ui/components/ContactFilterComponent.tml 2011-04-07 08:43:40 UTC (rev 1154)
@@ -0,0 +1,217 @@
+<!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" class="so-filters" t:id="filtersZone" t:visible="prop:filtersVisible" id="so-contacts-filters">
+ <fieldset>
+ <legend>${message:wao.ui.misc.advancedSearch}</legend>
+ <div class="so-filters-form">
+ <form t:type="form" t:id="filtersForm" t:zone="so-contacts-filters">
+ <t:errors />
+ <div class="t-beaneditor">
+ <div>
+ <div style="float: left; margin-right: 15px;">
+ <label for="sampleRow">${message:wao.ui.field.SampleRow.code} :</label><br />
+ <t:topiaEntitySelector t:id="sampleRow"
+ t:multiple="true"
+ t:clazzName="SampleRow"
+ t:labelPropertyName="code"
+ t:values="possibleValuesForFilter.sampleRowsAsList"
+ t:selectedValues="filter.sampleRows"
+ size="6"/>
+ </div>
+
+ <label for="fromDate">${message:wao.ui.misc.since} :</label>
+ <input t:type="datefield" class="width70" t:id="fromDate" value="filter.fromDate" />
+ <label for="state">${message:wao.ui.field.Contact.contactState} :</label>
+
+ <!-- TODO sletellier 20110406 : create SimpleEnumSelector ??? -->
+ <select t:type="select"
+ t:id="state"
+ value="filter.state"
+ t:model="contactStateSelectModel"/>
+ <!-- t:zone="so-contacts-filters" -->
+
+ <!-- TODO sletellier 20110407 : not yet implemented -->
+ <!--label for="stateMotif">${message:wao.ui.field.Contact.contactStateMotif} :</label>
+ <t:topiaEntitySelector t:id="stateMotif"
+ t:clazzName="ContactStateMotif"
+ t:labelPropertyName="translation"
+ t:values="possibleValuesForFilter.stateAsList"
+ t:selectedValues="filter.state"/> -->
+ <t:if t:test="user.admin">
+ <label for="company">${message:wao.ui.entity.Company} :</label>
+ <t:topiaEntitySelector t:id="company"
+ t:clazzName="Company"
+ t:labelPropertyName="name"
+ t:values="possibleValuesForFilter.companiesAsList"
+ t:selectedValue="filter.company"/>
+ <!--input t:type="select" t:id="company" t:model="companySelectModel" value="companyId"/>
+ <input t:type="submit" class="ico22px refresh" t:id="refreshByCompany" value="Refresh"
+ title="Rafraîchir les filtres en fonction de la société sélectionnée"/-->
+ </t:if>
+ <label for="observer">${message:wao.ui.misc.observer} :</label>
+ <t:topiaEntitySelector t:id="observer"
+ t:clazzName="WaoUser"
+ t:labelPropertyName="fullName"
+ t:values="possibleValuesForFilter.observersAsList"
+ t:selectedValue="filter.observer"/>
+ <!--select t:type="select" t:id="observer" t:model="observerSelectModel" value="observerId" /-->
+ </div>
+ <p> </p>
+ <div>
+ <label>${message:wao.ui.entity.Boat} </label>
+ <label t:for="boatImmatriculation">${message:wao.ui.field.Boat.immatriculation} :</label>
+ <input t:type="textfield"
+ t:id="boatImmatriculation"
+ class="width50"
+ t:value="filter.boatImmatriculation" />
+
+ <label t:for="boatDistrictCode">${message:wao.ui.field.Boat.districtCode} :</label>
+ <input t:type="textfield"
+ t:id="boatDistrictCode"
+ class="width50"
+ t:value="filter.boatDistrictCode" />
+
+ <label t:for="facadeName">${message:wao.ui.field.FishingZone.facadeName} :</label>
+ <t:simpleSelector t:id="facadeName"
+ t:values="possibleValuesForFilter.facadeNamesAsList"
+ t:selectedValue="filter.facadeName"/>
+ <!--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.action.refresh}" /-->
+ <label for="sectorName">${message:wao.ui.field.FishingZone.sectorName} :</label>
+ <t:simpleSelector t:id="sectorName"
+ t:values="possibleValuesForFilter.sectorsNamesAsList"
+ t:selectedValue="filter.sectorName"/>
+ <!--select t:type="select" t:id="sectorName" t:model="sectorSelectModel" value="filter.sectorName" />
+ <input t:type="submit" class="ico22px refresh" t:id="refreshBySector" value="Refresh"
+ title="Rafraîchir les métiers en fonction de la zone sélectionnée"/-->
+ </div>
+ <p> </p>
+ <t:if test="user.obsVente">
+ <div>
+ <label>${message:wao.ui.field.SampleRow.terrestrialLocation} :</label>
+ <t:topiaEntitySelector t:id="terrestrialDistrict"
+ t:clazzName="TerrestrialLocation"
+ t:labelPropertyName="description"
+ t:values="possibleValuesForFilter.terrestrialDistrictsAsList"
+ t:selectedValue="filter.terrestrialDistrict"/>
+ <!--input t:type="select" t:id="terrestrialDistrict" t:zone="so-contacts-filters" t:model="terrestrialDistrictSelectModel" t:value="terrestrialDistrictId" /-->
+ <t:if test="filter.terrestrialDistrict">
+ <label style="margin-left: 10px;">${message:wao.ui.field.Contact.terrestrialLocation} :</label>
+ <t:topiaEntitySelector t:id="terrestrialLocation"
+ t:clazzName="TerrestrialLocation"
+ t:labelPropertyName="description"
+ t:values="possibleValuesForFilter.terrestrialDistrictsAsList"
+ t:selectedValue="filter.terrestrialLocation"/>
+ <!--input t:type="select" t:model="terrestrialLocationSelectModel" t:value="terrestrialLocationId" /-->
+ </t:if>
+ </div>
+ <p> </p>
+ </t:if>
+ <div>
+ <t:if test="user.obsMer">
+ <label>${message:wao.ui.misc.observations} :</label>
+ <input t:type="checkbox" t:id="mammalsObservation" value="filter.mammalsObservation" />
+ <label for="mammalsObservation">
+ <img src="${asset:context:img/eye-22px.png}" alt="${message:wao.ui.field.Contact.mammalsObservation}" />
+ </label>
+ <label>${message:wao.ui.field.Contact.mammalsCapture} :</label>
+ <input t:type="checkbox" t:id="mammalsCapture" value="filter.mammalsCapture" />
+ <label for="mammalsCapture">
+ <img src="${asset:context:img/fishing-net-22px.png}" alt="${message:wao.ui.field.Contact.mammalsCapture}" />
+ </label>
+ </t:if>
+ <label>${message:wao.ui.field.Contact.validationCompany} :</label>
+ <input t:type="checkbox" t:id="companyAccepted" value="filter.companyAccepted" />
+ <label for="companyAccepted">
+ <img src="${asset:context:img/true-22px.png}" alt="${message:wao.ui.misc.accepted}" />
+ </label>
+ <input t:type="checkbox" t:id="companyRefused" value="filter.companyRefused" />
+ <label t:for="companyRefused">
+ <img src="${asset:context:img/false-22px.png}" alt="${message:wao.ui.misc.refused}" />
+ </label>
+ <input t:type="checkbox" t:id="companyUndefined" value="filter.companyUndefined" />
+ <label t:for="companyUndefined">
+ <img src="${asset:context:img/help-22px.png}" alt="${message:wao.ui.misc.undefined}" />
+ </label>
+ <label>${message:wao.ui.field.Contact.validationProgram} :</label>
+ <input t:type="checkbox" t:id="programAccepted" value="filter.programAccepted" />
+ <label t:for="programAccepted">
+ <img src="${asset:context:img/true-22px.png}" alt="${message:wao.ui.misc.accepted}" />
+ </label>
+ <input t:type="checkbox" t:id="programRefused" value="filter.programRefused" />
+ <label t:for="programRefused">
+ <img src="${asset:context:img/false-22px.png}" alt="${message:wao.ui.misc.refused}" />
+ </label>
+ <input t:type="checkbox" t:id="programUndefined" value="filter.programUndefined" />
+ <label t:for="programUndefined">
+ <img src="${asset:context:img/help-22px.png}" alt="${message:wao.ui.misc.undefined}" />
+ </label>
+ <t:if test="user.obsMer">
+ <t:unless t:test="user.observer">
+ <label for="reliabilityFilter">${message:wao.ui.field.Contact.dataReliability} :</label>
+ <select t:type="select" t:id="reliabilityFilter" value="filter.dataReliability"/>
+ </t:unless>
+ </t:if>
+ <span style="margin-left: 15px;">${message:wao.ui.misc.comments} :</span>
+ <input t:type="checkbox" t:id="commentFilter" value="filter.comment" />
+ <label for="commentFilter" style="margin-right: 5px;">${message:wao.ui.field.Contact.mainObserver}</label>
+
+ <input t:type="checkbox" t:id="commentCompany" value="filter.commentCompany" />
+ <label for="commentCompany" style="margin-right: 5px;">${message:wao.ui.entity.Company}</label>
+
+ <input t:type="checkbox" t:id="commentAdmin" value="filter.commentAdmin" />
+ <label for="commentAdmin" style="margin-right: 5px;">${message:wao.ui.form.program}</label>
+ </div>
+ <t:if t:test="user.obsVente">
+ <label for="samplingStrategy">${message:wao.ui.field.SampleRow.samplingStrategy}</label>
+ <!-- TODO sletellier 20110405 : find how model is filled -->
+ <input t:type="select"
+ t:id="samplingStrategy"
+ value="filter.samplingStrategy" />
+
+ <label for="actualSamplingStrategy">${message:wao.ui.field.Contact.samplingStrategy}</label>
+ <!-- TODO sletellier 20110405 : find how model is filled -->
+ <input t:type="select"
+ t:id="actualSamplingStrategy"
+ value="filter.actualSamplingStrategy" />
+
+ <label>${message:wao.ui.field.Contact.completeSampling}</label>
+ <input t:type="checkbox" t:id="completeSampling" value="filter.completeSampling" />
+ <label for="completeSampling">
+ <img src="${asset:context:img/true-22px.png}" alt="${message:wao.ui.misc.yes}" />
+ </label>
+ <input t:type="checkbox" t:id="incompleteSampling" value="filter.incompleteSampling" />
+ <label t:for="incompleteSampling">
+ <img src="${asset:context:img/false-22px.png}" alt="${message:wao.ui.misc.no}" />
+ </label>
+ <input t:type="checkbox" t:id="noSamplingCompleteness" value="filter.noSamplingCompleteness" />
+ <label t:for="noSamplingCompleteness">
+ <img src="${asset:context:img/help-22px.png}" alt="${message:wao.ui.misc.undefined}" />
+ </label>
+ </t:if>
+ <div class="fleft" style="margin-top: 15px;">
+ <input t:type="checkbox" t:id="sortedByBoardingDate" value="filter.sortedByBoardingDate" />
+ <label for="sortedByBoardingDate">${message:wao.ui.form.sortByTideBegin}</label>
+ </div>
+ <div class="t-beaneditor-row aright">
+ <input t:type="submit" class="ico22px refresh" t:id="refresh"
+ value="${message:wao.ui.filters.refresh}"
+ title="${message:wao.ui.filters.refresh}"/>
+ <input t:type="submit"
+ class="ico search-32px"
+ t:id="search"
+ value="Search"
+ title="${message:wao.ui.action.runSearch}" />
+
+ <input t:type="submit"
+ class="ico undo"
+ t:id="reset"
+ value="Reset"
+ title="${message:wao.ui.action.resetFields}" />
+ </div>
+ </div>
+ </form>
+ </div>
+ </fieldset>
+ </div>
+</html>
\ No newline at end of file
Modified: trunk/wao-ui/src/main/resources/fr/ifremer/wao/ui/components/TopiaEntitySelector.tml
===================================================================
--- trunk/wao-ui/src/main/resources/fr/ifremer/wao/ui/components/TopiaEntitySelector.tml 2011-04-07 08:43:29 UTC (rev 1153)
+++ trunk/wao-ui/src/main/resources/fr/ifremer/wao/ui/components/TopiaEntitySelector.tml 2011-04-07 08:43:40 UTC (rev 1154)
@@ -30,13 +30,15 @@
t:model="multipleModel"
t:encoder="multipleModel"
t:value="selectedValues"
+ t:disabled="disabled"
size="${size}"/>
<p:else>
<input t:type="select"
t:id="select"
t:model="model"
t:encoder="model"
- t:value="selectedValue"/>
+ t:value="selectedValue"
+ t:disabled="disabled"/>
</p:else>
</t:if>
</html>
\ No newline at end of file
Modified: trunk/wao-ui/src/main/webapp/Contacts.tml
===================================================================
--- trunk/wao-ui/src/main/webapp/Contacts.tml 2011-04-07 08:43:29 UTC (rev 1153)
+++ trunk/wao-ui/src/main/webapp/Contacts.tml 2011-04-07 08:43:40 UTC (rev 1154)
@@ -57,8 +57,11 @@
</a>
</t:if>
</div>
+
+<t:contactFilterComponent t:id="filterComponent"
+ t:filterManager="filterManager"/>
<!-- FILTRES -->
-<div t:type="zone" class="so-filters" t:id="filtersZone" t:visible="prop:filtersVisible" id="so-contacts-filters">
+<!--div t:type="zone" class="so-filters" t:id="filtersZone" t:visible="prop:filtersVisible" id="so-contacts-filters">
<fieldset>
<legend>${message:wao.ui.misc.advancedSearch}</legend>
<div class="so-filters-form">
@@ -205,7 +208,7 @@
</form>
</div>
</fieldset>
-</div>
+</div-->
<!-- IMPORT/EXPORT -->
<div t:type="zone" class="so-filters" t:id="importExportZone" t:update="show" t:visible="false" id="so-contacts-importexport">
<fieldset>
1
0
[Suiviobsmer-commits] r1153 - in trunk: wao-business/src/main/java/fr/ifremer/wao/bean wao-business/src/main/java/fr/ifremer/wao/service wao-business/src/test/java/fr/ifremer/wao/service wao-ui/src/main/java/fr/ifremer/wao/ui/pages
by bleny@users.labs.libre-entreprise.org 07 Apr '11
by bleny@users.labs.libre-entreprise.org 07 Apr '11
07 Apr '11
Author: bleny
Date: 2011-04-07 08:43:29 +0000 (Thu, 07 Apr 2011)
New Revision: 1153
Log:
move ObsDeb sampleRow validation to servic - WiP
Added:
trunk/wao-business/src/main/java/fr/ifremer/wao/bean/ValidationResultImpl.java
Modified:
trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceSamplingImpl.java
trunk/wao-business/src/test/java/fr/ifremer/wao/service/ObsDebTest.java
trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/SampleRowForm.java
Added: trunk/wao-business/src/main/java/fr/ifremer/wao/bean/ValidationResultImpl.java
===================================================================
--- trunk/wao-business/src/main/java/fr/ifremer/wao/bean/ValidationResultImpl.java (rev 0)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/bean/ValidationResultImpl.java 2011-04-07 08:43:29 UTC (rev 1153)
@@ -0,0 +1,13 @@
+package fr.ifremer.wao.bean;
+
+import org.apache.commons.lang.builder.ToStringBuilder;
+
+public class ValidationResultImpl extends ValidationResult {
+
+ @Override
+ public String toString() {
+ String toString = ToStringBuilder.reflectionToString(this);
+ return toString;
+ }
+
+}
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-04-06 18:33:05 UTC (rev 1152)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceSamplingImpl.java 2011-04-07 08:43:29 UTC (rev 1153)
@@ -47,6 +47,7 @@
import fr.ifremer.wao.bean.SamplingStrategy;
import fr.ifremer.wao.bean.UserRole;
import fr.ifremer.wao.bean.ValidationResult;
+import fr.ifremer.wao.bean.ValidationResultImpl;
import fr.ifremer.wao.entity.Boat;
import fr.ifremer.wao.entity.Company;
import fr.ifremer.wao.entity.CompanyDAO;
@@ -124,6 +125,8 @@
import java.util.LinkedList;
import java.util.List;
+import static org.nuiton.i18n.I18n.n_;
+
/**
* ServiceSamplingImpl
*
@@ -1452,7 +1455,44 @@
}
@Override
- protected ValidationResult executeValidateSampleRow(TopiaContext transaction, SampleRow sampleRow) {
- throw new UnsupportedOperationException("not yet implemented");
+ protected ValidationResult executeValidateSampleRow(TopiaContext transaction, SampleRow sampleRow) throws TopiaException {
+
+ ValidationResult validationResult = new ValidationResultImpl();
+ validationResult.setSuccess(true);
+
+ if (ObsProgram.OBSDEB == sampleRow.getObsProgram()) {
+
+ if (sampleRow.getObservers() != null && sampleRow.getDay() != null) {
+
+ // let's find a conflict, is there another sample-row
+ // declaring the this observer should be anywhere on the
+ // same day
+
+ SamplingFilter samplingFilter = new SamplingFilterImpl();
+ samplingFilter.setObsProgram(ObsProgram.OBSDEB);
+ samplingFilter.setPeriod(new PeriodDates(sampleRow.getDay(), sampleRow.getDay()));
+
+ String message = "";
+
+ for (WaoUser observer : sampleRow.getObservers()) {
+
+ samplingFilter.setObserver(observer);
+ List<SampleRow> conflictingSampleRows = executeGetSampleRowsByFilter(transaction, samplingFilter);
+
+ if ( ! conflictingSampleRows.isEmpty()) {
+ validationResult.setSuccess(false);
+ message += WaoUtils.translate(n_("wao.validation.sampleRow.conflictOnObserver"),
+ observer.getFullName(), sampleRow.getCode(), conflictingSampleRows.get(0).getCode());
+ }
+ }
+
+ validationResult.setMessage(message);
+ }
+
+ } else {
+ throw new UnsupportedOperationException("not supported (yet)");
+ }
+
+ return validationResult;
}
}
Modified: trunk/wao-business/src/test/java/fr/ifremer/wao/service/ObsDebTest.java
===================================================================
--- trunk/wao-business/src/test/java/fr/ifremer/wao/service/ObsDebTest.java 2011-04-06 18:33:05 UTC (rev 1152)
+++ trunk/wao-business/src/test/java/fr/ifremer/wao/service/ObsDebTest.java 2011-04-07 08:43:29 UTC (rev 1153)
@@ -30,6 +30,7 @@
import fr.ifremer.wao.bean.SamplingFilter;
import fr.ifremer.wao.bean.SamplingFilterValues;
import fr.ifremer.wao.bean.UserRole;
+import fr.ifremer.wao.bean.ValidationResult;
import fr.ifremer.wao.entity.Company;
import fr.ifremer.wao.entity.CompanyImpl;
import fr.ifremer.wao.entity.SampleRow;
@@ -322,8 +323,35 @@
Assert.assertTrue("added observer is mentioned in the log", logEntry.contains(josh().getFullName()));
}
+ /**
+ * We want to check that the coordinator is not able to create a bad sampling
+ * plan by sending a same observer on two different place the same day
+ */
@Test
@Ignore("not yet implemented")
+ public void coordinatorCannotBreakSamplingPlan() throws IOException, WaoBusinessException {
+ coordinatorCanAddObserversViaImport();
+
+ ServiceSampling serviceSampling = manager.getServiceSampling();
+
+ // josh cannot be affected to this row, because on the same day
+ // he is to be elsewhere
+ SampleRow row2011_891 = serviceSampling.getSampleRowByCode(joshAsCoordinator(), "2011_891");
+ row2011_891.addObservers(josh());
+
+ ValidationResult validationResult = serviceSampling.validateSampleRow(row2011_891);
+
+ if (log.isDebugEnabled()) {
+ log.debug("validation result is " + validationResult.toString());
+ }
+
+ Assert.assertFalse("validation must fail", validationResult.isSuccess());
+ Assert.assertTrue("message mentions sample row in conflict",
+ validationResult.getMessage().contains("2011_890"));
+ }
+
+ @Test
+ @Ignore("not yet implemented")
public void observerCanReadSamplingPlan() throws IOException, WaoBusinessException {
// first, the coordinator must add observers
coordinatorCanAddObserversViaImport();
Modified: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/SampleRowForm.java
===================================================================
--- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/SampleRowForm.java 2011-04-06 18:33:05 UTC (rev 1152)
+++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/SampleRowForm.java 2011-04-07 08:43:29 UTC (rev 1153)
@@ -662,40 +662,13 @@
saveProgram();
}
- protected ValidationResult validateSampleRow(SampleRow sampleRow) {
- ValidationResult validationResult = new ValidationResultImpl();
-
- if (ObsProgram.OBSDEB == sampleRow.getObsProgram()) {
-
- if (sampleRow.getObservers() != null && sampleRow.getDay() != null) {
- for (WaoUser observer : sampleRow.getObservers()) {
-
- // let's find a conflict, is there another sample-row
- // declaring the this observer should be anywhere on the
- // same day
-
- // SampleRowDAO sampleRowDAO = WaoDAOHelper.getSampleRowDAO(transaction);
- // Map<String, Object> properties = new HashMap<String, Object>();
- // properties.put(SampleRow.PROPERTY_OBS_PROGRAM_ORDINAL, sampleRow.getObsProgram().ordinal());
- // properties.put(SampleRow.PROPERTY_DAY, sampleRow.getDay());
- // addInObservers
- }
- }
-
- } else {
- throw new UnsupportedOperationException("not supported (yet)");
- }
-
- return validationResult;
- }
-
@Log
void onValidateFormFromSampleRowForm() throws WaoException {
sampleRowForm.clearErrors();
if (ObsProgram.OBSDEB == getSampleRow().getObsProgram()) {
- ValidationResult validationResult = validateSampleRow(getSampleRow());
+ ValidationResult validationResult = serviceSampling.validateSampleRow(getSampleRow());
if ( ! validationResult.isSuccess()) {
sampleRowForm.recordError(validationResult.getMessage());
1
0
[Suiviobsmer-commits] r1152 - trunk/wao-business/src/main/java/fr/ifremer/wao/bean
by bleny@users.labs.libre-entreprise.org 06 Apr '11
by bleny@users.labs.libre-entreprise.org 06 Apr '11
06 Apr '11
Author: bleny
Date: 2011-04-06 18:33:05 +0000 (Wed, 06 Apr 2011)
New Revision: 1152
Log:
code style
Modified:
trunk/wao-business/src/main/java/fr/ifremer/wao/bean/SamplingFilterImpl.java
Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/bean/SamplingFilterImpl.java
===================================================================
--- trunk/wao-business/src/main/java/fr/ifremer/wao/bean/SamplingFilterImpl.java 2011-04-06 17:50:38 UTC (rev 1151)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/bean/SamplingFilterImpl.java 2011-04-06 18:33:05 UTC (rev 1152)
@@ -28,7 +28,6 @@
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.lang.builder.ToStringBuilder;
-import org.nuiton.util.beans.BeanUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -108,8 +107,7 @@
@Override
public String toString() {
- ToStringBuilder toStringBuilder = new ToStringBuilder(this);
- String toString = toStringBuilder.reflectionToString(this);
+ String toString = ToStringBuilder.reflectionToString(this);
return toString;
}
}
1
0
[Suiviobsmer-commits] r1151 - trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages
by bleny@users.labs.libre-entreprise.org 06 Apr '11
by bleny@users.labs.libre-entreprise.org 06 Apr '11
06 Apr '11
Author: bleny
Date: 2011-04-06 17:50:38 +0000 (Wed, 06 Apr 2011)
New Revision: 1151
Log:
forgot file
Modified:
trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Boats.java
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-04-06 17:49:48 UTC (rev 1150)
+++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Boats.java 2011-04-06 17:50:38 UTC (rev 1151)
@@ -63,6 +63,7 @@
import org.apache.tapestry5.annotations.Import;
import org.apache.tapestry5.annotations.InjectComponent;
import org.apache.tapestry5.annotations.InjectPage;
+import org.apache.tapestry5.annotations.Log;
import org.apache.tapestry5.annotations.Persist;
import org.apache.tapestry5.annotations.Property;
import org.apache.tapestry5.annotations.SessionState;
@@ -104,9 +105,6 @@
@Property
private ConnectedUser user;
- @InjectComponent
- private BoatFilterComponent filterComponent;
-
@Inject
private ServiceReferential serviceReferential;
@@ -122,54 +120,25 @@
@Inject
private PropertyAccess propertyAccess;
-// @Property
-// private String sampleRowContextId;
-
- /** Selected boat immatriculation for showing boatInfos */
- //(a)Persist(PersistenceConstants.FLASH)
- @Persist
- private Integer boatSelectedImmatriculation;
-
- @Persist
- private BoatFilterManager filterManager;
-
- public BoatFilterManager getFilterManager() {
- if (filterManager == null) {
- filterManager = new BoatFilterManager(user, serviceBoat);
- }
- return filterManager;
- }
-
- public void setFilterManager(BoatFilterManager filterManager) {
- this.filterManager = filterManager;
- }
-
- public Integer getBoatSelectedImmatriculation() {
- return boatSelectedImmatriculation;
- }
-
- public void setBoatSelectedImmatriculation(Integer boatSelectedImmatriculation) {
- this.boatSelectedImmatriculation = boatSelectedImmatriculation;
- }
-
void setupRender() throws WaoException {
- if (boatSelectedImmatriculation != null && getBoatSelected() == null) {
- layout.addFatal("L'immatriculation " + boatSelectedImmatriculation +
- " ne correspond à aucun navire affichable. " +
- "Veuillez à enlever cette immatriculation de l'url puis" +
- " rechargez la page.");
- boatSelectedImmatriculation = null;
- }
+// if (boatSelectedImmatriculation != null && getBoatSelected() == null) {
+// layout.addFatal("L'immatriculation " + boatSelectedImmatriculation +
+// " ne correspond à aucun navire affichable. " +
+// "Veuillez à enlever cette immatriculation de l'url puis" +
+// " rechargez la page.");
+// boatSelectedImmatriculation = null;
+// }
// Initialize filters using AbstractFilteredPage superclass
// initSelectFilters(false, false, false);
// // The company of connected user will be contributed to abstractFilteredPage
// initCompanyFilter();
+ boats = null;
+ boatSelectedImmatriculation = null;
companyBoatInfos = null;
}
-
// void onActivate(EventContext ec) {
// sampleRowContextId = ec.get(String.class, 0);
// if (ec.getCount() > 1) {
@@ -186,143 +155,52 @@
// return sampleRowContextId;
// }
- /**************************** Import Forms ********************************/
+ StreamResponse onActionFromExportShowBoats() {
+ return new ExportStreamResponse("wao-navires") {
-// /** Csv file for boats import */
+ @Override
+ public InputStream getStream() throws IOException {
+ InputStream result = null;
+ try {
+ if (log.isDebugEnabled()) {
+ log.debug("Filter sampleRow : " + getFilter().getSampleRow());
+ }
+ result = serviceBoat.exportBoatCsv(getBoatFilter());
+ } catch (WaoException eee) {
+ throw new IOException(eee);
+ }
+ return result;
+ }
+ };
+ }
+
+ /******************** FILTERS *******************/
+
+ @InjectComponent
+ private BoatFilterComponent filterComponent;
+
// @Property
-// private UploadedFile boatsCsvFile;
-//
-// /** Csv file for activityCalendar import, can be a Gzip file */
-// @Property
-// private UploadedFile activityCalendarsCsvFile;
-//
-// private InputStream activityCalendarLogFile;
-//
-// private InputStream activityCalendarLogAccessFile;
-//
-// protected static final String GZIP_MIMETYPE = "application/x-gzip";
-//
-// public boolean canImportReferentials() {
-// return user.isAdmin() && !user.isReadOnly();
-// }
-//
-// @Log
-// void onSuccessFromImportBoatsForm() {
-// if (canImportReferentials()) {
-// try {
-// int[] result = serviceBoat.importBoatCsv(
-// boatsCsvFile.getStream());
-// // Suppress persitant list of boats
-// boats = null;
-// layout.addInfo(result[0] + " navires importés dont " +
-// result[1] + " nouveaux");
-// } catch (WaoBusinessException eee) {
-// layout.addError(eee.getMessage());
-// }
-// }
-// }
-//
-// InputStream getActivityCalendarLogFile() throws FileNotFoundException {
-// if (activityCalendarLogFile == null) {
-// activityCalendarLogFile = serviceBoat.getActivityCalendarLogFile();
-// }
-// return activityCalendarLogFile;
-// }
-//
-// public boolean isLogFileExists() {
-// try {
-// getActivityCalendarLogFile();
-// return true;
-// } catch (FileNotFoundException eee) {
-// if (log.isInfoEnabled()) {
-// log.info("Aucun fichier de log existant pour les calendriers d'activité");
-// }
-// return false;
-// }
-// }
-//
-// InputStream getActivityCalendarLogAccessFile() throws FileNotFoundException {
-// if (activityCalendarLogAccessFile == null) {
-// activityCalendarLogAccessFile =
-// serviceBoat.getActivityCalendarLogAccessFile();
-// }
-// return activityCalendarLogAccessFile;
-// }
-//
-// public boolean isLogAccessFileExists() {
-// try {
-// getActivityCalendarLogAccessFile();
-// return true;
-// } catch (FileNotFoundException eee) {
-// if (log.isInfoEnabled()) {
-// log.info("Aucun fichier de log existant pour les accès " +
-// "utilisateurs aux calendriers d'activité");
-// }
-// return false;
-// }
-// }
-//
-// @Log
-// void onSuccessFromImportActivityCalendarsForm()
-// throws WaoException, IOException {
-// if (canImportReferentials()) {
-// InputStream input = activityCalendarsCsvFile.getStream();
-// if (log.isDebugEnabled()) {
-// log.debug("Content type : " +
-// activityCalendarsCsvFile.getContentType());
-// }
-// if (activityCalendarsCsvFile.getContentType().
-// equals(GZIP_MIMETYPE)) {
-// if (log.isDebugEnabled()) {
-// log.debug("Gzip file");
-// }
-// input = new GZIPInputStream(input);
-// }
-// serviceBoat.importActivityCalendarCsv(input);
-// companyBoatInfos = null;
-// }
-// }
-//
-// public StreamResponse onActionFromShowActivityCalendarLogFile() {
-// return new StreamResponse() {
-//
-// @Override
-// public String getContentType() {
-// return "text/plain;charset=utf-8";
-// }
-//
-// @Override
-// public InputStream getStream() throws IOException {
-// return getActivityCalendarLogFile();
-// }
-//
-// @Override
-// public void prepareResponse(Response response) {
-// }
-// };
-// }
-//
-// public StreamResponse onActionFromShowActivityCalendarLogAccessFile() {
-// return new StreamResponse() {
-//
-// @Override
-// public String getContentType() {
-// return "text/plain;charset=utf-8";
-// }
-//
-// @Override
-// public InputStream getStream() throws IOException {
-// return getActivityCalendarLogAccessFile();
-// }
-//
-// @Override
-// public void prepareResponse(Response response) {
-// }
-// };
-// }
+// private String sampleRowContextId;
- /**************************** Filters Form *****************************************/
+ /** Selected boat immatriculation for showing boatInfos */
+ @Persist
+ private Integer boatSelectedImmatriculation;
+ @Persist
+ private BoatFilterManager filterManager;
+
+ public BoatFilterManager getFilterManager() {
+ if (filterManager == null) {
+ filterManager = new BoatFilterManager(user, serviceBoat);
+ }
+ return filterManager;
+ }
+
+ public void setFilterManager(BoatFilterManager filterManager) {
+ this.filterManager = filterManager;
+ }
+
+
/** Filters to apply on boats list */
// @Persist
// private BoatFilter boatFilter;
@@ -374,16 +252,12 @@
// return professionSelectModel;
// }
- /**************************** FILTERS *************************************/
-
public boolean isFiltersVisible() {
return filterComponent.getFiltersVisible();
}
Object onActionFromShowFilters() {
-
filterComponent.switchFiltersVisible();
-
if (isFiltersVisible()) {
return filterComponent;
} else {
@@ -405,7 +279,7 @@
* Other filters are managed by AbstractFilteredPage superclass.
*
* @throws WaoException for business errors
- * @see AbstractFilteredPage#onSelectedFromSearch()
+ * @see AbstractFilteredPage#onSelectedFromSearch()
*/
// @Override
// public void onSelectedFromSearch() throws WaoException {
@@ -442,9 +316,29 @@
// companyBoatInfos = null;
// return this;
// }
+ @Log
+ Object onSuccessFromFiltersForm() throws WaoException {
+ // Suppress persistant boats list to get new one with filter
+ boats = null;
+ // Suppress persistant immatriculation for boat selected
+ boatSelectedImmatriculation = null;
+ // Suppress persistant boat informations for boat selected
+ companyBoatInfos = null;
+ return boatsZone;
+ }
- /**************************** Boats List *****************************************/
+ /*************** RIGHT PANEL ****************/
+ public Integer getBoatSelectedImmatriculation() {
+ return boatSelectedImmatriculation;
+ }
+
+ public void setBoatSelectedImmatriculation(Integer boatSelectedImmatriculation) {
+ this.boatSelectedImmatriculation = boatSelectedImmatriculation;
+ }
+
+ /*************** Boats List (left panel) ****************/
+
/** DataSource containing the boats */
@Persist
private BoatDataSource boats;
@@ -509,25 +403,6 @@
return false;
}
- StreamResponse onActionFromExportShowBoats() {
- return new ExportStreamResponse("wao-navires") {
-
- @Override
- public InputStream getStream() throws IOException {
- InputStream result = null;
- try {
- if (log.isDebugEnabled()) {
- log.debug("Filter sampleRow : " + getFilter().getSampleRow());
- }
- result = serviceBoat.exportBoatCsv(getBoatFilter());
- } catch (WaoException eee) {
- throw new IOException(eee);
- }
- return result;
- }
- };
- }
-
Block onActionFromShowBoatInfos(Integer boatImma) throws WaoException {
boatSelectedImmatriculation = boatImma;
// Suppress persistant boat informations
@@ -755,8 +630,6 @@
return condition1 || isElligibleBoatCompanyActiveFalse() ? "line-through" : "";
}
- /** /////////////////////// ACTIONS //////////////////////////////////// **/
-
/**
* Only user with no readOnly rights can edit BoatInfos.
*
@@ -777,19 +650,14 @@
getCompanyBoatInfos();
return boatInfosZone.getBody();
}
-//
-// Block onActionFromEditBoatInfos() throws WaoException {
-// if (canEditBoatInfos()) {
-// boatInfosEditable = true;
-// // WARNING :: Reset sampleRow select for edition mode, no limit for
-// // showing sampleRows instead of filters
-// getFilter().setNbMonthFinishedFromToday(null);
-// resetSampleRowSelect();
-// getFilter().setNbMonthFinishedFromToday(-1);
-// }
-// return boatInfosZone.getBody();
-// }
+ Block onActionFromEditBoatInfos() throws WaoException {
+ if (canEditBoatInfos()) {
+ boatInfosEditable = true;
+ }
+ return boatInfosZone.getBody();
+ }
+
Block onActionFromCancelEditBoatInfos() throws WaoException {
/*if (propertyChange.isChanged()) {
if (log.isDebugEnabled()) {
@@ -866,32 +734,24 @@
/**************************** Go to last ActivityCalendar *****************/
-// @InjectPage
-// private BoatActivityCalendar calendarPage;
+//// @InjectPage
+//// private BoatActivityCalendar calendarPage;
+//
+// @Inject
+// private PageRenderLinkSource renderLink;
+//
+// public boolean hasActivityCalendar() throws WaoException {
+// return getBoatSelected() != null &&
+// getBoatSelected().sizeActivityCalendar() != 0;
+// }
+//
+// Link onActionFromShowLastActivityCalendar() throws WaoException {
+// Link result = renderLink.createPageRenderLinkWithContext(
+// BoatActivityCalendar.class,
+// getBoatSelected().getImmatriculation());
+// return result;
+//// calendarPage.setBoat(getBoatSelected());
+//// return calendarPage;
+// }
- @Inject
- private PageRenderLinkSource renderLink;
-
- public boolean hasActivityCalendar() throws WaoException {
- return getBoatSelected() != null &&
- getBoatSelected().sizeActivityCalendar() != 0;
- }
-
- Link onActionFromShowLastActivityCalendar() throws WaoException {
- Link result = renderLink.createPageRenderLinkWithContext(
- BoatActivityCalendar.class,
- getBoatSelected().getImmatriculation());
- return result;
-// calendarPage.setBoat(getBoatSelected());
-// return calendarPage;
- }
-
- /*************************************** I18N ****************************/
-
- @Inject
- private Messages messages;
-
- public String getLabelForEnum(Enum value) {
- return messages.get(value.getDeclaringClass().getSimpleName() + "." + value.name());
- }
}
1
0
[Suiviobsmer-commits] r1150 - in trunk/wao-ui/src/main: resources/fr/ifremer/wao/ui/components webapp webapp/css
by bleny@users.labs.libre-entreprise.org 06 Apr '11
by bleny@users.labs.libre-entreprise.org 06 Apr '11
06 Apr '11
Author: bleny
Date: 2011-04-06 17:49:48 +0000 (Wed, 06 Apr 2011)
New Revision: 1150
Log:
fix boat page CSS and refresh
Modified:
trunk/wao-ui/src/main/resources/fr/ifremer/wao/ui/components/BoatFilterComponent.tml
trunk/wao-ui/src/main/webapp/Boats.tml
trunk/wao-ui/src/main/webapp/css/common.css
Modified: trunk/wao-ui/src/main/resources/fr/ifremer/wao/ui/components/BoatFilterComponent.tml
===================================================================
--- trunk/wao-ui/src/main/resources/fr/ifremer/wao/ui/components/BoatFilterComponent.tml 2011-04-06 15:45:15 UTC (rev 1149)
+++ trunk/wao-ui/src/main/resources/fr/ifremer/wao/ui/components/BoatFilterComponent.tml 2011-04-06 17:49:48 UTC (rev 1150)
@@ -28,22 +28,8 @@
<form t:type="form" t:id="filtersForm" t:zone="so-filters-form" action="post">
<t:errors />
- <div class="t-beaneditor">
- <div>
- <!-- Sampling filter -->
- <div style="float: left; margin-right: 15px;">
- <label for="sampleRow">${message:wao.ui.field.SampleRow.code} :</label>
- <!--select t:type="select" t:id="sampleRow" t:disabled="sampleRowExists" t:model="sampleRowSelectModel" value="sampleRowId" /-->
- <t:topiaEntitySelector t:id="sampleRow"
- t:multiple="true"
- t:clazzName="SampleRow"
- t:labelPropertyName="code"
- t:values="possibleValuesForFilter.sampleRowsAsList"
- t:selectedValues="filter.sampleRows"
- size="6"/>
- <!--t:disabled="sampleRowExists" -->
-
- </div>
+ <div style="table-layout: auto;">
+ <div style="white-space: nowrap;">
<label for="facadeName">${message:wao.ui.field.FishingZone.facadeName} :</label>
<t:simpleSelector t:id="facadeName"
t:values="possibleValuesForFilter.facadeNamesAsList"
@@ -59,7 +45,7 @@
value="Refresh"
title="${message:wao.ui.filters.refresh}"/-->
- <label for="sectorName">${message:wao.ui.field.FishingZone.sectorName} :</label>
+ <label for="sectorName" style="margin-left: 15px;">${message:wao.ui.field.FishingZone.sectorName} :</label>
<t:simpleSelector t:id="sectorName"
t:values="possibleValuesForFilter.sectorsNamesAsList"
t:selectedValue="filter.sectorName"/>
@@ -74,36 +60,42 @@
value="Refresh"
title="${message:wao.ui.filters.refresh}"/-->
- </div><p> </p>
- <div>
+ <label for="sampleRow" style="margin-left: 15px;">${message:wao.ui.field.SampleRow.code} :</label>
+ <t:topiaEntitySelector t:id="sampleRow"
+ t:clazzName="SampleRow"
+ t:labelPropertyName="code"
+ t:values="possibleValuesForFilter.sampleRowsAsList"
+ t:selectedValue="filter.sampleRow" />
+ </div>
+ <div style="white-space: nowrap;">
<!-- Boat filter -->
- <label for="boatName">${message:wao.ui.field.Boat.name} :</label>
+ <label for="boatName" style="margin-left: 15px;">${message:wao.ui.field.Boat.name} :</label>
<input t:type="textfield"
t:id="boatName"
class="width150"
t:value="filter.boatName"
t:mixins="Autocomplete" />
- <span style="margin-left: 15px;">${message:wao.ui.field.Boat.immatriculation} :</span>
+ <label for="boatImmatriculation" style="margin-left: 15px;">${message:wao.ui.field.Boat.immatriculation} :</label>
<input t:type="textfield"
t:id="boatImmatriculation"
class="width50"
t:value="filter.boatImmatriculation" />
- <span style="margin-left: 15px;">${message:wao.ui.field.BoatDistrict.code} :</span>
+ <label for="boatDistrictCode" style="margin-left: 15px;">${message:wao.ui.field.BoatDistrict.code} :</label>
<input t:type="textfield"
t:id="boatDistrictCode"
class="width50"
t:value="filter.boatDistrictCode" />
- <span style="margin-left: 15px;">${message:wao.ui.field.Boat.shipOwner} :</span>
+ <label for="shipOwnerName" style="margin-left: 15px;">${message:wao.ui.field.Boat.shipOwner} :</label>
<input t:type="textfield"
t:id="shipOwnerName"
class="width150"
t:value="filter.shipOwnerName"
t:mixins="Autocomplete" />
</div>
- <div class="t-beaneditor-row aright">
+ <div class="aright">
<input t:type="submit" class="ico22px refresh" t:id="refresh"
value="${message:wao.ui.filters.refresh}"
title="${message:wao.ui.filters.refresh}"/>
Modified: trunk/wao-ui/src/main/webapp/Boats.tml
===================================================================
--- trunk/wao-ui/src/main/webapp/Boats.tml 2011-04-06 15:45:15 UTC (rev 1149)
+++ trunk/wao-ui/src/main/webapp/Boats.tml 2011-04-06 17:49:48 UTC (rev 1150)
@@ -33,7 +33,7 @@
<div>
<fieldset>
<legend>${message:wao.ui.misc.advancedSearch}</legend>
- <div class="aright">
+ <!--div class="aright">
<a t:type="actionlink" t:id="showFilters">
<t:if t:test="filtersVisible">
<img src="${asset:context:}/img/downarrow.png" title="${message:wao.ui.action.showFilters}" />
@@ -42,7 +42,7 @@
</p:else>
</t:if>
</a>
- </div>
+ </div-->
<t:boatFilterComponent t:id="filterComponent"
t:filterManager="filterManager"/>
</fieldset>
@@ -146,7 +146,6 @@
<t:unless t:test="user.readOnly">
<form t:type="form" t:id="companySelectForm" t:zone="so-boats-boat-infos">
<label for="company">${message:wao.ui.entity.Company} :</label>
- <!--input t:type="select" t:id="company" t:model="companies" t:value="companySelectedId" /-->
<t:topiaEntitySelector t:id="company"
t:clazzName="Company"
t:labelPropertyName="name"
@@ -220,7 +219,7 @@
<dl t:type="beandisplay" t:id="boatInfosLastContact" t:object="companyBoatInfos.lastContact"
t:include="referenceDate, state" t:add="createdBy, sampleRowCode">
<p:state>
- ${getLabelForEnum(companyBoatInfos.lastContact.contactState)}
+ ${companyBoatInfos.lastContact.contactState}
</p:state>
<p:createdBy>
${companyBoatInfos.lastContact.mainObserver.fullName}
Modified: trunk/wao-ui/src/main/webapp/css/common.css
===================================================================
--- trunk/wao-ui/src/main/webapp/css/common.css 2011-04-06 15:45:15 UTC (rev 1149)
+++ trunk/wao-ui/src/main/webapp/css/common.css 2011-04-06 17:49:48 UTC (rev 1150)
@@ -340,7 +340,6 @@
background-color: transparent;
}
-div#so-boats label,
div.so-filters-form div.t-beaneditor label,
div.so-filters-form div.t-beaneditor span {
width: 120px;
1
0
[Suiviobsmer-commits] r1149 - in trunk/wao-business/src/main: java/fr/ifremer/wao/service xmi
by bleny@users.labs.libre-entreprise.org 06 Apr '11
by bleny@users.labs.libre-entreprise.org 06 Apr '11
06 Apr '11
Author: bleny
Date: 2011-04-06 15:45:15 +0000 (Wed, 06 Apr 2011)
New Revision: 1149
Log:
add method to validate sample row in model
Modified:
trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceSamplingImpl.java
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-04-06 15:40:12 UTC (rev 1148)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceSamplingImpl.java 2011-04-06 15:45:15 UTC (rev 1149)
@@ -46,6 +46,7 @@
import fr.ifremer.wao.bean.SamplingFilterValuesImpl;
import fr.ifremer.wao.bean.SamplingStrategy;
import fr.ifremer.wao.bean.UserRole;
+import fr.ifremer.wao.bean.ValidationResult;
import fr.ifremer.wao.entity.Boat;
import fr.ifremer.wao.entity.Company;
import fr.ifremer.wao.entity.CompanyDAO;
@@ -1449,4 +1450,9 @@
return samplingFilter;
}
+
+ @Override
+ protected ValidationResult executeValidateSampleRow(TopiaContext transaction, SampleRow sampleRow) {
+ throw new UnsupportedOperationException("not yet implemented");
+ }
}
Modified: trunk/wao-business/src/main/xmi/wao.zargo
===================================================================
(Binary files differ)
1
0
[Suiviobsmer-commits] r1148 - in trunk/wao-ui/src/main: java/fr/ifremer/wao/ui/pages webapp
by bleny@users.labs.libre-entreprise.org 06 Apr '11
by bleny@users.labs.libre-entreprise.org 06 Apr '11
06 Apr '11
Author: bleny
Date: 2011-04-06 15:40:12 +0000 (Wed, 06 Apr 2011)
New Revision: 1148
Log:
fix broken access to boat infos for admin
Modified:
trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Boats.java
trunk/wao-ui/src/main/webapp/Boats.tml
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-04-06 15:39:45 UTC (rev 1147)
+++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Boats.java 2011-04-06 15:40:12 UTC (rev 1148)
@@ -126,7 +126,8 @@
// private String sampleRowContextId;
/** Selected boat immatriculation for showing boatInfos */
- @Persist(PersistenceConstants.FLASH)
+ //(a)Persist(PersistenceConstants.FLASH)
+ @Persist
private Integer boatSelectedImmatriculation;
@Persist
@@ -445,7 +446,7 @@
/**************************** Boats List *****************************************/
/** DataSource containing the boats */
-// @Persist
+ @Persist
private BoatDataSource boats;
/** Current boat in the Grid */
@@ -537,7 +538,7 @@
}
if (user.isAdmin() && getCompany() != null) {
- companySelectedId = getCompany().getTopiaId();
+// companySelectedId = getCompany().getTopiaId();
}
return boatsZone.getBody();
}
@@ -566,19 +567,19 @@
private Date boardingFromDate;
- private GenericSelectModel<Company> companies;
+ // private GenericSelectModel<Company> companies;
@Inject
private ServiceUser serviceUser;
- @Property
- @Persist(PersistenceConstants.FLASH)
- private String companySelectedId;
-
private Company company;
+ public void setCompany(Company company) {
+ this.company = company;
+ }
+
/*@Persist
- private WaoPropertyChangeListener propertyChange;*/
+ private WaoPropertyChangeListener propertyChange;*/
/** /////////////////////// GLOBAL TO THE BLOCK /////////////////////// **/
@@ -611,11 +612,16 @@
* @return the GenericSelectModel<Company>
* @throws WaoException
*/
- public GenericSelectModel<Company> getCompanies() throws WaoException {
- if (companies == null) {
- List<Company> results = serviceUser.getCompanies(true);
- companies = new GenericSelectModel<Company>(results, Company.class, "name","topiaId",propertyAccess);
- }
+// public GenericSelectModel<Company> getCompanies() throws WaoException {
+// if (companies == null) {
+// List<Company> results = serviceUser.getCompanies(true);
+// companies = new GenericSelectModel<Company>(results, Company.class, "name","topiaId",propertyAccess);
+// }
+// return companies;
+// }
+
+ public List<Company> getCompanies() {
+ List<Company> companies = serviceUser.getCompanies(true);
return companies;
}
@@ -626,17 +632,27 @@
* @return the current Company
* @throws WaoException
*/
- public Company getCompany() throws WaoException {
+// public Company getCompany() throws WaoException {
+// if (company == null) {
+// if (StringUtils.isNotEmpty(companySelectedId)) {
+// company = getCompanies().findObject(companySelectedId);
+// } else if (!user.isAdmin()) {
+// company = user.getCompany();
+// }
+// }
+// return company;
+// }
+
+ public Company getCompany() {
if (company == null) {
- if (StringUtils.isNotEmpty(companySelectedId)) {
- company = getCompanies().findObject(companySelectedId);
- } else if (!user.isAdmin()) {
+ if ( ! user.isAdmin()) {
company = user.getCompany();
}
}
return company;
}
+
/**
* Used to get the selected boat.
*
Modified: trunk/wao-ui/src/main/webapp/Boats.tml
===================================================================
--- trunk/wao-ui/src/main/webapp/Boats.tml 2011-04-06 15:39:45 UTC (rev 1147)
+++ trunk/wao-ui/src/main/webapp/Boats.tml 2011-04-06 15:40:12 UTC (rev 1148)
@@ -146,7 +146,12 @@
<t:unless t:test="user.readOnly">
<form t:type="form" t:id="companySelectForm" t:zone="so-boats-boat-infos">
<label for="company">${message:wao.ui.entity.Company} :</label>
- <input t:type="select" t:id="company" t:model="companies" t:value="companySelectedId" />
+ <!--input t:type="select" t:id="company" t:model="companies" t:value="companySelectedId" /-->
+ <t:topiaEntitySelector t:id="company"
+ t:clazzName="Company"
+ t:labelPropertyName="name"
+ t:values="companies"
+ t:selectedValue="company" />
<input t:type="submit" class="ico search" t:id="searchCompany" value="Search" />
</form>
</t:unless>
1
0
[Suiviobsmer-commits] r1147 - trunk/wao-business/src/main/java/fr/ifremer/wao/service
by bleny@users.labs.libre-entreprise.org 06 Apr '11
by bleny@users.labs.libre-entreprise.org 06 Apr '11
06 Apr '11
Author: bleny
Date: 2011-04-06 15:39:45 +0000 (Wed, 06 Apr 2011)
New Revision: 1147
Log:
optimize getPossibleValues for BoatFilter, prevent browsing 9000 boats when filter is empty
Modified:
trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceBoatImpl.java
Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceBoatImpl.java
===================================================================
--- trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceBoatImpl.java 2011-04-06 14:33:43 UTC (rev 1146)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceBoatImpl.java 2011-04-06 15:39:45 UTC (rev 1147)
@@ -700,20 +700,29 @@
@Override
protected BoatFilterValues executeGetPossibleValuesForFilter(TopiaContext transaction, BoatFilter filter) throws Exception {
- // extract data
- Map<Integer, Boat> integerBoatMap = executeGetBoatsByFilter(transaction, filter);
+ BoatFilterValues result = new BoatFilterValuesImpl();
+ if (filter.getFacadeName() == null && filter.getSectorName() == null) {
+ ServiceReferential serviceReferential = context.getServiceFactory().getServiceReferential();
+ ServiceSampling serviceSampling = context.getServiceFactory().getServiceSampling();
- logger.info("Starting extracting rows : " + new Date());
- // Extract sampleRows
- List<SampleRow> rows = extractSampleRows(integerBoatMap.values());
+ result.setFacadeNames(serviceReferential.getFacades(filter));
+ result.setSectorsNames(serviceReferential.getSectors(filter));
+ result.setSampleRows(serviceSampling.getSampleRowsByFilter(filter));
+ } else {
+ // extract data
+ Map<Integer, Boat> integerBoatMap = executeGetBoatsByFilter(transaction, filter);
- logger.info("End of extracting rows : " + new Date());
+ logger.info("Starting extracting rows : " + new Date());
+ // Extract sampleRows
+ List<SampleRow> rows = extractSampleRows(integerBoatMap.values());
- // collect values
- BoatFilterValues result = new BoatFilterValuesImpl();
+ logger.info("End of extracting rows : " + new Date());
- result.fill(rows);
+ // collect values
+ result.fill(rows);
+ }
+
return result;
}
1
0
[Suiviobsmer-commits] r1146 - trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages
by bleny@users.labs.libre-entreprise.org 06 Apr '11
by bleny@users.labs.libre-entreprise.org 06 Apr '11
06 Apr '11
Author: bleny
Date: 2011-04-06 14:33:43 +0000 (Wed, 06 Apr 2011)
New Revision: 1146
Log:
fix user asked to send email if contact is newly imported from CSV in ObsDeb
Modified:
trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/ContactForm.java
Modified: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/ContactForm.java
===================================================================
--- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/ContactForm.java 2011-04-06 14:33:04 UTC (rev 1145)
+++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/ContactForm.java 2011-04-06 14:33:43 UTC (rev 1146)
@@ -145,7 +145,8 @@
protected void addSendEmailScript() {
// Ask user to send an email if not already sent
- if ( ! getContact().getEmailSent()) {
+ if ( ObsProgram.OBSMER == getContact().getObsProgram() // mail is only for ObsMer
+ && ! getContact().getEmailSent()) {
String confirmMessage =
"Souhaitez vous envoyer un email de demande d\\'ajout " +
@@ -167,9 +168,6 @@
@Persist
private String contactId;
-// @Persist
-// private Contact oldContact;
-
@Persist
private Contact contact;
1
0