Author: echatellier Date: 2013-02-18 10:56:08 +0100 (Mon, 18 Feb 2013) New Revision: 124 Url: http://forge.codelutin.com/projects/cantharella/repository/revisions/124 Log: Fix label, autocomplete Added: trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/dao/impl/DocumentDao.java Modified: trunk/cantharella.data/src/main/resources/data_en.properties trunk/cantharella.data/src/main/resources/data_fr.properties trunk/cantharella.service/src/main/java/nc/ird/cantharella/service/services/DocumentService.java trunk/cantharella.service/src/main/java/nc/ird/cantharella/service/services/impl/DocumentServiceImpl.java trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/document/ManageDocumentPage.html trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/document/ManageDocumentPage.java trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/document/ReadDocumentPage.html trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/document/ReadDocumentPage.java trunk/cantharella.web/src/main/resources/web_en.properties trunk/cantharella.web/src/main/resources/web_fr.properties Added: trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/dao/impl/DocumentDao.java =================================================================== --- trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/dao/impl/DocumentDao.java (rev 0) +++ trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/dao/impl/DocumentDao.java 2013-02-18 09:56:08 UTC (rev 124) @@ -0,0 +1,55 @@ +/* + * #%L + * Cantharella :: Data + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2013 IRD (Institut de Recherche pour le Developpement) and by respective authors (see below) + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * #L% + */ +package nc.ird.cantharella.data.dao.impl; + +import nc.ird.cantharella.data.dao.AbstractModelDao; +import nc.ird.cantharella.data.model.Document; + +import org.hibernate.criterion.DetachedCriteria; +import org.hibernate.criterion.Order; +import org.hibernate.criterion.Projections; + +/** + * DAO document. + * + * @author Eric Chatellier + */ +public final class DocumentDao extends AbstractModelDao { + + /** Criteria : editeurs already registered. */ + public static final DetachedCriteria CRITERIA_DISTINCT_DOCUMENT_EDITEURS = DetachedCriteria + .forClass(Document.class).setProjection(Projections.distinct(Projections.property("editeur"))).addOrder( + Order.asc("editeur")); + + /** Criteria : containteLegale already registered. */ + public static final DetachedCriteria CRITERIA_DISTINCT_DOCUMENT_CONTRAINTE_LEGALES = DetachedCriteria.forClass( + Document.class).setProjection(Projections.distinct(Projections.property("contrainteLegale"))).addOrder( + Order.asc("contrainteLegale")); + + /** + * Constructor (prevents from instantiation) + */ + private DocumentDao() { + // + } +} Property changes on: trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/dao/impl/DocumentDao.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Modified: trunk/cantharella.data/src/main/resources/data_en.properties =================================================================== --- trunk/cantharella.data/src/main/resources/data_en.properties 2013-02-18 09:55:31 UTC (rev 123) +++ trunk/cantharella.data/src/main/resources/data_en.properties 2013-02-18 09:56:08 UTC (rev 124) @@ -256,7 +256,7 @@ Document.langue=Langue Document.contrainteLegale=Contrainte légale Document.ajoutePar=Ajouté par -Document.typeDocument=Type +Document.typeDocument=Type de document Document.fileName=Nom Document.fileMimetype=Format Modified: trunk/cantharella.data/src/main/resources/data_fr.properties =================================================================== --- trunk/cantharella.data/src/main/resources/data_fr.properties 2013-02-18 09:55:31 UTC (rev 123) +++ trunk/cantharella.data/src/main/resources/data_fr.properties 2013-02-18 09:56:08 UTC (rev 124) @@ -255,7 +255,7 @@ Document.langue=Langue Document.contrainteLegale=Contrainte légale Document.ajoutePar=Ajouté par -Document.typeDocument=Type +Document.typeDocument=Type de document Document.fileName=Nom Document.fileMimetype=Format Modified: trunk/cantharella.service/src/main/java/nc/ird/cantharella/service/services/DocumentService.java =================================================================== --- trunk/cantharella.service/src/main/java/nc/ird/cantharella/service/services/DocumentService.java 2013-02-18 09:55:31 UTC (rev 123) +++ trunk/cantharella.service/src/main/java/nc/ird/cantharella/service/services/DocumentService.java 2013-02-18 09:56:08 UTC (rev 124) @@ -104,4 +104,18 @@ */ boolean updateOrdeleteDocumentEnabled(Document document, Utilisateur utilisateur); + /** + * Editeurs already registered into documents. + * + * @return document's editeur + */ + @Transactional(readOnly = true) + List<String> listDocumentEditeurs(); + + /** + * Liste les programmes des organismes déjà saisis + * @return Organisme des molécules + */ + @Transactional(readOnly = true) + List<String> listDocumentContrainteLegales(); } Modified: trunk/cantharella.service/src/main/java/nc/ird/cantharella/service/services/impl/DocumentServiceImpl.java =================================================================== --- trunk/cantharella.service/src/main/java/nc/ird/cantharella/service/services/impl/DocumentServiceImpl.java 2013-02-18 09:55:31 UTC (rev 123) +++ trunk/cantharella.service/src/main/java/nc/ird/cantharella/service/services/impl/DocumentServiceImpl.java 2013-02-18 09:56:08 UTC (rev 124) @@ -25,6 +25,8 @@ import java.util.List; import nc.ird.cantharella.data.dao.GenericDao; +import nc.ird.cantharella.data.dao.impl.DocumentDao; +import nc.ird.cantharella.data.dao.impl.MoleculeDao; import nc.ird.cantharella.data.exceptions.DataConstraintException; import nc.ird.cantharella.data.exceptions.DataNotFoundException; import nc.ird.cantharella.data.exceptions.UnexpectedException; @@ -115,4 +117,18 @@ public boolean updateOrdeleteDocumentEnabled(Document document, Utilisateur utilisateur) { return false; } + + /** {@inheritDoc} */ + @Override + public List<String> listDocumentEditeurs() { + List<String> result = (List<String>) dao.list(DocumentDao.CRITERIA_DISTINCT_DOCUMENT_EDITEURS); + return result; + } + + /** {@inheritDoc} */ + @Override + public List<String> listDocumentContrainteLegales() { + List<String> result = (List<String>) dao.list(DocumentDao.CRITERIA_DISTINCT_DOCUMENT_CONTRAINTE_LEGALES); + return result; + } } Modified: trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/document/ManageDocumentPage.html =================================================================== --- trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/document/ManageDocumentPage.html 2013-02-18 09:55:31 UTC (rev 123) +++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/document/ManageDocumentPage.html 2013-02-18 09:56:08 UTC (rev 124) @@ -70,8 +70,8 @@ </div> <div class="property required"> - <label for="TypeDocument.nom"><wicket:message key="TypeDocument.nom" /></label> - <select id="TypeDocument.nom" wicket:id="TypeDocument.nom" /> + <label for="Document.typeDocument"><wicket:message key="Document.typeDocument" /></label> + <select id="Document.typeDocument" wicket:id="Document.typeDocument" /> </div> <div class="property"> @@ -85,8 +85,8 @@ </div> <div class="property required"> - <label for="Document.fileName"><wicket:message key="Document.fileName" /></label> - <input type="file" id="Document.fileName" wicket:id="Document.fileName" /> + <label for="Document.file"><wicket:message key="Document.file" /></label> + <input type="file" id="Document.file" wicket:id="Document.file" /> </div> <div class="actions"> Modified: trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/document/ManageDocumentPage.java =================================================================== --- trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/document/ManageDocumentPage.java 2013-02-18 09:55:31 UTC (rev 123) +++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/document/ManageDocumentPage.java 2013-02-18 09:56:08 UTC (rev 124) @@ -40,11 +40,14 @@ import nc.ird.cantharella.web.pages.domain.personne.ManagePersonnePage; import nc.ird.cantharella.web.utils.CallerPage; import nc.ird.cantharella.web.utils.behaviors.JSConfirmationBehavior; +import nc.ird.cantharella.web.utils.forms.AutoCompleteTextFieldString; import nc.ird.cantharella.web.utils.forms.SubmittableButton; import nc.ird.cantharella.web.utils.forms.SubmittableButtonEvents; +import nc.ird.cantharella.web.utils.forms.AutoCompleteTextFieldString.ComparisonMode; import nc.ird.cantharella.web.utils.renderers.MapChoiceRenderer; import org.apache.wicket.ajax.AjaxRequestTarget; +import org.apache.wicket.ajax.form.AjaxFormComponentUpdatingBehavior; import org.apache.wicket.ajax.markup.html.form.AjaxSubmitLink; import org.apache.wicket.extensions.markup.html.form.DateTextField; import org.apache.wicket.extensions.yui.calendar.DatePicker; @@ -171,9 +174,11 @@ // Initialisation des listes (pour le dropDownChoice) List<Personne> personnes = personneService.listPersonnes(); List<TypeDocument> typeDocuments = documentService.listTypeDocuments(); + List<String> editeurs = documentService.listDocumentEditeurs(); + List<String> containteLegales = documentService.listDocumentContrainteLegales(); // champ fichier - final FileUploadField fileUploadField = new FileUploadField("Document.fileName"); + final FileUploadField fileUploadField = new FileUploadField("Document.file"); // initialisation du formulaire wicket final Form<Void> formView = new Form<Void>("ManageDocumentPage.Form") { @@ -211,27 +216,33 @@ formView.add(new DateTextField("Document.dateCreation", new PropertyModel<Date>(documentModel, "dateCreation")) .add(new DatePicker())); - formView.add(new TextField<String>("Document.editeur", new PropertyModel<String>(documentModel, "editeur"))); + AutoCompleteTextFieldString editeurInput = new AutoCompleteTextFieldString("Document.editeur", + new PropertyModel<String>(documentModel, "editeur"), editeurs, ComparisonMode.CONTAINS); + formView.add(editeurInput); + formView.add(new TextArea<String>("Document.description", new PropertyModel<String>(documentModel, "description"))); formView.add(new DropDownChoice<String>("Document.langue", new PropertyModel<String>(documentModel, "langue"), WebContext.COUNTRY_CODES.get(getSession().getLocale()), new MapChoiceRenderer<String, String>( WebContext.COUNTRIES.get(getSession().getLocale())))); - formView.add(new TextField<String>("Document.contrainteLegale", new PropertyModel<String>(documentModel, - "contrainteLegale"))); + AutoCompleteTextFieldString containteLegalesInput = new AutoCompleteTextFieldString( + "Document.contrainteLegale", new PropertyModel<String>(documentModel, "contrainteLegale"), + containteLegales, ComparisonMode.CONTAINS); + formView.add(containteLegalesInput); + // AjoutePar en lecture seule formView.add(new TextField<String>("Document.ajoutePar", new PropertyModel<String>(documentModel, "ajoutePar")) .setEnabled(false)); // Type de document - final DropDownChoice<TypeDocument> typeDocumentInput = new DropDownChoice<TypeDocument>("TypeDocument.nom", - new PropertyModel<TypeDocument>(documentModel, "typeDocument"), typeDocuments); - typeDocumentInput.setOutputMarkupId(true); - typeDocumentInput.setNullValid(false); - formView.add(typeDocumentInput); + final DropDownChoice<TypeDocument> typeDocumentChoice = new DropDownChoice<TypeDocument>( + "Document.typeDocument", new PropertyModel<TypeDocument>(documentModel, "typeDocument"), typeDocuments); + typeDocumentChoice.setOutputMarkupId(true); + typeDocumentChoice.setNullValid(false); + formView.add(typeDocumentChoice); final Label typeDocumentDomainLabel = new Label("TypeDocument.domaine", new PropertyModel<String>( documentModel, "typeDocument.domaine")); @@ -243,6 +254,12 @@ typeDocumentDescriptionLabel.setOutputMarkupId(true); formView.add(typeDocumentDescriptionLabel); + typeDocumentChoice.add(new AjaxFormComponentUpdatingBehavior("onchange") { + protected void onUpdate(AjaxRequestTarget target) { + target.add(typeDocumentDomainLabel, typeDocumentDescriptionLabel); + } + }); + // Fichier formView.add(fileUploadField); Modified: trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/document/ReadDocumentPage.html =================================================================== --- trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/document/ReadDocumentPage.html 2013-02-18 09:55:31 UTC (rev 123) +++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/document/ReadDocumentPage.html 2013-02-18 09:56:08 UTC (rev 124) @@ -67,8 +67,8 @@ </div> <div class="property"> - <span class="label"><wicket:message key="TypeDocument.nom" /></span> - <span class="value" wicket:id="TypeDocument.nom" ></span> + <span class="label"><wicket:message key="Document.typeDocument" /></span> + <span class="value" wicket:id="Document.typeDocument" ></span> </div> <div class="property"> @@ -82,8 +82,8 @@ </div> <div class="property"> - <span class="label"><wicket:message key="Document.fileName" /></span> - <span class="value" wicket:id="Document.fileName"></span> + <span class="label"><wicket:message key="Document.file" /></span> + <span class="value" wicket:id="Document.file"></span> </div> <div class="property"> Modified: trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/document/ReadDocumentPage.java =================================================================== --- trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/document/ReadDocumentPage.java 2013-02-18 09:55:31 UTC (rev 123) +++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/pages/domain/document/ReadDocumentPage.java 2013-02-18 09:56:08 UTC (rev 124) @@ -87,7 +87,7 @@ .add(new ReplaceEmptyLabelBehavior())); add(new Label("Document.ajoutePar", new PropertyModel<String>(documentModel, "ajoutePar")) .add(new ReplaceEmptyLabelBehavior())); - add(new Label("TypeDocument.nom", new PropertyModel<String>(documentModel, "typeDocument.nom")) + add(new Label("Document.typeDocument", new PropertyModel<String>(documentModel, "typeDocument.nom")) .add(new ReplaceEmptyLabelBehavior())); add(new Label("TypeDocument.domaine", new PropertyModel<String>(documentModel, "typeDocument.domaine")) .add(new ReplaceEmptyLabelBehavior())); Modified: trunk/cantharella.web/src/main/resources/web_en.properties =================================================================== --- trunk/cantharella.web/src/main/resources/web_en.properties 2013-02-18 09:55:31 UTC (rev 123) +++ trunk/cantharella.web/src/main/resources/web_en.properties 2013-02-18 09:56:08 UTC (rev 124) @@ -409,6 +409,8 @@ Document.dateCreation.IConverter.Date=The date is incorrectly formatted (DD/MM/YY) Document.link=Link +Document.type=Type +Document.file=File #BASIC# Actions=Actions Modified: trunk/cantharella.web/src/main/resources/web_fr.properties =================================================================== --- trunk/cantharella.web/src/main/resources/web_fr.properties 2013-02-18 09:55:31 UTC (rev 123) +++ trunk/cantharella.web/src/main/resources/web_fr.properties 2013-02-18 09:56:08 UTC (rev 124) @@ -407,6 +407,8 @@ Document.dateCreation.IConverter.Date=La date est mal formatée (JJ/MM/AA) Document.link=Lien +Document.type=Type +Document.file=Fichier #BASIC# Actions=Actions