Cantharella-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
- 279 discussions
r169 - trunk/cantharella.service/src/main/java/nc/ird/cantharella/service/config
by echatellier@users.forge.codelutin.com 04 Mar '13
by echatellier@users.forge.codelutin.com 04 Mar '13
04 Mar '13
Author: echatellier
Date: 2013-03-04 14:24:47 +0100 (Mon, 04 Mar 2013)
New Revision: 169
Url: http://forge.codelutin.com/projects/cantharella/repository/revisions/169
Log:
Report success only when debug property is true (generate a success exception)
Modified:
trunk/cantharella.service/src/main/java/nc/ird/cantharella/service/config/ServiceContext.java
Modified: trunk/cantharella.service/src/main/java/nc/ird/cantharella/service/config/ServiceContext.java
===================================================================
--- trunk/cantharella.service/src/main/java/nc/ird/cantharella/service/config/ServiceContext.java 2013-03-04 11:33:07 UTC (rev 168)
+++ trunk/cantharella.service/src/main/java/nc/ird/cantharella/service/config/ServiceContext.java 2013-03-04 13:24:47 UTC (rev 169)
@@ -153,7 +153,9 @@
properties.put("mail.debug", mailDebugProperty);
properties.put("mail.smtp.connectiontimeout", MAIL_SMTP_TIMEOUT);
properties.put("mail.smtp.timeout", MAIL_SMTP_TIMEOUT);
- properties.put("mail.smtp.reportsuccess", Boolean.TRUE);
+ if (mailDebugProperty) {
+ properties.put("mail.smtp.reportsuccess", Boolean.TRUE);
+ }
mailSender.setJavaMailProperties(properties);
mailSender.setHost(mailHostProperty);
mailSender.setPort(MAIL_SMTP_PORT);
1
0
04 Mar '13
Author: echatellier
Date: 2013-03-04 12:33:07 +0100 (Mon, 04 Mar 2013)
New Revision: 168
Url: http://forge.codelutin.com/projects/cantharella/repository/revisions/168
Log:
fixes #1643: Add search engine security implementation
Added:
trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/config/HibernateSearchIntegrator.java
trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/model/search/CampagnePersonneBridge.java
trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/model/search/IndexEventListener.java
trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/model/search/LotPersonneBridge.java
Modified:
trunk/cantharella.data/pom.xml
trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/config/DataContext.java
trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/dao/GenericDao.java
trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/dao/impl/HibernateTemplateDao.java
trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/model/Campagne.java
trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/model/CampagnePersonneDroits.java
trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/model/Document.java
trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/model/Extraction.java
trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/model/Extrait.java
trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/model/Lot.java
trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/model/LotPersonneDroits.java
trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/model/Molecule.java
trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/model/MoleculeProvenance.java
trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/model/Personne.java
trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/model/Produit.java
trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/model/Purification.java
trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/model/Specimen.java
trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/model/Station.java
trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/model/TestBio.java
trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/model/search/ProduitBridge.java
trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/model/search/UtilisateurSearchFilter.java
trunk/cantharella.data/src/main/resources/META-INF/services/org.hibernate.integrator.spi.Integrator
trunk/cantharella.service/src/main/java/nc/ird/cantharella/service/services/LotService.java
trunk/cantharella.service/src/main/java/nc/ird/cantharella/service/services/impl/LotServiceImpl.java
trunk/cantharella.service/src/main/java/nc/ird/cantharella/service/services/impl/SearchServiceImpl.java
trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/utilisateur/ManageUtilisateurPage.java
Modified: trunk/cantharella.data/pom.xml
===================================================================
--- trunk/cantharella.data/pom.xml 2013-03-04 11:31:56 UTC (rev 167)
+++ trunk/cantharella.data/pom.xml 2013-03-04 11:33:07 UTC (rev 168)
@@ -119,6 +119,10 @@
<artifactId>hibernate-search-engine</artifactId>
</dependency>
<dependency>
+ <groupId>org.hibernate</groupId>
+ <artifactId>hibernate-search-orm</artifactId>
+ </dependency>
+ <dependency>
<groupId>org.apache.lucene</groupId>
<artifactId>lucene-core</artifactId>
</dependency>
Modified: trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/config/DataContext.java
===================================================================
--- trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/config/DataContext.java 2013-03-04 11:31:56 UTC (rev 167)
+++ trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/config/DataContext.java 2013-03-04 11:33:07 UTC (rev 168)
@@ -315,7 +315,7 @@
hibernateProperties.setProperty("hibernate.search.default.directory_provider", "filesystem");
hibernateProperties.setProperty("hibernate.search.default.indexBase", hibernateSearchIndexBase);
hibernateProperties.setProperty("hibernate.search.analyzer", hibernateSearchAnalyzer);
-
+ hibernateProperties.setProperty("hibernate.search.enable_dirty_check", "false");
// Hibernate: Session
//hibernateProperties.setProperty("hibernate.current_session_context_class", "thread");
//hibernateProperties.setProperty(Environment.JTA_PLATFORM, "hibernate.transaction.factory_class", SpringTransactionFactory.class.getName());
Added: trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/config/HibernateSearchIntegrator.java
===================================================================
--- trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/config/HibernateSearchIntegrator.java (rev 0)
+++ trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/config/HibernateSearchIntegrator.java 2013-03-04 11:33:07 UTC (rev 168)
@@ -0,0 +1,142 @@
+package nc.ird.cantharella.data.config;
+
+/*
+ * #%L
+ * Cantharella :: Data
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2009 - 2013 IRD (Institut de Recherche pour le Developpement) and by respective authors (see below)
+ * %%
+ * 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%
+ */
+
+import java.util.List;
+
+import nc.ird.cantharella.data.model.Campagne;
+import nc.ird.cantharella.data.model.CampagnePersonneDroits;
+import nc.ird.cantharella.data.model.Lot;
+import nc.ird.cantharella.data.model.LotPersonneDroits;
+import nc.ird.cantharella.data.model.search.IndexEventListener;
+
+import org.hibernate.Session;
+import org.hibernate.cfg.Configuration;
+import org.hibernate.engine.spi.SessionFactoryImplementor;
+import org.hibernate.event.service.spi.EventListenerRegistry;
+import org.hibernate.event.spi.EventType;
+import org.hibernate.event.spi.PostDeleteEvent;
+import org.hibernate.event.spi.PostDeleteEventListener;
+import org.hibernate.event.spi.PostInsertEvent;
+import org.hibernate.event.spi.PostInsertEventListener;
+import org.hibernate.event.spi.PostUpdateEvent;
+import org.hibernate.event.spi.PostUpdateEventListener;
+import org.hibernate.integrator.spi.Integrator;
+import org.hibernate.metamodel.source.MetadataImplementor;
+import org.hibernate.search.FullTextSession;
+import org.hibernate.search.Search;
+import org.hibernate.service.spi.SessionFactoryServiceRegistry;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * Register cantharella validator into hibernate using integrator.
+ *
+ * @author echatellier
+ */
+public class HibernateSearchIntegrator implements Integrator, PostDeleteEventListener, PostUpdateEventListener,
+ PostInsertEventListener {
+
+ /** Logger */
+ private static final Logger LOG = LoggerFactory.getLogger(HibernateSearchIntegrator.class);
+
+ /** {@inheritDoc} */
+ @Override
+ public void integrate(Configuration configuration, SessionFactoryImplementor sessionFactory,
+ SessionFactoryServiceRegistry serviceRegistry) {
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("Registering custom search listener into hibernate");
+ }
+
+ // register validator
+ EventListenerRegistry eventRegistry = serviceRegistry.getService(EventListenerRegistry.class);
+
+ IndexEventListener listener = new IndexEventListener(IndexEventListener.Installation.SINGLE_INSTANCE);
+ eventRegistry.prependListeners(EventType.POST_DELETE, listener);
+ eventRegistry.prependListeners(EventType.POST_UPDATE, listener);
+ eventRegistry.prependListeners(EventType.POST_INSERT, listener);
+ listener.initialize(configuration);
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public void integrate(MetadataImplementor metadata, SessionFactoryImplementor sessionFactory,
+ SessionFactoryServiceRegistry serviceRegistry) {
+ integrate((Configuration) null, sessionFactory, serviceRegistry);
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public void disintegrate(SessionFactoryImplementor sessionFactory, SessionFactoryServiceRegistry serviceRegistry) {
+
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public void onPostInsert(PostInsertEvent event) {
+ Object entity = event.getEntity();
+ LOG.debug("[Event] onPostInsert on : " + entity);
+ reIndexEntity(event.getSession(), event.getEntity());
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public void onPostUpdate(PostUpdateEvent event) {
+ Object entity = event.getEntity();
+ LOG.debug("[Event] onPostUpdate on : " + entity);
+ reIndexEntity(event.getSession(), event.getEntity());
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public void onPostDelete(PostDeleteEvent event) {
+ Object entity = event.getEntity();
+ LOG.debug("[Event] onPostDelete on : " + entity);
+ reIndexEntity(event.getSession(), event.getEntity());
+ }
+
+ /**
+ * Reindex entity associated with event entity depending on
+ * entity type.
+ *
+ * @param session current session
+ * @param entity current entity
+ */
+ protected void reIndexEntity(Session session, Object entity) {
+ if (entity instanceof LotPersonneDroits) {
+ Lot lot = ((LotPersonneDroits) entity).getId().getPk1();
+ lot = (Lot) session.merge(lot);
+ FullTextSession fullTextSession = Search.getFullTextSession(session);
+ fullTextSession.index(lot);
+ } else if (entity instanceof CampagnePersonneDroits) {
+ Campagne campagne = ((CampagnePersonneDroits) entity).getId().getPk1();
+ campagne = (Campagne) session.merge(campagne);
+ FullTextSession fullTextSession = Search.getFullTextSession(session);
+ List<Lot> lots = campagne.getLots();
+ for (Lot lot : lots) {
+ fullTextSession.index(lot);
+ }
+ }
+ }
+}
Property changes on: trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/config/HibernateSearchIntegrator.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Modified: trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/dao/GenericDao.java
===================================================================
--- trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/dao/GenericDao.java 2013-03-04 11:31:56 UTC (rev 167)
+++ trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/dao/GenericDao.java 2013-03-04 11:33:07 UTC (rev 168)
@@ -287,7 +287,8 @@
* Merge a model from the hibernate session.
* @param <M> Model type
* @param model Model (not null)
+ * @return merged object
*/
@Transactional
- <M extends AbstractModel> void merge(M model);
+ <M extends AbstractModel> M merge(M model);
}
Modified: trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/dao/impl/HibernateTemplateDao.java
===================================================================
--- trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/dao/impl/HibernateTemplateDao.java 2013-03-04 11:31:56 UTC (rev 167)
+++ trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/dao/impl/HibernateTemplateDao.java 2013-03-04 11:33:07 UTC (rev 168)
@@ -298,9 +298,10 @@
}
/** {@inheritDoc} */
+ @SuppressWarnings("unchecked")
@Override
- public <M extends AbstractModel> void merge(M model) {
+ public <M extends AbstractModel> M merge(M model) {
AssertTools.assertNotNull(model);
- sessionFactory.getCurrentSession().merge(model);
+ return (M) sessionFactory.getCurrentSession().merge(model);
}
}
\ No newline at end of file
Modified: trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/model/Campagne.java
===================================================================
--- trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/model/Campagne.java 2013-03-04 11:31:56 UTC (rev 167)
+++ trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/model/Campagne.java 2013-03-04 11:33:07 UTC (rev 168)
@@ -50,8 +50,12 @@
import org.apache.commons.beanutils.BeanComparator;
import org.hibernate.annotations.Cascade;
import org.hibernate.annotations.CascadeType;
+import org.hibernate.annotations.Fetch;
+import org.hibernate.annotations.FetchMode;
import org.hibernate.annotations.Type;
+import org.hibernate.search.annotations.ContainedIn;
import org.hibernate.search.annotations.Field;
+import org.hibernate.search.annotations.IndexedEmbedded;
import org.hibernate.search.annotations.Store;
import org.hibernate.validator.constraints.Length;
import org.hibernate.validator.constraints.NotEmpty;
@@ -119,6 +123,7 @@
/** Lots */
@NotNull
@OneToMany(mappedBy = "campagne", fetch = FetchType.LAZY)
+ @ContainedIn
private List<Lot> lots;
/** Créateur */
@@ -135,6 +140,7 @@
/** Droits personnes */
@NotNull
@OneToMany(mappedBy = "id.pk1", fetch = FetchType.LAZY)
+ @IndexedEmbedded
private List<CampagnePersonneDroits> personnesDroits;
/** Stations prospectées **/
@@ -144,9 +150,11 @@
private List<Station> stations;
/** Attached documents. */
- @OneToMany(fetch = FetchType.LAZY, orphanRemoval = true)
+ @OneToMany(fetch = FetchType.EAGER, orphanRemoval = true)
@JoinColumn(name = "campagne")
@Cascade( { CascadeType.SAVE_UPDATE })
+ @Fetch(value = FetchMode.SUBSELECT)
+ // see HHH-1718
private List<Document> documents;
/**
Modified: trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/model/CampagnePersonneDroits.java
===================================================================
--- trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/model/CampagnePersonneDroits.java 2013-03-04 11:31:56 UTC (rev 167)
+++ trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/model/CampagnePersonneDroits.java 2013-03-04 11:33:07 UTC (rev 168)
@@ -22,20 +22,29 @@
*/
package nc.ird.cantharella.data.model;
+import javax.persistence.Embeddable;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.Table;
import javax.validation.constraints.NotNull;
+import nc.ird.cantharella.data.model.search.CampagnePersonneBridge;
import nc.ird.cantharella.data.model.utils.AbstractModel;
import nc.ird.cantharella.data.model.utils.CompositeId;
+import org.hibernate.search.annotations.ClassBridge;
+import org.hibernate.search.annotations.Index;
+import org.hibernate.search.annotations.IndexedEmbedded;
+import org.hibernate.search.annotations.Store;
+
/**
* Modèle : droits d'une personne sur une campagne
* @author Mickael Tricot
*/
@Entity
@Table
+@Embeddable
+@ClassBridge(name = "campagne", index = Index.YES, store = Store.YES, impl = CampagnePersonneBridge.class)
public class CampagnePersonneDroits extends AbstractModel {
/** Droits */
@@ -45,6 +54,7 @@
/** ID */
@EmbeddedId
@NotNull
+ @IndexedEmbedded
private CompositeId<Campagne, Personne> id;
/**
Modified: trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/model/Document.java
===================================================================
--- trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/model/Document.java 2013-03-04 11:31:56 UTC (rev 167)
+++ trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/model/Document.java 2013-03-04 11:33:07 UTC (rev 168)
@@ -26,6 +26,7 @@
import java.util.Date;
import javax.persistence.Basic;
+import javax.persistence.Embeddable;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
@@ -49,6 +50,7 @@
* @author Eric Chatellier
*/
@Entity
+@Embeddable
public class Document extends AbstractModel {
/** Id du document. */
Modified: trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/model/Extraction.java
===================================================================
--- trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/model/Extraction.java 2013-03-04 11:31:56 UTC (rev 167)
+++ trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/model/Extraction.java 2013-03-04 11:33:07 UTC (rev 168)
@@ -53,6 +53,8 @@
import org.apache.commons.collections.comparators.ComparatorChain;
import org.hibernate.annotations.Cascade;
import org.hibernate.annotations.CascadeType;
+import org.hibernate.annotations.Fetch;
+import org.hibernate.annotations.FetchMode;
import org.hibernate.annotations.Type;
import org.hibernate.search.annotations.ContainedIn;
import org.hibernate.search.annotations.Field;
@@ -103,7 +105,7 @@
/** Lot utilisé pour l'extraction **/
@NotNull
@ManyToOne(fetch = FetchType.EAGER, optional = false)
- @IndexedEmbedded(depth = 1)
+ @IndexedEmbedded
private Lot lot;
/** Masse avant l'extraction **/
@@ -132,9 +134,11 @@
private List<Extrait> extraits;
/** Attached documents. */
- @OneToMany(fetch = FetchType.LAZY, orphanRemoval = true)
+ @OneToMany(fetch = FetchType.EAGER, orphanRemoval = true)
@JoinColumn(name = "extraction")
@Cascade( { CascadeType.SAVE_UPDATE })
+ @Fetch(value = FetchMode.SUBSELECT)
+ // see HHH-1718
private List<Document> documents;
/**
Modified: trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/model/Extrait.java
===================================================================
--- trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/model/Extrait.java 2013-03-04 11:31:56 UTC (rev 167)
+++ trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/model/Extrait.java 2013-03-04 11:33:07 UTC (rev 168)
@@ -28,10 +28,10 @@
import javax.persistence.ManyToOne;
import javax.validation.constraints.NotNull;
+import org.hibernate.search.annotations.IndexedEmbedded;
+
import nc.ird.cantharella.data.validation.CollectionUniqueField;
-import org.hibernate.search.annotations.IndexedEmbedded;
-
/**
* Modèle : Produit issue d'une extraction
* @author Adrien Cheype
Modified: trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/model/Lot.java
===================================================================
--- trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/model/Lot.java 2013-03-04 11:31:56 UTC (rev 167)
+++ trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/model/Lot.java 2013-03-04 11:33:07 UTC (rev 168)
@@ -53,7 +53,10 @@
import org.apache.commons.beanutils.BeanComparator;
import org.hibernate.annotations.Cascade;
import org.hibernate.annotations.CascadeType;
+import org.hibernate.annotations.Fetch;
+import org.hibernate.annotations.FetchMode;
import org.hibernate.annotations.Type;
+import org.hibernate.search.annotations.ContainedIn;
import org.hibernate.search.annotations.Field;
import org.hibernate.search.annotations.FullTextFilterDef;
import org.hibernate.search.annotations.FullTextFilterDefs;
@@ -90,7 +93,7 @@
/** Campagne */
@NotNull
@ManyToOne(fetch = FetchType.EAGER, optional = false)
- @IndexedEmbedded(depth = 1)
+ @IndexedEmbedded
private Campagne campagne;
/** complement */
@@ -147,6 +150,7 @@
/** Droits attribués aux personnes */
@OneToMany(mappedBy = "id.pk1", fetch = FetchType.LAZY)
@NotNull
+ @IndexedEmbedded
private List<LotPersonneDroits> personnesDroits;
/** Spécimen source */
@@ -158,18 +162,21 @@
/** Station */
@NotNull
@ManyToOne(fetch = FetchType.EAGER, optional = false)
- @IndexedEmbedded(depth = 1)
+ @IndexedEmbedded
private Station station;
/** Extractions provenants du lot */
@OneToMany(mappedBy = "lot", fetch = FetchType.LAZY)
@NotNull
+ @ContainedIn
private List<Extraction> extractions;
/** Attached documents. */
- @OneToMany(fetch = FetchType.LAZY, orphanRemoval = true)
+ @OneToMany(fetch = FetchType.EAGER, orphanRemoval = true)
@JoinColumn(name = "lot")
@Cascade( { CascadeType.SAVE_UPDATE })
+ @Fetch(value = FetchMode.SUBSELECT)
+ // see HHH-1718
private List<Document> documents;
/**
Modified: trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/model/LotPersonneDroits.java
===================================================================
--- trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/model/LotPersonneDroits.java 2013-03-04 11:31:56 UTC (rev 167)
+++ trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/model/LotPersonneDroits.java 2013-03-04 11:33:07 UTC (rev 168)
@@ -22,20 +22,29 @@
*/
package nc.ird.cantharella.data.model;
+import javax.persistence.Embeddable;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.Table;
import javax.validation.constraints.NotNull;
+import nc.ird.cantharella.data.model.search.LotPersonneBridge;
import nc.ird.cantharella.data.model.utils.AbstractModel;
import nc.ird.cantharella.data.model.utils.CompositeId;
+import org.hibernate.search.annotations.ClassBridge;
+import org.hibernate.search.annotations.Index;
+import org.hibernate.search.annotations.IndexedEmbedded;
+import org.hibernate.search.annotations.Store;
+
/**
* Modèle : droits d'une personne sur un lot
* @author Mickael Tricot
*/
@Entity
@Table
+@Embeddable
+@ClassBridge(name = "lot", index = Index.YES, store = Store.YES, impl = LotPersonneBridge.class)
public class LotPersonneDroits extends AbstractModel {
/** Droits */
@@ -45,6 +54,7 @@
/** ID */
@EmbeddedId
@NotNull
+ @IndexedEmbedded
private CompositeId<Lot, Personne> id;
/**
Modified: trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/model/Molecule.java
===================================================================
--- trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/model/Molecule.java 2013-03-04 11:31:56 UTC (rev 167)
+++ trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/model/Molecule.java 2013-03-04 11:33:07 UTC (rev 168)
@@ -46,6 +46,8 @@
import org.hibernate.annotations.Cascade;
import org.hibernate.annotations.CascadeType;
+import org.hibernate.annotations.Fetch;
+import org.hibernate.annotations.FetchMode;
import org.hibernate.annotations.Type;
import org.hibernate.search.annotations.Field;
import org.hibernate.search.annotations.Indexed;
@@ -105,7 +107,7 @@
/** Campagne. */
@ManyToOne(fetch = FetchType.EAGER)
- @IndexedEmbedded(depth = 1)
+ @IndexedEmbedded
private Campagne campagne;
/** Identifiee par. */
@@ -134,12 +136,15 @@
/** Produit utilisé obtenir le résultat */
@OneToMany(mappedBy = "molecule", fetch = FetchType.LAZY, orphanRemoval = true)
@Cascade( { CascadeType.SAVE_UPDATE })
+ @IndexedEmbedded
private List<MoleculeProvenance> provenances;
/** Attached documents. */
- @OneToMany(fetch = FetchType.LAZY, orphanRemoval = true)
+ @OneToMany(fetch = FetchType.EAGER, orphanRemoval = true)
@JoinColumn(name = "molecule")
@Cascade( { CascadeType.SAVE_UPDATE })
+ @Fetch(value = FetchMode.SUBSELECT)
+ // see HHH-1718
private List<Document> documents;
/**
Modified: trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/model/MoleculeProvenance.java
===================================================================
--- trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/model/MoleculeProvenance.java 2013-03-04 11:31:56 UTC (rev 167)
+++ trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/model/MoleculeProvenance.java 2013-03-04 11:33:07 UTC (rev 168)
@@ -34,6 +34,9 @@
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
+import org.hibernate.search.annotations.ContainedIn;
+import org.hibernate.search.annotations.IndexedEmbedded;
+
import nc.ird.cantharella.data.config.DataContext;
import nc.ird.cantharella.data.model.utils.AbstractModel;
@@ -59,11 +62,13 @@
/** Molecule dont fait partie la provenance */
@NotNull
@ManyToOne(fetch = FetchType.EAGER, optional = false)
+ @ContainedIn
private Molecule molecule;
/** Produit sur lequel porte la provenance **/
@NotNull
@ManyToOne(fetch = FetchType.EAGER, optional = false)
+ @IndexedEmbedded
private Produit produit;
/**
Modified: trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/model/Personne.java
===================================================================
--- trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/model/Personne.java 2013-03-04 11:31:56 UTC (rev 167)
+++ trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/model/Personne.java 2013-03-04 11:33:07 UTC (rev 168)
@@ -50,6 +50,8 @@
import org.apache.commons.collections.comparators.ComparatorChain;
import org.hibernate.annotations.Cascade;
import org.hibernate.annotations.CascadeType;
+import org.hibernate.annotations.Fetch;
+import org.hibernate.annotations.FetchMode;
import org.hibernate.annotations.Index;
import org.hibernate.annotations.Type;
import org.hibernate.validator.constraints.Email;
@@ -184,9 +186,11 @@
private List<TestBio> testsBioCrees;
/** Attached documents. */
- @OneToMany(fetch = FetchType.LAZY, orphanRemoval = true)
+ @OneToMany(fetch = FetchType.EAGER, orphanRemoval = true)
@JoinColumn(name = "personne")
@Cascade( { CascadeType.SAVE_UPDATE })
+ @Fetch(value = FetchMode.SUBSELECT)
+ // see HHH-1718
private List<Document> documents;
/**
Modified: trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/model/Produit.java
===================================================================
--- trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/model/Produit.java 2013-03-04 11:31:56 UTC (rev 167)
+++ trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/model/Produit.java 2013-03-04 11:33:07 UTC (rev 168)
@@ -57,7 +57,7 @@
*/
@Entity
@Inheritance(strategy = InheritanceType.JOINED)
-@ClassBridge(name = "produitBridge", index = Index.YES, store = Store.YES, impl = ProduitBridge.class)
+@ClassBridge(name = "produit", index = Index.YES, store = Store.YES, impl = ProduitBridge.class)
public abstract class Produit extends AbstractModel implements Cloneable, Comparable<Produit> {
/** Id du produit */
@@ -81,6 +81,7 @@
/** Purifications effectuées à partir du produit */
@NotNull
@OneToMany(mappedBy = "produit", fetch = FetchType.LAZY)
+ @ContainedIn
private List<Purification> purificationsSuivantes;
/** Résultats de tests biologiques effectués à partir du produit */
@@ -210,5 +211,4 @@
public void setResultatsTestsBioSuivants(List<ResultatTestBio> resultatsTestsBioSuivants) {
this.resultatsTestsBioSuivants = resultatsTestsBioSuivants;
}
-
}
Modified: trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/model/Purification.java
===================================================================
--- trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/model/Purification.java 2013-03-04 11:31:56 UTC (rev 167)
+++ trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/model/Purification.java 2013-03-04 11:33:07 UTC (rev 168)
@@ -55,7 +55,10 @@
import org.apache.commons.collections.comparators.ComparatorChain;
import org.hibernate.annotations.Cascade;
import org.hibernate.annotations.CascadeType;
+import org.hibernate.annotations.Fetch;
+import org.hibernate.annotations.FetchMode;
import org.hibernate.annotations.Type;
+import org.hibernate.search.annotations.ContainedIn;
import org.hibernate.search.annotations.Field;
import org.hibernate.search.annotations.FullTextFilterDef;
import org.hibernate.search.annotations.FullTextFilterDefs;
@@ -143,6 +146,7 @@
@NotNull
@OneToMany(mappedBy = "purification", fetch = FetchType.LAZY, orphanRemoval = true)
@Cascade( { CascadeType.REFRESH, CascadeType.SAVE_UPDATE })
+ @ContainedIn
private List<Fraction> fractions;
/**
@@ -153,9 +157,11 @@
private Lot lotSource;
/** Attached documents. */
- @OneToMany(fetch = FetchType.LAZY, orphanRemoval = true)
+ @OneToMany(fetch = FetchType.EAGER, orphanRemoval = true)
@JoinColumn(name = "purification")
@Cascade( { CascadeType.SAVE_UPDATE })
+ @Fetch(value = FetchMode.SUBSELECT)
+ // see HHH-1718
private List<Document> documents;
/**
Modified: trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/model/Specimen.java
===================================================================
--- trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/model/Specimen.java 2013-03-04 11:31:56 UTC (rev 167)
+++ trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/model/Specimen.java 2013-03-04 11:33:07 UTC (rev 168)
@@ -50,6 +50,8 @@
import org.apache.commons.beanutils.BeanComparator;
import org.hibernate.annotations.Cascade;
import org.hibernate.annotations.CascadeType;
+import org.hibernate.annotations.Fetch;
+import org.hibernate.annotations.FetchMode;
import org.hibernate.annotations.Type;
import org.hibernate.search.annotations.Field;
import org.hibernate.search.annotations.FullTextFilterDef;
@@ -146,11 +148,11 @@
@Temporal(TemporalType.DATE)
private Date dateDepot;
- /** Embranchement */
+ /** Num dépot */
@Length(max = LENGTH_TINY_TEXT)
private String numDepot;
- /** Embranchement */
+ /** Lieu depot */
@Length(max = LENGTH_MEDIUM_TEXT)
private String lieuDepot;
@@ -172,9 +174,11 @@
private Personne createur;
/** Attached documents. */
- @OneToMany(fetch = FetchType.LAZY, orphanRemoval = true)
+ @OneToMany(fetch = FetchType.EAGER, orphanRemoval = true)
@JoinColumn(name = "specimen")
@Cascade( { CascadeType.SAVE_UPDATE })
+ @Fetch(value = FetchMode.SUBSELECT)
+ // see HHH-1718
private List<Document> documents;
/**
Modified: trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/model/Station.java
===================================================================
--- trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/model/Station.java 2013-03-04 11:31:56 UTC (rev 167)
+++ trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/model/Station.java 2013-03-04 11:33:07 UTC (rev 168)
@@ -51,7 +51,10 @@
import org.hibernate.annotations.AccessType;
import org.hibernate.annotations.Cascade;
import org.hibernate.annotations.CascadeType;
+import org.hibernate.annotations.Fetch;
+import org.hibernate.annotations.FetchMode;
import org.hibernate.annotations.Type;
+import org.hibernate.search.annotations.ContainedIn;
import org.hibernate.search.annotations.Field;
import org.hibernate.search.annotations.FullTextFilterDef;
import org.hibernate.search.annotations.FullTextFilterDefs;
@@ -124,6 +127,7 @@
/** Lots */
@NotNull
@OneToMany(mappedBy = "station", fetch = FetchType.LAZY)
+ @ContainedIn
private List<Lot> lots;
/** Stations */
@@ -133,12 +137,15 @@
/** Spécimens de référence qui sont rattachés à cette station */
@OneToMany(mappedBy = "station", fetch = FetchType.LAZY)
+ @ContainedIn
private List<Specimen> specimensRattaches;
/** Attached documents. */
- @OneToMany(fetch = FetchType.LAZY, orphanRemoval = true)
+ @OneToMany(fetch = FetchType.EAGER, orphanRemoval = true)
@JoinColumn(name = "station")
@Cascade( { CascadeType.SAVE_UPDATE })
+ @Fetch(value = FetchMode.SUBSELECT)
+ // see HHH-1718
private List<Document> documents;
/**
Modified: trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/model/TestBio.java
===================================================================
--- trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/model/TestBio.java 2013-03-04 11:31:56 UTC (rev 167)
+++ trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/model/TestBio.java 2013-03-04 11:33:07 UTC (rev 168)
@@ -57,6 +57,8 @@
import org.apache.commons.beanutils.BeanComparator;
import org.hibernate.annotations.Cascade;
import org.hibernate.annotations.CascadeType;
+import org.hibernate.annotations.Fetch;
+import org.hibernate.annotations.FetchMode;
import org.hibernate.annotations.Type;
import org.hibernate.search.annotations.ContainedIn;
import org.hibernate.search.annotations.Field;
@@ -146,9 +148,11 @@
private List<ResultatTestBio> resultats;
/** Attached documents. */
- @OneToMany(fetch = FetchType.LAZY, orphanRemoval = true)
+ @OneToMany(fetch = FetchType.EAGER, orphanRemoval = true)
@JoinColumn(name = "resultatTestBio")
@Cascade( { CascadeType.SAVE_UPDATE })
+ @Fetch(value = FetchMode.SUBSELECT)
+ // see HHH-1718
private List<Document> documents;
/**
Added: trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/model/search/CampagnePersonneBridge.java
===================================================================
--- trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/model/search/CampagnePersonneBridge.java (rev 0)
+++ trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/model/search/CampagnePersonneBridge.java 2013-03-04 11:33:07 UTC (rev 168)
@@ -0,0 +1,68 @@
+package nc.ird.cantharella.data.model.search;
+
+/*
+ * #%L
+ * Cantharella :: Data
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2010 - 2013 IRD (Institut de Recherche pour le Developpement) and by respective authors (see below)
+ * %%
+ * 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%
+ */
+
+import nc.ird.cantharella.data.model.Campagne;
+import nc.ird.cantharella.data.model.CampagnePersonneDroits;
+import nc.ird.cantharella.data.model.Personne;
+import nc.ird.cantharella.data.model.utils.CompositeId;
+
+import org.apache.lucene.document.Document;
+import org.apache.lucene.document.Field;
+import org.hibernate.search.bridge.FieldBridge;
+import org.hibernate.search.bridge.LuceneOptions;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * Hibernate search can't index CompositeId by himself.
+ *
+ * To index right on entities, we add a field "droit.pk2" containing user
+ * id, meaning "this user can see this indexed document".
+ *
+ * @author Eric Chatellier
+ */
+public class CampagnePersonneBridge implements FieldBridge {
+
+ /** Logger */
+ private static final Logger LOG = LoggerFactory.getLogger(CampagnePersonneBridge.class);
+
+ /** {@inheritDoc} */
+ @Override
+ public void set(String name, Object value, Document document, LuceneOptions luceneOptions) {
+
+ CampagnePersonneDroits campagnePersonneDroits = (CampagnePersonneDroits) value;
+ if (LOG.isTraceEnabled()) {
+ LOG.trace("Custom indexing of CampagnePersonneDroits : "
+ + campagnePersonneDroits.getId().getPk1().getIdCampagne() + ","
+ + campagnePersonneDroits.getId().getPk2().getIdPersonne());
+ }
+
+ CompositeId<Campagne, Personne> compositeId = campagnePersonneDroits.getId();
+
+ // commons information for all produit
+ document.add(new Field("droit.pk2", String.valueOf(compositeId.getPk2().getIdPersonne()), luceneOptions
+ .getStore(), luceneOptions.getIndex(), luceneOptions.getTermVector()));
+ }
+}
Property changes on: trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/model/search/CampagnePersonneBridge.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/model/search/IndexEventListener.java
===================================================================
--- trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/model/search/IndexEventListener.java (rev 0)
+++ trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/model/search/IndexEventListener.java 2013-03-04 11:33:07 UTC (rev 168)
@@ -0,0 +1,105 @@
+/*
+ * #%L
+ * Cantharella :: Data
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2012 - 2013 IRD (Institut de Recherche pour le Developpement) and by respective authors (see below)
+ * %%
+ * 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 nc.ird.cantharella.data.model.search;
+
+import java.io.Serializable;
+
+import nc.ird.cantharella.data.model.Campagne;
+import nc.ird.cantharella.data.model.CampagnePersonneDroits;
+import nc.ird.cantharella.data.model.Lot;
+import nc.ird.cantharella.data.model.LotPersonneDroits;
+
+import org.hibernate.Session;
+import org.hibernate.event.spi.AbstractEvent;
+import org.hibernate.event.spi.PostDeleteEvent;
+import org.hibernate.event.spi.PostInsertEvent;
+import org.hibernate.event.spi.PostUpdateEvent;
+import org.hibernate.search.backend.spi.WorkType;
+import org.hibernate.search.event.impl.FullTextIndexEventListener;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * Hibernate event listener to force reindexation on custom indexed entity:
+ * {@link LotPersonneDroits} and {@link CampagnePersonneDroits}.
+ *
+ * @author Eric Chatellier
+ */
+public class IndexEventListener extends FullTextIndexEventListener {
+
+ /** Logger */
+ private static final Logger LOG = LoggerFactory.getLogger(IndexEventListener.class);
+
+ /**
+ * Constructor.
+ * @param installation installation strategy
+ */
+ public IndexEventListener(Installation installation) {
+ super(installation);
+ }
+
+ /** {@inheritDoc}. */
+ @Override
+ public void onPostDelete(PostDeleteEvent event) {
+ Object entity = event.getEntity();
+ LOG.debug("[Event] onPostDelete on : " + entity);
+ reIndexEntity(event, event.getEntity(), event.getId());
+ }
+
+ /** {@inheritDoc}. */
+ @Override
+ public void onPostInsert(PostInsertEvent event) {
+ Object entity = event.getEntity();
+ LOG.debug("[Event] onPostInsert on : " + entity);
+ reIndexEntity(event, event.getEntity(), event.getId());
+ }
+
+ /** {@inheritDoc}. */
+ @Override
+ public void onPostUpdate(PostUpdateEvent event) {
+ Object entity = event.getEntity();
+ LOG.debug("[Event] onPostUpdate on : " + entity);
+ reIndexEntity(event, event.getEntity(), event.getId());
+ }
+
+ /**
+ * Reindex entity associated with event entity depending on
+ * entity type.
+ *
+ * @param event event
+ * @param entity current entity
+ * @param id entity id
+ */
+ protected void reIndexEntity(AbstractEvent event, Object entity, Serializable id) {
+ Session session = event.getSession();
+ if (entity instanceof LotPersonneDroits) {
+ Lot lot = ((LotPersonneDroits) entity).getId().getPk1();
+ lot = (Lot) session.merge(lot);
+ super.processWork(lot, id, WorkType.INDEX, event, false);
+ } else if (entity instanceof CampagnePersonneDroits) {
+ Campagne campagne = ((CampagnePersonneDroits) entity).getId().getPk1();
+ campagne = (Campagne) session.merge(campagne);
+ super.processWork(campagne, id, WorkType.INDEX, event, false);
+ }
+ }
+}
Property changes on: trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/model/search/IndexEventListener.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/model/search/LotPersonneBridge.java
===================================================================
--- trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/model/search/LotPersonneBridge.java (rev 0)
+++ trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/model/search/LotPersonneBridge.java 2013-03-04 11:33:07 UTC (rev 168)
@@ -0,0 +1,67 @@
+package nc.ird.cantharella.data.model.search;
+
+/*
+ * #%L
+ * Cantharella :: Data
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2010 - 2013 IRD (Institut de Recherche pour le Developpement) and by respective authors (see below)
+ * %%
+ * 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%
+ */
+
+import nc.ird.cantharella.data.model.Lot;
+import nc.ird.cantharella.data.model.LotPersonneDroits;
+import nc.ird.cantharella.data.model.Personne;
+import nc.ird.cantharella.data.model.utils.CompositeId;
+
+import org.apache.lucene.document.Document;
+import org.apache.lucene.document.Field;
+import org.hibernate.search.bridge.FieldBridge;
+import org.hibernate.search.bridge.LuceneOptions;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * Hibernate search can't index CompositeId by himself.
+ *
+ * To index right on entities, we add a field "droit.pk2" containing user
+ * id, meaning "this user can see this indexed document".
+ *
+ * @author Eric Chatellier
+ */
+public class LotPersonneBridge implements FieldBridge {
+
+ /** Logger */
+ private static final Logger LOG = LoggerFactory.getLogger(LotPersonneBridge.class);
+
+ /** {@inheritDoc} */
+ @Override
+ public void set(String name, Object value, Document document, LuceneOptions luceneOptions) {
+
+ LotPersonneDroits lotPersonneDroits = (LotPersonneDroits) value;
+ if (LOG.isTraceEnabled()) {
+ LOG.trace("Custom indexing of LotPersonneDroits : " + lotPersonneDroits.getId().getPk1().getIdLot() + ","
+ + lotPersonneDroits.getId().getPk2().getIdPersonne());
+ }
+
+ CompositeId<Lot, Personne> compositeId = lotPersonneDroits.getId();
+
+ // commons information for all produit
+ document.add(new Field("droit.pk2", String.valueOf(compositeId.getPk2().getIdPersonne()), luceneOptions
+ .getStore(), luceneOptions.getIndex(), luceneOptions.getTermVector()));
+ }
+}
Property changes on: trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/model/search/LotPersonneBridge.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Modified: trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/model/search/ProduitBridge.java
===================================================================
--- trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/model/search/ProduitBridge.java 2013-03-04 11:31:56 UTC (rev 167)
+++ trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/model/search/ProduitBridge.java 2013-03-04 11:33:07 UTC (rev 168)
@@ -23,24 +23,29 @@
* #L%
*/
+import java.util.List;
+
+import nc.ird.cantharella.data.model.CampagnePersonneDroits;
import nc.ird.cantharella.data.model.Extrait;
import nc.ird.cantharella.data.model.Fraction;
+import nc.ird.cantharella.data.model.Lot;
+import nc.ird.cantharella.data.model.LotPersonneDroits;
import nc.ird.cantharella.data.model.Produit;
import nc.ird.cantharella.data.model.ResultatTestBio;
import org.apache.commons.lang3.StringUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
import org.hibernate.search.bridge.FieldBridge;
import org.hibernate.search.bridge.LuceneOptions;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
/**
* {@link ResultatTestBio} class contains a polymorphic entity that can't be
* properly indexed by hibernate search.
*
- * @author echatellier
+ * @author Eric Chatellier
*/
public class ProduitBridge implements FieldBridge {
@@ -52,68 +57,57 @@
public void set(String name, Object value, Document document, LuceneOptions luceneOptions) {
Produit produit = (Produit) value;
- if (LOG.isDebugEnabled()) {
- LOG.debug("Custom indexing of Produit entity : " + produit);
+ if (LOG.isTraceEnabled()) {
+ LOG.trace("Custom indexing of Produit entity : " + produit);
}
// commons information for all produit
- document.add(new Field("ref", produit.getRef(), luceneOptions.getStore(), luceneOptions.getIndex(),
- luceneOptions.getTermVector()));
+ //document.add(new Field("produit.ref", produit.getRef(), luceneOptions.getStore(), luceneOptions.getIndex(),
+ // luceneOptions.getTermVector()));
+ Lot lot = null;
if (produit instanceof Extrait) {
- if (LOG.isDebugEnabled()) {
- LOG.debug("Custom indexing of Extrait entity");
+ if (LOG.isTraceEnabled()) {
+ LOG.trace("Custom indexing of Extrait entity");
}
Extrait extrait = (Extrait) produit;
- document.add(new Field("extraction.lot.ref", extrait.getExtraction().getLot().getRef(), luceneOptions
- .getStore(), luceneOptions.getIndex(), luceneOptions.getTermVector()));
- document.add(new Field("extraction.lot.specimen.embranchement", extrait.getExtraction().getLot()
- .getSpecimenRef().getEmbranchement(), luceneOptions.getStore(), luceneOptions.getIndex(),
- luceneOptions.getTermVector()));
- if (StringUtils.isNotBlank(extrait.getExtraction().getLot().getSpecimenRef().getFamille())) {
- document.add(new Field("extraction.lot.specimen.famille", extrait.getExtraction().getLot()
- .getSpecimenRef().getFamille(), luceneOptions.getStore(), luceneOptions.getIndex(),
- luceneOptions.getTermVector()));
- }
- if (StringUtils.isNotBlank(extrait.getExtraction().getLot().getSpecimenRef().getGenre())) {
- document.add(new Field("extraction.lot.specimen.genre", extrait.getExtraction().getLot()
- .getSpecimenRef().getGenre(), luceneOptions.getStore(), luceneOptions.getIndex(), luceneOptions
- .getTermVector()));
- }
- if (StringUtils.isNotBlank(extrait.getExtraction().getLot().getSpecimenRef().getEspece())) {
- document.add(new Field("extraction.lot.specimen.expece", extrait.getExtraction().getLot()
- .getSpecimenRef().getEspece(), luceneOptions.getStore(), luceneOptions.getIndex(),
- luceneOptions.getTermVector()));
- }
- document.add(new Field("extraction.lot.campagne.nom", extrait.getExtraction().getLot().getCampagne()
- .getNom(), luceneOptions.getStore(), luceneOptions.getIndex(), luceneOptions.getTermVector()));
+ lot = extrait.getExtraction().getLot();
} else if (produit instanceof Fraction) {
- if (LOG.isDebugEnabled()) {
- LOG.debug("Custom indexing of Fraction entity");
+ if (LOG.isTraceEnabled()) {
+ LOG.trace("Custom indexing of Fraction entity");
}
Fraction fraction = (Fraction) produit;
- document.add(new Field("purification.lotSource.ref", fraction.getPurification().getLotSource().getRef(),
+ lot = fraction.getPurification().getLotSource();
+ }
+
+ document.add(new Field("produit.lot.ref", lot.getRef(), luceneOptions.getStore(), luceneOptions.getIndex(),
+ luceneOptions.getTermVector()));
+ document.add(new Field("produit.lot.speciment.embranchement", lot.getSpecimenRef().getEmbranchement(),
+ luceneOptions.getStore(), luceneOptions.getIndex(), luceneOptions.getTermVector()));
+ if (StringUtils.isNotBlank(lot.getSpecimenRef().getFamille())) {
+ document.add(new Field("produit.lot.speciment.famille", lot.getSpecimenRef().getFamille(), luceneOptions
+ .getStore(), luceneOptions.getIndex(), luceneOptions.getTermVector()));
+ }
+ if (StringUtils.isNotBlank(lot.getSpecimenRef().getGenre())) {
+ document.add(new Field("produit.lot.speciment.genre", lot.getSpecimenRef().getGenre(), luceneOptions
+ .getStore(), luceneOptions.getIndex(), luceneOptions.getTermVector()));
+ }
+ if (StringUtils.isNotBlank(lot.getSpecimenRef().getEspece())) {
+ document.add(new Field("produit.lot.speciment.expece", lot.getSpecimenRef().getEspece(), luceneOptions
+ .getStore(), luceneOptions.getIndex(), luceneOptions.getTermVector()));
+ }
+ document.add(new Field("produit.lot.campagne.nom", lot.getCampagne().getNom(), luceneOptions.getStore(),
+ luceneOptions.getIndex(), luceneOptions.getTermVector()));
+
+ // commons information for all produit
+ List<LotPersonneDroits> personnesDroits = lot.getPersonnesDroits();
+ for (LotPersonneDroits lotPersonneDroit : personnesDroits) {
+ document.add(new Field("droit.pk2", String.valueOf(lotPersonneDroit.getId().getPk2().getIdPersonne()),
luceneOptions.getStore(), luceneOptions.getIndex(), luceneOptions.getTermVector()));
- document.add(new Field("purification.lotSource.speciment.embranchement", fraction.getPurification()
- .getLotSource().getSpecimenRef().getEmbranchement(), luceneOptions.getStore(), luceneOptions
- .getIndex(), luceneOptions.getTermVector()));
- if (StringUtils.isNotBlank(fraction.getPurification().getLotSource().getSpecimenRef().getFamille())) {
- document.add(new Field("purification.lotSource.speciment.famille", fraction.getPurification()
- .getLotSource().getSpecimenRef().getFamille(), luceneOptions.getStore(), luceneOptions
- .getIndex(), luceneOptions.getTermVector()));
- }
- if (StringUtils.isNotBlank(fraction.getPurification().getLotSource().getSpecimenRef().getGenre())) {
- document.add(new Field("purification.lotSource.speciment.genre", fraction.getPurification()
- .getLotSource().getSpecimenRef().getGenre(), luceneOptions.getStore(),
- luceneOptions.getIndex(), luceneOptions.getTermVector()));
- }
- if (StringUtils.isNotBlank(fraction.getPurification().getLotSource().getSpecimenRef().getEspece())) {
- document.add(new Field("purification.lotSource.speciment.expece", fraction.getPurification()
- .getLotSource().getSpecimenRef().getEspece(), luceneOptions.getStore(), luceneOptions
- .getIndex(), luceneOptions.getTermVector()));
- }
- document.add(new Field("purification.lotSource.campagne.nom", fraction.getPurification().getLotSource()
- .getCampagne().getNom(), luceneOptions.getStore(), luceneOptions.getIndex(), luceneOptions
- .getTermVector()));
}
+ List<CampagnePersonneDroits> campagnesDroits = lot.getCampagne().getPersonnesDroits();
+ for (CampagnePersonneDroits campagnesDroit : campagnesDroits) {
+ document.add(new Field("droit.pk2", String.valueOf(campagnesDroit.getId().getPk2().getIdPersonne()),
+ luceneOptions.getStore(), luceneOptions.getIndex(), luceneOptions.getTermVector()));
+ }
}
}
Modified: trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/model/search/UtilisateurSearchFilter.java
===================================================================
--- trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/model/search/UtilisateurSearchFilter.java 2013-03-04 11:31:56 UTC (rev 167)
+++ trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/model/search/UtilisateurSearchFilter.java 2013-03-04 11:33:07 UTC (rev 168)
@@ -43,7 +43,7 @@
* Filtre lucene utilisé par hibernate search pour filtrer les resultats
* suivant l'utilisateur connecté.
*
- * @author echatellier
+ * @author Eric Chatellier
*/
public class UtilisateurSearchFilter extends Filter {
@@ -96,7 +96,7 @@
LOG.debug("Filtering term docs for administrator");
}
// all docs
- for (int idx = 0; idx < bitSet.length(); idx++) {
+ for (int idx = 0; idx < reader.maxDoc(); idx++) {
if (!reader.isDeleted(idx)) {
bitSet.set(idx);
}
@@ -105,12 +105,23 @@
if (LOG.isDebugEnabled()) {
LOG.debug("Filtering term docs for utilisateur");
}
- // only docs matching terms
- TermDocs termDocs = reader.termDocs(new Term("createur.idPersonne", String.valueOf(utilisateur
+ // only docs where user is creator
+ TermDocs termDocsCreateur = reader.termDocs(new Term("createur.idPersonne", String.valueOf(utilisateur
.getIdPersonne())));
- while (termDocs.next()) {
- bitSet.set(termDocs.doc());
+ while (termDocsCreateur.next()) {
+ if (!reader.isDeleted(termDocsCreateur.doc())) {
+ bitSet.set(termDocsCreateur.doc());
+ }
}
+
+ // and docs where user has rights on
+ TermDocs termDocsDroits = reader
+ .termDocs(new Term("droit.pk2", String.valueOf(utilisateur.getIdPersonne())));
+ while (termDocsDroits.next()) {
+ if (!reader.isDeleted(termDocsCreateur.doc())) {
+ bitSet.set(termDocsDroits.doc());
+ }
+ }
}
return bitSet;
Modified: trunk/cantharella.data/src/main/resources/META-INF/services/org.hibernate.integrator.spi.Integrator
===================================================================
--- trunk/cantharella.data/src/main/resources/META-INF/services/org.hibernate.integrator.spi.Integrator 2013-03-04 11:31:56 UTC (rev 167)
+++ trunk/cantharella.data/src/main/resources/META-INF/services/org.hibernate.integrator.spi.Integrator 2013-03-04 11:33:07 UTC (rev 168)
@@ -1 +1,2 @@
-nc.ird.cantharella.data.config.ValidationIntegrator
\ No newline at end of file
+nc.ird.cantharella.data.config.ValidationIntegrator
+nc.ird.cantharella.data.config.HibernateSearchIntegrator
\ No newline at end of file
Modified: trunk/cantharella.service/src/main/java/nc/ird/cantharella/service/services/LotService.java
===================================================================
--- trunk/cantharella.service/src/main/java/nc/ird/cantharella/service/services/LotService.java 2013-03-04 11:31:56 UTC (rev 167)
+++ trunk/cantharella.service/src/main/java/nc/ird/cantharella/service/services/LotService.java 2013-03-04 11:33:07 UTC (rev 168)
@@ -25,8 +25,6 @@
import java.util.List;
import java.util.SortedSet;
-import org.springframework.transaction.annotation.Transactional;
-
import nc.ird.cantharella.data.exceptions.DataConstraintException;
import nc.ird.cantharella.data.exceptions.DataNotFoundException;
import nc.ird.cantharella.data.model.Lot;
@@ -37,6 +35,8 @@
import nc.ird.cantharella.service.utils.normalizers.UniqueFieldNormalizer;
import nc.ird.cantharella.service.utils.normalizers.utils.Normalize;
+import org.springframework.transaction.annotation.Transactional;
+
/**
* Service : lots
* @author Mickael Tricot
@@ -51,6 +51,12 @@
long countLots();
/**
+ * Rafraichit un lot (pour éviter des LazyLoadingException)
+ * @param lot Lot
+ */
+ void refreshLot(Lot lot);
+
+ /**
* Créée un lot
* @param lot Lot
* @throws DataConstraintException Si le lot (nom) existe déjà
Modified: trunk/cantharella.service/src/main/java/nc/ird/cantharella/service/services/impl/LotServiceImpl.java
===================================================================
--- trunk/cantharella.service/src/main/java/nc/ird/cantharella/service/services/impl/LotServiceImpl.java 2013-03-04 11:31:56 UTC (rev 167)
+++ trunk/cantharella.service/src/main/java/nc/ird/cantharella/service/services/impl/LotServiceImpl.java 2013-03-04 11:33:07 UTC (rev 168)
@@ -27,6 +27,8 @@
import java.util.SortedSet;
import java.util.TreeSet;
+import javax.annotation.Resource;
+
import nc.ird.cantharella.data.dao.GenericDao;
import nc.ird.cantharella.data.exceptions.DataConstraintException;
import nc.ird.cantharella.data.exceptions.DataNotFoundException;
@@ -39,6 +41,10 @@
import nc.ird.cantharella.service.services.LotService;
import nc.ird.cantharella.utils.AssertTools;
+import org.hibernate.Session;
+import org.hibernate.SessionFactory;
+import org.hibernate.search.FullTextSession;
+import org.hibernate.search.Search;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@@ -59,6 +65,10 @@
@Autowired
private GenericDao dao;
+ /** Hibernate session factory. */
+ @Resource
+ private SessionFactory sessionFactory;
+
/** {@inheritDoc} */
@Override
public long countLots() {
@@ -67,6 +77,13 @@
/** {@inheritDoc} */
@Override
+ public void refreshLot(Lot lot) {
+ AssertTools.assertNotNull(lot);
+ dao.refresh(lot);
+ }
+
+ /** {@inheritDoc} */
+ @Override
public void createLot(Lot lot) throws DataConstraintException {
LOG.info("createLot " + lot.getRef());
dao.create(lot);
@@ -198,12 +215,17 @@
@Override
public void updateLot(Lot lot) throws DataConstraintException {
LOG.info("updateLot " + lot.getRef());
- try {
- dao.update(lot);
- } catch (DataNotFoundException e) {
+ //try {
+ dao.merge(lot);
+
+ Session session = sessionFactory.getCurrentSession();
+ FullTextSession fullTextSession = Search.getFullTextSession(session);
+ fullTextSession.index(lot);
+
+ /*} catch (DataNotFoundException e) {
LOG.error(e.getMessage(), e);
throw new UnexpectedException(e);
- }
+ }*/
}
/** {@inheritDoc} */
Modified: trunk/cantharella.service/src/main/java/nc/ird/cantharella/service/services/impl/SearchServiceImpl.java
===================================================================
--- trunk/cantharella.service/src/main/java/nc/ird/cantharella/service/services/impl/SearchServiceImpl.java 2013-03-04 11:31:56 UTC (rev 167)
+++ trunk/cantharella.service/src/main/java/nc/ird/cantharella/service/services/impl/SearchServiceImpl.java 2013-03-04 11:33:07 UTC (rev 168)
@@ -116,7 +116,7 @@
// passer les tests pour que les indexes lucene contiennent des données
// nécéssaire car il ne sont écrits que lorsque Spring commmit la
// transaction (c'est à dire jamais dans les tests)
- fullTextSession.flushToIndexes();
+ //fullTextSession.flushToIndexes();
//fullTextSession.setFlushMode(FlushMode.MANUAL);
//fullTextSession.setCacheMode(CacheMode.IGNORE);
@@ -206,7 +206,7 @@
String fieldName = fieldInfos.fieldName(i);
// il semble impossible de ne pas recuperer l'id du document
// on l'exclut donc manuellement
- if (!fieldName.startsWith("id") && !fieldName.contains(".id")) {
+ if (!fieldName.startsWith("id") && !fieldName.contains(".id") && !fieldName.endsWith(".pk2")) {
fieldList.add(fieldInfos.fieldName(i));
}
}
Modified: trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/utilisateur/ManageUtilisateurPage.java
===================================================================
--- trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/utilisateur/ManageUtilisateurPage.java 2013-03-04 11:31:56 UTC (rev 167)
+++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/utilisateur/ManageUtilisateurPage.java 2013-03-04 11:33:07 UTC (rev 168)
@@ -39,7 +39,11 @@
import nc.ird.cantharella.data.validation.utils.ModelValidator;
import nc.ird.cantharella.service.exceptions.EmailException;
import nc.ird.cantharella.service.services.CampagneService;
+import nc.ird.cantharella.service.services.LotService;
import nc.ird.cantharella.service.services.PersonneService;
+import nc.ird.cantharella.utils.BeanTools;
+import nc.ird.cantharella.utils.BeanTools.AccessType;
+import nc.ird.cantharella.utils.CollectionTools;
import nc.ird.cantharella.web.pages.TemplatePage;
import nc.ird.cantharella.web.pages.domain.personne.panels.ManagePersonnePanel;
import nc.ird.cantharella.web.pages.model.ManageUtilisateurModel;
@@ -50,13 +54,8 @@
import nc.ird.cantharella.web.utils.renderers.EnumChoiceRenderer;
import nc.ird.cantharella.web.utils.security.AuthRole;
import nc.ird.cantharella.web.utils.security.AuthRoles;
-import nc.ird.cantharella.utils.BeanTools;
-import nc.ird.cantharella.utils.BeanTools.AccessType;
-import nc.ird.cantharella.utils.CollectionTools;
import org.apache.commons.collections.comparators.ComparatorChain;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
import org.apache.wicket.AttributeModifier;
import org.apache.wicket.MarkupContainer;
import org.apache.wicket.ajax.AjaxRequestTarget;
@@ -76,6 +75,8 @@
import org.apache.wicket.model.Model;
import org.apache.wicket.model.PropertyModel;
import org.apache.wicket.spring.injection.annot.SpringBean;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
/**
* Gestion d'un utilisateur par un admin
@@ -119,6 +120,10 @@
@SpringBean
private CampagneService campagneService;
+ /** Service : lot */
+ @SpringBean
+ private LotService lotService;
+
/** Modèle : droits sur un lot, en cours de saisie */
private final IModel<LotPersonneDroits> lotsPersonneDroitsModel;
@@ -295,8 +300,10 @@
throw new UnexpectedException(e);
}
// Recharge la campagne pour éviter une LazyLoadingException
- campagneService.refreshCampagne(droits.getId().getPk1());
- manageUtilisateurModel.getObject().getCampagnesDroits().put(droits.getId().getPk1(), droits);
+ Campagne campagne = droits.getId().getPk1();
+ campagneService.refreshCampagne(campagne);
+ manageUtilisateurModel.getObject().getCampagnesDroits().put(campagne, droits);
+ campagne.getPersonnesDroits().add(droits);
// puisque droits sur Campagne-Tous, suppression des Campagne-Lot de cette campagne
// Se base sur le réf de lot plutôt que l'objet pour être indépendant du contexte de persistance
@@ -314,7 +321,11 @@
LOG.error(e.getMessage(), e);
throw new UnexpectedException(e);
}
- manageUtilisateurModel.getObject().getLotsDroits().put(droits.getId().getPk1(), droits);
+ Lot lot = droits.getId().getPk1();
+ // Evite une LazyLoadingException car la campagne n'est plus dans la session
+ lotService.refreshLot(lot);
+ manageUtilisateurModel.getObject().getLotsDroits().put(lot, droits);
+ lot.getPersonnesDroits().add(droits);
}
// Mise à jour des listes
updateAvailableCampagnes();
1
0
04 Mar '13
Author: echatellier
Date: 2013-03-04 12:31:56 +0100 (Mon, 04 Mar 2013)
New Revision: 167
Url: http://forge.codelutin.com/projects/cantharella/repository/revisions/167
Log:
Fix document update message
Modified:
trunk/cantharella.web/src/main/resources/web_en.properties
trunk/cantharella.web/src/main/resources/web_fr.properties
Modified: trunk/cantharella.web/src/main/resources/web_en.properties
===================================================================
--- trunk/cantharella.web/src/main/resources/web_en.properties 2013-02-28 09:48:44 UTC (rev 166)
+++ trunk/cantharella.web/src/main/resources/web_en.properties 2013-03-04 11:31:56 UTC (rev 167)
@@ -211,10 +211,10 @@
ManageTestBioPage.Delete.DataConstraintException=There are data linked to this biassay
ManageDocumentPage=Document management
-ManageDocumentPage.Create.OK=Document added
-ManageDocumentPage.Update.OK=Document updated
-ManageDocumentPage.Delete.OK=Document deleted
-ManageDocumentPage.Form.uploadTooLarge=La taille du document ne peut pas dépasser ${maxSize}
+ManageDocumentPage.Create.OK=Document will be saved on form submit
+ManageDocumentPage.Update.OK=Document will be updated on form submit
+ManageDocumentPage.Delete.OK=Document will be deleted on form submit
+ManageDocumentPage.Form.uploadTooLarge=Document size can't be bigger than ${maxSize}
UpdateUtilisateurPage=Account management
UpdateUtilisateurPage.Password=Password
Modified: trunk/cantharella.web/src/main/resources/web_fr.properties
===================================================================
--- trunk/cantharella.web/src/main/resources/web_fr.properties 2013-02-28 09:48:44 UTC (rev 166)
+++ trunk/cantharella.web/src/main/resources/web_fr.properties 2013-03-04 11:31:56 UTC (rev 167)
@@ -210,9 +210,9 @@
ManageTestBioPage.Delete.DataConstraintException=Il existe des données liées à ce test biologique
ManageDocumentPage=Gestion d'un document
-ManageDocumentPage.Create.OK=Document ajouté
-ManageDocumentPage.Update.OK=Document mis à jour
-ManageDocumentPage.Delete.OK=Document supprimé
+ManageDocumentPage.Create.OK=L'enregistrement du document s'effectuera à la validation du formulaire
+ManageDocumentPage.Update.OK=La modification du document s'effectuera à la validation du formulaire
+ManageDocumentPage.Delete.OK=La suppression du document s'effectuera à la validation du formulaire
ManageDocumentPage.Form.uploadTooLarge=La taille du document ne peut pas dépasser ${maxSize}
UpdateUtilisateurPage=Gestion du compte
1
0
r166 - in trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain: campagne config/panels document document/panel extraction lot molecule personne purification specimen station testBio
by echatellier@users.forge.codelutin.com 28 Feb '13
by echatellier@users.forge.codelutin.com 28 Feb '13
28 Feb '13
Author: echatellier
Date: 2013-02-28 10:48:44 +0100 (Thu, 28 Feb 2013)
New Revision: 166
Url: http://forge.codelutin.com/projects/cantharella/repository/revisions/166
Log:
Use entity instead of model to instanciate pages
Modified:
trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/campagne/ManageCampagnePage.java
trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/campagne/ReadCampagnePage.java
trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/config/panels/RebuildLuceneIndexPanel.java
trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/document/ManageDocumentPage.java
trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/document/ReadDocumentPage.java
trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/document/panel/ManageListDocumentsPanel.java
trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/document/panel/ReadListDocumentsPanel.java
trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/extraction/ManageExtractionPage.java
trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/extraction/ReadExtractionPage.java
trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/lot/ManageLotPage.java
trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/lot/ReadLotPage.java
trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/molecule/ManageMoleculePage.java
trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/molecule/ReadMoleculePage.java
trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/personne/ManagePersonnePage.java
trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/personne/ReadPersonnePage.java
trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/purification/ManagePurificationPage.java
trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/purification/ReadPurificationPage.java
trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/specimen/ManageSpecimenPage.java
trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/specimen/ReadSpecimenPage.java
trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/station/ManageStationPage.java
trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/station/ReadStationPage.java
trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/testBio/ManageTestBioPage.java
trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/testBio/ReadTestBioPage.java
Modified: trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/campagne/ManageCampagnePage.java
===================================================================
--- trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/campagne/ManageCampagnePage.java 2013-02-28 09:27:15 UTC (rev 165)
+++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/campagne/ManageCampagnePage.java 2013-02-28 09:48:44 UTC (rev 166)
@@ -263,7 +263,7 @@
// add list document panel
ManageListDocumentsPanel manageListDocumentsPanel = new ManageListDocumentsPanel("ManageListDocumentsPanel",
- campagneModel, currentPage);
+ campagneModel.getObject(), currentPage);
manageListDocumentsPanel.setUpdateOrDeleteEnabled(createMode
|| campagneService.updateOrdeleteCampagneEnabled(campagneModel.getObject(), getSession()
.getUtilisateur()));
Modified: trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/campagne/ReadCampagnePage.java
===================================================================
--- trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/campagne/ReadCampagnePage.java 2013-02-28 09:27:15 UTC (rev 165)
+++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/campagne/ReadCampagnePage.java 2013-02-28 09:48:44 UTC (rev 166)
@@ -137,7 +137,7 @@
// add list document panel
ReadListDocumentsPanel readListDocumentsPanel = new ReadListDocumentsPanel("ReadListDocumentsPanel",
- campagneModel, currentPage);
+ campagneModel.getObject(), currentPage);
add(readListDocumentsPanel);
// Ajout du formulaire pour les actions
Modified: trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/config/panels/RebuildLuceneIndexPanel.java
===================================================================
--- trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/config/panels/RebuildLuceneIndexPanel.java 2013-02-28 09:27:15 UTC (rev 165)
+++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/config/panels/RebuildLuceneIndexPanel.java 2013-02-28 09:48:44 UTC (rev 166)
@@ -25,7 +25,6 @@
import nc.ird.cantharella.service.services.SearchService;
import org.apache.wicket.ajax.AjaxRequestTarget;
-import org.apache.wicket.ajax.AjaxSelfUpdatingTimerBehavior;
import org.apache.wicket.ajax.markup.html.form.AjaxFallbackButton;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.form.Button;
@@ -34,7 +33,6 @@
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.Model;
import org.apache.wicket.spring.injection.annot.SpringBean;
-import org.apache.wicket.util.time.Duration;
/**
* Panel qui permet de reconstruire l'index lucene.
Modified: trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/document/ManageDocumentPage.java
===================================================================
--- trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/document/ManageDocumentPage.java 2013-02-28 09:27:15 UTC (rev 165)
+++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/document/ManageDocumentPage.java 2013-02-28 09:48:44 UTC (rev 166)
@@ -105,23 +105,21 @@
/**
* Constructeur (mode création)
* @param callerPage Page appelante
- * @param documentAttachableModel entity where document is attached to
+ * @param documentAttachable entity where document is attached to
* @param multipleEntry Saisie multiple
*/
- public ManageDocumentPage(CallerPage callerPage, IModel<? extends DocumentAttachable> documentAttachableModel,
- boolean multipleEntry) {
- this(null, documentAttachableModel, callerPage, multipleEntry);
+ public ManageDocumentPage(CallerPage callerPage, DocumentAttachable documentAttachable, boolean multipleEntry) {
+ this(null, documentAttachable, callerPage, multipleEntry);
}
/**
* Constructeur (mode édition)
* @param document document to edit
- * @param documentAttachableModel document sur le
+ * @param documentAttachable document sur le
* @param callerPage Page appelante
*/
- public ManageDocumentPage(Document document, IModel<? extends DocumentAttachable> documentAttachableModel,
- CallerPage callerPage) {
- this(document, documentAttachableModel, callerPage, false);
+ public ManageDocumentPage(Document document, DocumentAttachable documentAttachable, CallerPage callerPage) {
+ this(document, documentAttachable, callerPage, false);
}
/**
@@ -130,11 +128,11 @@
* correspondant. Si document est renseigné, on créée un nouveau document à
* partir des informations qu'il contient.
* @param document document
- * @param documentAttachableModel entity where document is attached to
+ * @param documentAttachable entity where document is attached to
* @param callerPage Page appelante
* @param multipleEntry Saisie multiple
*/
- private ManageDocumentPage(Document document, final IModel<? extends DocumentAttachable> documentAttachableModel,
+ private ManageDocumentPage(Document document, final DocumentAttachable documentAttachable,
final CallerPage callerPage, boolean multipleEntry) {
super(ManageDocumentPage.class);
this.callerPage = callerPage;
@@ -255,7 +253,7 @@
@Override
public void onProcess() throws DataConstraintException {
Document document = documentModel.getObject();
- documentAttachableModel.getObject().addDocument(document);
+ documentAttachable.addDocument(document);
}
@Override
@@ -303,7 +301,7 @@
Button deleteButton = new SubmittableButton(ACTION_DELETE, new SubmittableButtonEvents() {
@Override
public void onProcess() throws DataConstraintException {
- documentAttachableModel.getObject().removeDocument(documentModel.getObject());
+ documentAttachable.removeDocument(documentModel.getObject());
}
@Override
Modified: trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/document/ReadDocumentPage.java
===================================================================
--- trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/document/ReadDocumentPage.java 2013-02-28 09:27:15 UTC (rev 165)
+++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/document/ReadDocumentPage.java 2013-02-28 09:48:44 UTC (rev 166)
@@ -72,11 +72,11 @@
/**
* Constructeur
* @param document document
- * @param documentAttachableModel entity where document is attached to
+ * @param documentAttachable entity where document is attached to
* @param callerPage caller page
*/
- public ReadDocumentPage(final Document document,
- final IModel<? extends DocumentAttachable> documentAttachableModel, final CallerPage callerPage) {
+ public ReadDocumentPage(final Document document, final DocumentAttachable documentAttachable,
+ final CallerPage callerPage) {
super(ReadDocumentPage.class);
this.callerPage = callerPage;
final CallerPage currentPage = new CallerPage(this);
@@ -120,7 +120,7 @@
.getObject())) {
@Override
public void onClick() {
- setResponsePage(new ManageDocumentPage(getModelObject(), documentAttachableModel, currentPage));
+ setResponsePage(new ManageDocumentPage(getModelObject(), documentAttachable, currentPage));
}
};
formView.add(updateLink);
@@ -129,7 +129,7 @@
deleteButton = new SubmittableButton(ACTION_DELETE, ManageLotPage.class, new SubmittableButtonEvents() {
@Override
public void onProcess() throws DataConstraintException {
- documentAttachableModel.getObject().removeDocument(documentModel.getObject());
+ documentAttachable.removeDocument(documentModel.getObject());
}
@Override
Modified: trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/document/panel/ManageListDocumentsPanel.java
===================================================================
--- trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/document/panel/ManageListDocumentsPanel.java 2013-02-28 09:27:15 UTC (rev 165)
+++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/document/panel/ManageListDocumentsPanel.java 2013-02-28 09:48:44 UTC (rev 166)
@@ -62,11 +62,10 @@
/**
* Constructeur.
* @param id ID
- * @param documentAttachableModel entity where documents are attached to
+ * @param documentAttachable entity where documents are attached to
* @param currentPage currentPage
*/
- public ManageListDocumentsPanel(String id, final IModel<? extends DocumentAttachable> documentAttachableModel,
- final CallerPage currentPage) {
+ public ManageListDocumentsPanel(String id, final DocumentAttachable documentAttachable, final CallerPage currentPage) {
super(id);
// edit mode enabled by default
this.updateOrDeleteEnabled = true;
@@ -78,8 +77,7 @@
documentsTable.setOutputMarkupId(true);
formView.add(documentsTable);
- final IModel<List<Document>> documentModel = new PropertyModel<List<Document>>(documentAttachableModel,
- "documents");
+ final IModel<List<Document>> documentModel = new PropertyModel<List<Document>>(documentAttachable, "documents");
// Contenu tableaux provenance
ListView<Document> documentsListView = new ListView<Document>("ListDocumentsPage.AttachedDocuments.List",
@@ -96,7 +94,7 @@
@Override
public void onClick() {
ReadDocumentPage readDocumentPage = new ReadDocumentPage(documentModel.getObject(),
- documentAttachableModel, currentPage);
+ documentAttachable, currentPage);
readDocumentPage.setUpdateOrDeleteEnabled(updateOrDeleteEnabled);
setResponsePage(readDocumentPage);
}
@@ -114,7 +112,7 @@
@Override
protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
Document document = documentModel.getObject();
- documentAttachableModel.getObject().removeDocument(document);
+ documentAttachable.removeDocument(document);
if (target != null) {
target.add(documentsTable);
@@ -128,13 +126,13 @@
newDocumentLink = new AjaxSubmitLink("NewDocument") {
@Override
protected void onSubmit(AjaxRequestTarget request, Form<?> form) {
- setResponsePage(new ManageDocumentPage(currentPage, documentAttachableModel, false));
+ setResponsePage(new ManageDocumentPage(currentPage, documentAttachable, false));
}
// si erreur, le formulaire est également enregistré puis la redirection effectuée
@Override
protected void onError(AjaxRequestTarget target, Form<?> form) {
- setResponsePage(new ManageDocumentPage(currentPage, documentAttachableModel, false));
+ setResponsePage(new ManageDocumentPage(currentPage, documentAttachable, false));
}
};
documentsTable.add(newDocumentLink);
Modified: trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/document/panel/ReadListDocumentsPanel.java
===================================================================
--- trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/document/panel/ReadListDocumentsPanel.java 2013-02-28 09:27:15 UTC (rev 165)
+++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/document/panel/ReadListDocumentsPanel.java 2013-02-28 09:48:44 UTC (rev 166)
@@ -49,19 +49,17 @@
/**
* Constructeur
* @param id ID
- * @param documentAttachableModel document attachable
+ * @param documentAttachable document attachable
* @param currentPage current page
*/
- public ReadListDocumentsPanel(String id, final IModel<? extends DocumentAttachable> documentAttachableModel,
- final CallerPage currentPage) {
+ public ReadListDocumentsPanel(String id, final DocumentAttachable documentAttachable, final CallerPage currentPage) {
super(id);
final MarkupContainer documentsTable = new WebMarkupContainer("ListDocumentsPage.AttachedDocuments.Table");
documentsTable.setOutputMarkupId(true);
add(documentsTable);
- final IModel<List<Document>> documentModel = new PropertyModel<List<Document>>(documentAttachableModel,
- "documents");
+ final IModel<List<Document>> documentModel = new PropertyModel<List<Document>>(documentAttachable, "documents");
// Contenu tableaux provenance
ListView<Document> documentsListView = new ListView<Document>("ListDocumentsPage.AttachedDocuments.List",
@@ -77,8 +75,7 @@
Link<Document> documentLink = new Link<Document>("Document.titre.List") {
@Override
public void onClick() {
- setResponsePage(new ReadDocumentPage(documentModel.getObject(), documentAttachableModel,
- currentPage));
+ setResponsePage(new ReadDocumentPage(documentModel.getObject(), documentAttachable, currentPage));
}
};
documentLink.add(new Label("Document.titre.Label.List", new PropertyModel<Document>(documentModel,
Modified: trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/extraction/ManageExtractionPage.java
===================================================================
--- trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/extraction/ManageExtractionPage.java 2013-02-28 09:27:15 UTC (rev 165)
+++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/extraction/ManageExtractionPage.java 2013-02-28 09:48:44 UTC (rev 166)
@@ -274,7 +274,7 @@
// add list document panel
ManageListDocumentsPanel manageListDocumentsPanel = new ManageListDocumentsPanel("ManageListDocumentsPanel",
- extractionModel, currentPage);
+ extractionModel.getObject(), currentPage);
formView.add(manageListDocumentsPanel);
// Action : create the extraction
Modified: trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/extraction/ReadExtractionPage.java
===================================================================
--- trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/extraction/ReadExtractionPage.java 2013-02-28 09:27:15 UTC (rev 165)
+++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/extraction/ReadExtractionPage.java 2013-02-28 09:48:44 UTC (rev 166)
@@ -187,7 +187,7 @@
// add list document panel
ReadListDocumentsPanel readListDocumentsPanel = new ReadListDocumentsPanel("ReadListDocumentsPanel",
- extractionModel, currentPage);
+ extractionModel.getObject(), currentPage);
add(readListDocumentsPanel);
// Formulaire des actions
Modified: trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/lot/ManageLotPage.java
===================================================================
--- trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/lot/ManageLotPage.java 2013-02-28 09:27:15 UTC (rev 165)
+++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/lot/ManageLotPage.java 2013-02-28 09:48:44 UTC (rev 166)
@@ -294,7 +294,7 @@
// add list document panel
ManageListDocumentsPanel manageListDocumentsPanel = new ManageListDocumentsPanel("ManageListDocumentsPanel",
- lotModel, currentPage);
+ lotModel.getObject(), currentPage);
manageListDocumentsPanel.setUpdateOrDeleteEnabled(createMode
|| lotService.updateOrdeleteLotEnabled(lotModel.getObject(), getSession().getUtilisateur()));
formView.add(manageListDocumentsPanel);
Modified: trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/lot/ReadLotPage.java
===================================================================
--- trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/lot/ReadLotPage.java 2013-02-28 09:27:15 UTC (rev 165)
+++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/lot/ReadLotPage.java 2013-02-28 09:48:44 UTC (rev 166)
@@ -141,8 +141,8 @@
});
// add list document panel
- ReadListDocumentsPanel readListDocumentsPanel = new ReadListDocumentsPanel("ReadListDocumentsPanel", lotModel,
- currentPage);
+ ReadListDocumentsPanel readListDocumentsPanel = new ReadListDocumentsPanel("ReadListDocumentsPanel", lotModel
+ .getObject(), currentPage);
add(readListDocumentsPanel);
// Formulaire des actions
Modified: trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/molecule/ManageMoleculePage.java
===================================================================
--- trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/molecule/ManageMoleculePage.java 2013-02-28 09:27:15 UTC (rev 165)
+++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/molecule/ManageMoleculePage.java 2013-02-28 09:48:44 UTC (rev 166)
@@ -227,13 +227,14 @@
// predéclaration des champs activé par la chec
formView.add(new SimpleTooltipPanel("Molecule.nouvMolecul.info", new Model<String>(
getString("Molecule.nouvMolecul.info"))));
- formView.add(new AjaxCheckBox("Molecule.nouvMolecul", new PropertyModel<Boolean>(moleculeModel, "nouvMolecul")) {
- @Override
- protected void onUpdate(AjaxRequestTarget target) {
- nouvMoleculRefresh.setVisible(moleculeModel.getObject().isNouvMolecul());
- target.add(nouvMoleculRefresh);
- }
- }.setEnabled(updateOrDeleteEnabled));
+ formView
+ .add(new AjaxCheckBox("Molecule.nouvMolecul", new PropertyModel<Boolean>(moleculeModel, "nouvMolecul")) {
+ @Override
+ protected void onUpdate(AjaxRequestTarget target) {
+ nouvMoleculRefresh.setVisible(moleculeModel.getObject().isNouvMolecul());
+ target.add(nouvMoleculRefresh);
+ }
+ }.setEnabled(updateOrDeleteEnabled));
AutoCompleteTextFieldString identifieeParInput = new AutoCompleteTextFieldString("Molecule.identifieePar",
new PropertyModel<String>(moleculeModel, "identifieePar"), organismes, ComparisonMode.CONTAINS);
@@ -273,7 +274,7 @@
// add list document panel
ManageListDocumentsPanel manageListDocumentsPanel = new ManageListDocumentsPanel("ManageListDocumentsPanel",
- moleculeModel, currentPage);
+ moleculeModel.getObject(), currentPage);
manageListDocumentsPanel.setUpdateOrDeleteEnabled(updateOrDeleteEnabled);
formView.add(manageListDocumentsPanel);
Modified: trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/molecule/ReadMoleculePage.java
===================================================================
--- trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/molecule/ReadMoleculePage.java 2013-02-28 09:27:15 UTC (rev 165)
+++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/molecule/ReadMoleculePage.java 2013-02-28 09:48:44 UTC (rev 166)
@@ -152,7 +152,7 @@
// add list document panel
ReadListDocumentsPanel readListDocumentsPanel = new ReadListDocumentsPanel("ReadListDocumentsPanel",
- moleculeModel, currentPage);
+ moleculeModel.getObject(), currentPage);
add(readListDocumentsPanel);
// Formulaire des actions
Modified: trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/personne/ManagePersonnePage.java
===================================================================
--- trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/personne/ManagePersonnePage.java 2013-02-28 09:27:15 UTC (rev 165)
+++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/personne/ManagePersonnePage.java 2013-02-28 09:48:44 UTC (rev 166)
@@ -144,7 +144,7 @@
// add list document panel
ManageListDocumentsPanel manageListDocumentsPanel = new ManageListDocumentsPanel("ManageListDocumentsPanel",
- personneModel, currentPage);
+ personneModel.getObject(), currentPage);
manageListDocumentsPanel.setUpdateOrDeleteEnabled(createMode
|| getSession().getUtilisateur().getTypeDroit() == TypeDroit.ADMINISTRATEUR);
formView.add(manageListDocumentsPanel);
Modified: trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/personne/ReadPersonnePage.java
===================================================================
--- trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/personne/ReadPersonnePage.java 2013-02-28 09:27:15 UTC (rev 165)
+++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/personne/ReadPersonnePage.java 2013-02-28 09:48:44 UTC (rev 166)
@@ -87,7 +87,7 @@
// add list document panel
ReadListDocumentsPanel readListDocumentsPanel = new ReadListDocumentsPanel("ReadListDocumentsPanel",
- personneModel, currentPage);
+ personneModel.getObject(), currentPage);
add(readListDocumentsPanel);
// Action : mise à jour (redirection vers le formulaire)
Modified: trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/purification/ManagePurificationPage.java
===================================================================
--- trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/purification/ManagePurificationPage.java 2013-02-28 09:27:15 UTC (rev 165)
+++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/purification/ManagePurificationPage.java 2013-02-28 09:48:44 UTC (rev 166)
@@ -248,7 +248,7 @@
// add list document panel
ManageListDocumentsPanel manageListDocumentsPanel = new ManageListDocumentsPanel("ManageListDocumentsPanel",
- purificationModel, currentPage);
+ purificationModel.getObject(), currentPage);
formView.add(manageListDocumentsPanel);
// Action : create the purification
Modified: trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/purification/ReadPurificationPage.java
===================================================================
--- trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/purification/ReadPurificationPage.java 2013-02-28 09:27:15 UTC (rev 165)
+++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/purification/ReadPurificationPage.java 2013-02-28 09:48:44 UTC (rev 166)
@@ -236,7 +236,7 @@
// add list document panel
ReadListDocumentsPanel readListDocumentsPanel = new ReadListDocumentsPanel("ReadListDocumentsPanel",
- purificationModel, currentPage);
+ purificationModel.getObject(), currentPage);
add(readListDocumentsPanel);
// Formulaire des actions
Modified: trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/specimen/ManageSpecimenPage.java
===================================================================
--- trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/specimen/ManageSpecimenPage.java 2013-02-28 09:27:15 UTC (rev 165)
+++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/specimen/ManageSpecimenPage.java 2013-02-28 09:48:44 UTC (rev 166)
@@ -282,7 +282,7 @@
// add list document panel
ManageListDocumentsPanel manageListDocumentsPanel = new ManageListDocumentsPanel("ManageListDocumentsPanel",
- specimenModel, currentPage);
+ specimenModel.getObject(), currentPage);
manageListDocumentsPanel.setUpdateOrDeleteEnabled(createMode
|| specimenService.updateOrdeleteSpecimenEnabled(specimenModel.getObject(), getSession()
.getUtilisateur()));
Modified: trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/specimen/ReadSpecimenPage.java
===================================================================
--- trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/specimen/ReadSpecimenPage.java 2013-02-28 09:27:15 UTC (rev 165)
+++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/specimen/ReadSpecimenPage.java 2013-02-28 09:48:44 UTC (rev 166)
@@ -146,7 +146,7 @@
// add list document panel
ReadListDocumentsPanel readListDocumentsPanel = new ReadListDocumentsPanel("ReadListDocumentsPanel",
- specimenModel, currentPage);
+ specimenModel.getObject(), currentPage);
add(readListDocumentsPanel);
final Form<Void> formView = new Form<Void>("Form");
Modified: trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/station/ManageStationPage.java
===================================================================
--- trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/station/ManageStationPage.java 2013-02-28 09:27:15 UTC (rev 165)
+++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/station/ManageStationPage.java 2013-02-28 09:48:44 UTC (rev 166)
@@ -228,7 +228,7 @@
// add list document panel
ManageListDocumentsPanel manageListDocumentsPanel = new ManageListDocumentsPanel("ManageListDocumentsPanel",
- stationModel, currentPage);
+ stationModel.getObject(), currentPage);
manageListDocumentsPanel
.setUpdateOrDeleteEnabled(createMode
|| stationService.updateOrdeleteStationEnabled(stationModel.getObject(), getSession()
Modified: trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/station/ReadStationPage.java
===================================================================
--- trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/station/ReadStationPage.java 2013-02-28 09:27:15 UTC (rev 165)
+++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/station/ReadStationPage.java 2013-02-28 09:48:44 UTC (rev 166)
@@ -111,7 +111,7 @@
// add list document panel
ReadListDocumentsPanel readListDocumentsPanel = new ReadListDocumentsPanel("ReadListDocumentsPanel",
- stationModel, currentPage);
+ stationModel.getObject(), currentPage);
add(readListDocumentsPanel);
// Ajout du formulaire pour les actions
Modified: trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/testBio/ManageTestBioPage.java
===================================================================
--- trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/testBio/ManageTestBioPage.java 2013-02-28 09:27:15 UTC (rev 165)
+++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/testBio/ManageTestBioPage.java 2013-02-28 09:48:44 UTC (rev 166)
@@ -279,7 +279,7 @@
// add list document panel
ManageListDocumentsPanel manageListDocumentsPanel = new ManageListDocumentsPanel("ManageListDocumentsPanel",
- testBioModel, currentPage);
+ testBioModel.getObject(), currentPage);
formView.add(manageListDocumentsPanel);
// Action : create the testBio
Modified: trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/testBio/ReadTestBioPage.java
===================================================================
--- trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/testBio/ReadTestBioPage.java 2013-02-28 09:27:15 UTC (rev 165)
+++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/testBio/ReadTestBioPage.java 2013-02-28 09:48:44 UTC (rev 166)
@@ -120,7 +120,7 @@
// add list document panel
ReadListDocumentsPanel readListDocumentsPanel = new ReadListDocumentsPanel("ReadListDocumentsPanel",
- testBioModel, currentPage);
+ testBioModel.getObject(), currentPage);
add(readListDocumentsPanel);
// Ajout du formulaire pour les actions
1
0
r165 - trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/document
by echatellier@users.forge.codelutin.com 28 Feb '13
by echatellier@users.forge.codelutin.com 28 Feb '13
28 Feb '13
Author: echatellier
Date: 2013-02-28 10:27:15 +0100 (Thu, 28 Feb 2013)
New Revision: 165
Url: http://forge.codelutin.com/projects/cantharella/repository/revisions/165
Log:
Fix comment
Modified:
trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/document/ManageDocumentPage.java
Modified: trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/document/ManageDocumentPage.java
===================================================================
--- trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/document/ManageDocumentPage.java 2013-02-28 09:24:36 UTC (rev 164)
+++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/document/ManageDocumentPage.java 2013-02-28 09:27:15 UTC (rev 165)
@@ -160,7 +160,7 @@
List<String> containteLegales = documentService.listDocumentContrainteLegales();
if (document != null) {
- // qd saisie multiple avec préremplissage, hack nécessaire afin d'avoir dans le model le même objet que
+ // hack nécessaire afin d'avoir dans le model le même objet que
// celui de la liste de choix (sinon comme les objets viennent de sessions hibernate différentes, on n'a pas
// l'égalité entre les objets)
documentModel.getObject().setCreateur(
1
0
r164 - trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/config/panels
by echatellier@users.forge.codelutin.com 28 Feb '13
by echatellier@users.forge.codelutin.com 28 Feb '13
28 Feb '13
Author: echatellier
Date: 2013-02-28 10:24:36 +0100 (Thu, 28 Feb 2013)
New Revision: 164
Url: http://forge.codelutin.com/projects/cantharella/repository/revisions/164
Log:
Fix rebuild lucene index ui
Modified:
trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/config/panels/RebuildLuceneIndexPanel.java
Modified: trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/config/panels/RebuildLuceneIndexPanel.java
===================================================================
--- trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/config/panels/RebuildLuceneIndexPanel.java 2013-02-27 10:49:32 UTC (rev 163)
+++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/config/panels/RebuildLuceneIndexPanel.java 2013-02-28 09:24:36 UTC (rev 164)
@@ -25,13 +25,16 @@
import nc.ird.cantharella.service.services.SearchService;
import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.ajax.AjaxSelfUpdatingTimerBehavior;
import org.apache.wicket.ajax.markup.html.form.AjaxFallbackButton;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.form.Button;
import org.apache.wicket.markup.html.form.Form;
import org.apache.wicket.markup.html.panel.Panel;
+import org.apache.wicket.model.IModel;
import org.apache.wicket.model.Model;
import org.apache.wicket.spring.injection.annot.SpringBean;
+import org.apache.wicket.util.time.Duration;
/**
* Panel qui permet de reconstruire l'index lucene.
@@ -53,19 +56,25 @@
final Form<Void> formView = new Form<Void>("Form");
- final Label rebuildResultLabel = new Label("rebuildResult", new Model<String>(""));
+ final IModel<String> messageModel = Model.of("Idle");
+ final Label rebuildResultLabel = new Label("rebuildResult", messageModel);
+ rebuildResultLabel.setOutputMarkupId(true);
- Button addButton = new AjaxFallbackButton("Rebuild", formView) {
+ final Button addButton = new AjaxFallbackButton("Rebuild", formView) {
@Override
protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
- rebuildResultLabel.setDefaultModelObject("Rebuilding...");
+ messageModel.setObject("Rebuilding...");
+ setEnabled(false);
searchService.reIndex();
- rebuildResultLabel.setDefaultModelObject("Done.");
+ messageModel.setObject("Done.");
+ setEnabled(true);
+ target.add(rebuildResultLabel);
}
@Override
protected void onError(AjaxRequestTarget target, Form<?> form) {
-
+ messageModel.setObject("Error (see logs).");
+ target.add(rebuildResultLabel);
}
};
formView.add(addButton);
1
0
r163 - trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/molecule
by echatellier@users.forge.codelutin.com 27 Feb '13
by echatellier@users.forge.codelutin.com 27 Feb '13
27 Feb '13
Author: echatellier
Date: 2013-02-27 11:49:32 +0100 (Wed, 27 Feb 2013)
New Revision: 163
Url: http://forge.codelutin.com/projects/cantharella/repository/revisions/163
Log:
fixes #2015: Interface "Molecule" - Chemdoodle field reinitialized
Modified:
trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/molecule/ManageMoleculePage.java
Modified: trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/molecule/ManageMoleculePage.java
===================================================================
--- trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/molecule/ManageMoleculePage.java 2013-02-27 10:40:04 UTC (rev 162)
+++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/molecule/ManageMoleculePage.java 2013-02-27 10:49:32 UTC (rev 163)
@@ -66,12 +66,12 @@
import org.apache.wicket.MarkupContainer;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.ajax.form.AjaxFormComponentUpdatingBehavior;
+import org.apache.wicket.ajax.markup.html.form.AjaxCheckBox;
import org.apache.wicket.ajax.markup.html.form.AjaxFallbackButton;
import org.apache.wicket.ajax.markup.html.form.AjaxSubmitLink;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.form.Button;
-import org.apache.wicket.markup.html.form.CheckBox;
import org.apache.wicket.markup.html.form.DropDownChoice;
import org.apache.wicket.markup.html.form.Form;
import org.apache.wicket.markup.html.form.HiddenField;
@@ -220,23 +220,19 @@
// div qui englobe les champs visible ssi nouvMolecul est coché
final MarkupContainer nouvMoleculRefresh = new WebMarkupContainer("Molecule.nouvMolecul.Refresh");
- nouvMoleculRefresh.setOutputMarkupId(true);
+ nouvMoleculRefresh.setOutputMarkupPlaceholderTag(true);
nouvMoleculRefresh.setVisible(moleculeModel.getObject().isNouvMolecul());
formView.add(nouvMoleculRefresh);
// predéclaration des champs activé par la chec
formView.add(new SimpleTooltipPanel("Molecule.nouvMolecul.info", new Model<String>(
getString("Molecule.nouvMolecul.info"))));
- formView.add(new CheckBox("Molecule.nouvMolecul", new PropertyModel<Boolean>(moleculeModel, "nouvMolecul")) {
+ formView.add(new AjaxCheckBox("Molecule.nouvMolecul", new PropertyModel<Boolean>(moleculeModel, "nouvMolecul")) {
@Override
- protected void onSelectionChanged(Boolean newSelection) {
- nouvMoleculRefresh.setVisible(newSelection);
+ protected void onUpdate(AjaxRequestTarget target) {
+ nouvMoleculRefresh.setVisible(moleculeModel.getObject().isNouvMolecul());
+ target.add(nouvMoleculRefresh);
}
-
- @Override
- protected boolean wantOnSelectionChangedNotifications() {
- return true;
- }
}.setEnabled(updateOrDeleteEnabled));
AutoCompleteTextFieldString identifieeParInput = new AutoCompleteTextFieldString("Molecule.identifieePar",
1
0
27 Feb '13
Author: echatellier
Date: 2013-02-27 11:40:04 +0100 (Wed, 27 Feb 2013)
New Revision: 162
Url: http://forge.codelutin.com/projects/cantharella/repository/revisions/162
Log:
Fix permission on document management.
fixes #2061: Interface "Gestion d'un document" : problem with field "langue"
Added:
trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/validation/LanguageCode.java
trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/validation/LanguageCodeValidator.java
Modified:
trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/config/DataContext.java
trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/model/Document.java
trunk/cantharella.data/src/main/resources/ValidationMessages_fr.properties
trunk/cantharella.service/src/main/java/nc/ird/cantharella/service/services/DocumentService.java
trunk/cantharella.service/src/main/java/nc/ird/cantharella/service/services/impl/DocumentServiceImpl.java
trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/config/WebContext.java
trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/campagne/ManageCampagnePage.java
trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/document/ManageDocumentPage.java
trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/document/ReadDocumentPage.java
trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/document/panel/ManageListDocumentsPanel.java
trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/lot/ManageLotPage.java
trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/molecule/ManageMoleculePage.java
trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/molecule/ReadMoleculePage.java
trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/personne/ManagePersonnePage.java
trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/specimen/ManageSpecimenPage.java
trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/station/ManageStationPage.java
trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/utilisateur/UpdateUtilisateurPage.java
Modified: trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/config/DataContext.java
===================================================================
--- trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/config/DataContext.java 2013-02-26 14:42:36 UTC (rev 161)
+++ trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/config/DataContext.java 2013-02-27 10:40:04 UTC (rev 162)
@@ -96,6 +96,12 @@
.getISOCountries()));
/**
+ * Language codes
+ */
+ public static final List<String> LANGUAGE_CODES = Collections.unmodifiableList(Arrays.asList(Locale
+ .getISOLanguages()));
+
+ /**
* DB connection: acquire retry attemps
*/
private static final int DB_CONNECTION_ACQUIRE_RETRY_ATTEMPS = 30;
Modified: trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/model/Document.java
===================================================================
--- trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/model/Document.java 2013-02-26 14:42:36 UTC (rev 161)
+++ trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/model/Document.java 2013-02-27 10:40:04 UTC (rev 162)
@@ -37,7 +37,7 @@
import javax.validation.constraints.NotNull;
import nc.ird.cantharella.data.model.utils.AbstractModel;
-import nc.ird.cantharella.data.validation.CountryCode;
+import nc.ird.cantharella.data.validation.LanguageCode;
import org.hibernate.annotations.Type;
import org.hibernate.validator.constraints.Length;
@@ -84,7 +84,7 @@
/** Langue. */
@Length(min = 2, max = 2)
- @CountryCode
+ @LanguageCode
private String langue;
/** Contrainte légale. */
Added: trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/validation/LanguageCode.java
===================================================================
--- trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/validation/LanguageCode.java (rev 0)
+++ trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/validation/LanguageCode.java 2013-02-27 10:40:04 UTC (rev 162)
@@ -0,0 +1,57 @@
+/*
+ * #%L
+ * Cantharella :: Data
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2009 - 2013 IRD (Institut de Recherche pour le Developpement) and by respective authors (see below)
+ * %%
+ * 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 nc.ird.cantharella.data.validation;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+import javax.validation.Constraint;
+import javax.validation.Payload;
+
+/**
+ * Language code constraint
+ * @author Eric Chatellier
+ */
+@Target( { ElementType.METHOD, ElementType.FIELD, ElementType.ANNOTATION_TYPE })
+(a)Retention(RetentionPolicy.RUNTIME)
+@Constraint(validatedBy = LanguageCodeValidator.class)
+@Documented
+public @interface LanguageCode {
+ /**
+ * @return Groups
+ */
+ Class<?>[] groups() default {};
+
+ /**
+ * @return Message key
+ */
+ String message() default "{nc.ird.cantharella.data.validation.LanguageCode.message}";
+
+ /**
+ * @return Payload
+ */
+ Class<? extends Payload>[] payload() default {};
+}
\ No newline at end of file
Property changes on: trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/validation/LanguageCode.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/validation/LanguageCodeValidator.java
===================================================================
--- trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/validation/LanguageCodeValidator.java (rev 0)
+++ trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/validation/LanguageCodeValidator.java 2013-02-27 10:40:04 UTC (rev 162)
@@ -0,0 +1,47 @@
+/*
+ * #%L
+ * Cantharella :: Data
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2009 - 2013 IRD (Institut de Recherche pour le Developpement) and by respective authors (see below)
+ * %%
+ * 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 nc.ird.cantharella.data.validation;
+
+import javax.validation.ConstraintValidator;
+import javax.validation.ConstraintValidatorContext;
+
+import nc.ird.cantharella.data.config.DataContext;
+
+/**
+ * Language code validator
+ * @author Eric Chatellier
+ */
+public final class LanguageCodeValidator implements ConstraintValidator<LanguageCode, String> {
+
+ /** {@inheritDoc} */
+ @Override
+ public void initialize(LanguageCode annotation) {
+ //
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public boolean isValid(String languageCode, ConstraintValidatorContext constraintContext) {
+ return languageCode == null || DataContext.LANGUAGE_CODES.contains(languageCode);
+ }
+}
\ No newline at end of file
Property changes on: trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/validation/LanguageCodeValidator.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Modified: trunk/cantharella.data/src/main/resources/ValidationMessages_fr.properties
===================================================================
--- trunk/cantharella.data/src/main/resources/ValidationMessages_fr.properties 2013-02-26 14:42:36 UTC (rev 161)
+++ trunk/cantharella.data/src/main/resources/ValidationMessages_fr.properties 2013-02-27 10:40:04 UTC (rev 162)
@@ -28,6 +28,7 @@
javax.validation.constraints.DecimalMin.message=doit �tre plus grand ou �gal � {value}
nc.ird.cantharella.data.validation.CountryCode.message=est invalide
+nc.ird.cantharella.data.validation.LanguageCode.message=est invalide
nc.ird.cantharella.data.validation.Latitude.message=est invalide
nc.ird.cantharella.data.validation.Longitude.message=est invalide
nc.ird.cantharella.data.validation.Referentiel.message=est invalide
Modified: trunk/cantharella.service/src/main/java/nc/ird/cantharella/service/services/DocumentService.java
===================================================================
--- trunk/cantharella.service/src/main/java/nc/ird/cantharella/service/services/DocumentService.java 2013-02-26 14:42:36 UTC (rev 161)
+++ trunk/cantharella.service/src/main/java/nc/ird/cantharella/service/services/DocumentService.java 2013-02-27 10:40:04 UTC (rev 162)
@@ -28,7 +28,6 @@
import nc.ird.cantharella.data.exceptions.DataNotFoundException;
import nc.ird.cantharella.data.model.Document;
import nc.ird.cantharella.data.model.TypeDocument;
-import nc.ird.cantharella.data.model.Utilisateur;
import nc.ird.cantharella.service.utils.normalizers.TypeDocumentNormalizer;
import nc.ird.cantharella.service.utils.normalizers.UniqueFieldNormalizer;
import nc.ird.cantharella.service.utils.normalizers.utils.Normalize;
@@ -88,23 +87,6 @@
void deleteTypeDocument(TypeDocument typeDocument) throws DataConstraintException;
/**
- * Load a document.
- *
- * @param idDocument id
- * @return the corresponding document
- * @throws DataNotFoundException if not found
- */
- Document loadDocument(Integer idDocument) throws DataNotFoundException;
-
- /**
- * Check if a user can update or delete a document.
- * @param document document
- * @param utilisateur Utilisateur
- * @return TRUE si il a le droit
- */
- boolean updateOrdeleteDocumentEnabled(Document document, Utilisateur utilisateur);
-
- /**
* Editeurs already registered into documents.
*
* @return document's editeur
Modified: trunk/cantharella.service/src/main/java/nc/ird/cantharella/service/services/impl/DocumentServiceImpl.java
===================================================================
--- trunk/cantharella.service/src/main/java/nc/ird/cantharella/service/services/impl/DocumentServiceImpl.java 2013-02-26 14:42:36 UTC (rev 161)
+++ trunk/cantharella.service/src/main/java/nc/ird/cantharella/service/services/impl/DocumentServiceImpl.java 2013-02-27 10:40:04 UTC (rev 162)
@@ -36,10 +36,7 @@
import nc.ird.cantharella.data.exceptions.DataNotFoundException;
import nc.ird.cantharella.data.exceptions.UnexpectedException;
import nc.ird.cantharella.data.model.Document;
-import nc.ird.cantharella.data.model.Extraction;
import nc.ird.cantharella.data.model.TypeDocument;
-import nc.ird.cantharella.data.model.Utilisateur;
-import nc.ird.cantharella.data.model.Utilisateur.TypeDroit;
import nc.ird.cantharella.service.services.DocumentService;
import nc.ird.cantharella.utils.AssertTools;
@@ -115,20 +112,6 @@
/** {@inheritDoc} */
@Override
- public Document loadDocument(Integer idDocument) throws DataNotFoundException {
- LOG.debug("read Document");
- return dao.read(Document.class, idDocument);
- }
-
- /** {@inheritDoc} */
- @Override
- public boolean updateOrdeleteDocumentEnabled(Document document, Utilisateur utilisateur) {
- return utilisateur.getTypeDroit() == TypeDroit.ADMINISTRATEUR
- || utilisateur.getIdPersonne() == document.getCreateur().getIdPersonne();
- }
-
- /** {@inheritDoc} */
- @Override
@SuppressWarnings("unchecked")
public List<String> listDocumentEditeurs() {
List<String> result = (List<String>) dao.list(DocumentDao.CRITERIA_DISTINCT_DOCUMENT_EDITEURS);
Modified: trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/config/WebContext.java
===================================================================
--- trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/config/WebContext.java 2013-02-26 14:42:36 UTC (rev 161)
+++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/config/WebContext.java 2013-02-27 10:40:04 UTC (rev 162)
@@ -100,8 +100,18 @@
public static final Map<Locale, List<String>> COUNTRY_CODES;
/**
- * HTTP cache duraction
+ * Countries: Locale -> language code + language name (sorted by language name)
*/
+ public static final Map<Locale, Map<String, String>> LANGUAGES;
+
+ /**
+ * Country codes: Locale -> language code (sorted by country name)
+ */
+ public static final Map<Locale, List<String>> LANGUAGE_CODES;
+
+ /**
+ * HTTP cache duration
+ */
public static final Duration HTTP_CACHE_DURATION = Duration.days(1);
/**
@@ -183,7 +193,10 @@
static {
Map<Locale, Map<String, String>> countries = new HashMap<Locale, Map<String, String>>(DataContext.LOCALES
.size());
+ Map<Locale, Map<String, String>> languages = new HashMap<Locale, Map<String, String>>(DataContext.LOCALES
+ .size());
Map<Locale, List<String>> countryCodes = new HashMap<Locale, List<String>>(DataContext.LOCALES.size());
+ Map<Locale, List<String>> languageCodes = new HashMap<Locale, List<String>>(DataContext.LOCALES.size());
for (Locale locale : DataContext.LOCALES) {
// Build (country code + country name) list
List<Pair<String, Pair<String, String>>> sortedCountryList = new ArrayList<Pair<String, Pair<String, String>>>(
@@ -193,6 +206,14 @@
sortedCountryList.add(new Pair<String, Pair<String, String>>(countryCode, new Pair<String, String>(
StringTools.replaceAccents(countryName), countryName)));
}
+ // Build (country code + language name) list
+ List<Pair<String, Pair<String, String>>> sortedLanguageList = new ArrayList<Pair<String, Pair<String, String>>>(
+ DataContext.LANGUAGE_CODES.size());
+ for (String languageCode : DataContext.LANGUAGE_CODES) {
+ String languageName = new Locale(languageCode, locale.getCountry()).getDisplayLanguage(locale);
+ sortedLanguageList.add(new Pair<String, Pair<String, String>>(languageCode, new Pair<String, String>(
+ StringTools.replaceAccents(languageName), languageName)));
+ }
// Sort by name (country code + country name) list
Collections.sort(sortedCountryList, new Comparator<Pair<String, Pair<String, String>>>() {
@Override
@@ -200,8 +221,13 @@
return String.CASE_INSENSITIVE_ORDER.compare(pair1.getValue().getKey(), pair2.getValue().getKey());
}
});
- // Build (locale -> (country code + country name)) map (sorted by
- // name)
+ Collections.sort(sortedLanguageList, new Comparator<Pair<String, Pair<String, String>>>() {
+ @Override
+ public int compare(Pair<String, Pair<String, String>> pair1, Pair<String, Pair<String, String>> pair2) {
+ return String.CASE_INSENSITIVE_ORDER.compare(pair1.getValue().getKey(), pair2.getValue().getKey());
+ }
+ });
+ // Build (locale -> (country code + country name)) map (sorted by name)
// Build (locale -> (country code)) map (sorted by name)
Map<String, String> sortedCountryMap = new LinkedHashMap<String, String>(sortedCountryList.size());
List<String> sortedCountryCodesList = new ArrayList<String>(sortedCountryList.size());
@@ -211,9 +237,21 @@
}
countries.put(locale, Collections.unmodifiableMap(sortedCountryMap));
countryCodes.put(locale, Collections.unmodifiableList(sortedCountryCodesList));
+ // Build (locale -> (language code + language name)) map (sorted by name)
+ // Build (locale -> (language code)) map (sorted by name)
+ Map<String, String> sortedLanguageMap = new LinkedHashMap<String, String>(sortedCountryList.size());
+ List<String> sortedLanguageCodesList = new ArrayList<String>(sortedCountryList.size());
+ for (Pair<String, Pair<String, String>> languagePair : sortedLanguageList) {
+ sortedLanguageMap.put(languagePair.getKey(), languagePair.getValue().getValue());
+ sortedLanguageCodesList.add(languagePair.getKey());
+ }
+ languages.put(locale, Collections.unmodifiableMap(sortedLanguageMap));
+ languageCodes.put(locale, Collections.unmodifiableList(sortedLanguageCodesList));
}
COUNTRIES = Collections.unmodifiableMap(countries);
COUNTRY_CODES = Collections.unmodifiableMap(countryCodes);
+ LANGUAGES = Collections.unmodifiableMap(languages);
+ LANGUAGE_CODES = Collections.unmodifiableMap(languageCodes);
}
/**
Modified: trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/campagne/ManageCampagnePage.java
===================================================================
--- trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/campagne/ManageCampagnePage.java 2013-02-26 14:42:36 UTC (rev 161)
+++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/campagne/ManageCampagnePage.java 2013-02-27 10:40:04 UTC (rev 162)
@@ -264,6 +264,9 @@
// add list document panel
ManageListDocumentsPanel manageListDocumentsPanel = new ManageListDocumentsPanel("ManageListDocumentsPanel",
campagneModel, currentPage);
+ manageListDocumentsPanel.setUpdateOrDeleteEnabled(createMode
+ || campagneService.updateOrdeleteCampagneEnabled(campagneModel.getObject(), getSession()
+ .getUtilisateur()));
formView.add(manageListDocumentsPanel);
// Action : création de la campagne
Modified: trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/document/ManageDocumentPage.java
===================================================================
--- trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/document/ManageDocumentPage.java 2013-02-26 14:42:36 UTC (rev 161)
+++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/document/ManageDocumentPage.java 2013-02-27 10:40:04 UTC (rev 162)
@@ -33,6 +33,8 @@
import nc.ird.cantharella.data.validation.utils.ModelValidator;
import nc.ird.cantharella.service.services.DocumentService;
import nc.ird.cantharella.service.services.PersonneService;
+import nc.ird.cantharella.utils.CollectionTools;
+import nc.ird.cantharella.utils.BeanTools.AccessType;
import nc.ird.cantharella.web.config.WebApplicationImpl;
import nc.ird.cantharella.web.config.WebContext;
import nc.ird.cantharella.web.pages.TemplatePage;
@@ -133,8 +135,7 @@
* @param multipleEntry Saisie multiple
*/
private ManageDocumentPage(Document document, final IModel<? extends DocumentAttachable> documentAttachableModel,
- final CallerPage callerPage,
- boolean multipleEntry) {
+ final CallerPage callerPage, boolean multipleEntry) {
super(ManageDocumentPage.class);
this.callerPage = callerPage;
@@ -145,7 +146,7 @@
// Initialisation du modèle
documentModel = new Model<Document>(document == null ? new Document() : document);
-
+
boolean createMode = document == null;
if (createMode) {
documentModel.getObject().setCreateur(getSession().getUtilisateur());
@@ -158,17 +159,20 @@
List<String> editeurs = documentService.listDocumentEditeurs();
List<String> containteLegales = documentService.listDocumentContrainteLegales();
+ if (document != null) {
+ // qd saisie multiple avec préremplissage, hack nécessaire afin d'avoir dans le model le même objet que
+ // celui de la liste de choix (sinon comme les objets viennent de sessions hibernate différentes, on n'a pas
+ // l'égalité entre les objets)
+ documentModel.getObject().setCreateur(
+ CollectionTools.findWithValue(personnes, "idPersonne", AccessType.GETTER, documentModel.getObject()
+ .getCreateur().getIdPersonne()));
+ }
+
// champ fichier
final FileUploadField fileUploadField = new FileUploadField("Document.file");
// initialisation du formulaire wicket
- final Form<Void> formView = new Form<Void>("ManageDocumentPage.Form") {
- @Override
- protected void onSubmit() {
- super.onSubmit();
-
- }
- };
+ final Form<Void> formView = new Form<Void>("ManageDocumentPage.Form");
formView.setMultiPart(true);
formView.setMaxSize(Bytes.megabytes(documentMaxUploadSize));
@@ -206,8 +210,8 @@
"description")));
formView.add(new DropDownChoice<String>("Document.langue", new PropertyModel<String>(documentModel, "langue"),
- WebContext.COUNTRY_CODES.get(getSession().getLocale()), new MapChoiceRenderer<String, String>(
- WebContext.COUNTRIES.get(getSession().getLocale()))));
+ WebContext.LANGUAGE_CODES.get(getSession().getLocale()), new MapChoiceRenderer<String, String>(
+ WebContext.LANGUAGES.get(getSession().getLocale()))));
AutoCompleteTextFieldString containteLegalesInput = new AutoCompleteTextFieldString(
"Document.contrainteLegale", new PropertyModel<String>(documentModel, "contrainteLegale"),
@@ -292,9 +296,7 @@
validateModel();
}
});
- updateButton.setVisibilityAllowed(!createMode
- && documentService.updateOrdeleteDocumentEnabled(documentModel.getObject(), getSession()
- .getUtilisateur()));
+ updateButton.setVisibilityAllowed(!createMode);
formView.add(updateButton);
// Action : suppression du document
@@ -310,9 +312,7 @@
callerPage.responsePage((TemplatePage) getPage());
}
});
- deleteButton.setVisibilityAllowed(!createMode
- && documentService.updateOrdeleteDocumentEnabled(documentModel.getObject(), getSession()
- .getUtilisateur()));
+ deleteButton.setVisibilityAllowed(!createMode);
deleteButton.add(new JSConfirmationBehavior(getString("Confirm")));
deleteButton.setDefaultFormProcessing(false);
formView.add(deleteButton);
Modified: trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/document/ReadDocumentPage.java
===================================================================
--- trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/document/ReadDocumentPage.java 2013-02-26 14:42:36 UTC (rev 161)
+++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/document/ReadDocumentPage.java 2013-02-27 10:40:04 UTC (rev 162)
@@ -25,6 +25,7 @@
import nc.ird.cantharella.data.exceptions.DataConstraintException;
import nc.ird.cantharella.data.model.Document;
import nc.ird.cantharella.data.model.utils.DocumentAttachable;
+import nc.ird.cantharella.web.config.WebContext;
import nc.ird.cantharella.web.pages.TemplatePage;
import nc.ird.cantharella.web.pages.domain.document.panel.DocumentLinkPanel;
import nc.ird.cantharella.web.pages.domain.lot.ManageLotPage;
@@ -33,6 +34,7 @@
import nc.ird.cantharella.web.utils.behaviors.ReplaceEmptyLabelBehavior;
import nc.ird.cantharella.web.utils.forms.SubmittableButton;
import nc.ird.cantharella.web.utils.forms.SubmittableButtonEvents;
+import nc.ird.cantharella.web.utils.models.DisplayMapValuePropertyModel;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.form.Button;
@@ -58,6 +60,15 @@
/** Caller page. */
private final CallerPage callerPage;
+ /** Update or delete enabled flag. */
+ protected boolean updateOrDeleteEnabled;
+
+ /** Update link. */
+ protected Link<Document> updateLink;
+
+ /** Delete button. */
+ protected Button deleteButton;
+
/**
* Constructeur
* @param document document
@@ -83,8 +94,8 @@
.add(new ReplaceEmptyLabelBehavior()));
add(new Label("Document.description", new PropertyModel<String>(documentModel, "description"))
.add(new ReplaceEmptyLabelBehavior()));
- add(new Label("Document.langue", new PropertyModel<String>(documentModel, "langue"))
- .add(new ReplaceEmptyLabelBehavior()));
+ add(new Label("Document.langue", new DisplayMapValuePropertyModel<String>(documentModel, "langue",
+ WebContext.LANGUAGES.get(getSession().getLocale()))).add(new ReplaceEmptyLabelBehavior()));
add(new Label("Document.contrainteLegale", new PropertyModel<String>(documentModel, "contrainteLegale"))
.add(new ReplaceEmptyLabelBehavior()));
add(new Label("Document.ajoutePar", new PropertyModel<String>(documentModel, "ajoutePar"))
@@ -105,19 +116,17 @@
final Form<Void> formView = new Form<Void>("Form");
// Action : mise à jour (redirection vers le formulaire)
- Link<Document> updateLink = new Link<Document>(getResource() + ".Document.Update", new Model<Document>(
- documentModel.getObject())) {
+ updateLink = new Link<Document>(getResource() + ".Document.Update", new Model<Document>(documentModel
+ .getObject())) {
@Override
public void onClick() {
setResponsePage(new ManageDocumentPage(getModelObject(), documentAttachableModel, currentPage));
}
};
- //FIXME updateLink.setVisibilityAllowed(documentService.updateOrdeleteDocumentEnabled(documentModel.getObject(), getSession()
- // .getUtilisateur()));
formView.add(updateLink);
// Action : suppression
- Button deleteButton = new SubmittableButton(ACTION_DELETE, ManageLotPage.class, new SubmittableButtonEvents() {
+ deleteButton = new SubmittableButton(ACTION_DELETE, ManageLotPage.class, new SubmittableButtonEvents() {
@Override
public void onProcess() throws DataConstraintException {
documentAttachableModel.getObject().removeDocument(documentModel.getObject());
@@ -129,8 +138,6 @@
redirect();
}
});
- // FIXME deleteButton.setVisibilityAllowed(documentService.updateOrdeleteDocumentEnabled(documentModel.getObject(), getSession()
- // .getUtilisateur()));
deleteButton.add(new JSConfirmationBehavior(getString("Confirm")));
deleteButton.setDefaultFormProcessing(false);
formView.add(deleteButton);
@@ -151,4 +158,16 @@
private void redirect() {
callerPage.responsePage(this);
}
+
+ /**
+ * Modify update or delete enabled property.
+ *
+ * @param updateOrDeleteEnabled update or delete enabled property
+ */
+ public void setUpdateOrDeleteEnabled(boolean updateOrDeleteEnabled) {
+ this.updateOrDeleteEnabled = updateOrDeleteEnabled;
+
+ updateLink.setVisibilityAllowed(updateOrDeleteEnabled);
+ deleteButton.setVisibilityAllowed(updateOrDeleteEnabled);
+ }
}
Modified: trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/document/panel/ManageListDocumentsPanel.java
===================================================================
--- trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/document/panel/ManageListDocumentsPanel.java 2013-02-26 14:42:36 UTC (rev 161)
+++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/document/panel/ManageListDocumentsPanel.java 2013-02-27 10:40:04 UTC (rev 162)
@@ -53,6 +53,12 @@
*/
public final class ManageListDocumentsPanel extends Panel {
+ /** Document edit enabled flag. */
+ protected boolean updateOrDeleteEnabled;
+
+ /** New Document link (for disable). */
+ protected AjaxSubmitLink newDocumentLink;
+
/**
* Constructeur.
* @param id ID
@@ -62,6 +68,8 @@
public ManageListDocumentsPanel(String id, final IModel<? extends DocumentAttachable> documentAttachableModel,
final CallerPage currentPage) {
super(id);
+ // edit mode enabled by default
+ this.updateOrDeleteEnabled = true;
Form<Void> formView = new Form<Void>("form");
add(formView);
@@ -87,8 +95,10 @@
Link<Document> documentLink = new Link<Document>("Document.titre.List") {
@Override
public void onClick() {
- setResponsePage(new ReadDocumentPage(documentModel.getObject(), documentAttachableModel,
- currentPage));
+ ReadDocumentPage readDocumentPage = new ReadDocumentPage(documentModel.getObject(),
+ documentAttachableModel, currentPage);
+ readDocumentPage.setUpdateOrDeleteEnabled(updateOrDeleteEnabled);
+ setResponsePage(readDocumentPage);
}
};
documentLink.add(new Label("Document.titre.Label.List", new PropertyModel<Document>(documentModel,
@@ -110,12 +120,12 @@
target.add(documentsTable);
}
}
- });
+ }.setEnabled(updateOrDeleteEnabled));
}
};
documentsTable.add(documentsListView);
- documentsTable.add(new AjaxSubmitLink("NewDocument") {
+ newDocumentLink = new AjaxSubmitLink("NewDocument") {
@Override
protected void onSubmit(AjaxRequestTarget request, Form<?> form) {
setResponsePage(new ManageDocumentPage(currentPage, documentAttachableModel, false));
@@ -126,6 +136,18 @@
protected void onError(AjaxRequestTarget target, Form<?> form) {
setResponsePage(new ManageDocumentPage(currentPage, documentAttachableModel, false));
}
- }.setVisibilityAllowed(true));
+ };
+ documentsTable.add(newDocumentLink);
}
+
+ /**
+ * Modify update or delete enabled property.
+ *
+ * @param updateOrDeleteEnabled update or delete enabled property
+ */
+ public void setUpdateOrDeleteEnabled(boolean updateOrDeleteEnabled) {
+ this.updateOrDeleteEnabled = updateOrDeleteEnabled;
+
+ newDocumentLink.setVisibilityAllowed(updateOrDeleteEnabled);
+ }
}
Modified: trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/lot/ManageLotPage.java
===================================================================
--- trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/lot/ManageLotPage.java 2013-02-26 14:42:36 UTC (rev 161)
+++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/lot/ManageLotPage.java 2013-02-27 10:40:04 UTC (rev 162)
@@ -295,6 +295,8 @@
// add list document panel
ManageListDocumentsPanel manageListDocumentsPanel = new ManageListDocumentsPanel("ManageListDocumentsPanel",
lotModel, currentPage);
+ manageListDocumentsPanel.setUpdateOrDeleteEnabled(createMode
+ || lotService.updateOrdeleteLotEnabled(lotModel.getObject(), getSession().getUtilisateur()));
formView.add(manageListDocumentsPanel);
// Action : création du lot
Modified: trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/molecule/ManageMoleculePage.java
===================================================================
--- trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/molecule/ManageMoleculePage.java 2013-02-26 14:42:36 UTC (rev 161)
+++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/molecule/ManageMoleculePage.java 2013-02-27 10:40:04 UTC (rev 162)
@@ -187,15 +187,15 @@
// but molecule fields can be edited only by administrators or
// molecule creator
Utilisateur utilisateur = getSession().getUtilisateur();
- boolean editEnabled = createMode
+ boolean updateOrDeleteEnabled = createMode
|| moleculeService.updateOrdeleteMoleculeEnabled(moleculeModel.getObject(), utilisateur);
formView.add(new TextField<String>("Molecule.nomCommun", new PropertyModel<String>(moleculeModel, "nomCommun"))
- .setEnabled(editEnabled));
+ .setEnabled(updateOrDeleteEnabled));
formView.add(new TextField<String>("Molecule.familleChimique", new PropertyModel<String>(moleculeModel,
- "familleChimique")).setEnabled(editEnabled));
+ "familleChimique")).setEnabled(updateOrDeleteEnabled));
- if (editEnabled) {
+ if (updateOrDeleteEnabled) {
formView.add(new HiddenField<String>("Molecule.formuleDevMol", new PropertyModel<String>(moleculeModel,
"formuleDevMol")).add(new MoleculeEditorBehavior(new PropertyModel<String>(moleculeModel,
"formuleDevMol"))));
@@ -206,16 +206,16 @@
}
formView.add(new TextField<String>("Molecule.nomIupca", new PropertyModel<String>(moleculeModel, "nomIupca"))
- .setEnabled(editEnabled));
+ .setEnabled(updateOrDeleteEnabled));
formView.add(new SimpleTooltipPanel("Molecule.formuleBrute.info", new Model<String>(
getString("Molecule.formuleBrute.info"))));
formView.add(new TextField<String>("Molecule.formuleBrute", new PropertyModel<String>(moleculeModel,
- "formuleBrute")).setEnabled(editEnabled));
+ "formuleBrute")).setEnabled(updateOrDeleteEnabled));
TextField<String> masseMolaireField = new TextField<String>("Molecule.masseMolaire", new PropertyModel<String>(
moleculeModel, "masseMolaire"));
masseMolaireField.setRequired(true);
- masseMolaireField.setEnabled(editEnabled);
+ masseMolaireField.setEnabled(updateOrDeleteEnabled);
formView.add(masseMolaireField);
// div qui englobe les champs visible ssi nouvMolecul est coché
@@ -237,16 +237,16 @@
protected boolean wantOnSelectionChangedNotifications() {
return true;
}
- }.setEnabled(editEnabled));
+ }.setEnabled(updateOrDeleteEnabled));
AutoCompleteTextFieldString identifieeParInput = new AutoCompleteTextFieldString("Molecule.identifieePar",
new PropertyModel<String>(moleculeModel, "identifieePar"), organismes, ComparisonMode.CONTAINS);
- identifieeParInput.setEnabled(editEnabled);
+ identifieeParInput.setEnabled(updateOrDeleteEnabled);
nouvMoleculRefresh.add(identifieeParInput);
DropDownChoice<Campagne> campagnesInput = new DropDownChoice<Campagne>("Molecule.campagne",
new PropertyModel<Campagne>(moleculeModel, "campagne"), campagnes);
- campagnesInput.setEnabled(editEnabled);
+ campagnesInput.setEnabled(updateOrDeleteEnabled);
nouvMoleculRefresh.add(campagnesInput);
// Action : création d'une nouvelle campagne
@@ -262,14 +262,14 @@
protected void onError(AjaxRequestTarget target, Form<?> form) {
setResponsePage(new ManageCampagnePage(currentPage, false));
}
- }.setVisibilityAllowed(editEnabled));
+ }.setVisibilityAllowed(updateOrDeleteEnabled));
nouvMoleculRefresh.add(new TextArea<String>("Molecule.publiOrigine", new PropertyModel<String>(moleculeModel,
- "publiOrigine")).setEnabled(editEnabled));
+ "publiOrigine")).setEnabled(updateOrDeleteEnabled));
formView
.add(new TextArea<String>("Molecule.complement", new PropertyModel<String>(moleculeModel, "complement"))
- .setEnabled(editEnabled));
+ .setEnabled(updateOrDeleteEnabled));
// Créateur en lecture seule
formView.add(new TextField<String>("Molecule.createur", new PropertyModel<String>(moleculeModel, "createur"))
@@ -278,6 +278,7 @@
// add list document panel
ManageListDocumentsPanel manageListDocumentsPanel = new ManageListDocumentsPanel("ManageListDocumentsPanel",
moleculeModel, currentPage);
+ manageListDocumentsPanel.setUpdateOrDeleteEnabled(updateOrDeleteEnabled);
formView.add(manageListDocumentsPanel);
// Action : create molecule
@@ -335,7 +336,7 @@
callerPage.responsePage((TemplatePage) getPage());
}
});
- deleteButton.setVisibilityAllowed(!createMode);
+ deleteButton.setVisibilityAllowed(!createMode && updateOrDeleteEnabled);
deleteButton.add(new JSConfirmationBehavior(getString("Confirm")));
deleteButton.setDefaultFormProcessing(false);
formView.add(deleteButton);
Modified: trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/molecule/ReadMoleculePage.java
===================================================================
--- trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/molecule/ReadMoleculePage.java 2013-02-26 14:42:36 UTC (rev 161)
+++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/molecule/ReadMoleculePage.java 2013-02-27 10:40:04 UTC (rev 162)
@@ -302,8 +302,4 @@
};
add(noTableProvenances);
}
-
- public static void main(String[] args) {
- System.out.println("cons initProvenanceFields");
- }
}
Modified: trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/personne/ManagePersonnePage.java
===================================================================
--- trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/personne/ManagePersonnePage.java 2013-02-26 14:42:36 UTC (rev 161)
+++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/personne/ManagePersonnePage.java 2013-02-27 10:40:04 UTC (rev 162)
@@ -145,6 +145,8 @@
// add list document panel
ManageListDocumentsPanel manageListDocumentsPanel = new ManageListDocumentsPanel("ManageListDocumentsPanel",
personneModel, currentPage);
+ manageListDocumentsPanel.setUpdateOrDeleteEnabled(createMode
+ || getSession().getUtilisateur().getTypeDroit() == TypeDroit.ADMINISTRATEUR);
formView.add(manageListDocumentsPanel);
// Action : création de la personne
Modified: trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/specimen/ManageSpecimenPage.java
===================================================================
--- trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/specimen/ManageSpecimenPage.java 2013-02-26 14:42:36 UTC (rev 161)
+++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/specimen/ManageSpecimenPage.java 2013-02-27 10:40:04 UTC (rev 162)
@@ -283,6 +283,9 @@
// add list document panel
ManageListDocumentsPanel manageListDocumentsPanel = new ManageListDocumentsPanel("ManageListDocumentsPanel",
specimenModel, currentPage);
+ manageListDocumentsPanel.setUpdateOrDeleteEnabled(createMode
+ || specimenService.updateOrdeleteSpecimenEnabled(specimenModel.getObject(), getSession()
+ .getUtilisateur()));
formView.add(manageListDocumentsPanel);
// Action : création du specimen
Modified: trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/station/ManageStationPage.java
===================================================================
--- trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/station/ManageStationPage.java 2013-02-26 14:42:36 UTC (rev 161)
+++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/station/ManageStationPage.java 2013-02-27 10:40:04 UTC (rev 162)
@@ -229,6 +229,10 @@
// add list document panel
ManageListDocumentsPanel manageListDocumentsPanel = new ManageListDocumentsPanel("ManageListDocumentsPanel",
stationModel, currentPage);
+ manageListDocumentsPanel
+ .setUpdateOrDeleteEnabled(createMode
+ || stationService.updateOrdeleteStationEnabled(stationModel.getObject(), getSession()
+ .getUtilisateur()));
formView.add(manageListDocumentsPanel);
Button createButton = new SubmittableButton(ACTION_CREATE, new SubmittableButtonEvents() {
Modified: trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/utilisateur/UpdateUtilisateurPage.java
===================================================================
--- trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/utilisateur/UpdateUtilisateurPage.java 2013-02-26 14:42:36 UTC (rev 161)
+++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/utilisateur/UpdateUtilisateurPage.java 2013-02-27 10:40:04 UTC (rev 162)
@@ -54,9 +54,6 @@
@AuthRoles( { AuthRole.USER, AuthRole.ADMIN })
public final class UpdateUtilisateurPage extends TemplatePage {
- /** Action : delete */
- private static final String ACTION_DELETE = "Delete";
-
/** Action : update password */
private static final String ACTION_UPDATE_PASSWORD = "UpdatePassword";
1
0
26 Feb '13
Author: echatellier
Date: 2013-02-26 15:42:36 +0100 (Tue, 26 Feb 2013)
New Revision: 161
Url: http://forge.codelutin.com/projects/cantharella/repository/revisions/161
Log:
Fix document modification
Modified:
trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/model/Document.java
trunk/cantharella.data/src/main/sql/dev_update.sql
trunk/cantharella.service/src/main/java/nc/ird/cantharella/service/services/impl/DocumentServiceImpl.java
trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/campagne/ManageCampagnePage.java
trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/document/ManageDocumentPage.java
trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/document/ReadDocumentPage.html
trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/document/ReadDocumentPage.java
trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/extraction/ManageExtractionPage.java
trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/lot/ManageLotPage.java
trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/molecule/ManageMoleculePage.java
trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/personne/ManagePersonnePage.java
trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/purification/ManagePurificationPage.java
trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/specimen/ManageSpecimenPage.java
trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/station/ManageStationPage.java
trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/testBio/ManageTestBioPage.java
trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/utilisateur/ManageUtilisateurPage.java
trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/utilisateur/UpdateUtilisateurPage.java
Modified: trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/model/Document.java
===================================================================
--- trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/model/Document.java 2013-02-26 10:05:31 UTC (rev 160)
+++ trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/model/Document.java 2013-02-26 14:42:36 UTC (rev 161)
@@ -32,6 +32,8 @@
import javax.persistence.Id;
import javax.persistence.Lob;
import javax.persistence.ManyToOne;
+import javax.persistence.Temporal;
+import javax.persistence.TemporalType;
import javax.validation.constraints.NotNull;
import nc.ird.cantharella.data.model.utils.AbstractModel;
@@ -66,6 +68,7 @@
/** Date de creation. */
@NotNull
+ @Temporal(TemporalType.DATE)
private Date dateCreation;
/** Editeur. */
Modified: trunk/cantharella.data/src/main/sql/dev_update.sql
===================================================================
--- trunk/cantharella.data/src/main/sql/dev_update.sql 2013-02-26 10:05:31 UTC (rev 160)
+++ trunk/cantharella.data/src/main/sql/dev_update.sql 2013-02-26 14:42:36 UTC (rev 161)
@@ -88,7 +88,7 @@
create table Document (
idDocument int4 not null,
contrainteLegale varchar(100),
- dateCreation timestamp not null,
+ dateCreation date not null,
description text,
editeur varchar(100) not null,
fileContent bytea,
Modified: trunk/cantharella.service/src/main/java/nc/ird/cantharella/service/services/impl/DocumentServiceImpl.java
===================================================================
--- trunk/cantharella.service/src/main/java/nc/ird/cantharella/service/services/impl/DocumentServiceImpl.java 2013-02-26 10:05:31 UTC (rev 160)
+++ trunk/cantharella.service/src/main/java/nc/ird/cantharella/service/services/impl/DocumentServiceImpl.java 2013-02-26 14:42:36 UTC (rev 161)
@@ -36,8 +36,10 @@
import nc.ird.cantharella.data.exceptions.DataNotFoundException;
import nc.ird.cantharella.data.exceptions.UnexpectedException;
import nc.ird.cantharella.data.model.Document;
+import nc.ird.cantharella.data.model.Extraction;
import nc.ird.cantharella.data.model.TypeDocument;
import nc.ird.cantharella.data.model.Utilisateur;
+import nc.ird.cantharella.data.model.Utilisateur.TypeDroit;
import nc.ird.cantharella.service.services.DocumentService;
import nc.ird.cantharella.utils.AssertTools;
@@ -114,14 +116,15 @@
/** {@inheritDoc} */
@Override
public Document loadDocument(Integer idDocument) throws DataNotFoundException {
-
- return null;
+ LOG.debug("read Document");
+ return dao.read(Document.class, idDocument);
}
/** {@inheritDoc} */
@Override
public boolean updateOrdeleteDocumentEnabled(Document document, Utilisateur utilisateur) {
- return false;
+ return utilisateur.getTypeDroit() == TypeDroit.ADMINISTRATEUR
+ || utilisateur.getIdPersonne() == document.getCreateur().getIdPersonne();
}
/** {@inheritDoc} */
Modified: trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/campagne/ManageCampagnePage.java
===================================================================
--- trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/campagne/ManageCampagnePage.java 2013-02-26 10:05:31 UTC (rev 160)
+++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/campagne/ManageCampagnePage.java 2013-02-26 14:42:36 UTC (rev 161)
@@ -97,7 +97,7 @@
private static final String ACTION_CREATE = "Create";
/** Action : delete */
- public static final String ACTION_DELETE = "Delete";
+ private static final String ACTION_DELETE = "Delete";
/** Action : update */
private static final String ACTION_UPDATE = "Update";
Modified: trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/document/ManageDocumentPage.java
===================================================================
--- trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/document/ManageDocumentPage.java 2013-02-26 10:05:31 UTC (rev 160)
+++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/document/ManageDocumentPage.java 2013-02-26 14:42:36 UTC (rev 161)
@@ -26,8 +26,6 @@
import java.util.List;
import nc.ird.cantharella.data.exceptions.DataConstraintException;
-import nc.ird.cantharella.data.exceptions.DataNotFoundException;
-import nc.ird.cantharella.data.exceptions.UnexpectedException;
import nc.ird.cantharella.data.model.Document;
import nc.ird.cantharella.data.model.Personne;
import nc.ird.cantharella.data.model.TypeDocument;
@@ -42,9 +40,9 @@
import nc.ird.cantharella.web.utils.CallerPage;
import nc.ird.cantharella.web.utils.behaviors.JSConfirmationBehavior;
import nc.ird.cantharella.web.utils.forms.AutoCompleteTextFieldString;
+import nc.ird.cantharella.web.utils.forms.AutoCompleteTextFieldString.ComparisonMode;
import nc.ird.cantharella.web.utils.forms.SubmittableButton;
import nc.ird.cantharella.web.utils.forms.SubmittableButtonEvents;
-import nc.ird.cantharella.web.utils.forms.AutoCompleteTextFieldString.ComparisonMode;
import nc.ird.cantharella.web.utils.panels.SimpleTooltipPanel;
import nc.ird.cantharella.web.utils.renderers.MapChoiceRenderer;
@@ -67,8 +65,6 @@
import org.apache.wicket.model.PropertyModel;
import org.apache.wicket.spring.injection.annot.SpringBean;
import org.apache.wicket.util.lang.Bytes;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
/**
* Document management page (creation/edition).
@@ -81,16 +77,13 @@
private static final String ACTION_CREATE = "Create";
/** Action : delete */
- public static final String ACTION_DELETE = "Delete";
+ private static final String ACTION_DELETE = "Delete";
/** Action : update */
private static final String ACTION_UPDATE = "Update";
- /** Logger */
- private static final Logger LOG = LoggerFactory.getLogger(ManageDocumentPage.class);
-
/** Model : document. */
- private final IModel<Document> documentModel;
+ private IModel<Document> documentModel;
/** Service : document */
@SpringBean
@@ -107,9 +100,6 @@
/** Caller page. */
private final CallerPage callerPage;
- /** Multiple entry. */
- private boolean multipleEntry;
-
/**
* Constructeur (mode création)
* @param callerPage Page appelante
@@ -118,45 +108,35 @@
*/
public ManageDocumentPage(CallerPage callerPage, IModel<? extends DocumentAttachable> documentAttachableModel,
boolean multipleEntry) {
- this(null, null, documentAttachableModel, callerPage, multipleEntry);
+ this(null, documentAttachableModel, callerPage, multipleEntry);
}
/**
* Constructeur (mode édition)
- * @param idDocument ID document
+ * @param document document to edit
+ * @param documentAttachableModel document sur le
* @param callerPage Page appelante
*/
- public ManageDocumentPage(Integer idDocument, CallerPage callerPage) {
- this(idDocument, null, null, callerPage, false);
+ public ManageDocumentPage(Document document, IModel<? extends DocumentAttachable> documentAttachableModel,
+ CallerPage callerPage) {
+ this(document, documentAttachableModel, callerPage, false);
}
/**
- * Constructeur (mode saisie du lot suivante)
- * @param document document
- * @param callerPage Page appelante
- */
- public ManageDocumentPage(Document document, CallerPage callerPage) {
- this(null, document, null, callerPage, true);
- }
-
- /**
* Constructeur. Si idDocument et document sont null, on créée un nouveau Document.
* Si idDocument est renseigné, on édite le document
* correspondant. Si document est renseigné, on créée un nouveau document à
* partir des informations qu'il contient.
- * @param idDocument ID document
* @param document document
- * @param documentAttachable entity where document is attached to
+ * @param documentAttachableModel entity where document is attached to
* @param callerPage Page appelante
* @param multipleEntry Saisie multiple
*/
- private ManageDocumentPage(Integer idDocument, Document document,
- final IModel<? extends DocumentAttachable> documentAttachableModel, final CallerPage callerPage,
+ private ManageDocumentPage(Document document, final IModel<? extends DocumentAttachable> documentAttachableModel,
+ final CallerPage callerPage,
boolean multipleEntry) {
super(ManageDocumentPage.class);
- assert idDocument == null || document == null;
this.callerPage = callerPage;
- this.multipleEntry = multipleEntry;
final CallerPage currentPage = new CallerPage(this);
@@ -164,15 +144,9 @@
long documentMaxUploadSize = ((WebApplicationImpl) getApplication()).getDocumentMaxUploadSize();
// Initialisation du modèle
- try {
- documentModel = new Model<Document>(idDocument == null && document == null ? new Document()
- : document != null ? document : documentService.loadDocument(idDocument));
- } catch (DataNotFoundException e) {
- LOG.error(e.getMessage(), e);
- throw new UnexpectedException(e);
- }
-
- boolean createMode = idDocument == null;
+ documentModel = new Model<Document>(document == null ? new Document() : document);
+
+ boolean createMode = document == null;
if (createMode) {
documentModel.getObject().setCreateur(getSession().getUtilisateur());
documentModel.getObject().setAjoutePar(getSession().getUtilisateur());
@@ -358,11 +332,7 @@
* Redirection vers une autre page. Cas où le formulaire est validé
*/
private void redirect() {
- if (multipleEntry) {
- // Redirection vers l'écran de saisie d'un nouveau document, en fournissant déjà quelques données
- Document nextDocument = new Document();
- setResponsePage(new ManageDocumentPage(nextDocument, callerPage));
- } else if (callerPage != null) {
+ if (callerPage != null) {
// On passe l'id du document associé à cette page, en paramètre de la prochaine page, pour lui permettre de
// l'exploiter si besoin
//callerPage.addPageParameter(Document.class.getSimpleName(), documentModel.getObject().getIdDocument());
Modified: trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/document/ReadDocumentPage.html
===================================================================
--- trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/document/ReadDocumentPage.html 2013-02-26 10:05:31 UTC (rev 160)
+++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/document/ReadDocumentPage.html 2013-02-26 14:42:36 UTC (rev 161)
@@ -90,6 +90,11 @@
<span class="value" wicket:id="Document.fileMimetype"></span>
</div>
+ <div class="property">
+ <span class="label"><wicket:message key="Document.link" /></span>
+ <span class="value" wicket:id="Document.link"></span>
+ </div>
+
<form wicket:id="Form">
<div class="actions">
<a class="edit" wicket:id="ReadDocumentPage.Document.Update" wicket:message="title:Update">
Modified: trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/document/ReadDocumentPage.java
===================================================================
--- trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/document/ReadDocumentPage.java 2013-02-26 10:05:31 UTC (rev 160)
+++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/document/ReadDocumentPage.java 2013-02-26 14:42:36 UTC (rev 161)
@@ -26,6 +26,7 @@
import nc.ird.cantharella.data.model.Document;
import nc.ird.cantharella.data.model.utils.DocumentAttachable;
import nc.ird.cantharella.web.pages.TemplatePage;
+import nc.ird.cantharella.web.pages.domain.document.panel.DocumentLinkPanel;
import nc.ird.cantharella.web.pages.domain.lot.ManageLotPage;
import nc.ird.cantharella.web.utils.CallerPage;
import nc.ird.cantharella.web.utils.behaviors.JSConfirmationBehavior;
@@ -98,6 +99,7 @@
.add(new ReplaceEmptyLabelBehavior()));
add(new Label("Document.fileMimetype", new PropertyModel<String>(documentModel, "fileMimetype"))
.add(new ReplaceEmptyLabelBehavior()));
+ add(new DocumentLinkPanel("Document.link", documentModel));
// Formulaire des actions
final Form<Void> formView = new Form<Void>("Form");
@@ -107,7 +109,7 @@
documentModel.getObject())) {
@Override
public void onClick() {
- setResponsePage(new ManageDocumentPage(getModelObject().getIdDocument(), currentPage));
+ setResponsePage(new ManageDocumentPage(getModelObject(), documentAttachableModel, currentPage));
}
};
//FIXME updateLink.setVisibilityAllowed(documentService.updateOrdeleteDocumentEnabled(documentModel.getObject(), getSession()
Modified: trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/extraction/ManageExtractionPage.java
===================================================================
--- trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/extraction/ManageExtractionPage.java 2013-02-26 10:05:31 UTC (rev 160)
+++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/extraction/ManageExtractionPage.java 2013-02-26 14:42:36 UTC (rev 161)
@@ -105,7 +105,7 @@
private static final String ACTION_UPDATE = "Update";
/** Action : delete */
- public static final String ACTION_DELETE = "Delete";
+ private static final String ACTION_DELETE = "Delete";
/** Logger */
private static final Logger LOG = LoggerFactory.getLogger(ManageExtractionPage.class);
Modified: trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/lot/ManageLotPage.java
===================================================================
--- trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/lot/ManageLotPage.java 2013-02-26 10:05:31 UTC (rev 160)
+++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/lot/ManageLotPage.java 2013-02-26 14:42:36 UTC (rev 161)
@@ -85,7 +85,7 @@
private static final String ACTION_CREATE = "Create";
/** Action : delete */
- public static final String ACTION_DELETE = "Delete";
+ private static final String ACTION_DELETE = "Delete";
/** Action : update */
private static final String ACTION_UPDATE = "Update";
Modified: trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/molecule/ManageMoleculePage.java
===================================================================
--- trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/molecule/ManageMoleculePage.java 2013-02-26 10:05:31 UTC (rev 160)
+++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/molecule/ManageMoleculePage.java 2013-02-26 14:42:36 UTC (rev 161)
@@ -101,7 +101,7 @@
private static final String ACTION_CREATE = "Create";
/** Action : delete */
- public static final String ACTION_DELETE = "Delete";
+ private static final String ACTION_DELETE = "Delete";
/** Action : update */
private static final String ACTION_UPDATE = "Update";
@@ -467,16 +467,12 @@
// champs d'input
final DropDownChoice<Produit> produitChoice = new DropDownChoice<Produit>("Molecule.provenance.produit.ref",
- new PropertyModel<Produit>(newProvenanceModel, "produit"), utilisateurProduits, new ProduitRenderer()) {
-
- };
+ new PropertyModel<Produit>(newProvenanceModel, "produit"), utilisateurProduits, new ProduitRenderer());
produitChoice.setNullValid(false);
provenanceTable.add(produitChoice);
final TextField<BigDecimal> presenceInput = new TextField<BigDecimal>("Molecule.provenance.presence",
- new PropertyModel<BigDecimal>(newProvenanceModel, "pourcentage")) {
-
- };
+ new PropertyModel<BigDecimal>(newProvenanceModel, "pourcentage"));
presenceInput.setOutputMarkupId(true);
provenanceTable.add(presenceInput);
Modified: trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/personne/ManagePersonnePage.java
===================================================================
--- trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/personne/ManagePersonnePage.java 2013-02-26 10:05:31 UTC (rev 160)
+++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/personne/ManagePersonnePage.java 2013-02-26 14:42:36 UTC (rev 161)
@@ -63,7 +63,7 @@
private static final String ACTION_CREATE_UTILISATEUR = "CreateUtilisateur";
/** Action : delete */
- public static final String ACTION_DELETE = "Delete";
+ private static final String ACTION_DELETE = "Delete";
/** Action : update */
private static final String ACTION_UPDATE = "Update";
Modified: trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/purification/ManagePurificationPage.java
===================================================================
--- trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/purification/ManagePurificationPage.java 2013-02-26 10:05:31 UTC (rev 160)
+++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/purification/ManagePurificationPage.java 2013-02-26 14:42:36 UTC (rev 161)
@@ -106,7 +106,7 @@
private static final String ACTION_UPDATE = "Update";
/** Action : delete */
- public static final String ACTION_DELETE = "Delete";
+ private static final String ACTION_DELETE = "Delete";
/** purification Model */
private final IModel<Purification> purificationModel;
Modified: trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/specimen/ManageSpecimenPage.java
===================================================================
--- trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/specimen/ManageSpecimenPage.java 2013-02-26 10:05:31 UTC (rev 160)
+++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/specimen/ManageSpecimenPage.java 2013-02-26 14:42:36 UTC (rev 161)
@@ -84,7 +84,7 @@
private static final String ACTION_CREATE = "Create";
/** Action : delete */
- public static final String ACTION_DELETE = "Delete";
+ private static final String ACTION_DELETE = "Delete";
/** Action : update */
private static final String ACTION_UPDATE = "Update";
Modified: trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/station/ManageStationPage.java
===================================================================
--- trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/station/ManageStationPage.java 2013-02-26 10:05:31 UTC (rev 160)
+++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/station/ManageStationPage.java 2013-02-26 14:42:36 UTC (rev 161)
@@ -74,10 +74,10 @@
private static final String ACTION_CREATE = "Create";
/** Action : delete */
- public static final String ACTION_DELETE = "Delete";
+ private static final String ACTION_DELETE = "Delete";
/** Action : update */
- public static final String ACTION_UPDATE = "Update";
+ private static final String ACTION_UPDATE = "Update";
/** Logger */
private static final Logger LOG = LoggerFactory.getLogger(ManageStationPage.class);
Modified: trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/testBio/ManageTestBioPage.java
===================================================================
--- trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/testBio/ManageTestBioPage.java 2013-02-26 10:05:31 UTC (rev 160)
+++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/testBio/ManageTestBioPage.java 2013-02-26 14:42:36 UTC (rev 161)
@@ -117,7 +117,7 @@
private static final String ACTION_UPDATE = "Update";
/** Action : delete */
- public static final String ACTION_DELETE = "Delete";
+ private static final String ACTION_DELETE = "Delete";
/** testBio Model */
private final IModel<TestBio> testBioModel;
Modified: trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/utilisateur/ManageUtilisateurPage.java
===================================================================
--- trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/utilisateur/ManageUtilisateurPage.java 2013-02-26 10:05:31 UTC (rev 160)
+++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/utilisateur/ManageUtilisateurPage.java 2013-02-26 14:42:36 UTC (rev 161)
@@ -86,16 +86,16 @@
public final class ManageUtilisateurPage extends TemplatePage {
/** Action : delete */
- public static final String ACTION_DELETE = "Delete";
+ private static final String ACTION_DELETE = "Delete";
/** Action : reject */
- public static final String ACTION_REJECT = "Reject";
+ private static final String ACTION_REJECT = "Reject";
/** Action : update */
private static final String ACTION_UPDATE = "Update";
/** Action : validate */
- public static final String ACTION_VALID = "Valid";
+ private static final String ACTION_VALID = "Valid";
/** Logger */
private static final Logger LOG = LoggerFactory.getLogger(ManageUtilisateurPage.class);
Modified: trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/utilisateur/UpdateUtilisateurPage.java
===================================================================
--- trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/utilisateur/UpdateUtilisateurPage.java 2013-02-26 10:05:31 UTC (rev 160)
+++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/utilisateur/UpdateUtilisateurPage.java 2013-02-26 14:42:36 UTC (rev 161)
@@ -55,7 +55,7 @@
public final class UpdateUtilisateurPage extends TemplatePage {
/** Action : delete */
- public static final String ACTION_DELETE = "Delete";
+ private static final String ACTION_DELETE = "Delete";
/** Action : update password */
private static final String ACTION_UPDATE_PASSWORD = "UpdatePassword";
1
0
r160 - in trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain: campagne document document/panel extraction lot molecule personne purification specimen station testBio
by echatellier@users.forge.codelutin.com 26 Feb '13
by echatellier@users.forge.codelutin.com 26 Feb '13
26 Feb '13
Author: echatellier
Date: 2013-02-26 11:05:31 +0100 (Tue, 26 Feb 2013)
New Revision: 160
Url: http://forge.codelutin.com/projects/cantharella/repository/revisions/160
Log:
Use model and property model to get entity list
Modified:
trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/campagne/ManageCampagnePage.java
trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/document/ManageDocumentPage.java
trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/document/ReadDocumentPage.java
trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/document/panel/ManageListDocumentsPanel.java
trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/document/panel/ReadListDocumentsPanel.java
trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/extraction/ManageExtractionPage.java
trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/lot/ManageLotPage.java
trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/molecule/ManageMoleculePage.java
trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/personne/ManagePersonnePage.java
trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/purification/ManagePurificationPage.java
trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/specimen/ManageSpecimenPage.java
trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/station/ManageStationPage.java
trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/testBio/ManageTestBioPage.java
Modified: trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/campagne/ManageCampagnePage.java
===================================================================
--- trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/campagne/ManageCampagnePage.java 2013-02-25 17:26:52 UTC (rev 159)
+++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/campagne/ManageCampagnePage.java 2013-02-26 10:05:31 UTC (rev 160)
@@ -263,7 +263,7 @@
// add list document panel
ManageListDocumentsPanel manageListDocumentsPanel = new ManageListDocumentsPanel("ManageListDocumentsPanel",
- campagneModel.getObject(), currentPage);
+ campagneModel, currentPage);
formView.add(manageListDocumentsPanel);
// Action : création de la campagne
Modified: trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/document/ManageDocumentPage.java
===================================================================
--- trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/document/ManageDocumentPage.java 2013-02-25 17:26:52 UTC (rev 159)
+++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/document/ManageDocumentPage.java 2013-02-26 10:05:31 UTC (rev 160)
@@ -113,11 +113,12 @@
/**
* Constructeur (mode création)
* @param callerPage Page appelante
- * @param documentAttachable entity where document is attached to
+ * @param documentAttachableModel entity where document is attached to
* @param multipleEntry Saisie multiple
*/
- public ManageDocumentPage(CallerPage callerPage, DocumentAttachable documentAttachable, boolean multipleEntry) {
- this(null, null, documentAttachable, callerPage, multipleEntry);
+ public ManageDocumentPage(CallerPage callerPage, IModel<? extends DocumentAttachable> documentAttachableModel,
+ boolean multipleEntry) {
+ this(null, null, documentAttachableModel, callerPage, multipleEntry);
}
/**
@@ -149,8 +150,9 @@
* @param callerPage Page appelante
* @param multipleEntry Saisie multiple
*/
- private ManageDocumentPage(Integer idDocument, Document document, final DocumentAttachable documentAttachable,
- final CallerPage callerPage, boolean multipleEntry) {
+ private ManageDocumentPage(Integer idDocument, Document document,
+ final IModel<? extends DocumentAttachable> documentAttachableModel, final CallerPage callerPage,
+ boolean multipleEntry) {
super(ManageDocumentPage.class);
assert idDocument == null || document == null;
this.callerPage = callerPage;
@@ -275,7 +277,7 @@
@Override
public void onProcess() throws DataConstraintException {
Document document = documentModel.getObject();
- documentAttachable.addDocument(document);
+ documentAttachableModel.getObject().addDocument(document);
}
@Override
@@ -325,7 +327,7 @@
Button deleteButton = new SubmittableButton(ACTION_DELETE, new SubmittableButtonEvents() {
@Override
public void onProcess() throws DataConstraintException {
- documentAttachable.removeDocument(documentModel.getObject());
+ documentAttachableModel.getObject().removeDocument(documentModel.getObject());
}
@Override
Modified: trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/document/ReadDocumentPage.java
===================================================================
--- trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/document/ReadDocumentPage.java 2013-02-25 17:26:52 UTC (rev 159)
+++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/document/ReadDocumentPage.java 2013-02-26 10:05:31 UTC (rev 160)
@@ -60,11 +60,11 @@
/**
* Constructeur
* @param document document
- * @param documentAttachable entity where document is attached to
+ * @param documentAttachableModel entity where document is attached to
* @param callerPage caller page
*/
- public ReadDocumentPage(final Document document, final DocumentAttachable documentAttachable,
- final CallerPage callerPage) {
+ public ReadDocumentPage(final Document document,
+ final IModel<? extends DocumentAttachable> documentAttachableModel, final CallerPage callerPage) {
super(ReadDocumentPage.class);
this.callerPage = callerPage;
final CallerPage currentPage = new CallerPage(this);
@@ -118,7 +118,7 @@
Button deleteButton = new SubmittableButton(ACTION_DELETE, ManageLotPage.class, new SubmittableButtonEvents() {
@Override
public void onProcess() throws DataConstraintException {
- documentAttachable.removeDocument(documentModel.getObject());
+ documentAttachableModel.getObject().removeDocument(documentModel.getObject());
}
@Override
Modified: trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/document/panel/ManageListDocumentsPanel.java
===================================================================
--- trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/document/panel/ManageListDocumentsPanel.java 2013-02-25 17:26:52 UTC (rev 159)
+++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/document/panel/ManageListDocumentsPanel.java 2013-02-26 10:05:31 UTC (rev 160)
@@ -56,24 +56,26 @@
/**
* Constructeur.
* @param id ID
- * @param documentAttachable entity where documents are attached to
+ * @param documentAttachableModel entity where documents are attached to
* @param currentPage currentPage
*/
- public ManageListDocumentsPanel(String id, final DocumentAttachable documentAttachable, final CallerPage currentPage) {
+ public ManageListDocumentsPanel(String id, final IModel<? extends DocumentAttachable> documentAttachableModel,
+ final CallerPage currentPage) {
super(id);
Form<Void> formView = new Form<Void>("form");
add(formView);
- final List<Document> documents = documentAttachable.getDocuments();
-
final MarkupContainer documentsTable = new WebMarkupContainer("ListDocumentsPage.AttachedDocuments.Table");
documentsTable.setOutputMarkupId(true);
formView.add(documentsTable);
+ final IModel<List<Document>> documentModel = new PropertyModel<List<Document>>(documentAttachableModel,
+ "documents");
+
// Contenu tableaux provenance
ListView<Document> documentsListView = new ListView<Document>("ListDocumentsPage.AttachedDocuments.List",
- documents) {
+ documentModel) {
@Override
protected void populateItem(ListItem<Document> item) {
if (item.getIndex() % 2 == 1) {
@@ -85,7 +87,8 @@
Link<Document> documentLink = new Link<Document>("Document.titre.List") {
@Override
public void onClick() {
- setResponsePage(new ReadDocumentPage(documentModel.getObject(), documentAttachable, currentPage));
+ setResponsePage(new ReadDocumentPage(documentModel.getObject(), documentAttachableModel,
+ currentPage));
}
};
documentLink.add(new Label("Document.titre.Label.List", new PropertyModel<Document>(documentModel,
@@ -101,7 +104,7 @@
@Override
protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
Document document = documentModel.getObject();
- documentAttachable.removeDocument(document);
+ documentAttachableModel.getObject().removeDocument(document);
if (target != null) {
target.add(documentsTable);
@@ -115,13 +118,13 @@
documentsTable.add(new AjaxSubmitLink("NewDocument") {
@Override
protected void onSubmit(AjaxRequestTarget request, Form<?> form) {
- setResponsePage(new ManageDocumentPage(currentPage, documentAttachable, false));
+ setResponsePage(new ManageDocumentPage(currentPage, documentAttachableModel, false));
}
// si erreur, le formulaire est également enregistré puis la redirection effectuée
@Override
protected void onError(AjaxRequestTarget target, Form<?> form) {
- setResponsePage(new ManageDocumentPage(currentPage, documentAttachable, false));
+ setResponsePage(new ManageDocumentPage(currentPage, documentAttachableModel, false));
}
}.setVisibilityAllowed(true));
}
Modified: trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/document/panel/ReadListDocumentsPanel.java
===================================================================
--- trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/document/panel/ReadListDocumentsPanel.java 2013-02-25 17:26:52 UTC (rev 159)
+++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/document/panel/ReadListDocumentsPanel.java 2013-02-26 10:05:31 UTC (rev 160)
@@ -38,10 +38,7 @@
import org.apache.wicket.markup.html.list.ListView;
import org.apache.wicket.markup.html.panel.Panel;
import org.apache.wicket.model.IModel;
-import org.apache.wicket.model.LoadableDetachableModel;
import org.apache.wicket.model.PropertyModel;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
/**
* Display document list in manage mode.
@@ -49,9 +46,6 @@
*/
public final class ReadListDocumentsPanel extends Panel {
- /** Logger */
- private static final Logger LOG = LoggerFactory.getLogger(ReadListDocumentsPanel.class);
-
/**
* Constructeur
* @param id ID
@@ -66,18 +60,12 @@
documentsTable.setOutputMarkupId(true);
add(documentsTable);
- // Model de liste des provenances
- final LoadableDetachableModel<List<Document>> listProvenanceModel = new LoadableDetachableModel<List<Document>>() {
- @Override
- protected List<Document> load() {
- LOG.debug("Reloading attached documents list");
- return documentAttachableModel.getObject().getDocuments();
- }
- };
+ final IModel<List<Document>> documentModel = new PropertyModel<List<Document>>(documentAttachableModel,
+ "documents");
// Contenu tableaux provenance
ListView<Document> documentsListView = new ListView<Document>("ListDocumentsPage.AttachedDocuments.List",
- listProvenanceModel) {
+ documentModel) {
@Override
protected void populateItem(ListItem<Document> item) {
if (item.getIndex() % 2 == 1) {
@@ -89,8 +77,8 @@
Link<Document> documentLink = new Link<Document>("Document.titre.List") {
@Override
public void onClick() {
- setResponsePage(new ReadDocumentPage(documentModel.getObject(), documentAttachableModel
- .getObject(), currentPage));
+ setResponsePage(new ReadDocumentPage(documentModel.getObject(), documentAttachableModel,
+ currentPage));
}
};
documentLink.add(new Label("Document.titre.Label.List", new PropertyModel<Document>(documentModel,
@@ -110,7 +98,7 @@
MarkupContainer noTableDocuments = new WebMarkupContainer("ListDocumentsPage.AttachedDocuments.noTable") {
@Override
public boolean isVisible() {
- return listProvenanceModel.getObject().isEmpty();
+ return documentModel.getObject().isEmpty();
}
};
add(noTableDocuments);
Modified: trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/extraction/ManageExtractionPage.java
===================================================================
--- trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/extraction/ManageExtractionPage.java 2013-02-25 17:26:52 UTC (rev 159)
+++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/extraction/ManageExtractionPage.java 2013-02-26 10:05:31 UTC (rev 160)
@@ -274,7 +274,7 @@
// add list document panel
ManageListDocumentsPanel manageListDocumentsPanel = new ManageListDocumentsPanel("ManageListDocumentsPanel",
- extractionModel.getObject(), currentPage);
+ extractionModel, currentPage);
formView.add(manageListDocumentsPanel);
// Action : create the extraction
Modified: trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/lot/ManageLotPage.java
===================================================================
--- trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/lot/ManageLotPage.java 2013-02-25 17:26:52 UTC (rev 159)
+++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/lot/ManageLotPage.java 2013-02-26 10:05:31 UTC (rev 160)
@@ -294,7 +294,7 @@
// add list document panel
ManageListDocumentsPanel manageListDocumentsPanel = new ManageListDocumentsPanel("ManageListDocumentsPanel",
- lotModel.getObject(), currentPage);
+ lotModel, currentPage);
formView.add(manageListDocumentsPanel);
// Action : création du lot
Modified: trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/molecule/ManageMoleculePage.java
===================================================================
--- trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/molecule/ManageMoleculePage.java 2013-02-25 17:26:52 UTC (rev 159)
+++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/molecule/ManageMoleculePage.java 2013-02-26 10:05:31 UTC (rev 160)
@@ -277,7 +277,7 @@
// add list document panel
ManageListDocumentsPanel manageListDocumentsPanel = new ManageListDocumentsPanel("ManageListDocumentsPanel",
- moleculeModel.getObject(), currentPage);
+ moleculeModel, currentPage);
formView.add(manageListDocumentsPanel);
// Action : create molecule
Modified: trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/personne/ManagePersonnePage.java
===================================================================
--- trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/personne/ManagePersonnePage.java 2013-02-25 17:26:52 UTC (rev 159)
+++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/personne/ManagePersonnePage.java 2013-02-26 10:05:31 UTC (rev 160)
@@ -144,7 +144,7 @@
// add list document panel
ManageListDocumentsPanel manageListDocumentsPanel = new ManageListDocumentsPanel("ManageListDocumentsPanel",
- personneModel.getObject(), currentPage);
+ personneModel, currentPage);
formView.add(manageListDocumentsPanel);
// Action : création de la personne
Modified: trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/purification/ManagePurificationPage.java
===================================================================
--- trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/purification/ManagePurificationPage.java 2013-02-25 17:26:52 UTC (rev 159)
+++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/purification/ManagePurificationPage.java 2013-02-26 10:05:31 UTC (rev 160)
@@ -248,7 +248,7 @@
// add list document panel
ManageListDocumentsPanel manageListDocumentsPanel = new ManageListDocumentsPanel("ManageListDocumentsPanel",
- purificationModel.getObject(), currentPage);
+ purificationModel, currentPage);
formView.add(manageListDocumentsPanel);
// Action : create the purification
Modified: trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/specimen/ManageSpecimenPage.java
===================================================================
--- trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/specimen/ManageSpecimenPage.java 2013-02-25 17:26:52 UTC (rev 159)
+++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/specimen/ManageSpecimenPage.java 2013-02-26 10:05:31 UTC (rev 160)
@@ -282,7 +282,7 @@
// add list document panel
ManageListDocumentsPanel manageListDocumentsPanel = new ManageListDocumentsPanel("ManageListDocumentsPanel",
- specimenModel.getObject(), currentPage);
+ specimenModel, currentPage);
formView.add(manageListDocumentsPanel);
// Action : création du specimen
Modified: trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/station/ManageStationPage.java
===================================================================
--- trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/station/ManageStationPage.java 2013-02-25 17:26:52 UTC (rev 159)
+++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/station/ManageStationPage.java 2013-02-26 10:05:31 UTC (rev 160)
@@ -228,7 +228,7 @@
// add list document panel
ManageListDocumentsPanel manageListDocumentsPanel = new ManageListDocumentsPanel("ManageListDocumentsPanel",
- stationModel.getObject(), currentPage);
+ stationModel, currentPage);
formView.add(manageListDocumentsPanel);
Button createButton = new SubmittableButton(ACTION_CREATE, new SubmittableButtonEvents() {
Modified: trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/testBio/ManageTestBioPage.java
===================================================================
--- trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/testBio/ManageTestBioPage.java 2013-02-25 17:26:52 UTC (rev 159)
+++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/testBio/ManageTestBioPage.java 2013-02-26 10:05:31 UTC (rev 160)
@@ -279,7 +279,7 @@
// add list document panel
ManageListDocumentsPanel manageListDocumentsPanel = new ManageListDocumentsPanel("ManageListDocumentsPanel",
- testBioModel.getObject(), currentPage);
+ testBioModel, currentPage);
formView.add(manageListDocumentsPanel);
// Action : create the testBio
1
0