Author: echatellier Date: 2013-02-21 18:16:19 +0100 (Thu, 21 Feb 2013) New Revision: 149 Url: http://forge.codelutin.com/projects/cantharella/repository/revisions/149 Log: Add document to others entity. Update List, Manage, Read interface for all modified entities. Added: trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/document/DocumentTooltipColumn$ImagePanel.html trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/document/panel/ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/document/panel/ManageListDocumentsPanel.html 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.html trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/document/panel/ReadListDocumentsPanel.java trunk/cantharella.web/src/main/webapp/images/open_folder_yellow.png Removed: trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/document/DocumentPageHelper.java 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/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/Lot.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/Purification.java trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/model/ResultatTestBio.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/sql/dev_update.sql trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/campagne/ListCampagnesPage.java trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/campagne/ManageCampagnePage.html 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.html 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/document/DocumentTooltipColumn.java trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/extraction/ListExtractionsPage.java trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/extraction/ManageExtractionPage.html 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.html 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/ListLotsPage.java trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/lot/ManageLotPage.html 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.html 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.html 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.html 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/ListPersonnesPage.java trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/personne/ManagePersonnePage.html 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.html 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/ListPurificationsPage.java trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/purification/ManagePurificationPage.html 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.html 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/ListSpecimensPage.java trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/specimen/ManageSpecimenPage.html 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.html 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/ListStationsPage.java trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/station/ManageStationPage.html 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.html 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/ListTestsBioPage.java trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/testBio/ManageTestBioPage.html 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.html trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/testBio/ReadTestBioPage.java 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-02-21 14:47:28 UTC (rev 148) +++ trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/model/Campagne.java 2013-02-21 17:16:19 UTC (rev 149) @@ -33,6 +33,7 @@ import javax.persistence.FetchType; import javax.persistence.GeneratedValue; import javax.persistence.Id; +import javax.persistence.JoinColumn; import javax.persistence.Lob; import javax.persistence.ManyToMany; import javax.persistence.ManyToOne; @@ -43,6 +44,7 @@ import javax.validation.constraints.NotNull; import nc.ird.cantharella.data.model.utils.AbstractModel; +import nc.ird.cantharella.data.model.utils.DocumentAttachable; import nc.ird.cantharella.data.validation.CountryCode; import org.apache.commons.beanutils.BeanComparator; @@ -62,7 +64,7 @@ @Entity @Table @Embeddable -public class Campagne extends AbstractModel implements Comparable<Campagne> { +public class Campagne extends AbstractModel implements Comparable<Campagne>, DocumentAttachable { /** ID */ @Id @@ -141,6 +143,12 @@ @Cascade( { CascadeType.SAVE_UPDATE }) private List<Station> stations; + /** Attached documents. */ + @OneToMany(fetch = FetchType.LAZY, orphanRemoval = true) + @JoinColumn(name = "campagne") + @Cascade( { CascadeType.SAVE_UPDATE }) + private List<Document> documents; + /** * Constructor */ @@ -150,6 +158,7 @@ stations = new ArrayList<Station>(); personnesDroits = new ArrayList<CampagnePersonneDroits>(); groupesDroits = new ArrayList<CampagneGroupeDroits>(); + documents = new ArrayList<Document>(); } /** {@inheritDoc} */ @@ -397,4 +406,29 @@ this.stations = stations; } + /** {@inheritDoc} */ + public List<Document> getDocuments() { + return documents; + } + + /** + * Documents setter. + * + * @param documents the documents to set + */ + public void setDocuments(List<Document> documents) { + this.documents = documents; + } + + /** {@inheritDoc} */ + @Override + public void addDocument(Document document) { + documents.add(document); + } + + /** {@inheritDoc} */ + @Override + public void removeDocument(Document document) { + documents.remove(document); + } } 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-21 14:47:28 UTC (rev 148) +++ trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/model/Document.java 2013-02-21 17:16:19 UTC (rev 149) @@ -107,8 +107,11 @@ @Basic(fetch = FetchType.LAZY) private byte[] fileContent; + /** File data thumbnail. */ + @Basic(fetch = FetchType.LAZY) + private byte[] fileContentThumb; + /** File mime type. */ - @NotEmpty @Length(max = LENGTH_MEDIUM_TEXT) private String fileMimetype; @@ -327,8 +330,26 @@ public void setFileContent(byte[] fileContent) { this.fileContent = fileContent; } + + /** + * File content thumbnail getter. + * + * @return file content thumbnail + */ + public byte[] getFileContentThumb() { + return fileContentThumb; + } /** + * File content thumbnail setter. + * + * @param fileContentThumb file content thumbnail + */ + public void setFileContentThumb(byte[] fileContentThumb) { + this.fileContentThumb = fileContentThumb; + } + + /** * File mime type getter. * * @return file mime type 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-02-21 14:47:28 UTC (rev 148) +++ trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/model/Extraction.java 2013-02-21 17:16:19 UTC (rev 149) @@ -33,6 +33,7 @@ import javax.persistence.FetchType; import javax.persistence.GeneratedValue; import javax.persistence.Id; +import javax.persistence.JoinColumn; import javax.persistence.Lob; import javax.persistence.ManyToOne; import javax.persistence.OneToMany; @@ -46,6 +47,7 @@ import nc.ird.cantharella.data.model.comparators.ExtraitsOfExtractionComp; import nc.ird.cantharella.data.model.search.UtilisateurSearchFilter; import nc.ird.cantharella.data.model.utils.AbstractModel; +import nc.ird.cantharella.data.model.utils.DocumentAttachable; import org.apache.commons.beanutils.BeanComparator; import org.apache.commons.collections.comparators.ComparatorChain; @@ -69,7 +71,7 @@ @Entity @Indexed @FullTextFilterDefs( { @FullTextFilterDef(name = "utilisateur-Extraction", impl = UtilisateurSearchFilter.class) }) -public class Extraction extends AbstractModel implements Comparable<Extraction> { +public class Extraction extends AbstractModel implements Comparable<Extraction>, DocumentAttachable { /** Id de l'extraction */ @Id @@ -129,11 +131,18 @@ @ContainedIn private List<Extrait> extraits; + /** Attached documents. */ + @OneToMany(fetch = FetchType.LAZY, orphanRemoval = true) + @JoinColumn(name = "extraction") + @Cascade( { CascadeType.SAVE_UPDATE }) + private List<Document> documents; + /** * Constructeur */ public Extraction() { extraits = new ArrayList<Extrait>(); + documents = new ArrayList<Document>(); } /** {@inheritDoc} */ @@ -322,4 +331,29 @@ this.extraits = extraits; } + /** {@inheritDoc} */ + public List<Document> getDocuments() { + return documents; + } + + /** + * Documents setter. + * + * @param documents the documents to set + */ + public void setDocuments(List<Document> documents) { + this.documents = documents; + } + + /** {@inheritDoc} */ + @Override + public void addDocument(Document document) { + documents.add(document); + } + + /** {@inheritDoc} */ + @Override + public void removeDocument(Document document) { + documents.remove(document); + } } 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-02-21 14:47:28 UTC (rev 148) +++ trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/model/Lot.java 2013-02-21 17:16:19 UTC (rev 149) @@ -33,6 +33,7 @@ import javax.persistence.FetchType; import javax.persistence.GeneratedValue; import javax.persistence.Id; +import javax.persistence.JoinColumn; import javax.persistence.Lob; import javax.persistence.ManyToOne; import javax.persistence.OneToMany; @@ -47,8 +48,11 @@ import nc.ird.cantharella.data.config.DataContext; import nc.ird.cantharella.data.model.search.UtilisateurSearchFilter; import nc.ird.cantharella.data.model.utils.AbstractModel; +import nc.ird.cantharella.data.model.utils.DocumentAttachable; import org.apache.commons.beanutils.BeanComparator; +import org.hibernate.annotations.Cascade; +import org.hibernate.annotations.CascadeType; import org.hibernate.annotations.Type; import org.hibernate.search.annotations.Field; import org.hibernate.search.annotations.FullTextFilterDef; @@ -69,7 +73,7 @@ @Indexed @Embeddable @FullTextFilterDefs( { @FullTextFilterDef(name = "utilisateur-Lot", impl = UtilisateurSearchFilter.class) }) -public class Lot extends AbstractModel implements Comparable<Lot> { +public class Lot extends AbstractModel implements Comparable<Lot>, DocumentAttachable { /** ID */ @Id @@ -162,6 +166,12 @@ @NotNull private List<Extraction> extractions; + /** Attached documents. */ + @OneToMany(fetch = FetchType.LAZY, orphanRemoval = true) + @JoinColumn(name = "lot") + @Cascade( { CascadeType.SAVE_UPDATE }) + private List<Document> documents; + /** * Constructeur */ @@ -169,6 +179,7 @@ personnesDroits = new ArrayList<LotPersonneDroits>(); groupesDroits = new ArrayList<LotGroupeDroits>(); extractions = new ArrayList<Extraction>(); + documents = new ArrayList<Document>(); } /** {@inheritDoc} */ @@ -454,4 +465,30 @@ public void setExtractions(List<Extraction> extractions) { this.extractions = extractions; } + + /** {@inheritDoc} */ + public List<Document> getDocuments() { + return documents; + } + + /** + * Documents setter. + * + * @param documents the documents to set + */ + public void setDocuments(List<Document> documents) { + this.documents = documents; + } + + /** {@inheritDoc} */ + @Override + public void addDocument(Document document) { + documents.add(document); + } + + /** {@inheritDoc} */ + @Override + public void removeDocument(Document document) { + documents.remove(document); + } } 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-02-21 14:47:28 UTC (rev 148) +++ trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/model/Molecule.java 2013-02-21 17:16:19 UTC (rev 149) @@ -136,7 +136,7 @@ @Cascade( { CascadeType.SAVE_UPDATE }) private List<MoleculeProvenance> provenances; - /** Liste des documents attachés. */ + /** Attached documents. */ @OneToMany(fetch = FetchType.LAZY, orphanRemoval = true) @JoinColumn(name = "molecule") @Cascade( { CascadeType.SAVE_UPDATE }) 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-02-21 14:47:28 UTC (rev 148) +++ trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/model/MoleculeProvenance.java 2013-02-21 17:16:19 UTC (rev 149) @@ -54,7 +54,6 @@ @Min(value = 0) @Max(value = 100) @Column(precision = DataContext.DECIMAL_PRECISION, scale = DataContext.DECIMAL_SCALE) - @NotNull private BigDecimal pourcentage; /** Molecule dont fait partie la provenance */ 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-02-21 14:47:28 UTC (rev 148) +++ trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/model/Personne.java 2013-02-21 17:16:19 UTC (rev 149) @@ -34,6 +34,7 @@ import javax.persistence.Id; import javax.persistence.Inheritance; import javax.persistence.InheritanceType; +import javax.persistence.JoinColumn; import javax.persistence.Lob; import javax.persistence.MapKey; import javax.persistence.OneToMany; @@ -42,6 +43,7 @@ import javax.validation.constraints.NotNull; import nc.ird.cantharella.data.model.utils.AbstractModel; +import nc.ird.cantharella.data.model.utils.DocumentAttachable; import nc.ird.cantharella.data.validation.CountryCode; import org.apache.commons.beanutils.BeanComparator; @@ -62,7 +64,7 @@ @Entity @Table(uniqueConstraints = { @UniqueConstraint(columnNames = { "nom", "prenom" }) }) @Inheritance(strategy = InheritanceType.JOINED) -public class Personne extends AbstractModel implements Comparable<Personne> { +public class Personne extends AbstractModel implements Comparable<Personne>, DocumentAttachable { /** ID */ @Id @@ -181,6 +183,12 @@ @NotNull private List<TestBio> testsBioCrees; + /** Attached documents. */ + @OneToMany(fetch = FetchType.LAZY, orphanRemoval = true) + @JoinColumn(name = "personne") + @Cascade( { CascadeType.SAVE_UPDATE }) + private List<Document> documents; + /** * Constructeur */ @@ -195,6 +203,7 @@ extractionsCrees = new ArrayList<Extraction>(); purificationsCrees = new ArrayList<Purification>(); testsBioCrees = new ArrayList<TestBio>(); + documents = new ArrayList<Document>(); } /** {@inheritDoc} */ @@ -564,4 +573,29 @@ this.testsBioCrees = testsBioCrees; } + /** {@inheritDoc} */ + public List<Document> getDocuments() { + return documents; + } + + /** + * Documents setter. + * + * @param documents the documents to set + */ + public void setDocuments(List<Document> documents) { + this.documents = documents; + } + + /** {@inheritDoc} */ + @Override + public void addDocument(Document document) { + documents.add(document); + } + + /** {@inheritDoc} */ + @Override + public void removeDocument(Document document) { + documents.remove(document); + } } 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-02-21 14:47:28 UTC (rev 148) +++ trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/model/Purification.java 2013-02-21 17:16:19 UTC (rev 149) @@ -33,6 +33,7 @@ import javax.persistence.FetchType; import javax.persistence.GeneratedValue; import javax.persistence.Id; +import javax.persistence.JoinColumn; import javax.persistence.Lob; import javax.persistence.ManyToOne; import javax.persistence.OneToMany; @@ -47,6 +48,7 @@ import nc.ird.cantharella.data.model.comparators.FractionsOfPurificationComp; import nc.ird.cantharella.data.model.search.UtilisateurSearchFilter; import nc.ird.cantharella.data.model.utils.AbstractModel; +import nc.ird.cantharella.data.model.utils.DocumentAttachable; import nc.ird.cantharella.utils.AssertTools; import org.apache.commons.beanutils.BeanComparator; @@ -70,7 +72,7 @@ @Entity @Indexed @FullTextFilterDefs( { @FullTextFilterDef(name = "utilisateur-Purification", impl = UtilisateurSearchFilter.class) }) -public class Purification extends AbstractModel implements Comparable<Purification> { +public class Purification extends AbstractModel implements Comparable<Purification>, DocumentAttachable { /** Id de la purification */ @Id @@ -150,12 +152,19 @@ @IndexedEmbedded private Lot lotSource; + /** Attached documents. */ + @OneToMany(fetch = FetchType.LAZY, orphanRemoval = true) + @JoinColumn(name = "purification") + @Cascade( { CascadeType.SAVE_UPDATE }) + private List<Document> documents; + /** * Constructeur */ public Purification() { fractions = new ArrayList<Fraction>(); paramsMetho = new ArrayList<ParamMethoPuriEffectif>(); + documents = new ArrayList<Document>(); } /** {@inheritDoc} */ @@ -437,4 +446,29 @@ return extrait.getExtraction().getLot(); } + /** {@inheritDoc} */ + public List<Document> getDocuments() { + return documents; + } + + /** + * Documents setter. + * + * @param documents the documents to set + */ + public void setDocuments(List<Document> documents) { + this.documents = documents; + } + + /** {@inheritDoc} */ + @Override + public void addDocument(Document document) { + documents.add(document); + } + + /** {@inheritDoc} */ + @Override + public void removeDocument(Document document) { + documents.remove(document); + } } Modified: trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/model/ResultatTestBio.java =================================================================== --- trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/model/ResultatTestBio.java 2013-02-21 14:47:28 UTC (rev 148) +++ trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/model/ResultatTestBio.java 2013-02-21 17:16:19 UTC (rev 149) @@ -23,6 +23,7 @@ package nc.ird.cantharella.data.model; import java.math.BigDecimal; +import java.util.List; import javax.persistence.Column; import javax.persistence.Entity; @@ -39,6 +40,7 @@ import nc.ird.cantharella.data.config.DataContext; import nc.ird.cantharella.data.model.search.UtilisateurSearchFilter; import nc.ird.cantharella.data.model.utils.AbstractModel; +import nc.ird.cantharella.data.model.utils.DocumentAttachable; import nc.ird.cantharella.data.validation.CollectionUniqueField; import nc.ird.cantharella.utils.AssertTools; @@ -64,7 +66,7 @@ @CollectionUniqueField(fieldName = "repere", pathToCollection = "testBio.resultats") @Indexed @FullTextFilterDefs( { @FullTextFilterDef(name = "utilisateur-ResultatTestBio", impl = UtilisateurSearchFilter.class) }) -public class ResultatTestBio extends AbstractModel implements Cloneable, Comparable<ResultatTestBio> { +public class ResultatTestBio extends AbstractModel implements Cloneable, Comparable<ResultatTestBio>, DocumentAttachable { /** * Type du résultat de test biologique @@ -505,4 +507,20 @@ return (Extrait) curProd; } + /** {@inheritDoc} */ + public List<Document> getDocuments() { + return testBio.getDocuments(); + } + + /** {@inheritDoc} */ + @Override + public void addDocument(Document document) { + testBio.addDocument(document); + } + + /** {@inheritDoc} */ + @Override + public void removeDocument(Document document) { + testBio.removeDocument(document); + } } 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-02-21 14:47:28 UTC (rev 148) +++ trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/model/Specimen.java 2013-02-21 17:16:19 UTC (rev 149) @@ -22,7 +22,9 @@ */ package nc.ird.cantharella.data.model; +import java.util.ArrayList; import java.util.Date; +import java.util.List; import javax.persistence.Column; import javax.persistence.Embeddable; @@ -32,8 +34,10 @@ import javax.persistence.FetchType; import javax.persistence.GeneratedValue; import javax.persistence.Id; +import javax.persistence.JoinColumn; import javax.persistence.Lob; import javax.persistence.ManyToOne; +import javax.persistence.OneToMany; import javax.persistence.Table; import javax.persistence.Temporal; import javax.persistence.TemporalType; @@ -41,8 +45,11 @@ import nc.ird.cantharella.data.model.search.UtilisateurSearchFilter; import nc.ird.cantharella.data.model.utils.AbstractModel; +import nc.ird.cantharella.data.model.utils.DocumentAttachable; import org.apache.commons.beanutils.BeanComparator; +import org.hibernate.annotations.Cascade; +import org.hibernate.annotations.CascadeType; import org.hibernate.annotations.Type; import org.hibernate.search.annotations.Field; import org.hibernate.search.annotations.FullTextFilterDef; @@ -63,7 +70,7 @@ @Indexed @Embeddable @FullTextFilterDefs( { @FullTextFilterDef(name = "utilisateur-Specimen", impl = UtilisateurSearchFilter.class) }) -public class Specimen extends AbstractModel implements Comparable<Specimen> { +public class Specimen extends AbstractModel implements Comparable<Specimen>, DocumentAttachable { /** * Types d'organisme pour un spécimen @@ -164,6 +171,19 @@ @IndexedEmbedded private Personne createur; + /** Attached documents. */ + @OneToMany(fetch = FetchType.LAZY, orphanRemoval = true) + @JoinColumn(name = "specimen") + @Cascade( { CascadeType.SAVE_UPDATE }) + private List<Document> documents; + + /** + * Constructor. + */ + public Specimen() { + documents = new ArrayList<Document>(); + } + /** {@inheritDoc} */ @Override public String toString() { @@ -432,4 +452,29 @@ this.createur = createur; } + /** {@inheritDoc} */ + public List<Document> getDocuments() { + return documents; + } + + /** + * Documents setter. + * + * @param documents the documents to set + */ + public void setDocuments(List<Document> documents) { + this.documents = documents; + } + + /** {@inheritDoc} */ + @Override + public void addDocument(Document document) { + documents.add(document); + } + + /** {@inheritDoc} */ + @Override + public void removeDocument(Document document) { + documents.remove(document); + } } 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-02-21 14:47:28 UTC (rev 148) +++ trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/model/Station.java 2013-02-21 17:16:19 UTC (rev 149) @@ -31,6 +31,7 @@ import javax.persistence.FetchType; import javax.persistence.GeneratedValue; import javax.persistence.Id; +import javax.persistence.JoinColumn; import javax.persistence.Lob; import javax.persistence.ManyToMany; import javax.persistence.ManyToOne; @@ -40,6 +41,7 @@ import nc.ird.cantharella.data.model.search.UtilisateurSearchFilter; import nc.ird.cantharella.data.model.utils.AbstractModel; +import nc.ird.cantharella.data.model.utils.DocumentAttachable; import nc.ird.cantharella.data.validation.CountryCode; import nc.ird.cantharella.data.validation.Latitude; import nc.ird.cantharella.data.validation.Longitude; @@ -47,6 +49,8 @@ import org.apache.commons.beanutils.BeanComparator; import org.hibernate.annotations.AccessType; +import org.hibernate.annotations.Cascade; +import org.hibernate.annotations.CascadeType; import org.hibernate.annotations.Type; import org.hibernate.search.annotations.Field; import org.hibernate.search.annotations.FullTextFilterDef; @@ -67,7 +71,7 @@ @Indexed @Embeddable @FullTextFilterDefs( { @FullTextFilterDef(name = "utilisateur-Station", impl = UtilisateurSearchFilter.class) }) -public class Station extends AbstractModel implements Cloneable, Comparable<Station> { +public class Station extends AbstractModel implements Cloneable, Comparable<Station>, DocumentAttachable { /** ID */ @Id @@ -131,12 +135,19 @@ @OneToMany(mappedBy = "station", fetch = FetchType.LAZY) private List<Specimen> specimensRattaches; + /** Attached documents. */ + @OneToMany(fetch = FetchType.LAZY, orphanRemoval = true) + @JoinColumn(name = "station") + @Cascade( { CascadeType.SAVE_UPDATE }) + private List<Document> documents; + /** * Constructeur */ public Station() { lots = new ArrayList<Lot>(); campagnes = new ArrayList<Campagne>(); + documents = new ArrayList<Document>(); } /** {@inheritDoc} */ @@ -359,4 +370,29 @@ this.specimensRattaches = specimensRattaches; } + /** {@inheritDoc} */ + public List<Document> getDocuments() { + return documents; + } + + /** + * Documents setter. + * + * @param documents the documents to set + */ + public void setDocuments(List<Document> documents) { + this.documents = documents; + } + + /** {@inheritDoc} */ + @Override + public void addDocument(Document document) { + documents.add(document); + } + + /** {@inheritDoc} */ + @Override + public void removeDocument(Document document) { + documents.remove(document); + } } \ No newline at end of file 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-02-21 14:47:28 UTC (rev 148) +++ trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/model/TestBio.java 2013-02-21 17:16:19 UTC (rev 149) @@ -36,6 +36,7 @@ import javax.persistence.FetchType; import javax.persistence.GeneratedValue; import javax.persistence.Id; +import javax.persistence.JoinColumn; import javax.persistence.Lob; import javax.persistence.ManyToOne; import javax.persistence.OneToMany; @@ -51,6 +52,7 @@ import nc.ird.cantharella.data.model.ResultatTestBio.UniteConcMasse; import nc.ird.cantharella.data.model.comparators.ResultatsOfTestBioComp; import nc.ird.cantharella.data.model.utils.AbstractModel; +import nc.ird.cantharella.data.model.utils.DocumentAttachable; import org.apache.commons.beanutils.BeanComparator; import org.hibernate.annotations.Cascade; @@ -69,7 +71,7 @@ */ @Entity @Embeddable -public class TestBio extends AbstractModel implements Comparable<TestBio> { +public class TestBio extends AbstractModel implements Comparable<TestBio>, DocumentAttachable { /** Id du test bio */ @Id @@ -143,11 +145,18 @@ @ContainedIn private List<ResultatTestBio> resultats; + /** Attached documents. */ + @OneToMany(fetch = FetchType.LAZY, orphanRemoval = true) + @JoinColumn(name = "resultatTestBio") + @Cascade( { CascadeType.SAVE_UPDATE }) + private List<Document> documents; + /** * Constructeur */ public TestBio() { resultats = new ArrayList<ResultatTestBio>(); + documents = new ArrayList<Document>(); } /** {@inheritDoc} */ @@ -397,4 +406,29 @@ this.resultats = resultats; } + /** {@inheritDoc} */ + public List<Document> getDocuments() { + return documents; + } + + /** + * Documents setter. + * + * @param documents the documents to set + */ + public void setDocuments(List<Document> documents) { + this.documents = documents; + } + + /** {@inheritDoc} */ + @Override + public void addDocument(Document document) { + documents.add(document); + } + + /** {@inheritDoc} */ + @Override + public void removeDocument(Document document) { + documents.remove(document); + } } Modified: trunk/cantharella.data/src/main/sql/dev_update.sql =================================================================== --- trunk/cantharella.data/src/main/sql/dev_update.sql 2013-02-21 14:47:28 UTC (rev 148) +++ trunk/cantharella.data/src/main/sql/dev_update.sql 2013-02-21 17:16:19 UTC (rev 149) @@ -43,6 +43,7 @@ familleChimique varchar(60), formuleBrute varchar(60) not null, formuleDevMol text, + identifieePar varchar(60), masseMolaire numeric(9, 4) check (masseMolaire<=99999 AND masseMolaire>=0), nomCommun varchar(100), nomIupca varchar(255), @@ -50,7 +51,6 @@ publiOrigine text, campagne_idCampagne int4, createur_idPersonne int4 not null, - identifieePar varchar(60), primary key (idMolecule) ); @@ -91,14 +91,23 @@ dateCreation timestamp not null, description text, editeur varchar(100) not null, - fileContent bytea;, - fileMimetype varchar(60) not null, + fileContent bytea, + fileContentThumb bytea, + fileMimetype varchar(60), fileName varchar(60) not null, langue varchar(2), titre varchar(100) not null, ajoutePar_idPersonne int4 not null, createur_idPersonne int4 not null, typeDocument_idTypeDocument int4 not null, + specimen int4, + campagne int4, + personne int4, + extraction int4, + station int4, + purification int4, + lot int4, + resultatTestBio int4, molecule int4, primary key (idDocument) ); @@ -119,6 +128,46 @@ references TypeDocument; alter table Document + add constraint FK3737353B51427EB0 + foreign key (specimen) + references Specimen; + + alter table Document + add constraint FK3737353B3ED66D5C + foreign key (campagne) + references Campagne; + + alter table Document + add constraint FK3737353B8458C838 + foreign key (personne) + references Personne; + + alter table Document + add constraint FK3737353BD9E0906E + foreign key (extraction) + references Extraction; + + alter table Document + add constraint FK3737353BC591F5C8 + foreign key (station) + references Station; + + alter table Document + add constraint FK3737353B20A56C82 + foreign key (purification) + references Purification; + + alter table Document + add constraint FK3737353B767DEA02 + foreign key (lot) + references Lot; + + alter table Document + add constraint FK3737353B8923169C + foreign key (resultatTestBio) + references TestBio; + + alter table Document add constraint FK3737353B20FEEDAC foreign key (molecule) references Molecule; Modified: trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/campagne/ListCampagnesPage.java =================================================================== --- trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/campagne/ListCampagnesPage.java 2013-02-21 14:47:28 UTC (rev 148) +++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/campagne/ListCampagnesPage.java 2013-02-21 17:16:19 UTC (rev 149) @@ -29,6 +29,7 @@ import nc.ird.cantharella.service.services.CampagneService; import nc.ird.cantharella.web.config.WebContext; import nc.ird.cantharella.web.pages.TemplatePage; +import nc.ird.cantharella.web.pages.domain.document.DocumentTooltipColumn; import nc.ird.cantharella.web.utils.CallerPage; import nc.ird.cantharella.web.utils.columns.LinkPropertyColumn; import nc.ird.cantharella.web.utils.columns.LinkableImagePropertyColumn; @@ -121,6 +122,14 @@ getString("Campagne.codePays")), "codePays", "codePays", WebContext.COUNTRIES.get(getSession() .getLocale()))); + columns.add(new DocumentTooltipColumn<Campagne, String>(Model.of("")) { + @Override + public void onClick(IModel<Campagne> model) { + int idCampagne = model.getObject().getIdCampagne(); + setResponsePage(new ReadCampagnePage(idCampagne, currentPage)); + } + }); + columns.add(new LinkableImagePropertyColumn<Campagne, String>("images/edit.png", getString("Update"), getString("Update")) { // pas de lien d'édition si l'utilisateur n'a pas les droits Modified: trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/campagne/ManageCampagnePage.html =================================================================== --- trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/campagne/ManageCampagnePage.html 2013-02-21 14:47:28 UTC (rev 148) +++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/campagne/ManageCampagnePage.html 2013-02-21 17:16:19 UTC (rev 149) @@ -121,6 +121,9 @@ </tbody> </table> </fieldset> + + <wicket:panel wicket:id="ManageListDocumentsPanel" /> + <div class="actions"> <input type="submit" wicket:message="value:Submit" wicket:id="Create" /> <input type="submit" wicket:message="value:Submit" wicket:id="Update" /> 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-21 14:47:28 UTC (rev 148) +++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/campagne/ManageCampagnePage.java 2013-02-21 17:16:19 UTC (rev 149) @@ -39,6 +39,7 @@ import nc.ird.cantharella.service.services.StationService; import nc.ird.cantharella.web.config.WebContext; import nc.ird.cantharella.web.pages.TemplatePage; +import nc.ird.cantharella.web.pages.domain.document.panel.ManageListDocumentsPanel; import nc.ird.cantharella.web.pages.domain.personne.ManagePersonnePage; import nc.ird.cantharella.web.pages.domain.station.ManageStationPage; import nc.ird.cantharella.web.pages.renderers.PersonneRenderer; @@ -196,6 +197,7 @@ super(ManageCampagnePage.class); assert idCampagne == null || campagne == null; this.callerPage = callerPage; + final CallerPage currentPage = new CallerPage(this); this.multipleEntry = multipleEntry; // Initialisation des modèles @@ -258,6 +260,11 @@ initParticipantsFields(formView); initStationsFields(formView); + + // add list document panel + ManageListDocumentsPanel manageListDocumentsPanel = new ManageListDocumentsPanel("ManageListDocumentsPanel", + campagneModel.getObject(), currentPage); + formView.add(manageListDocumentsPanel); // Action : création de la campagne Button createButton = new SubmittableButton(ACTION_CREATE, new SubmittableButtonEvents() { Modified: trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/campagne/ReadCampagnePage.html =================================================================== --- trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/campagne/ReadCampagnePage.html 2013-02-21 14:47:28 UTC (rev 148) +++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/campagne/ReadCampagnePage.html 2013-02-21 17:16:19 UTC (rev 149) @@ -110,6 +110,9 @@ <span class="value"><wicket:message key="List.none" /></span> </div> </fieldset> + + <wicket:panel wicket:id="ReadListDocumentsPanel" /> + <form wicket:id="Form"> <div class="actions"> <a class="edit" wicket:id="ReadCampagnePage.Campagne.Update" wicket:message="title:Update"> 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-21 14:47:28 UTC (rev 148) +++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/campagne/ReadCampagnePage.java 2013-02-21 17:16:19 UTC (rev 149) @@ -34,6 +34,7 @@ import nc.ird.cantharella.service.services.StationService; import nc.ird.cantharella.web.config.WebContext; import nc.ird.cantharella.web.pages.TemplatePage; +import nc.ird.cantharella.web.pages.domain.document.panel.ReadListDocumentsPanel; import nc.ird.cantharella.web.pages.domain.personne.ReadPersonnePage; import nc.ird.cantharella.web.pages.domain.station.ReadStationPage; import nc.ird.cantharella.web.utils.CallerPage; @@ -134,6 +135,11 @@ initParticipantsFields(currentPage); initStationsFields(currentPage); + // add list document panel + ReadListDocumentsPanel readListDocumentsPanel = new ReadListDocumentsPanel("ReadListDocumentsPanel", + campagneModel.getObject(), currentPage); + add(readListDocumentsPanel); + // Ajout du formulaire pour les actions final Form<Void> formView = new Form<Void>("Form"); Deleted: trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/document/DocumentPageHelper.java =================================================================== --- trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/document/DocumentPageHelper.java 2013-02-21 14:47:28 UTC (rev 148) +++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/document/DocumentPageHelper.java 2013-02-21 17:16:19 UTC (rev 149) @@ -1,210 +0,0 @@ -/* - * #%L - * Cantharella :: Web - * $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.web.pages.domain.document; - -import java.io.ByteArrayInputStream; -import java.io.IOException; -import java.io.InputStream; -import java.io.OutputStream; -import java.util.ArrayList; -import java.util.List; - -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.utils.CallerPage; -import nc.ird.cantharella.web.utils.columns.AjaxButtonPropertyColumn; -import nc.ird.cantharella.web.utils.columns.LinkPropertyColumn; -import nc.ird.cantharella.web.utils.columns.LinkableImagePropertyColumn; -import nc.ird.cantharella.web.utils.models.SimpleSortableListDataProvider; - -import org.apache.commons.io.IOUtils; -import org.apache.wicket.MarkupContainer; -import org.apache.wicket.ajax.AjaxRequestTarget; -import org.apache.wicket.ajax.markup.html.form.AjaxSubmitLink; -import org.apache.wicket.extensions.ajax.markup.html.repeater.data.table.AjaxFallbackDefaultDataTable; -import org.apache.wicket.extensions.markup.html.repeater.data.grid.ICellPopulator; -import org.apache.wicket.extensions.markup.html.repeater.data.table.DataTable; -import org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn; -import org.apache.wicket.extensions.markup.html.repeater.data.table.PropertyColumn; -import org.apache.wicket.markup.html.WebMarkupContainer; -import org.apache.wicket.markup.html.form.Form; -import org.apache.wicket.markup.repeater.Item; -import org.apache.wicket.model.IModel; -import org.apache.wicket.model.Model; -import org.apache.wicket.request.http.WebResponse; - -/** - * Helper providing static method to init document list into entity Read or - * Manager page. - * - * @author Eric Chatellier - */ -public abstract class DocumentPageHelper { - - /** - * Init attached document table for current entity. - * - * @param templatePage parent page - * @param formView form to add table to - * @param documentAttachable entity to get documents - * @param currentPage current page - */ - public static void initAttachedDocumentsManageTable(final TemplatePage templatePage, final Form<Void> formView, - final DocumentAttachable documentAttachable, final CallerPage currentPage) { - - List<Document> documents = documentAttachable.getDocuments(); - - // On englobe le "DataView" dans un composant neutre que l'on pourra - // rafraichir quand la liste évoluera - final MarkupContainer attachedDocumentRefresh = new WebMarkupContainer( - "ListDocumentsPage.AttachedDocuments.Refresh"); - attachedDocumentRefresh.setOutputMarkupId(true); - formView.add(attachedDocumentRefresh); - - SimpleSortableListDataProvider<Document> attachedDocumentsDataProvider = new SimpleSortableListDataProvider<Document>( - documents, templatePage.getSession().getLocale()); - - List<IColumn<Document, String>> columns = new ArrayList<IColumn<Document, String>>(); - - columns.add(new LinkPropertyColumn<Document, String>( - new Model<String>(templatePage.getString("Document.titre")), "titre", "titre") { - @Override - public void onClick(Item<ICellPopulator<Document>> item, String componentId, IModel<Document> model) { - templatePage.setResponsePage(new ReadDocumentPage(model.getObject(), documentAttachable, currentPage)); - } - }); - - columns.add(new PropertyColumn<Document, String>(new Model<String>(templatePage - .getString("Document.typeDocument")), "typeDocument.nom", "typeDocument.nom")); - - columns.add(new PropertyColumn<Document, String>( - new Model<String>(templatePage.getString("Document.createur")), "createur", "createur")); - - columns.add(new LinkableImagePropertyColumn<Document, String>(new Model<String>(templatePage - .getString("Document.link")), "images/download.png", templatePage.getString("Document.link"), - templatePage.getString("Document.link")) { - @Override - public void onClick(Item<ICellPopulator<Document>> item, String componentId, IModel<Document> model) { - Document document = model.getObject(); - WebResponse response = (WebResponse) templatePage.getResponse(); - response.setContentType(document.getFileMimetype()); - response.setAttachmentHeader(document.getFileName()); - response.write(document.getFileContent()); - } - }); - - final DataTable<Document, String> attachedDocumentTable = new AjaxFallbackDefaultDataTable<Document, String>( - "ListDocumentsPage.AttachedDocuments", columns, attachedDocumentsDataProvider, WebContext.ROWS_PER_PAGE); - - columns.add(new AjaxButtonPropertyColumn<Document, String>( - new Model<String>(templatePage.getString("Actions")), new Model<String>(templatePage - .getString("Delete")), formView) { - @Override - public void onSubmit(AjaxRequestTarget target, Form<?> form, IModel<Document> model) { - Document document = model.getObject(); - documentAttachable.removeDocument(document); - - if (target != null) { - target.add(attachedDocumentTable); - templatePage.refreshFeedbackPage(target); - } - } - }); - - attachedDocumentRefresh.add(attachedDocumentTable); - - // Action : création d'un nouveau document - // ajaxSubmitLink permet de sauvegarder l'état du formulaire - formView.add(new AjaxSubmitLink("NewDocument") { - @Override - protected void onSubmit(AjaxRequestTarget request, Form<?> form) { - 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, documentAttachable, false)); - } - }.setVisibilityAllowed(true)); - } - - /** - * Init attached document table for current entity. - * - * @param templatePage parent page - * @param documentAttachable entity to get documents - * @param currentPage current page - */ - public static void initAttachedDocumentsReadTable(final TemplatePage templatePage, - final DocumentAttachable documentAttachable, final CallerPage currentPage) { - - List<Document> documents = documentAttachable.getDocuments(); - - SimpleSortableListDataProvider<Document> attachedDocumentsDataProvider = new SimpleSortableListDataProvider<Document>( - documents, templatePage.getSession().getLocale()); - - List<IColumn<Document, String>> columns = new ArrayList<IColumn<Document, String>>(); - - columns.add(new LinkPropertyColumn<Document, String>( - new Model<String>(templatePage.getString("Document.titre")), "titre", "titre") { - @Override - public void onClick(Item<ICellPopulator<Document>> item, String componentId, IModel<Document> model) { - templatePage.setResponsePage(new ReadDocumentPage(model.getObject(), documentAttachable, currentPage)); - } - }); - - columns.add(new PropertyColumn<Document, String>(new Model<String>(templatePage - .getString("Document.typeDocument")), "typeDocument.nom", "typeDocument.nom")); - - columns.add(new PropertyColumn<Document, String>( - new Model<String>(templatePage.getString("Document.createur")), "createur", "createur")); - - columns.add(new LinkableImagePropertyColumn<Document, String>(new Model<String>(templatePage - .getString("Document.link")), "images/download.png", templatePage.getString("Document.link"), - templatePage.getString("Document.link")) { - @Override - public void onClick(Item<ICellPopulator<Document>> item, String componentId, IModel<Document> model) { - - Document document = model.getObject(); - WebResponse response = (WebResponse) templatePage.getResponse(); - response.setContentType(document.getFileMimetype()); - response.setAttachmentHeader(document.getFileName()); - - OutputStream out = templatePage.getResponse().getOutputStream(); - InputStream in = new ByteArrayInputStream(document.getFileContent()); - try { - IOUtils.copy(in, out); - } catch (IOException e) { - e.printStackTrace(); - } - } - }); - - final DataTable<Document, String> attachedDocumentTable = new AjaxFallbackDefaultDataTable<Document, String>( - "ListDocumentsPage.AttachedDocuments", columns, attachedDocumentsDataProvider, WebContext.ROWS_PER_PAGE); - templatePage.add(attachedDocumentTable); - } -} Added: trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/document/DocumentTooltipColumn$ImagePanel.html =================================================================== --- trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/document/DocumentTooltipColumn$ImagePanel.html (rev 0) +++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/document/DocumentTooltipColumn$ImagePanel.html 2013-02-21 17:16:19 UTC (rev 149) @@ -0,0 +1,30 @@ +<!-- + #%L + Cantharella :: Web + $Id: SimpleTooltipPanel.html 133 2013-02-19 11:02:25Z echatellier $ + $HeadURL: http://svn.forge.codelutin.com/svn/cantharella/trunk/cantharella.web/src/mai... $ + %% + 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% + --> +<!DOCTYPE html> +<html xmlns:wicket="http://wicket.apache.org"> +<body> +<wicket:panel> + <img wicket:id="image" alt="f" /> +</wicket:panel> +</body> +</html> \ No newline at end of file Modified: trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/document/DocumentTooltipColumn.java =================================================================== --- trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/document/DocumentTooltipColumn.java 2013-02-21 14:47:28 UTC (rev 148) +++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/document/DocumentTooltipColumn.java 2013-02-21 17:16:19 UTC (rev 149) @@ -29,9 +29,11 @@ import org.apache.commons.collections.CollectionUtils; import org.apache.wicket.AttributeModifier; +import org.apache.wicket.Component; import org.apache.wicket.extensions.markup.html.repeater.data.grid.ICellPopulator; import org.apache.wicket.extensions.markup.html.repeater.data.table.AbstractColumn; import org.apache.wicket.markup.html.WebComponent; +import org.apache.wicket.markup.html.image.ContextImage; import org.apache.wicket.markup.html.image.Image; import org.apache.wicket.markup.html.link.Link; import org.apache.wicket.markup.html.panel.Panel; @@ -58,6 +60,12 @@ /** {@inheritDoc} */ @Override + public Component getHeader(final String componentId) { + return new ImagePanel(componentId, Model.of("images/open_folder_yellow.png")); + } + + /** {@inheritDoc} */ + @Override public void populateItem(Item<ICellPopulator<T>> item, String componentId, IModel<T> model) { List<Document> documents = model.getObject().getDocuments(); @@ -107,4 +115,23 @@ link.add(img); } } + + /** + * Use panel to be able to add an image into wicket <span wicket:id="label"> + * datatable column header. + */ + public class ImagePanel extends Panel { + + /** + * Constructor + * @param componentId component id + * @param imageSrc image src + */ + public ImagePanel(String componentId, final Model<String> imageSrc) { + super(componentId); + + ContextImage image = new ContextImage("image", imageSrc); + add(image); + } + } } \ No newline at end of file Added: trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/document/panel/ManageListDocumentsPanel.html =================================================================== --- trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/document/panel/ManageListDocumentsPanel.html (rev 0) +++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/document/panel/ManageListDocumentsPanel.html 2013-02-21 17:16:19 UTC (rev 149) @@ -0,0 +1,40 @@ +<!-- + #%L + Cantharella :: Web + $Id: ManagePersonnePanel.html 133 2013-02-19 11:02:25Z echatellier $ + $HeadURL: http://svn.forge.codelutin.com/svn/cantharella/trunk/cantharella.web/src/mai... $ + %% + Copyright (C) 2009 - 2012 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% + --> +<!DOCTYPE html> +<html xmlns:wicket="http://wicket.apache.org"> +<body> +<wicket:panel> + + <form wicket:id="form"> + <fieldset> + <legend><wicket:message key="ListDocumentsPage.AttachedDocuments" /></legend> + <div wicket:id="ListDocumentsPage.AttachedDocuments.Refresh"> + <table cellspacing="0" wicket:id="ListDocumentsPage.AttachedDocuments"/> + </div> + <a wicket:id="NewDocument" class="add"><wicket:message key="ListDocumentsPage.NewDocument" /></a> + </fieldset> + </form> + +</wicket:panel> +</body> +</html> \ No newline at end of file Added: 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 (rev 0) +++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/document/panel/ManageListDocumentsPanel.java 2013-02-21 17:16:19 UTC (rev 149) @@ -0,0 +1,148 @@ +/* + * #%L + * Cantharella :: Web + * $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.web.pages.domain.document.panel; + +import java.util.ArrayList; +import java.util.List; + +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.domain.document.ManageDocumentPage; +import nc.ird.cantharella.web.pages.domain.document.ReadDocumentPage; +import nc.ird.cantharella.web.utils.CallerPage; +import nc.ird.cantharella.web.utils.columns.AjaxButtonPropertyColumn; +import nc.ird.cantharella.web.utils.columns.LinkPropertyColumn; +import nc.ird.cantharella.web.utils.columns.LinkableImagePropertyColumn; +import nc.ird.cantharella.web.utils.models.SimpleSortableListDataProvider; + +import org.apache.wicket.MarkupContainer; +import org.apache.wicket.ajax.AjaxRequestTarget; +import org.apache.wicket.ajax.markup.html.form.AjaxSubmitLink; +import org.apache.wicket.extensions.ajax.markup.html.repeater.data.table.AjaxFallbackDefaultDataTable; +import org.apache.wicket.extensions.markup.html.repeater.data.grid.ICellPopulator; +import org.apache.wicket.extensions.markup.html.repeater.data.table.DataTable; +import org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn; +import org.apache.wicket.extensions.markup.html.repeater.data.table.PropertyColumn; +import org.apache.wicket.markup.html.WebMarkupContainer; +import org.apache.wicket.markup.html.form.Form; +import org.apache.wicket.markup.html.panel.Panel; +import org.apache.wicket.markup.repeater.Item; +import org.apache.wicket.model.IModel; +import org.apache.wicket.model.Model; +import org.apache.wicket.request.http.WebResponse; + +/** + * Display document list in manage mode. + * + * @author Eric Chatellier + */ +public final class ManageListDocumentsPanel extends Panel { + + /** + * Constructeur. + * @param id ID + * @param documentAttachable entity where documents are attached to + * @param currentPage currentPage + */ + public ManageListDocumentsPanel(String id, final DocumentAttachable documentAttachable, final CallerPage currentPage) { + super(id); + + List<Document> documents = documentAttachable.getDocuments(); + + Form<Void> formView = new Form<Void>("form"); + add(formView); + + // On englobe le "DataView" dans un composant neutre que l'on pourra + // rafraichir quand la liste évoluera + final MarkupContainer attachedDocumentRefresh = new WebMarkupContainer( + "ListDocumentsPage.AttachedDocuments.Refresh"); + attachedDocumentRefresh.setOutputMarkupId(true); + formView.add(attachedDocumentRefresh); + + SimpleSortableListDataProvider<Document> attachedDocumentsDataProvider = new SimpleSortableListDataProvider<Document>( + documents, getSession().getLocale()); + + List<IColumn<Document, String>> columns = new ArrayList<IColumn<Document, String>>(); + + columns.add(new LinkPropertyColumn<Document, String>( + new Model<String>(getString("Document.titre")), "titre", "titre") { + @Override + public void onClick(Item<ICellPopulator<Document>> item, String componentId, IModel<Document> model) { + setResponsePage(new ReadDocumentPage(model.getObject(), documentAttachable, currentPage)); + } + }); + + columns.add(new PropertyColumn<Document, String>(new Model<String>(getString("Document.typeDocument")), + "typeDocument.nom", "typeDocument.nom")); + + columns.add(new PropertyColumn<Document, String>( + new Model<String>(getString("Document.createur")), "createur", "createur")); + + columns.add(new LinkableImagePropertyColumn<Document, String>(new Model<String>(getString("Document.link")), + "images/download.png", getString("Document.link"), + getString("Document.link")) { + @Override + public void onClick(Item<ICellPopulator<Document>> item, String componentId, IModel<Document> model) { + Document document = model.getObject(); + WebResponse response = (WebResponse) getResponse(); + response.setContentType(document.getFileMimetype()); + response.setAttachmentHeader(document.getFileName()); + response.write(document.getFileContent()); + } + }); + + final DataTable<Document, String> attachedDocumentTable = new AjaxFallbackDefaultDataTable<Document, String>( + "ListDocumentsPage.AttachedDocuments", columns, attachedDocumentsDataProvider, WebContext.ROWS_PER_PAGE); + + columns.add(new AjaxButtonPropertyColumn<Document, String>( + new Model<String>(getString("Actions")), new Model<String>(getString("Delete")), formView) { + @Override + public void onSubmit(AjaxRequestTarget target, Form<?> form, IModel<Document> model) { + Document document = model.getObject(); + documentAttachable.removeDocument(document); + + if (target != null) { + target.add(attachedDocumentTable); + } + } + }); + + attachedDocumentRefresh.add(attachedDocumentTable); + + // Action : création d'un nouveau document + // ajaxSubmitLink permet de sauvegarder l'état du formulaire + formView.add(new AjaxSubmitLink("NewDocument") { + @Override + protected void onSubmit(AjaxRequestTarget request, Form<?> form) { + 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, documentAttachable, false)); + } + }.setVisibilityAllowed(true)); + } +} Property changes on: trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/document/panel/ManageListDocumentsPanel.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/document/panel/ReadListDocumentsPanel.html =================================================================== --- trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/document/panel/ReadListDocumentsPanel.html (rev 0) +++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/document/panel/ReadListDocumentsPanel.html 2013-02-21 17:16:19 UTC (rev 149) @@ -0,0 +1,33 @@ +<!-- + #%L + Cantharella :: Web + $Id: ReadPersonnePanel.html 133 2013-02-19 11:02:25Z echatellier $ + $HeadURL: http://svn.forge.codelutin.com/svn/cantharella/trunk/cantharella.web/src/mai... $ + %% + Copyright (C) 2009 - 2012 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% + --> +<!DOCTYPE html> +<html xmlns:wicket="http://wicket.apache.org"> +<body> + <wicket:panel> + <fieldset> + <legend><wicket:message key="ListDocumentsPage.AttachedDocuments" /></legend> + <table cellspacing="0" wicket:id="ListDocumentsPage.AttachedDocuments"/> + </fieldset> + </wicket:panel> +</body> +</html> \ No newline at end of file Added: 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 (rev 0) +++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/document/panel/ReadListDocumentsPanel.java 2013-02-21 17:16:19 UTC (rev 149) @@ -0,0 +1,101 @@ +/* + * #%L + * Cantharella :: Web + * $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.web.pages.domain.document.panel; + +import java.util.ArrayList; +import java.util.List; + +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.domain.document.ReadDocumentPage; +import nc.ird.cantharella.web.utils.CallerPage; +import nc.ird.cantharella.web.utils.columns.LinkPropertyColumn; +import nc.ird.cantharella.web.utils.columns.LinkableImagePropertyColumn; +import nc.ird.cantharella.web.utils.models.SimpleSortableListDataProvider; + +import org.apache.wicket.extensions.ajax.markup.html.repeater.data.table.AjaxFallbackDefaultDataTable; +import org.apache.wicket.extensions.markup.html.repeater.data.grid.ICellPopulator; +import org.apache.wicket.extensions.markup.html.repeater.data.table.DataTable; +import org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn; +import org.apache.wicket.extensions.markup.html.repeater.data.table.PropertyColumn; +import org.apache.wicket.markup.html.panel.Panel; +import org.apache.wicket.markup.repeater.Item; +import org.apache.wicket.model.IModel; +import org.apache.wicket.model.Model; +import org.apache.wicket.request.http.WebResponse; + +/** + * Display document list in manage mode. + * @author Eric Chatellier + */ +public final class ReadListDocumentsPanel extends Panel { + + /** + * Constructeur + * @param id ID + * @param documentAttachable document attachable + * @param currentPage current page + */ + public ReadListDocumentsPanel(String id, final DocumentAttachable documentAttachable, final CallerPage currentPage) { + super(id); + List<Document> documents = documentAttachable.getDocuments(); + + SimpleSortableListDataProvider<Document> attachedDocumentsDataProvider = new SimpleSortableListDataProvider<Document>( + documents, getSession().getLocale()); + + List<IColumn<Document, String>> columns = new ArrayList<IColumn<Document, String>>(); + + columns.add(new LinkPropertyColumn<Document, String>( + new Model<String>(getString("Document.titre")), "titre", "titre") { + @Override + public void onClick(Item<ICellPopulator<Document>> item, String componentId, IModel<Document> model) { + setResponsePage(new ReadDocumentPage(model.getObject(), documentAttachable, currentPage)); + } + }); + + columns.add(new PropertyColumn<Document, String>(new Model<String>(getString("Document.typeDocument")), + "typeDocument.nom", "typeDocument.nom")); + + columns.add(new PropertyColumn<Document, String>( + new Model<String>(getString("Document.createur")), "createur", "createur")); + + columns.add(new LinkableImagePropertyColumn<Document, String>(new Model<String>(getString("Document.link")), + "images/download.png", getString("Document.link"), + getString("Document.link")) { + @Override + public void onClick(Item<ICellPopulator<Document>> item, String componentId, IModel<Document> model) { + + Document document = model.getObject(); + WebResponse response = (WebResponse) getResponse(); + response.setContentType(document.getFileMimetype()); + response.setAttachmentHeader(document.getFileName()); + response.write(document.getFileContent()); + } + }); + + final DataTable<Document, String> attachedDocumentTable = new AjaxFallbackDefaultDataTable<Document, String>( + "ListDocumentsPage.AttachedDocuments", columns, attachedDocumentsDataProvider, WebContext.ROWS_PER_PAGE); + add(attachedDocumentTable); + } +} Property changes on: trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/document/panel/ReadListDocumentsPanel.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Modified: trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/extraction/ListExtractionsPage.java =================================================================== --- trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/extraction/ListExtractionsPage.java 2013-02-21 14:47:28 UTC (rev 148) +++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/extraction/ListExtractionsPage.java 2013-02-21 17:16:19 UTC (rev 149) @@ -30,6 +30,7 @@ import nc.ird.cantharella.web.config.WebContext; import nc.ird.cantharella.web.pages.TemplatePage; import nc.ird.cantharella.web.pages.domain.campagne.ReadCampagnePage; +import nc.ird.cantharella.web.pages.domain.document.DocumentTooltipColumn; import nc.ird.cantharella.web.pages.domain.lot.ReadLotPage; import nc.ird.cantharella.web.utils.CallerPage; import nc.ird.cantharella.web.utils.columns.DecimalPropertyColumn; @@ -164,6 +165,14 @@ columns.add(new ExtraitsColumn(new Model<String>(templatePage.getString("Extraction.extraits")), templatePage .getLocale())); + columns.add(new DocumentTooltipColumn<Extraction, String>(Model.of("")) { + @Override + public void onClick(IModel<Extraction> model) { + int idExtraction = model.getObject().getIdExtraction(); + templatePage.setResponsePage(new ReadExtractionPage(idExtraction, callerPage)); + } + }); + columns.add(new LinkableImagePropertyColumn<Extraction, String>("images/edit.png", templatePage .getString("Update"), templatePage.getString("Update")) { // pas de lien d'édition si l'utilisateur n'a pas les droits Modified: trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/extraction/ManageExtractionPage.html =================================================================== --- trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/extraction/ManageExtractionPage.html 2013-02-21 14:47:28 UTC (rev 148) +++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/extraction/ManageExtractionPage.html 2013-02-21 17:16:19 UTC (rev 149) @@ -134,6 +134,8 @@ </table> </fieldset> + <wicket:panel wicket:id="ManageListDocumentsPanel" /> + <div class="actions"> <input type="submit" wicket:message="value:Submit" wicket:id="Create" /> <input type="submit" wicket:message="value:Submit" wicket:id="Update" /> @@ -142,8 +144,6 @@ </div> </form> - - </wicket:extend> </body> 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-21 14:47:28 UTC (rev 148) +++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/extraction/ManageExtractionPage.java 2013-02-21 17:16:19 UTC (rev 149) @@ -45,6 +45,7 @@ import nc.ird.cantharella.service.utils.normalizers.UniqueFieldNormalizer; import nc.ird.cantharella.service.utils.normalizers.utils.Normalizer; import nc.ird.cantharella.web.pages.TemplatePage; +import nc.ird.cantharella.web.pages.domain.document.panel.ManageListDocumentsPanel; import nc.ird.cantharella.web.pages.domain.lot.ManageLotPage; import nc.ird.cantharella.web.pages.domain.personne.ManagePersonnePage; import nc.ird.cantharella.web.pages.renderers.PersonneRenderer; @@ -223,6 +224,7 @@ super(ManageExtractionPage.class); assert idManip == null || manip == null; this.callerPage = callerPage; + final CallerPage currentPage = new CallerPage(this); this.multipleEntry = multipleEntry; extraitsDeleted = new HashMap<String, Integer>(); @@ -270,6 +272,11 @@ initExtraitsFields(formView); + // add list document panel + ManageListDocumentsPanel manageListDocumentsPanel = new ManageListDocumentsPanel("ManageListDocumentsPanel", + extractionModel.getObject(), currentPage); + formView.add(manageListDocumentsPanel); + // Action : create the extraction Button createButton = new SubmittableButton(ACTION_CREATE, new SubmittableButtonEvents() { @Override Modified: trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/extraction/ReadExtractionPage.html =================================================================== --- trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/extraction/ReadExtractionPage.html 2013-02-21 14:47:28 UTC (rev 148) +++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/extraction/ReadExtractionPage.html 2013-02-21 17:16:19 UTC (rev 149) @@ -114,7 +114,9 @@ </div> </fieldset> - + + <wicket:panel wicket:id="ReadListDocumentsPanel" /> + <form wicket:id="Form"> <div class="actions"> <a class="edit" wicket:id="ReadExtractionPage.Extraction.Update" wicket:message="title:Update"> 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-21 14:47:28 UTC (rev 148) +++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/extraction/ReadExtractionPage.java 2013-02-21 17:16:19 UTC (rev 149) @@ -33,6 +33,7 @@ import nc.ird.cantharella.data.model.Personne; import nc.ird.cantharella.service.services.ExtractionService; import nc.ird.cantharella.web.pages.TemplatePage; +import nc.ird.cantharella.web.pages.domain.document.panel.ReadListDocumentsPanel; import nc.ird.cantharella.web.pages.domain.lot.ReadLotPage; import nc.ird.cantharella.web.pages.domain.personne.ReadPersonnePage; import nc.ird.cantharella.web.utils.CallerPage; @@ -184,6 +185,11 @@ } }); + // add list document panel + ReadListDocumentsPanel readListDocumentsPanel = new ReadListDocumentsPanel("ReadListDocumentsPanel", + extractionModel.getObject(), currentPage); + add(readListDocumentsPanel); + // Formulaire des actions final Form<Void> formView = new Form<Void>("Form"); Modified: trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/lot/ListLotsPage.java =================================================================== --- trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/lot/ListLotsPage.java 2013-02-21 14:47:28 UTC (rev 148) +++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/lot/ListLotsPage.java 2013-02-21 17:16:19 UTC (rev 149) @@ -31,6 +31,7 @@ import nc.ird.cantharella.web.pages.TemplatePage; import nc.ird.cantharella.web.pages.columns.TaxonomyPropertyColumn; import nc.ird.cantharella.web.pages.domain.campagne.ReadCampagnePage; +import nc.ird.cantharella.web.pages.domain.document.DocumentTooltipColumn; import nc.ird.cantharella.web.pages.domain.specimen.ReadSpecimenPage; import nc.ird.cantharella.web.pages.domain.station.ReadStationPage; import nc.ird.cantharella.web.utils.CallerPage; @@ -195,6 +196,14 @@ .getString("Campagne.codePays")), "campagne.codePays", "campagne.codePays", WebContext.COUNTRIES .get(templatePage.getSession().getLocale()))); + columns.add(new DocumentTooltipColumn<Lot, String>(Model.of("")) { + @Override + public void onClick(IModel<Lot> model) { + int idLot = model.getObject().getIdLot(); + templatePage.setResponsePage(new ReadLotPage(idLot, callerPage)); + } + }); + columns.add(new LinkableImagePropertyColumn<Lot, String>("images/edit.png", templatePage.getString("Update"), templatePage.getString("Update")) { // pas de lien d'édition si l'utilisateur n'a pas les droits Modified: trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/lot/ManageLotPage.html =================================================================== --- trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/lot/ManageLotPage.html 2013-02-21 14:47:28 UTC (rev 148) +++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/lot/ManageLotPage.html 2013-02-21 17:16:19 UTC (rev 149) @@ -93,7 +93,9 @@ <label for="Lot.createur"><wicket:message key="Lot.createur" /></label> <input type="text" id="Lot.createur" wicket:id="Lot.createur" disabled="disabled"/> </div> - + + <wicket:panel wicket:id="ManageListDocumentsPanel" /> + <div class="actions"> <input type="submit" wicket:message="value:Submit" wicket:id="Create" /> <input type="submit" wicket:message="value:Submit" wicket:id="Update" /> 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-21 14:47:28 UTC (rev 148) +++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/lot/ManageLotPage.java 2013-02-21 17:16:19 UTC (rev 149) @@ -41,6 +41,7 @@ import nc.ird.cantharella.service.services.SpecimenService; import nc.ird.cantharella.web.pages.TemplatePage; import nc.ird.cantharella.web.pages.domain.campagne.ManageCampagnePage; +import nc.ird.cantharella.web.pages.domain.document.panel.ManageListDocumentsPanel; import nc.ird.cantharella.web.pages.domain.specimen.ManageSpecimenPage; import nc.ird.cantharella.web.utils.CallerPage; import nc.ird.cantharella.web.utils.behaviors.JSConfirmationBehavior; @@ -291,6 +292,11 @@ formView.add(new TextField<String>("Lot.createur", new PropertyModel<String>(lotModel, "createur")) .setEnabled(false)); + // add list document panel + ManageListDocumentsPanel manageListDocumentsPanel = new ManageListDocumentsPanel("ManageListDocumentsPanel", + lotModel.getObject(), currentPage); + formView.add(manageListDocumentsPanel); + // Action : création du lot Button createButton = new SubmittableButton(ACTION_CREATE, new SubmittableButtonEvents() { @Override Modified: trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/lot/ReadLotPage.html =================================================================== --- trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/lot/ReadLotPage.html 2013-02-21 14:47:28 UTC (rev 148) +++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/lot/ReadLotPage.html 2013-02-21 17:16:19 UTC (rev 149) @@ -89,7 +89,9 @@ <span class="label"><wicket:message key="Lot.createur" /></span> <span class="value" wicket:id="Lot.createur"></span> </div> - + + <wicket:panel wicket:id="ReadListDocumentsPanel" /> + <form wicket:id="Form"> <div class="actions"> <a class="edit" wicket:id="ReadLotPage.Lot.Update" wicket:message="title:Update"> 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-21 14:47:28 UTC (rev 148) +++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/lot/ReadLotPage.java 2013-02-21 17:16:19 UTC (rev 149) @@ -31,6 +31,7 @@ import nc.ird.cantharella.service.services.LotService; import nc.ird.cantharella.web.pages.TemplatePage; import nc.ird.cantharella.web.pages.domain.campagne.ReadCampagnePage; +import nc.ird.cantharella.web.pages.domain.document.panel.ReadListDocumentsPanel; import nc.ird.cantharella.web.pages.domain.personne.ReadPersonnePage; import nc.ird.cantharella.web.pages.domain.specimen.ReadSpecimenPage; import nc.ird.cantharella.web.pages.domain.station.ReadStationPage; @@ -139,6 +140,11 @@ } }); + // add list document panel + ReadListDocumentsPanel readListDocumentsPanel = new ReadListDocumentsPanel("ReadListDocumentsPanel", + lotModel.getObject(), currentPage); + add(readListDocumentsPanel); + // Formulaire des actions final Form<Void> formView = new Form<Void>("Form"); Modified: trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/molecule/ManageMoleculePage.html =================================================================== --- trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/molecule/ManageMoleculePage.html 2013-02-21 14:47:28 UTC (rev 148) +++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/molecule/ManageMoleculePage.html 2013-02-21 17:16:19 UTC (rev 149) @@ -179,13 +179,7 @@ </table> </fieldset> - <fieldset> - <legend><wicket:message key="ListDocumentsPage.AttachedDocuments" /></legend> - <div wicket:id="ListDocumentsPage.AttachedDocuments.Refresh"> - <table cellspacing="0" wicket:id="ListDocumentsPage.AttachedDocuments"/> - </div> - <a wicket:id="NewDocument" class="add"><wicket:message key="ListDocumentsPage.NewDocument" /></a> - </fieldset> + <wicket:panel wicket:id="ManageListDocumentsPanel" /> <div class="actions"> <input type="submit" wicket:message="value:Submit" wicket:id="Create" /> 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-21 14:47:28 UTC (rev 148) +++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/molecule/ManageMoleculePage.java 2013-02-21 17:16:19 UTC (rev 149) @@ -42,7 +42,7 @@ import nc.ird.cantharella.service.services.ProduitService; import nc.ird.cantharella.web.pages.TemplatePage; import nc.ird.cantharella.web.pages.domain.campagne.ManageCampagnePage; -import nc.ird.cantharella.web.pages.domain.document.DocumentPageHelper; +import nc.ird.cantharella.web.pages.domain.document.panel.ManageListDocumentsPanel; import nc.ird.cantharella.web.pages.domain.extraction.ReadExtractionPage; import nc.ird.cantharella.web.pages.domain.purification.ReadPurificationPage; import nc.ird.cantharella.web.pages.renderers.ProduitRenderer; @@ -182,7 +182,6 @@ final Form<Void> formView = new Form<Void>("Form"); initProvenanceFields(formView, currentPage); - DocumentPageHelper.initAttachedDocumentsManageTable(this, formView, moleculeModel.getObject(), currentPage); // page can be accessed by anyone for editing provenance // but molecule fields can be edited only by administrators or @@ -276,7 +275,12 @@ formView.add(new TextField<String>("Molecule.createur", new PropertyModel<String>(moleculeModel, "createur")) .setEnabled(false)); - // Action : création du lot + // add list document panel + ManageListDocumentsPanel manageListDocumentsPanel = new ManageListDocumentsPanel("ManageListDocumentsPanel", + moleculeModel.getObject(), currentPage); + formView.add(manageListDocumentsPanel); + + // Action : create molecule Button createButton = new SubmittableButton(ACTION_CREATE, new SubmittableButtonEvents() { @Override public void onProcess() throws DataConstraintException { Modified: trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/molecule/ReadMoleculePage.html =================================================================== --- trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/molecule/ReadMoleculePage.html 2013-02-21 14:47:28 UTC (rev 148) +++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/molecule/ReadMoleculePage.html 2013-02-21 17:16:19 UTC (rev 149) @@ -152,10 +152,7 @@ </div> </fieldset> - <fieldset> - <legend><wicket:message key="ListDocumentsPage.AttachedDocuments" /></legend> - <table cellspacing="0" wicket:id="ListDocumentsPage.AttachedDocuments"/> - </fieldset> + <wicket:panel wicket:id="ReadListDocumentsPanel" /> <form wicket:id="Form"> <div class="actions"> 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-21 14:47:28 UTC (rev 148) +++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/molecule/ReadMoleculePage.java 2013-02-21 17:16:19 UTC (rev 149) @@ -35,7 +35,7 @@ import nc.ird.cantharella.data.model.Produit; import nc.ird.cantharella.service.services.MoleculeService; import nc.ird.cantharella.web.pages.TemplatePage; -import nc.ird.cantharella.web.pages.domain.document.DocumentPageHelper; +import nc.ird.cantharella.web.pages.domain.document.panel.ReadListDocumentsPanel; import nc.ird.cantharella.web.pages.domain.extraction.ReadExtractionPage; import nc.ird.cantharella.web.pages.domain.lot.ManageLotPage; import nc.ird.cantharella.web.pages.domain.personne.ReadPersonnePage; @@ -108,7 +108,6 @@ moleculeModel = new GenericLoadableDetachableModel<Molecule>(Molecule.class, idMolecule); initProvenanceFields(currentPage); - DocumentPageHelper.initAttachedDocumentsReadTable(this, moleculeModel.getObject(), currentPage); add(new Label("Molecule.idMolecule", new PropertyModel<String>(moleculeModel, "idMolecule"))); add(new Label("Molecule.nomCommun", new PropertyModel<String>(moleculeModel, "nomCommun")) @@ -151,6 +150,11 @@ } }); + // add list document panel + ReadListDocumentsPanel readListDocumentsPanel = new ReadListDocumentsPanel("ReadListDocumentsPanel", + moleculeModel.getObject(), currentPage); + add(readListDocumentsPanel); + // Formulaire des actions final Form<Void> formView = new Form<Void>("Form"); Modified: trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/personne/ListPersonnesPage.java =================================================================== --- trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/personne/ListPersonnesPage.java 2013-02-21 14:47:28 UTC (rev 148) +++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/personne/ListPersonnesPage.java 2013-02-21 17:16:19 UTC (rev 149) @@ -31,6 +31,7 @@ import nc.ird.cantharella.service.services.PersonneService; import nc.ird.cantharella.web.config.WebContext; import nc.ird.cantharella.web.pages.TemplatePage; +import nc.ird.cantharella.web.pages.domain.document.DocumentTooltipColumn; import nc.ird.cantharella.web.pages.domain.utilisateur.ManageUtilisateurPage; import nc.ird.cantharella.web.pages.domain.utilisateur.ReadUtilisateurPage; import nc.ird.cantharella.web.pages.domain.utilisateur.UpdateUtilisateurPage; @@ -151,6 +152,14 @@ } }); + columns.add(new DocumentTooltipColumn<Personne, String>(Model.of("")) { + @Override + public void onClick(IModel<Personne> model) { + int idPersonne = model.getObject().getIdPersonne(); + setResponsePage(new ReadPersonnePage(idPersonne, currentPage)); + } + }); + columns.add(new LinkableImagePropertyColumn<Personne, String>("images/edit.png", getString("Update"), getString("Update")) { Modified: trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/personne/ManagePersonnePage.html =================================================================== --- trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/personne/ManagePersonnePage.html 2013-02-21 14:47:28 UTC (rev 148) +++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/personne/ManagePersonnePage.html 2013-02-21 17:16:19 UTC (rev 149) @@ -28,7 +28,9 @@ <form wicket:id="Form"> <wicket:panel wicket:id="ManagePersonnePanel" /> - + + <wicket:panel wicket:id="ManageListDocumentsPanel" /> + <div class="actions"> <input type="submit" wicket:message="value:Submit" wicket:id="Create" /> <input type="submit" wicket:message="value:Submit" wicket:id="Update" /> 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-21 14:47:28 UTC (rev 148) +++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/personne/ManagePersonnePage.java 2013-02-21 17:16:19 UTC (rev 149) @@ -30,6 +30,7 @@ import nc.ird.cantharella.service.exceptions.EmailException; import nc.ird.cantharella.service.services.PersonneService; import nc.ird.cantharella.web.pages.TemplatePage; +import nc.ird.cantharella.web.pages.domain.document.panel.ManageListDocumentsPanel; import nc.ird.cantharella.web.pages.domain.personne.panels.ManagePersonnePanel; import nc.ird.cantharella.web.utils.CallerPage; import nc.ird.cantharella.web.utils.behaviors.JSConfirmationBehavior; @@ -123,6 +124,7 @@ super(ManagePersonnePage.class); assert idPersonne == null || personne == null; this.callerPage = callerPage; + final CallerPage currentPage = new CallerPage(this); this.multipleEntry = multipleEntry; // Initialisation du modèle @@ -140,6 +142,11 @@ final ManagePersonnePanel personnePanel = new ManagePersonnePanel("ManagePersonnePanel", personneModel); formView.add(personnePanel); + // add list document panel + ManageListDocumentsPanel manageListDocumentsPanel = new ManageListDocumentsPanel("ManageListDocumentsPanel", + personneModel.getObject(), currentPage); + formView.add(manageListDocumentsPanel); + // Action : création de la personne Button createButton = new SubmittableButton(ACTION_CREATE, new SubmittableButtonEvents() { @Override Modified: trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/personne/ReadPersonnePage.html =================================================================== --- trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/personne/ReadPersonnePage.html 2013-02-21 14:47:28 UTC (rev 148) +++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/personne/ReadPersonnePage.html 2013-02-21 17:16:19 UTC (rev 149) @@ -28,7 +28,9 @@ <div id="sheet"> <wicket:panel wicket:id="ReadPersonnePanel" /> - + + <wicket:panel wicket:id="ReadListDocumentsPanel" /> + <form wicket:id="Form"> <div class="actions"> <a class="edit" wicket:id="ReadPersonnePage.Personne.Update" wicket:message="title:Update"> 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-21 14:47:28 UTC (rev 148) +++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/personne/ReadPersonnePage.java 2013-02-21 17:16:19 UTC (rev 149) @@ -26,6 +26,7 @@ import nc.ird.cantharella.data.model.Personne; import nc.ird.cantharella.service.services.PersonneService; import nc.ird.cantharella.web.pages.TemplatePage; +import nc.ird.cantharella.web.pages.domain.document.panel.ReadListDocumentsPanel; import nc.ird.cantharella.web.pages.domain.personne.panels.ReadPersonnePanel; import nc.ird.cantharella.web.utils.CallerPage; import nc.ird.cantharella.web.utils.behaviors.JSConfirmationBehavior; @@ -84,6 +85,11 @@ final ReadPersonnePanel personnePanel = new ReadPersonnePanel("ReadPersonnePanel", personneModel); add(personnePanel); + // add list document panel + ReadListDocumentsPanel readListDocumentsPanel = new ReadListDocumentsPanel("ReadListDocumentsPanel", + personneModel.getObject(), currentPage); + add(readListDocumentsPanel); + // Action : mise à jour (redirection vers le formulaire) Link<Personne> updateLink = new Link<Personne>(getResource() + ".Personne.Update", new Model<Personne>(personne)) { Modified: trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/purification/ListPurificationsPage.java =================================================================== --- trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/purification/ListPurificationsPage.java 2013-02-21 14:47:28 UTC (rev 148) +++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/purification/ListPurificationsPage.java 2013-02-21 17:16:19 UTC (rev 149) @@ -33,6 +33,7 @@ import nc.ird.cantharella.web.pages.TemplatePage; import nc.ird.cantharella.web.pages.columns.LinkProduitPropertyColumn; import nc.ird.cantharella.web.pages.domain.campagne.ReadCampagnePage; +import nc.ird.cantharella.web.pages.domain.document.DocumentTooltipColumn; import nc.ird.cantharella.web.pages.domain.extraction.ReadExtractionPage; import nc.ird.cantharella.web.pages.domain.lot.ReadLotPage; import nc.ird.cantharella.web.utils.CallerPage; @@ -176,6 +177,14 @@ } }); + columns.add(new DocumentTooltipColumn<Purification, String>(Model.of("")) { + @Override + public void onClick(IModel<Purification> model) { + int idPurification = model.getObject().getIdPurification(); + templatePage.setResponsePage(new ReadPurificationPage(idPurification, callerPage)); + } + }); + columns.add(new LinkableImagePropertyColumn<Purification, String>("images/edit.png", templatePage .getString("Update"), templatePage.getString("Update")) { // pas de lien d'édition si l'utilisateur n'a pas les droits Modified: trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/purification/ManagePurificationPage.html =================================================================== --- trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/purification/ManagePurificationPage.html 2013-02-21 14:47:28 UTC (rev 148) +++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/purification/ManagePurificationPage.html 2013-02-21 17:16:19 UTC (rev 149) @@ -142,6 +142,8 @@ </table> </fieldset> + <wicket:panel wicket:id="ManageListDocumentsPanel" /> + <div class="actions"> <input type="submit" wicket:message="value:Submit" wicket:id="Create" /> <input type="submit" wicket:message="value:Submit" wicket:id="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-21 14:47:28 UTC (rev 148) +++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/purification/ManagePurificationPage.java 2013-02-21 17:16:19 UTC (rev 149) @@ -43,6 +43,7 @@ import nc.ird.cantharella.service.utils.normalizers.UniqueFieldNormalizer; import nc.ird.cantharella.service.utils.normalizers.utils.Normalizer; import nc.ird.cantharella.web.pages.TemplatePage; +import nc.ird.cantharella.web.pages.domain.document.panel.ManageListDocumentsPanel; import nc.ird.cantharella.web.pages.domain.personne.ManagePersonnePage; import nc.ird.cantharella.web.pages.renderers.PersonneRenderer; import nc.ird.cantharella.web.utils.CallerPage; @@ -203,6 +204,7 @@ super(ManagePurificationPage.class); assert idManip == null || manip == null; this.callerPage = callerPage; + final CallerPage currentPage = new CallerPage(this); this.multipleEntry = multipleEntry; fractionsDeleted = new HashMap<String, Integer>(); @@ -244,6 +246,11 @@ initMethodeFields(formView); initFractionsFields(formView); + // add list document panel + ManageListDocumentsPanel manageListDocumentsPanel = new ManageListDocumentsPanel("ManageListDocumentsPanel", + purificationModel.getObject(), currentPage); + formView.add(manageListDocumentsPanel); + // Action : create the purification Button createButton = new SubmittableButton(ACTION_CREATE, new SubmittableButtonEvents() { @Override Modified: trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/purification/ReadPurificationPage.html =================================================================== --- trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/purification/ReadPurificationPage.html 2013-02-21 14:47:28 UTC (rev 148) +++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/purification/ReadPurificationPage.html 2013-02-21 17:16:19 UTC (rev 149) @@ -122,7 +122,9 @@ <span class="value"><wicket:message key="List.none" /></span> </div> </fieldset> - + + <wicket:panel wicket:id="ReadListDocumentsPanel" /> + <form wicket:id="Form"> <div class="actions"> <a class="edit" wicket:id="ReadPurificationPage.Purification.Update" wicket:message="title:Update"> 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-21 14:47:28 UTC (rev 148) +++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/purification/ReadPurificationPage.java 2013-02-21 17:16:19 UTC (rev 149) @@ -36,6 +36,7 @@ import nc.ird.cantharella.data.model.Purification; import nc.ird.cantharella.service.services.PurificationService; import nc.ird.cantharella.web.pages.TemplatePage; +import nc.ird.cantharella.web.pages.domain.document.panel.ReadListDocumentsPanel; import nc.ird.cantharella.web.pages.domain.extraction.ReadExtractionPage; import nc.ird.cantharella.web.pages.domain.personne.ReadPersonnePage; import nc.ird.cantharella.web.utils.CallerPage; @@ -233,6 +234,11 @@ } }); + // add list document panel + ReadListDocumentsPanel readListDocumentsPanel = new ReadListDocumentsPanel("ReadListDocumentsPanel", + purificationModel.getObject(), currentPage); + add(readListDocumentsPanel); + // Formulaire des actions final Form<Void> formView = new Form<Void>("Form"); Modified: trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/specimen/ListSpecimensPage.java =================================================================== --- trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/specimen/ListSpecimensPage.java 2013-02-21 14:47:28 UTC (rev 148) +++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/specimen/ListSpecimensPage.java 2013-02-21 17:16:19 UTC (rev 149) @@ -30,6 +30,7 @@ import nc.ird.cantharella.web.config.WebContext; import nc.ird.cantharella.web.pages.TemplatePage; import nc.ird.cantharella.web.pages.columns.TaxonomyPropertyColumn; +import nc.ird.cantharella.web.pages.domain.document.DocumentTooltipColumn; import nc.ird.cantharella.web.pages.domain.station.ReadStationPage; import nc.ird.cantharella.web.utils.CallerPage; import nc.ird.cantharella.web.utils.columns.EnumPropertyColumn; @@ -155,6 +156,14 @@ } }); + columns.add(new DocumentTooltipColumn<Specimen, String>(Model.of("")) { + @Override + public void onClick(IModel<Specimen> model) { + int idSpecimen = model.getObject().getIdSpecimen(); + templatePage.setResponsePage(new ReadSpecimenPage(idSpecimen, callerPage)); + } + }); + columns.add(new LinkableImagePropertyColumn<Specimen, String>("images/edit.png", templatePage .getString("Update"), templatePage.getString("Update")) { // pas de lien d'édition si l'utilisateur n'a pas les droits Modified: trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/specimen/ManageSpecimenPage.html =================================================================== --- trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/specimen/ManageSpecimenPage.html 2013-02-21 14:47:28 UTC (rev 148) +++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/specimen/ManageSpecimenPage.html 2013-02-21 17:16:19 UTC (rev 149) @@ -105,7 +105,8 @@ </div> </fieldset> - + <wicket:panel wicket:id="ManageListDocumentsPanel" /> + <div class="actions"> <input type="submit" wicket:message="value:Submit" wicket:id="Create" /> <input type="submit" wicket:message="value:Submit" wicket:id="Update" /> 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-21 14:47:28 UTC (rev 148) +++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/specimen/ManageSpecimenPage.java 2013-02-21 17:16:19 UTC (rev 149) @@ -38,6 +38,7 @@ import nc.ird.cantharella.service.services.SpecimenService; import nc.ird.cantharella.service.services.StationService; import nc.ird.cantharella.web.pages.TemplatePage; +import nc.ird.cantharella.web.pages.domain.document.panel.ManageListDocumentsPanel; import nc.ird.cantharella.web.pages.domain.personne.ManagePersonnePage; import nc.ird.cantharella.web.pages.domain.station.ManageStationPage; import nc.ird.cantharella.web.pages.renderers.PersonneRenderer; @@ -279,6 +280,11 @@ formView.add(new AutoCompleteTextFieldString("Specimen.lieuDepot", new PropertyModel<String>(specimenModel, "lieuDepot"), lieuxDepot, ComparisonMode.CONTAINS)); + // add list document panel + ManageListDocumentsPanel manageListDocumentsPanel = new ManageListDocumentsPanel("ManageListDocumentsPanel", + specimenModel.getObject(), currentPage); + formView.add(manageListDocumentsPanel); + // Action : création du specimen Button createButton = new SubmittableButton(ACTION_CREATE, new SubmittableButtonEvents() { @Override Modified: trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/specimen/ReadSpecimenPage.html =================================================================== --- trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/specimen/ReadSpecimenPage.html 2013-02-21 14:47:28 UTC (rev 148) +++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/specimen/ReadSpecimenPage.html 2013-02-21 17:16:19 UTC (rev 149) @@ -101,7 +101,9 @@ <span class="value" wicket:id="Specimen.lieuDepot" ></span> </div> </fieldset> - + + <wicket:panel wicket:id="ReadListDocumentsPanel" /> + <form wicket:id="Form"> <div class="actions"> <a class="edit" wicket:id="ReadSpecimenPage.Specimen.Update" wicket:message="title:Update"> 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-21 14:47:28 UTC (rev 148) +++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/specimen/ReadSpecimenPage.java 2013-02-21 17:16:19 UTC (rev 149) @@ -30,6 +30,7 @@ import nc.ird.cantharella.data.model.Station; import nc.ird.cantharella.service.services.SpecimenService; import nc.ird.cantharella.web.pages.TemplatePage; +import nc.ird.cantharella.web.pages.domain.document.panel.ReadListDocumentsPanel; import nc.ird.cantharella.web.pages.domain.personne.ReadPersonnePage; import nc.ird.cantharella.web.pages.domain.station.ReadStationPage; import nc.ird.cantharella.web.utils.CallerPage; @@ -143,6 +144,11 @@ add(new Label("Specimen.lieuDepot", new PropertyModel<String>(specimenModel, "lieuDepot")) .add(new ReplaceEmptyLabelBehavior())); + // add list document panel + ReadListDocumentsPanel readListDocumentsPanel = new ReadListDocumentsPanel("ReadListDocumentsPanel", + specimenModel.getObject(), currentPage); + add(readListDocumentsPanel); + final Form<Void> formView = new Form<Void>("Form"); // Action : mise à jour Modified: trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/station/ListStationsPage.java =================================================================== --- trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/station/ListStationsPage.java 2013-02-21 14:47:28 UTC (rev 148) +++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/station/ListStationsPage.java 2013-02-21 17:16:19 UTC (rev 149) @@ -29,6 +29,7 @@ import nc.ird.cantharella.service.services.StationService; import nc.ird.cantharella.web.config.WebContext; import nc.ird.cantharella.web.pages.TemplatePage; +import nc.ird.cantharella.web.pages.domain.document.DocumentTooltipColumn; import nc.ird.cantharella.web.utils.CallerPage; import nc.ird.cantharella.web.utils.columns.LinkPropertyColumn; import nc.ird.cantharella.web.utils.columns.LinkableImagePropertyColumn; @@ -145,6 +146,14 @@ columns.add(new PropertyColumn<Station, String>(new Model<String>(templatePage.getString("Station.longitude")), "longitude", "longitude")); + columns.add(new DocumentTooltipColumn<Station, String>(Model.of("")) { + @Override + public void onClick(IModel<Station> model) { + int idStation = model.getObject().getIdStation(); + templatePage.setResponsePage(new ReadStationPage(idStation, callerPage)); + } + }); + columns.add(new LinkableImagePropertyColumn<Station, String>("images/edit.png", templatePage .getString("Update"), templatePage.getString("Update")) { // pas de lien d'édition si l'utilisateur n'a pas les droits Modified: trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/station/ManageStationPage.html =================================================================== --- trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/station/ManageStationPage.html 2013-02-21 14:47:28 UTC (rev 148) +++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/station/ManageStationPage.html 2013-02-21 17:16:19 UTC (rev 149) @@ -75,7 +75,9 @@ <select id="Station.referentiel" wicket:id="Station.referentiel" /> </div> </fieldset> - + + <wicket:panel wicket:id="ManageListDocumentsPanel" /> + <div class="actions"> <input type="submit" wicket:message="value:Submit" wicket:id="Create" /> <input type="submit" wicket:message="value:Submit" wicket:id="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-21 14:47:28 UTC (rev 148) +++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/station/ManageStationPage.java 2013-02-21 17:16:19 UTC (rev 149) @@ -35,6 +35,7 @@ import nc.ird.cantharella.service.services.StationService; import nc.ird.cantharella.web.config.WebContext; import nc.ird.cantharella.web.pages.TemplatePage; +import nc.ird.cantharella.web.pages.domain.document.panel.ManageListDocumentsPanel; import nc.ird.cantharella.web.pages.model.ManageStationModel; import nc.ird.cantharella.web.utils.CallerPage; import nc.ird.cantharella.web.utils.behaviors.JSConfirmationBehavior; @@ -142,6 +143,7 @@ super(ManageStationPage.class); assert idStation == null || station == null; this.callerPage = callerPage; + final CallerPage currentPage = new CallerPage(this); this.multipleEntry = multipleEntry; // Initialisation du modèle @@ -224,6 +226,11 @@ "referentiel"), WebContext.REFERENTIEL_CODES, new MapChoiceRenderer<Integer, String>( DataContext.REFERENTIELS))); + // add list document panel + ManageListDocumentsPanel manageListDocumentsPanel = new ManageListDocumentsPanel("ManageListDocumentsPanel", + stationModel.getObject(), currentPage); + formView.add(manageListDocumentsPanel); + Button createButton = new SubmittableButton(ACTION_CREATE, new SubmittableButtonEvents() { @Override public void onProcess() throws DataConstraintException { Modified: trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/station/ReadStationPage.html =================================================================== --- trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/station/ReadStationPage.html 2013-02-21 14:47:28 UTC (rev 148) +++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/station/ReadStationPage.html 2013-02-21 17:16:19 UTC (rev 149) @@ -65,6 +65,9 @@ <span class="value" wicket:id="Station.referentiel" ></span> </div> </fieldset> + + <wicket:panel wicket:id="ReadListDocumentsPanel" /> + <form wicket:id="Form"> <div class="actions"> <a class="edit" wicket:id="ReadStationPage.Station.Update" wicket:message="title:Update"> 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-21 14:47:28 UTC (rev 148) +++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/station/ReadStationPage.java 2013-02-21 17:16:19 UTC (rev 149) @@ -29,6 +29,7 @@ import nc.ird.cantharella.service.services.StationService; import nc.ird.cantharella.web.config.WebContext; import nc.ird.cantharella.web.pages.TemplatePage; +import nc.ird.cantharella.web.pages.domain.document.panel.ReadListDocumentsPanel; import nc.ird.cantharella.web.pages.domain.personne.ReadPersonnePage; import nc.ird.cantharella.web.utils.CallerPage; import nc.ird.cantharella.web.utils.behaviors.JSConfirmationBehavior; @@ -108,6 +109,11 @@ add(new Label("Station.referentiel", new DisplayMapValuePropertyModel<Integer>(stationModel, "referentiel", DataContext.REFERENTIELS)).add(new ReplaceEmptyLabelBehavior())); + // add list document panel + ReadListDocumentsPanel readListDocumentsPanel = new ReadListDocumentsPanel("ReadListDocumentsPanel", + stationModel.getObject(), currentPage); + add(readListDocumentsPanel); + // Ajout du formulaire pour les actions Form<Void> formView = new Form<Void>("Form"); Modified: trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/testBio/ListTestsBioPage.java =================================================================== --- trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/testBio/ListTestsBioPage.java 2013-02-21 14:47:28 UTC (rev 148) +++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/testBio/ListTestsBioPage.java 2013-02-21 17:16:19 UTC (rev 149) @@ -33,6 +33,7 @@ import nc.ird.cantharella.web.pages.TemplatePage; import nc.ird.cantharella.web.pages.columns.LinkProduitPropertyColumn; import nc.ird.cantharella.web.pages.columns.TaxonomyPropertyColumn; +import nc.ird.cantharella.web.pages.domain.document.DocumentTooltipColumn; import nc.ird.cantharella.web.pages.domain.extraction.ReadExtractionPage; import nc.ird.cantharella.web.pages.domain.purification.ReadPurificationPage; import nc.ird.cantharella.web.utils.CallerPage; @@ -198,6 +199,14 @@ } }); + columns.add(new DocumentTooltipColumn<ResultatTestBio, String>(Model.of("")) { + @Override + public void onClick(IModel<ResultatTestBio> model) { + int idTestBio = model.getObject().getTestBio().getIdTestBio(); + templatePage.setResponsePage(new ReadTestBioPage(idTestBio, callerPage)); + } + }); + columns.add(new LinkableImagePropertyColumn<ResultatTestBio, String>("images/edit.png", templatePage .getString("Update"), templatePage.getString("Update")) { // pas de lien d'édition si l'utilisateur n'a pas les droits Modified: trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/testBio/ManageTestBioPage.html =================================================================== --- trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/testBio/ManageTestBioPage.html 2013-02-21 14:47:28 UTC (rev 148) +++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/testBio/ManageTestBioPage.html 2013-02-21 17:16:19 UTC (rev 149) @@ -208,6 +208,8 @@ </table> </fieldset> + <wicket:panel wicket:id="ManageListDocumentsPanel" /> + <div class="actions"> <input type="submit" wicket:message="value:Submit" wicket:id="Create" /> <input type="submit" wicket:message="value:Submit" wicket:id="Update" /> 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-21 14:47:28 UTC (rev 148) +++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/testBio/ManageTestBioPage.java 2013-02-21 17:16:19 UTC (rev 149) @@ -49,6 +49,7 @@ import nc.ird.cantharella.service.utils.normalizers.UniqueFieldNormalizer; import nc.ird.cantharella.service.utils.normalizers.utils.Normalizer; import nc.ird.cantharella.web.pages.TemplatePage; +import nc.ird.cantharella.web.pages.domain.document.panel.ManageListDocumentsPanel; import nc.ird.cantharella.web.pages.domain.personne.ManagePersonnePage; import nc.ird.cantharella.web.pages.renderers.PersonneRenderer; import nc.ird.cantharella.web.utils.CallerPage; @@ -228,6 +229,7 @@ super(ManageTestBioPage.class); assert idManip == null || manip == null; this.callerPage = callerPage; + final CallerPage currentPage = new CallerPage(this); this.multipleEntry = multipleEntry; newResultatModel = new Model<ResultatTestBio>(new ResultatTestBio()); @@ -275,6 +277,11 @@ initMethodeFields(formView); initResultatsFields(formView); + // add list document panel + ManageListDocumentsPanel manageListDocumentsPanel = new ManageListDocumentsPanel("ManageListDocumentsPanel", + testBioModel.getObject(), currentPage); + formView.add(manageListDocumentsPanel); + // Action : create the testBio Button createButton = new SubmittableButton(ACTION_CREATE, new SubmittableButtonEvents() { @Override Modified: trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/testBio/ReadTestBioPage.html =================================================================== --- trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/testBio/ReadTestBioPage.html 2013-02-21 14:47:28 UTC (rev 148) +++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/testBio/ReadTestBioPage.html 2013-02-21 17:16:19 UTC (rev 149) @@ -170,6 +170,8 @@ </fieldset> + <wicket:panel wicket:id="ReadListDocumentsPanel" /> + <form wicket:id="Form"> <div class="actions"> 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-21 14:47:28 UTC (rev 148) +++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/testBio/ReadTestBioPage.java 2013-02-21 17:16:19 UTC (rev 149) @@ -36,6 +36,7 @@ import nc.ird.cantharella.data.model.TestBio; import nc.ird.cantharella.service.services.TestBioService; import nc.ird.cantharella.web.pages.TemplatePage; +import nc.ird.cantharella.web.pages.domain.document.panel.ReadListDocumentsPanel; import nc.ird.cantharella.web.pages.domain.extraction.ReadExtractionPage; import nc.ird.cantharella.web.pages.domain.personne.ReadPersonnePage; import nc.ird.cantharella.web.pages.domain.purification.ReadPurificationPage; @@ -117,6 +118,11 @@ initTestMethodFields(idTestBio); initResultsFields(idTestBio, currentPage); + // add list document panel + ReadListDocumentsPanel readListDocumentsPanel = new ReadListDocumentsPanel("ReadListDocumentsPanel", + testBioModel.getObject(), currentPage); + add(readListDocumentsPanel); + // Ajout du formulaire pour les actions Form<Void> formView = new Form<Void>("Form"); Added: trunk/cantharella.web/src/main/webapp/images/open_folder_yellow.png =================================================================== (Binary files differ) Property changes on: trunk/cantharella.web/src/main/webapp/images/open_folder_yellow.png ___________________________________________________________________ Added: svn:mime-type + image/png