Author: echatellier Date: 2013-02-25 17:01:45 +0100 (Mon, 25 Feb 2013) New Revision: 157 Url: http://forge.codelutin.com/projects/cantharella/repository/revisions/157 Log: Use wicket model to allow data reloading on back link 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/document/panel/ManageListDocumentsPanel.java trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/document/panel/ReadListDocumentsPanel.java trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/extraction/ReadExtractionPage.java trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/lot/ReadLotPage.java trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/molecule/ManageMoleculePage.java trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/molecule/ReadMoleculePage.java trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/personne/ReadPersonnePage.java trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/purification/ReadPurificationPage.java trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/specimen/ReadSpecimenPage.java trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/station/ReadStationPage.java trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/testBio/ReadTestBioPage.java 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-25 15:02:42 UTC (rev 156) +++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/campagne/ReadCampagnePage.java 2013-02-25 16:01:45 UTC (rev 157) @@ -137,7 +137,7 @@ // add list document panel ReadListDocumentsPanel readListDocumentsPanel = new ReadListDocumentsPanel("ReadListDocumentsPanel", - campagneModel.getObject(), currentPage); + campagneModel, currentPage); add(readListDocumentsPanel); // Ajout du formulaire pour les actions Modified: trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/document/panel/ManageListDocumentsPanel.java =================================================================== --- trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/document/panel/ManageListDocumentsPanel.java 2013-02-25 15:02:42 UTC (rev 156) +++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/document/panel/ManageListDocumentsPanel.java 2013-02-25 16:01:45 UTC (rev 157) @@ -88,15 +88,15 @@ setResponsePage(new ReadDocumentPage(documentModel.getObject(), documentAttachable, currentPage)); } }; - documentLink.add(new Label("Document.titre.Label.List", new PropertyModel<Document>(documentModel, "titre"))); + documentLink.add(new Label("Document.titre.Label.List", new PropertyModel<Document>(documentModel, + "titre"))); item.add(documentLink); item.add(new Label("Document.typeDocument.List", new PropertyModel<String>(documentModel, "typeDocument.nom"))); - item.add(new Label("Document.createur.List", new PropertyModel<String>(documentModel, - "createur"))); + item.add(new Label("Document.createur.List", new PropertyModel<String>(documentModel, "createur"))); item.add(new DocumentLinkPanel("Document.link.List", documentModel)); - + item.add(new AjaxButton("Document.Delete.List", Model.of(getString("Delete"))) { @Override protected void onSubmit(AjaxRequestTarget target, Form<?> form) { @@ -107,11 +107,11 @@ target.add(documentsTable); } } - }); + }); } }; documentsTable.add(documentsListView); - + documentsTable.add(new AjaxSubmitLink("NewDocument") { @Override protected void onSubmit(AjaxRequestTarget request, Form<?> form) { Modified: trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/document/panel/ReadListDocumentsPanel.java =================================================================== --- trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/document/panel/ReadListDocumentsPanel.java 2013-02-25 15:02:42 UTC (rev 156) +++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/document/panel/ReadListDocumentsPanel.java 2013-02-25 16:01:45 UTC (rev 157) @@ -38,7 +38,10 @@ import org.apache.wicket.markup.html.list.ListView; import org.apache.wicket.markup.html.panel.Panel; import org.apache.wicket.model.IModel; +import org.apache.wicket.model.LoadableDetachableModel; import org.apache.wicket.model.PropertyModel; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * Display document list in manage mode. @@ -46,23 +49,35 @@ */ public final class ReadListDocumentsPanel extends Panel { + /** Logger */ + private static final Logger LOG = LoggerFactory.getLogger(ReadListDocumentsPanel.class); + /** * Constructeur * @param id ID - * @param documentAttachable document attachable + * @param documentAttachableModel document attachable * @param currentPage current page */ - public ReadListDocumentsPanel(String id, final DocumentAttachable documentAttachable, final CallerPage currentPage) { + public ReadListDocumentsPanel(String id, final IModel<? extends DocumentAttachable> documentAttachableModel, + final CallerPage currentPage) { super(id); - final List<Document> documents = documentAttachable.getDocuments(); final MarkupContainer documentsTable = new WebMarkupContainer("ListDocumentsPage.AttachedDocuments.Table"); documentsTable.setOutputMarkupId(true); add(documentsTable); + // Model de liste des provenances + final LoadableDetachableModel<List<Document>> listProvenanceModel = new LoadableDetachableModel<List<Document>>() { + @Override + protected List<Document> load() { + LOG.debug("Reloading attached documents list"); + return documentAttachableModel.getObject().getDocuments(); + } + }; + // Contenu tableaux provenance ListView<Document> documentsListView = new ListView<Document>("ListDocumentsPage.AttachedDocuments.List", - documents) { + listProvenanceModel) { @Override protected void populateItem(ListItem<Document> item) { if (item.getIndex() % 2 == 1) { @@ -74,27 +89,28 @@ Link<Document> documentLink = new Link<Document>("Document.titre.List") { @Override public void onClick() { - setResponsePage(new ReadDocumentPage(documentModel.getObject(), documentAttachable, currentPage)); + setResponsePage(new ReadDocumentPage(documentModel.getObject(), documentAttachableModel + .getObject(), currentPage)); } }; - documentLink.add(new Label("Document.titre.Label.List", new PropertyModel<Document>(documentModel, "titre"))); + documentLink.add(new Label("Document.titre.Label.List", new PropertyModel<Document>(documentModel, + "titre"))); item.add(documentLink); item.add(new Label("Document.typeDocument.List", new PropertyModel<String>(documentModel, "typeDocument.nom"))); - item.add(new Label("Document.createur.List", new PropertyModel<String>(documentModel, - "createur"))); + item.add(new Label("Document.createur.List", new PropertyModel<String>(documentModel, "createur"))); item.add(new DocumentLinkPanel("Document.link.List", documentModel)); - + } }; documentsTable.add(documentsListView); - + // Selon la non existence d'elements dans la liste on affiche le span MarkupContainer noTableDocuments = new WebMarkupContainer("ListDocumentsPage.AttachedDocuments.noTable") { @Override public boolean isVisible() { - return documents.isEmpty(); + return listProvenanceModel.getObject().isEmpty(); } }; add(noTableDocuments); 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-25 15:02:42 UTC (rev 156) +++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/extraction/ReadExtractionPage.java 2013-02-25 16:01:45 UTC (rev 157) @@ -187,7 +187,7 @@ // add list document panel ReadListDocumentsPanel readListDocumentsPanel = new ReadListDocumentsPanel("ReadListDocumentsPanel", - extractionModel.getObject(), currentPage); + extractionModel, currentPage); add(readListDocumentsPanel); // Formulaire des actions 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-25 15:02:42 UTC (rev 156) +++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/lot/ReadLotPage.java 2013-02-25 16:01:45 UTC (rev 157) @@ -141,8 +141,8 @@ }); // add list document panel - ReadListDocumentsPanel readListDocumentsPanel = new ReadListDocumentsPanel("ReadListDocumentsPanel", lotModel - .getObject(), currentPage); + ReadListDocumentsPanel readListDocumentsPanel = new ReadListDocumentsPanel("ReadListDocumentsPanel", lotModel, + currentPage); add(readListDocumentsPanel); // Formulaire des actions Modified: trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/molecule/ManageMoleculePage.java =================================================================== --- trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/molecule/ManageMoleculePage.java 2013-02-25 15:02:42 UTC (rev 156) +++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/molecule/ManageMoleculePage.java 2013-02-25 16:01:45 UTC (rev 157) @@ -360,7 +360,6 @@ // Déclaration tableau des provenances final MarkupContainer provenanceTable = new WebMarkupContainer("Molecule.provenance.Table"); provenanceTable.setOutputMarkupId(true); - final WebMarkupContainer resultNotAccessibleCont = new WebMarkupContainer( "Molecule.provenance.resultsNotAccessibles"); resultNotAccessibleCont.setOutputMarkupPlaceholderTag(true); 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-25 15:02:42 UTC (rev 156) +++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/molecule/ReadMoleculePage.java 2013-02-25 16:01:45 UTC (rev 157) @@ -152,7 +152,7 @@ // add list document panel ReadListDocumentsPanel readListDocumentsPanel = new ReadListDocumentsPanel("ReadListDocumentsPanel", - moleculeModel.getObject(), currentPage); + moleculeModel, currentPage); add(readListDocumentsPanel); // Formulaire des actions @@ -225,7 +225,6 @@ boolean isOneResultNotAccessible = false; List<MoleculeProvenance> listResults = new ArrayList<MoleculeProvenance>(); - for (MoleculeProvenance res : moleculeModel.getObject().getProvenances()) { // les résultats de type blanc ou témoin sont tjr accessibles if (moleculeService.isMoleculeProvenanceAccessibleByUser(res, @@ -303,4 +302,8 @@ }; add(noTableProvenances); } + + public static void main(String[] args) { + System.out.println("cons initProvenanceFields"); + } } Modified: trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/personne/ReadPersonnePage.java =================================================================== --- trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/personne/ReadPersonnePage.java 2013-02-25 15:02:42 UTC (rev 156) +++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/personne/ReadPersonnePage.java 2013-02-25 16:01:45 UTC (rev 157) @@ -87,7 +87,7 @@ // add list document panel ReadListDocumentsPanel readListDocumentsPanel = new ReadListDocumentsPanel("ReadListDocumentsPanel", - personneModel.getObject(), currentPage); + personneModel, currentPage); add(readListDocumentsPanel); // Action : mise à jour (redirection vers le formulaire) 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-25 15:02:42 UTC (rev 156) +++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/purification/ReadPurificationPage.java 2013-02-25 16:01:45 UTC (rev 157) @@ -236,7 +236,7 @@ // add list document panel ReadListDocumentsPanel readListDocumentsPanel = new ReadListDocumentsPanel("ReadListDocumentsPanel", - purificationModel.getObject(), currentPage); + purificationModel, currentPage); add(readListDocumentsPanel); // Formulaire des actions 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-25 15:02:42 UTC (rev 156) +++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/specimen/ReadSpecimenPage.java 2013-02-25 16:01:45 UTC (rev 157) @@ -146,7 +146,7 @@ // add list document panel ReadListDocumentsPanel readListDocumentsPanel = new ReadListDocumentsPanel("ReadListDocumentsPanel", - specimenModel.getObject(), currentPage); + specimenModel, currentPage); add(readListDocumentsPanel); final Form<Void> formView = new Form<Void>("Form"); Modified: trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/station/ReadStationPage.java =================================================================== --- trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/station/ReadStationPage.java 2013-02-25 15:02:42 UTC (rev 156) +++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/station/ReadStationPage.java 2013-02-25 16:01:45 UTC (rev 157) @@ -111,7 +111,7 @@ // add list document panel ReadListDocumentsPanel readListDocumentsPanel = new ReadListDocumentsPanel("ReadListDocumentsPanel", - stationModel.getObject(), currentPage); + stationModel, currentPage); add(readListDocumentsPanel); // Ajout du formulaire pour les 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-25 15:02:42 UTC (rev 156) +++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/testBio/ReadTestBioPage.java 2013-02-25 16:01:45 UTC (rev 157) @@ -120,7 +120,7 @@ // add list document panel ReadListDocumentsPanel readListDocumentsPanel = new ReadListDocumentsPanel("ReadListDocumentsPanel", - testBioModel.getObject(), currentPage); + testBioModel, currentPage); add(readListDocumentsPanel); // Ajout du formulaire pour les actions