From 444b6934ded88ed9bfa225849b0b7b108ace836a Mon Sep 17 00:00:00 2001 From: Frederic Debuire Date: Thu, 31 Jan 2008 14:56:36 +0000 Subject: [PATCH] =?UTF-8?q?D=C3=A9but=20de=20la=20validation=20pour=20l'aj?= =?UTF-8?q?out=20de=20conf=C3=A9rence.=20L'ajout=20des=20membres=20existan?= =?UTF-8?q?t=20marche.=20Policy=20failures:=20Code=20warning=20-=20failed?= =?UTF-8?q?=20on=20resource=20ConferenceValidator.java.=20Reason:=20Class?= =?UTF-8?q?=20is=20a=20raw=20type.=20References=20to=20generic=20type=20Cl?= =?UTF-8?q?ass=20should=20be=20parameterized,=20line=2010=20-=20failed?= =?UTF-8?q?=20on=20resource=20validation.=20Reason:=20Class=20is=20a=20raw?= =?UTF-8?q?=20type.=20References=20to=20generic=20type=20Class=20should?= =?UTF-8?q?=20be=20parameterized,=20line=2010=20-=20failed=20on=20resource?= =?UTF-8?q?=20AddConferenceController.java.=20Reason:=20HashSet=20is=20a?= =?UTF-8?q?=20raw=20type.=20References=20to=20generic=20type=20HashSet?= =?UTF-8?q?=20should=20be=20parameterized,=20line=20149=20-=20failed=20on?= =?UTF-8?q?=20resource=20AddConferenceController.java.=20Reason:=20Iterato?= =?UTF-8?q?r=20is=20a=20raw=20type.=20References=20to=20generic=20type=20I?= =?UTF-8?q?terator=20should=20be=20parameterized,=20line=20108=20-=20fa?= =?UTF-8?q?iled=20on=20resource=20AddConferenceController.java.=20Reason:?= =?UTF-8?q?=20Iterator=20is=20a=20raw=20type.=20References=20to=20generic?= =?UTF-8?q?=20type=20Iterator=20should=20be=20parameterized,=20line=201?= =?UTF-8?q?15=20...=20and=20more.=20Override=20reason:=20go?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WebContent/WEB-INF/jsp/addConference.jsp | 6 +- .../WebContent/WEB-INF/jsp/addConference2.jsp | 8 +- .../WebContent/WEB-INF/jsp/addConference3.jsp | 18 +- .../WebContent/WEB-INF/jsp/addConference5.jsp | 22 ++- YACOSWeb/WebContent/WEB-INF/yacos-servlet.xml | 13 +- .../controller/AddConferenceController.java | 171 +++++++++--------- .../web/chairman/controller/PersonBean.java | 9 + .../web/chairman/form/FormConference.java | 67 +++---- .../validation/ConferenceValidator.java | 36 ++++ 9 files changed, 211 insertions(+), 139 deletions(-) create mode 100644 YACOSWeb/src/org/yacos/web/chairman/validation/ConferenceValidator.java diff --git a/YACOSWeb/WebContent/WEB-INF/jsp/addConference.jsp b/YACOSWeb/WebContent/WEB-INF/jsp/addConference.jsp index 214de97..7bd4a7a 100644 --- a/YACOSWeb/WebContent/WEB-INF/jsp/addConference.jsp +++ b/YACOSWeb/WebContent/WEB-INF/jsp/addConference.jsp @@ -8,9 +8,9 @@ -

-

-

+

+

+

diff --git a/YACOSWeb/WebContent/WEB-INF/jsp/addConference2.jsp b/YACOSWeb/WebContent/WEB-INF/jsp/addConference2.jsp index 600899a..1df1548 100644 --- a/YACOSWeb/WebContent/WEB-INF/jsp/addConference2.jsp +++ b/YACOSWeb/WebContent/WEB-INF/jsp/addConference2.jsp @@ -12,12 +12,12 @@ -

-

+

+


-

-

+

+

diff --git a/YACOSWeb/WebContent/WEB-INF/jsp/addConference3.jsp b/YACOSWeb/WebContent/WEB-INF/jsp/addConference3.jsp index de2e0fa..cfc443c 100644 --- a/YACOSWeb/WebContent/WEB-INF/jsp/addConference3.jsp +++ b/YACOSWeb/WebContent/WEB-INF/jsp/addConference3.jsp @@ -9,13 +9,17 @@ -
Information Page's numbers File's type :
+
Information + Page's numbers + File's type : + + + + + +

@@ -23,7 +27,7 @@
- Informations complémentaires : + Informations complémentaires :

diff --git a/YACOSWeb/WebContent/WEB-INF/jsp/addConference5.jsp b/YACOSWeb/WebContent/WEB-INF/jsp/addConference5.jsp index d9ed3a4..ae07bc5 100644 --- a/YACOSWeb/WebContent/WEB-INF/jsp/addConference5.jsp +++ b/YACOSWeb/WebContent/WEB-INF/jsp/addConference5.jsp @@ -22,7 +22,7 @@ var peopleCache = { }; var viewed = -1; function fillTable() { - AddCriteriaJS.getUsers(function(people) { + AddCriteriaJS.getUsersFiltered(function(people) { // Delete all the rows except for the "pattern" row dwr.util.removeAllRows("personbody", { filter:function(tr) { return (tr.id != "pattern"); @@ -77,12 +77,22 @@ function deletePerson(eleid) { if (confirm("Are you sure you want to delete " + person.name + "?")) { dwr.engine.beginBatch(); AddCriteriaJS.deletePerson(person); + filterUser(null, dwr.util.getValue("myfilter")); fillTable(); fillTable2(); dwr.engine.endBatch(); } } +Event.observe(window, 'load', function() { + new Form.Element.Observer('myfilter', 1, filterUser) +}); + +function filterUser(el, value) { + AddCriteriaJS.fillUser(value); + setTimeout("fillTable()", 500); +} + @@ -92,11 +102,8 @@ function deletePerson(eleid) { + Filter - - - - @@ -106,6 +113,9 @@ function deletePerson(eleid) {
Filter
+ + Add a new member
+ Mail:
@@ -123,7 +133,7 @@ function deletePerson(eleid) {
- +
diff --git a/YACOSWeb/WebContent/WEB-INF/yacos-servlet.xml b/YACOSWeb/WebContent/WEB-INF/yacos-servlet.xml index af9c2ce..7253c12 100644 --- a/YACOSWeb/WebContent/WEB-INF/yacos-servlet.xml +++ b/YACOSWeb/WebContent/WEB-INF/yacos-servlet.xml @@ -43,7 +43,7 @@ DispatchArticleController - + AddConferenceController @@ -134,7 +134,7 @@ - @@ -174,16 +174,21 @@ value="org.yacos.web.chairman.form.FormConference" /> - + --> + + + + + listPersonBean; + private List listPersonFiltered; private List listPersonAdded; - + public void initPerson() { listPersonBean = new ArrayList(); listPersonAdded = new ArrayList(); + listPersonFiltered = new ArrayList(); List listUsers = userManager.getUsers(); for (Iterator i = listUsers.iterator(); i.hasNext();) { User user = (User) i.next(); - + PersonBean pb = new PersonBean(); pb.setId(getNextPerson()); pb.setName(user.getFirstName()); - // TODO : voir login FIX (because, we need the login to tie the user with the conf) + pb.setLogin(user.getLogin()); listPersonBean.add(pb); } } + public void fillUser(String text) { + if (text.equals("")) + listPersonFiltered = new ArrayList(); + else { + listPersonFiltered = new ArrayList(); + for (Iterator i = listPersonBean.iterator(); i.hasNext();) { + PersonBean b = (PersonBean) i.next(); + + if (b.getName().toLowerCase().contains(text.toLowerCase())) + listPersonFiltered.add(b); + } + } + } + public void setPerson(PersonBean b) { if (b.getId() == -1) { b.setId(getNextPerson()); } - //listPersonAdded.remove(b); - listPersonAdded.add(b); - listPersonBean.remove(b); + PersonBean truePerson = getTruePerson(b.getLogin()); + + listPersonAdded.remove(truePerson); + listPersonAdded.add(truePerson); + listPersonBean.remove(truePerson); + listPersonFiltered.remove(truePerson); } public void deletePerson(PersonBean b) { - listPersonAdded.remove(b); - listPersonBean.add(b); - - // FIXME b different du b d'avant (dans le set...) + + PersonBean truePerson = getTruePerson(b.getLogin()); + + listPersonAdded.remove(truePerson); + listPersonBean.add(truePerson); } + public PersonBean getTruePerson(String login) { + for (Iterator i = listPersonBean.iterator(); i.hasNext();) { + PersonBean b = (PersonBean) i.next(); + + if (b.getLogin().equals(login)) + return b; + } + + for (Iterator i = listPersonAdded.iterator(); i.hasNext();) { + PersonBean b = (PersonBean) i.next(); + + if (b.getLogin().equals(login)) + return b; + } + + return null; + } + + private static synchronized int getNextPerson() - { - return nextPerson++; - } - + { + return nextPerson++; + } + + public List getUsersFiltered() { + return listPersonFiltered; + } + public List getUsers() { return listPersonBean; } - + public List getUsersAdded() { return listPersonAdded; } - - - + + // ########################################################### - - - - - + + private static int nextId = 1; - private Set criteria = new HashSet(); + private Set criteria = new HashSet();; public Set getAllCriteria() { return criteria; @@ -127,34 +166,20 @@ public class AddConferenceController extends AbstractWizardFormController { } private static synchronized int getNextId() - { - return nextId++; - } - - - - - - - - - + { + return nextId++; + } + // ########################################################### - - + + public AddConferenceController() { setCommandName("formConference"); setPages(new String[] {"addConference", "addConference2", "addConference3", "addConference4", "addConference5"}); } - + protected Object formBackingObject(HttpServletRequest request) throws ModelAndViewDefiningException { - logger.info("je passe ici"); - FormConference conference = (FormConference)request.getSession().getAttribute("conferenceForm"); - if (conference==null) { - conference = new FormConference(); - logger.info("je passe ici la 1ère fois"); - request.getSession().setAttribute("conferenceForm", conference); - } + FormConference conference = new FormConference(); return conference; } @@ -165,48 +190,26 @@ public class AddConferenceController extends AbstractWizardFormController { }*/ } - protected Map referenceData(HttpServletRequest request, int page) { - /*if (page == 0) { - List creditCardTypes = new ArrayList(); - creditCardTypes.add("Visa"); - creditCardTypes.add("MasterCard"); - creditCardTypes.add("American Express"); - Map model = new HashMap(); - model.put("creditCardTypes", creditCardTypes); - return model; - }*/ - return null; - - } - - /*protected int getTargetPage(HttpServletRequest request, Object command, Errors errors, int currentPage) { - FormConference conference = (FormConference) command; - if (currentPage == 0) { - return 1; - } - else { - return 2; - } - }*/ - protected void validatePage(Object command, Errors errors, int page) { FormConference conference = (FormConference) command; - /*OrderValidator orderValidator = (OrderValidator) getValidator(); - errors.setNestedPath("order"); + ConferenceValidator conferenceValidator = (ConferenceValidator) getValidator(); switch (page) { - case 0: - orderValidator.validateCreditCard(orderForm.getOrder(), errors); - orderValidator.validateBillingAddress(orderForm.getOrder(), errors); - break; - case 1: - orderValidator.validateShippingAddress(orderForm.getOrder(), errors); + case 0: + conferenceValidator.validateFirstPage(conference, errors); + break; + case 1: + conferenceValidator.validateSecondPage(conference, errors); + break; + case 2: + conferenceValidator.validateThirdPage(conference, errors); + break; } - errors.setNestedPath("");*/ } protected ModelAndView processFinish( HttpServletRequest request, HttpServletResponse response, Object command, BindException errors) { FormConference conference = (FormConference) command; + /*this.petStore.insertOrder(orderForm.getOrder()); request.getSession().removeAttribute("sessionCart"); Map model = new HashMap(); diff --git a/YACOSWeb/src/org/yacos/web/chairman/controller/PersonBean.java b/YACOSWeb/src/org/yacos/web/chairman/controller/PersonBean.java index 81f4fd7..4699536 100644 --- a/YACOSWeb/src/org/yacos/web/chairman/controller/PersonBean.java +++ b/YACOSWeb/src/org/yacos/web/chairman/controller/PersonBean.java @@ -4,7 +4,16 @@ public class PersonBean { private int id; private String name; + private String login; + public String getLogin() { + return login; + } + + public void setLogin(String login) { + this.login = login; + } + public PersonBean() {} public String getName() { diff --git a/YACOSWeb/src/org/yacos/web/chairman/form/FormConference.java b/YACOSWeb/src/org/yacos/web/chairman/form/FormConference.java index ce826a7..7c96728 100644 --- a/YACOSWeb/src/org/yacos/web/chairman/form/FormConference.java +++ b/YACOSWeb/src/org/yacos/web/chairman/form/FormConference.java @@ -1,20 +1,20 @@ package org.yacos.web.chairman.form; -import java.util.Date; - public class FormConference { private Integer id; private String title; private String description; private String otherInformations; - private Date dateAbstract; - private Date dateArticle; - private Date dateEvaluation; - private Date dateStart; - private Date dateEnd; - private String typeAction; + private String dateArticle; + private String dateEvaluation; + private String dateStart; + private String dateEnd; + + private int pageNumber; + private String fileType; + private String sendInfo; public FormConference () {} @@ -50,54 +50,59 @@ public class FormConference { this.otherInformations = otherInformations; } - public Date getDateAbstract() { - return dateAbstract; + public int getPageNumber() { + return pageNumber; } - public void setDateAbstract(Date dateAbstract) { - this.dateAbstract = dateAbstract; + public void setPageNumber(int pageNumber) { + this.pageNumber = pageNumber; } - public Date getDateArticle() { + public String getFileType() { + return fileType; + } + + public void setFileType(String fileType) { + this.fileType = fileType; + } + + public String getSendInfo() { + return sendInfo; + } + + public void setSendInfo(String sendInfo) { + this.sendInfo = sendInfo; + } + + public String getDateArticle() { return dateArticle; } - public void setDateArticle(Date dateArticle) { + public void setDateArticle(String dateArticle) { this.dateArticle = dateArticle; } - public Date getDateEvaluation() { + public String getDateEvaluation() { return dateEvaluation; } - public void setDateEvaluation(Date dateEvaluation) { + public void setDateEvaluation(String dateEvaluation) { this.dateEvaluation = dateEvaluation; } - public Date getDateStart() { + public String getDateStart() { return dateStart; } - public void setDateStart(Date dateStart) { + public void setDateStart(String dateStart) { this.dateStart = dateStart; } - public Date getDateEnd() { + public String getDateEnd() { return dateEnd; } - public void setDateEnd(Date dateEnd) { + public void setDateEnd(String dateEnd) { this.dateEnd = dateEnd; } - - public String getTypeAction() { - return typeAction; - } - - public void setTypeAction(String typeAction) { - this.typeAction = typeAction; - } - - - } diff --git a/YACOSWeb/src/org/yacos/web/chairman/validation/ConferenceValidator.java b/YACOSWeb/src/org/yacos/web/chairman/validation/ConferenceValidator.java new file mode 100644 index 0000000..1558e6b --- /dev/null +++ b/YACOSWeb/src/org/yacos/web/chairman/validation/ConferenceValidator.java @@ -0,0 +1,36 @@ +package org.yacos.web.chairman.validation; + +import org.springframework.validation.Errors; +import org.springframework.validation.ValidationUtils; +import org.springframework.validation.Validator; +import org.yacos.web.chairman.form.FormConference; + +public class ConferenceValidator implements Validator { + + public boolean supports(Class commandClass) { + return FormConference.class.isAssignableFrom(commandClass); + } + + public void validate(Object obj, Errors errors) { + validateFirstPage((FormConference) obj, errors); + validateSecondPage((FormConference) obj, errors); + validateThirdPage((FormConference) obj, errors); + } + + public void validateFirstPage(FormConference conference, Errors errors) { + ValidationUtils.rejectIfEmptyOrWhitespace(errors, "title", "TITLE_REQUIRED", "A title is required"); + ValidationUtils.rejectIfEmptyOrWhitespace(errors, "description", "DESCRIPTION_REQUIRED", "A description is required"); + } + + public void validateSecondPage(FormConference conference, Errors errors) { + ValidationUtils.rejectIfEmptyOrWhitespace(errors, "dateStart", "DATE_REQUIRED", "A date is required"); + ValidationUtils.rejectIfEmptyOrWhitespace(errors, "dateEnd", "DATE_REQUIRED", "A date is required"); + ValidationUtils.rejectIfEmptyOrWhitespace(errors, "dateArticle", "DATE_REQUIRED", "A date is required"); + ValidationUtils.rejectIfEmptyOrWhitespace(errors, "dateEvaluation", "DATE_REQUIRED", "A date is required"); + } + + public void validateThirdPage(FormConference conference, Errors errors) { + + } + +}