Author: norman
Date: Sun Aug 23 12:33:06 2009
New Revision: 806958

URL: http://svn.apache.org/viewvc?rev=806958&view=rev
Log:
Move validation to the presenter

Modified:
    labs/hupa/src/main/java/org/apache/hupa/client/mvp/MessageSendPresenter.java
    labs/hupa/src/main/java/org/apache/hupa/client/mvp/MessageSendView.java

Modified: 
labs/hupa/src/main/java/org/apache/hupa/client/mvp/MessageSendPresenter.java
URL: 
http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/client/mvp/MessageSendPresenter.java?rev=806958&r1=806957&r2=806958&view=diff
==============================================================================
--- 
labs/hupa/src/main/java/org/apache/hupa/client/mvp/MessageSendPresenter.java 
(original)
+++ 
labs/hupa/src/main/java/org/apache/hupa/client/mvp/MessageSendPresenter.java 
Sun Aug 23 12:33:06 2009
@@ -19,6 +19,14 @@
 
 package org.apache.hupa.client.mvp;
 
+import eu.maydu.gwt.validation.client.DefaultValidationProcessor;
+import eu.maydu.gwt.validation.client.ValidationAction;
+import eu.maydu.gwt.validation.client.ValidationProcessor;
+import eu.maydu.gwt.validation.client.ValidationResult;
+import eu.maydu.gwt.validation.client.Validator;
+import eu.maydu.gwt.validation.client.actions.FocusAction;
+import eu.maydu.gwt.validation.client.actions.StyleAction;
+import eu.maydu.gwt.validation.client.i18n.ValidationMessages;
 import gwtupload.client.IUploader;
 import gwtupload.client.Uploader;
 
@@ -70,6 +78,9 @@
        private Type type = Type.NEW;
        private IMAPFolder folder;
        private IMAPMessage oldmessage;
+       private ValidationMessages vMessages = new ValidationMessages();
+       private ValidationProcessor validator = new DefaultValidationProcessor(
+                       vMessages);
        
        @Inject
        public MessageSendPresenter(Display display, EventBus eventBus, 
DispatchAsync dispatcher) {
@@ -124,7 +135,9 @@
 
                        public void onClick(ClickEvent event) {
                                
-       
+                                       if (validator.validate() == false) {
+                                               return;
+                                       }
                                        Message message = new Message();
                                        MessageHeader header = new 
MessageHeader();
                                        MessageContent content = new 
MessageContent();
@@ -196,6 +209,23 @@
                
                        
                }));
+               
+               FocusAction fAction = new FocusAction();
+               validator.addValidators("cc", new 
EmailListValidator(display.getCcText())
+                               .addActionForFailure(
+                                               new 
StyleAction("hupa-validationErrorBorder"))
+                               .addActionForFailure(fAction));
+               validator.addValidators("bcc", new 
EmailListValidator(display.getBccText())
+                               .addActionForFailure(
+                                               new 
StyleAction("hupa-validationErrorBorder"))
+                               .addActionForFailure(fAction));
+               validator.addValidators("to", new 
EmailListValidator(display.getToText())
+                               .addActionForFailure(
+                                               new 
StyleAction("hupa-validationErrorBorder"))
+                               .addActionForFailure(fAction), new 
NotEmptyValidator(display.getToText())
+                               .addActionForFailure(
+                                               new 
StyleAction("hupa-validationErrorBorder"))
+                               .addActionForFailure(fAction));
        }
 
        private void reset() {
@@ -323,4 +353,71 @@
                bind(user,null,null,type);
        }
        
+       private class NotEmptyValidator extends Validator<NotEmptyValidator> {
+               private HasText text;
+
+               public NotEmptyValidator(HasText text) {
+                       this.text = text;
+               }
+               @Override
+               public void invokeActions(ValidationResult result) {
+                       for (ValidationAction<HasText> action : 
getFailureActions())
+                               action.invoke(result, text);
+               }
+
+               @Override
+               public <V extends ValidationMessages> ValidationResult validate(
+                               V messages) {
+                       if (text.getText().trim().length() < 1) {
+                               return new ValidationResult();
+                       }
+                       return null;
+               }
+               
+       }
+       private class EmailListValidator extends Validator<EmailListValidator> {
+               private HasText text;
+
+               public EmailListValidator(HasText text) {
+                       this.text = text;
+               }
+
+               @Override
+               public void invokeActions(ValidationResult result) {
+                       for (ValidationAction<HasText> action : 
getFailureActions())
+                               action.invoke(result, text);
+               }
+
+               @Override
+               public <V extends ValidationMessages> ValidationResult validate(
+                               V messages) {
+                       if (isValidAddressList(text.getText()) == false) {
+                               return new ValidationResult();
+                       }
+                       return null;
+               }
+
+               private boolean isValidAddressList(String text) {
+                       if (text.length() > 0) {
+                               String[] addresses = text.split(",");
+                               if (addresses == null || addresses.length == 0) 
{
+                                       return isValidAddress(text);
+                               } else {
+                                       for (int i = 0; i < addresses.length; 
i++) {
+                                               if 
(isValidAddress(addresses[i]) == false) {
+                                                       return false;
+                                               }
+                                       }
+                               }
+                       }
+                       return true;
+               }
+
+               private boolean isValidAddress(String email) {
+                       return email
+                                       
.matches("^[a-za-z0-9._%+...@[a-za-z0-9.-]+\\.[a-za-z]{2,}$");
+               }
+
+       }
+       
 }

Modified: 
labs/hupa/src/main/java/org/apache/hupa/client/mvp/MessageSendView.java
URL: 
http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/client/mvp/MessageSendView.java?rev=806958&r1=806957&r2=806958&view=diff
==============================================================================
--- labs/hupa/src/main/java/org/apache/hupa/client/mvp/MessageSendView.java 
(original)
+++ labs/hupa/src/main/java/org/apache/hupa/client/mvp/MessageSendView.java Sun 
Aug 23 12:33:06 2009
@@ -19,15 +19,6 @@
 
 package org.apache.hupa.client.mvp;
 
-import eu.maydu.gwt.validation.client.DefaultValidationProcessor;
-import eu.maydu.gwt.validation.client.ValidationAction;
-import eu.maydu.gwt.validation.client.ValidationProcessor;
-import eu.maydu.gwt.validation.client.ValidationResult;
-import eu.maydu.gwt.validation.client.Validator;
-import eu.maydu.gwt.validation.client.actions.FocusAction;
-import eu.maydu.gwt.validation.client.actions.StyleAction;
-import eu.maydu.gwt.validation.client.i18n.ValidationMessages;
-import eu.maydu.gwt.validation.client.validators.standard.NotEmptyValidator;
 import gwtupload.client.IUploader;
 import gwtupload.client.MultiUploader;
 
@@ -38,8 +29,6 @@
 import org.cobogw.gwt.user.client.ui.ButtonBar;
 
 import com.google.gwt.core.client.GWT;
-import com.google.gwt.event.dom.client.ClickEvent;
-import com.google.gwt.event.dom.client.ClickHandler;
 import com.google.gwt.event.dom.client.HasClickHandlers;
 import com.google.gwt.event.logical.shared.ResizeEvent;
 import com.google.gwt.event.logical.shared.ResizeHandler;
@@ -52,7 +41,6 @@
 import com.google.gwt.user.client.ui.Label;
 import com.google.gwt.user.client.ui.TextArea;
 import com.google.gwt.user.client.ui.TextBox;
-import com.google.gwt.user.client.ui.TextBoxBase;
 import com.google.gwt.user.client.ui.VerticalPanel;
 import com.google.gwt.user.client.ui.Widget;
 
@@ -68,9 +56,7 @@
        private MultiUploader uploader = new MultiUploader(new 
UploadProgress());
        private TextArea text = new TextArea();
        private MyButton sendButton = new MyButton(constants.sendButton());
-       private ValidationMessages vMessages = new ValidationMessages();
-       private ValidationProcessor validator = new DefaultValidationProcessor(
-                       vMessages);
+       
 
        public MessageSendView() {
                final VerticalPanel mPanel = new VerticalPanel();
@@ -172,22 +158,7 @@
                 * PreloadedImage img = event.getValue(); img.setWidth("75px");
                 * panelImages.add(img); } }); } });
                 */
-               FocusAction fAction = new FocusAction();
-               validator.addValidators("cc", new EmailListValidator(cc)
-                               .addActionForFailure(
-                                               new 
StyleAction("hupa-validationErrorBorder"))
-                               .addActionForFailure(fAction));
-               validator.addValidators("bcc", new EmailListValidator(bcc)
-                               .addActionForFailure(
-                                               new 
StyleAction("hupa-validationErrorBorder"))
-                               .addActionForFailure(fAction));
-               validator.addValidators("to", new EmailListValidator(to)
-                               .addActionForFailure(
-                                               new 
StyleAction("hupa-validationErrorBorder"))
-                               .addActionForFailure(fAction), new 
NotEmptyValidator(to)
-                               .addActionForFailure(
-                                               new 
StyleAction("hupa-validationErrorBorder"))
-                               .addActionForFailure(fAction));
+               
 
                uploader.setServletPath(GWT.getModuleBaseURL()
                                + "uploadAttachmentServlet");
@@ -199,16 +170,6 @@
                buttonBar.add(sendButton);
                buttonBar.setWidth("100%");
 
-               sendButton.addClickHandler(new ClickHandler() {
-
-                       public void onClick(ClickEvent event) {
-                               // if the validation fails we have no need todo 
anymore
-                               // processing here
-                               if (validator.validate() == false)
-                                       event.stopPropagation();
-                       }
-
-               });
                mPanel.add(buttonBar);
 
                mPanel.add(text);
@@ -258,50 +219,7 @@
                return sendButton;
        }
 
-       private class EmailListValidator extends Validator<EmailListValidator> {
-               private TextBoxBase box;
-
-               public EmailListValidator(TextBoxBase box) {
-                       this.box = box;
-               }
-
-               @Override
-               public void invokeActions(ValidationResult result) {
-                       for (ValidationAction<TextBoxBase> action : 
getFailureActions())
-                               action.invoke(result, box);
-               }
-
-               @Override
-               public <V extends ValidationMessages> ValidationResult validate(
-                               V messages) {
-                       if (isValidAddressList(box.getText()) == false) {
-                               return new ValidationResult();
-                       }
-                       return null;
-               }
-
-               private boolean isValidAddressList(String text) {
-                       if (text.length() > 0) {
-                               String[] addresses = text.split(",");
-                               if (addresses == null || addresses.length == 0) 
{
-                                       return isValidAddress(text);
-                               } else {
-                                       for (int i = 0; i < addresses.length; 
i++) {
-                                               if 
(isValidAddress(addresses[i]) == false) {
-                                                       return false;
-                                               }
-                                       }
-                               }
-                       }
-                       return true;
-               }
-
-               private boolean isValidAddress(String email) {
-                       return email
-                                       
.matches("^[a-za-z0-9._%+...@[a-za-z0-9.-]+\\.[a-za-z]{2,}$");
-               }
-
-       }
+       
 
        public IUploader getUploader() {
                return uploader;



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to