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]