You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by ma...@apache.org on 2014/03/20 09:16:10 UTC
svn commit: r1579559 [2/23] - in /james/hupa/trunk: ./ client/
client/src/main/java/com/google/web/bindery/requestfactory/server/
client/src/main/java/org/apache/hupa/
client/src/main/java/org/apache/hupa/client/
client/src/main/java/org/apache/hupa/cl...
Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/ComposeActivity.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/ComposeActivity.java?rev=1579559&r1=1579558&r2=1579559&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/ComposeActivity.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/ComposeActivity.java Thu Mar 20 08:16:02 2014
@@ -77,428 +77,428 @@ import com.google.web.bindery.requestfac
import com.google.web.bindery.requestfactory.shared.RequestContext;
public class ComposeActivity extends AppBaseActivity {
- @Inject private Displayable display;
- @Inject private HupaController hupaController;
- private List<MessageAttachment> attachments = new ArrayList<MessageAttachment>();
- protected ComposePlace place;
- private User user;
-
- public Activity with(ComposePlace place) {
- this.place = place;
- return this;
- }
-
- @Override
- public void start(AcceptsOneWidget container, EventBus eventBus) {
- container.setWidget(display.asWidget());
- bindTo(eventBus);
- fillHeader();
- }
-
- @Override
- public String mayStop() {
- super.mayStop();
- if (noContent()) {
- return null;
- }
- return null;
- // return "Do you want to leave this page?"; TODO
- }
-
- @Override
- public void onStop() {
- super.onStop();
- }
-
- private boolean noContent() {
- return "".equals(display.getMessage().getText()) && "".equals(display.getSubject().getText());
- }
-
- @Override
- public void onCancel() {
-
- }
-
- protected void fillHeader() {
- if (place == null || place.getParameters() == null)
- return;
- if (user == null) {
- user = place.getParameters().getUser();
- }
- if (user == null) {
- user = HupaController.user;
- }
- display.getFromList().addItem(user.getName());
- display.getUploader().reset();
- if ("new".equals(place.getToken())) {
- display.getTo().setText("");
- display.getCc().setText("");
- display.getBcc().setText("");
- display.getSubject().setText(place.getSubject() == null ? "" : place.getSubject());
- display.getMessageHTML().setHTML(place.getBody() == null ? "" : place.getBody());
- attachments.clear();
- return;
- }
- Message oldMessage = place.getParameters().getOldmessage();
- display.getMessageHTML().setHTML(
- wrapMessage(oldMessage, place.getParameters().getOldDetails(), place.getToken()));
- if ("forward".equals(place.getToken())) {
- String subject = oldMessage.getSubject() != null ? oldMessage.getSubject().trim() : "";
- if (!subject.toLowerCase().startsWith("fwd:")) {
- subject = "Fwd: " + subject;
- }
- display.getSubject().setText(subject);
- } else if ("reply".equals(place.getToken()) || "replyAll".equals(place.getToken())) {
-
- String subject = oldMessage.getSubject() != null ? oldMessage.getSubject().trim() : "";
- if (!subject.toLowerCase().startsWith("re:")) {
- subject = "Re: " + subject;
- }
- if ("reply".equals(place.getToken())) {
- display.getSubject().setText(subject);
- if (oldMessage.getReplyto() != null && !oldMessage.getFrom().contains(oldMessage.getReplyto())) {
- display.getTo().setText(oldMessage.getReplyto());
- } else {
- display.getTo().setText(oldMessage.getFrom());
- }
- } else if ("replyAll".equals(place.getToken())) {
- ArrayList<String> list = new ArrayList<String>();
- if (oldMessage.getReplyto() != null && !oldMessage.getFrom().contains(oldMessage.getReplyto()))
- list.add(oldMessage.getReplyto());
- if (oldMessage.getTo() != null)
- list.addAll(oldMessage.getTo());
- if (oldMessage.getCc() != null)
- list.addAll(oldMessage.getCc());
- list = removeEmailFromList(list, user.getName());
- display.getCc().setText(Util.listToString(list));
- if (oldMessage.getTo() != null) {
- oldMessage.getTo().remove(user.getName());
- }
- display.getTo().setText(oldMessage.getFrom());
- }
- }
- }
-
- protected ArrayList<String> removeEmailFromList(List<String> list, String email) {
- ArrayList<String> ret = new ArrayList<String>();
- String regex = ".*<?\\s*" + email.trim() + "\\s*>?\\s*";
- for (String e : list) {
- if (!e.matches(regex)) {
- ret.add(e);
- }
- }
- return ret;
- }
- private static String generateHeader(Message message, String type) {
- String ret = "<br>";
- if (message != null) {
- if (type.equals("forward")) {
- ret += "--------- Forwarded message --------- <br>";
- ret += "From: " + message.getFrom().replaceAll("<", "<").replaceAll(">", ">") + "<br>";
- ret += "Date: " + message.getReceivedDate() + "<br>";
- ret += "Subject: " + message.getSubject() + "<br>";
- ArrayList<String> to = new ArrayList<String>();
- to.addAll(message.getTo());
- to.addAll(message.getCc());
- ret += "To: " + Util.listToString(to).replaceAll("<", "<").replaceAll(">", ">") + "<br>";
- } else if (type.equals("reply") || type.equals("replyAll")) {
- ret += "On " + message.getReceivedDate();
- ret += ", " + message.getFrom().replaceAll("<", "<").replaceAll(">", ">");
- ret += ". wrote:<br>";
- }
- }
- return ret + "<br>";
- }
- public static String wrapMessage(Message message, MessageDetails details, String type) {
- String ret = "";
- if (message != null) {
- ret += generateHeader(message, type);
- }
- if (details != null && details.getText() != null && details.getText().length() > 0) {
- ret += "<blockquote style='border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;'>";
- ret += details.getText();
- ret += "</blockquote>";
- }
- return ret;
- }
- protected void bindTo(EventBus eventBus) {
- eventBus.addHandler(AddressClickEvent.TYPE, new AddressClickEventHandler() {
- @Override
- public void onClick(AddressClickEvent event) {
- String to = display.getTo().getText();
- if(to != null && to.trim().length() > 0){
- display.getTo().setText(to + ";" + event.getEmail());
- }else {
- display.getTo().setText(event.getEmail());
- }
- }
- });
+ @Inject private Displayable display;
+ @Inject private HupaController hupaController;
+ private List<MessageAttachment> attachments = new ArrayList<MessageAttachment>();
+ protected ComposePlace place;
+ private User user;
+
+ public Activity with(ComposePlace place) {
+ this.place = place;
+ return this;
+ }
+
+ @Override
+ public void start(AcceptsOneWidget container, EventBus eventBus) {
+ container.setWidget(display.asWidget());
+ bindTo(eventBus);
+ fillHeader();
+ }
+
+ @Override
+ public String mayStop() {
+ super.mayStop();
+ if (noContent()) {
+ return null;
+ }
+ return null;
+ // return "Do you want to leave this page?"; TODO
+ }
+
+ @Override
+ public void onStop() {
+ super.onStop();
+ }
+
+ private boolean noContent() {
+ return "".equals(display.getMessage().getText()) && "".equals(display.getSubject().getText());
+ }
+
+ @Override
+ public void onCancel() {
+
+ }
+
+ protected void fillHeader() {
+ if (place == null || place.getParameters() == null)
+ return;
+ if (user == null) {
+ user = place.getParameters().getUser();
+ }
+ if (user == null) {
+ user = HupaController.user;
+ }
+ display.getFromList().addItem(user.getName());
+ display.getUploader().reset();
+ if ("new".equals(place.getToken())) {
+ display.getTo().setText("");
+ display.getCc().setText("");
+ display.getBcc().setText("");
+ display.getSubject().setText(place.getSubject() == null ? "" : place.getSubject());
+ display.getMessageHTML().setHTML(place.getBody() == null ? "" : place.getBody());
+ attachments.clear();
+ return;
+ }
+ Message oldMessage = place.getParameters().getOldmessage();
+ display.getMessageHTML().setHTML(
+ wrapMessage(oldMessage, place.getParameters().getOldDetails(), place.getToken()));
+ if ("forward".equals(place.getToken())) {
+ String subject = oldMessage.getSubject() != null ? oldMessage.getSubject().trim() : "";
+ if (!subject.toLowerCase().startsWith("fwd:")) {
+ subject = "Fwd: " + subject;
+ }
+ display.getSubject().setText(subject);
+ } else if ("reply".equals(place.getToken()) || "replyAll".equals(place.getToken())) {
+
+ String subject = oldMessage.getSubject() != null ? oldMessage.getSubject().trim() : "";
+ if (!subject.toLowerCase().startsWith("re:")) {
+ subject = "Re: " + subject;
+ }
+ if ("reply".equals(place.getToken())) {
+ display.getSubject().setText(subject);
+ if (oldMessage.getReplyto() != null && !oldMessage.getFrom().contains(oldMessage.getReplyto())) {
+ display.getTo().setText(oldMessage.getReplyto());
+ } else {
+ display.getTo().setText(oldMessage.getFrom());
+ }
+ } else if ("replyAll".equals(place.getToken())) {
+ ArrayList<String> list = new ArrayList<String>();
+ if (oldMessage.getReplyto() != null && !oldMessage.getFrom().contains(oldMessage.getReplyto()))
+ list.add(oldMessage.getReplyto());
+ if (oldMessage.getTo() != null)
+ list.addAll(oldMessage.getTo());
+ if (oldMessage.getCc() != null)
+ list.addAll(oldMessage.getCc());
+ list = removeEmailFromList(list, user.getName());
+ display.getCc().setText(Util.listToString(list));
+ if (oldMessage.getTo() != null) {
+ oldMessage.getTo().remove(user.getName());
+ }
+ display.getTo().setText(oldMessage.getFrom());
+ }
+ }
+ }
+
+ protected ArrayList<String> removeEmailFromList(List<String> list, String email) {
+ ArrayList<String> ret = new ArrayList<String>();
+ String regex = ".*<?\\s*" + email.trim() + "\\s*>?\\s*";
+ for (String e : list) {
+ if (!e.matches(regex)) {
+ ret.add(e);
+ }
+ }
+ return ret;
+ }
+ private static String generateHeader(Message message, String type) {
+ String ret = "<br>";
+ if (message != null) {
+ if (type.equals("forward")) {
+ ret += "--------- Forwarded message --------- <br>";
+ ret += "From: " + message.getFrom().replaceAll("<", "<").replaceAll(">", ">") + "<br>";
+ ret += "Date: " + message.getReceivedDate() + "<br>";
+ ret += "Subject: " + message.getSubject() + "<br>";
+ ArrayList<String> to = new ArrayList<String>();
+ to.addAll(message.getTo());
+ to.addAll(message.getCc());
+ ret += "To: " + Util.listToString(to).replaceAll("<", "<").replaceAll(">", ">") + "<br>";
+ } else if (type.equals("reply") || type.equals("replyAll")) {
+ ret += "On " + message.getReceivedDate();
+ ret += ", " + message.getFrom().replaceAll("<", "<").replaceAll(">", ">");
+ ret += ". wrote:<br>";
+ }
+ }
+ return ret + "<br>";
+ }
+ public static String wrapMessage(Message message, MessageDetails details, String type) {
+ String ret = "";
+ if (message != null) {
+ ret += generateHeader(message, type);
+ }
+ if (details != null && details.getText() != null && details.getText().length() > 0) {
+ ret += "<blockquote style='border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;'>";
+ ret += details.getText();
+ ret += "</blockquote>";
+ }
+ return ret;
+ }
+ protected void bindTo(EventBus eventBus) {
+ eventBus.addHandler(AddressClickEvent.TYPE, new AddressClickEventHandler() {
+ @Override
+ public void onClick(AddressClickEvent event) {
+ String to = display.getTo().getText();
+ if(to != null && to.trim().length() > 0){
+ display.getTo().setText(to + ";" + event.getEmail());
+ }else {
+ display.getTo().setText(event.getEmail());
+ }
+ }
+ });
eventBus.addHandler(SendClickEvent.TYPE, new SendClickEventHandler() {
public void onSendClick(SendClickEvent event) {
send();
}
});
- eventBus.addHandler(LoginEvent.TYPE, new LoginEventHandler() {
- public void onLogin(LoginEvent event) {
- user = event.getUser();
- }
- });
- eventBus.addHandler(AttachClickEvent.TYPE, new AttachClickEventHandler() {
- public void onAttachClick(AttachClickEvent event) {
- display.getAttachButton().fireEvent(new ClickEvent() {
- });
- }
- });
- registerHandler(display.getSendClick().addClickHandler(sendClickHandler));
- registerHandler(display.getCancelClick().addClickHandler(cancelClickHandler));
-
- registerHandler(display.getCcClick().addClickHandler(new ClickHandler() {
- @Override
- public void onClick(ClickEvent event) {
- display.showCc();
- }
- }));
- registerHandler(display.get_CcClick().addClickHandler(new ClickHandler() {
- @Override
- public void onClick(ClickEvent event) {
- display.hideCc();
- }
- }));
- registerHandler(display.getBccClick().addClickHandler(new ClickHandler() {
- @Override
- public void onClick(ClickEvent event) {
- display.showBcc();
- }
- }));
- registerHandler(display.get_BccClick().addClickHandler(new ClickHandler() {
- @Override
- public void onClick(ClickEvent event) {
- display.hideBcc();
- }
- }));
- registerHandler(display.getReplyClick().addClickHandler(new ClickHandler() {
- @Override
- public void onClick(ClickEvent event) {
- display.showReply();
- }
- }));
- registerHandler(display.get_ReplyClick().addClickHandler(new ClickHandler() {
- @Override
- public void onClick(ClickEvent event) {
- display.hideReply();
- }
- }));
- registerHandler(display.getFollowupClick().addClickHandler(new ClickHandler() {
- @Override
- public void onClick(ClickEvent event) {
- display.showFollowup();
- }
- }));
- registerHandler(display.get_FollowupClick().addClickHandler(new ClickHandler() {
- @Override
- public void onClick(ClickEvent event) {
- display.hideFollowup();
- }
- }));
- registerHandler(display.getUploader().addOnStatusChangedHandler(onStatusChangedHandler));
- registerHandler(display.getUploader().addOnFinishUploadHandler(onFinishUploadHandler));
- registerHandler(display.getUploader().addOnCancelUploadHandler(onCancelUploadHandler));
-
- eventBus.addHandler(MailToEvent.TYPE, new MailToEventHandler() {
- @Override
- public void onMailTo(MailToEvent event) {
- display.getTo().setText(event.getMailto());
- }
- });
-
- fillSuggestList();
-
- }
-
- private void fillSuggestList() {
- // TODO move this to hupaStorage
- Storage contactStore = Storage.getLocalStorageIfSupported();
- if (contactStore != null) {
- String contactsString = contactStore.getItem(MessageListActivity.CONTACTS_STORE);
- if (contactsString != null) {
- display.fillContactList(contactsString.replace("[", "").replace("]", "").trim().split(","));
- }
- }
- }
-
- private OnFinishUploaderHandler onFinishUploadHandler = new OnFinishUploaderHandler() {
- public void onFinish(IUploader uploader) {
- if (uploader.getStatus() == Status.SUCCESS) {
- MessageAttachment attachment = new MessageAttachmentImpl();
- // We use the fileInputName (unique) instead of the fileName so
- // as we
- // can find the item in the registry.
- attachment.setName(uploader.getInputName());
- attachment.setContentType(uploader.getServerInfo().ctype);
- attachment.setSize(uploader.getServerInfo().size);
- attachments.add(attachment);
- }
- }
- };
-
- private OnStatusChangedHandler onStatusChangedHandler = new OnStatusChangedHandler() {
- public void onStatusChanged(IUploader uploader) {
- Status stat = display.getUploader().getStatus();
- ((HasEnabled) display.getSendClick()).setEnabled(stat != Status.INPROGRESS);
- }
- };
-
- private OnCancelUploaderHandler onCancelUploadHandler = new OnCancelUploaderHandler() {
- public void onCancel(IUploader uploader) {
- for (Iterator<MessageAttachment> i = attachments.iterator(); i.hasNext();) {
- MessageAttachment attachment = i.next();
- if (attachment.getName().equals(uploader.getInputName()))
- i.remove();
- }
- }
- };
-
- private ClickHandler cancelClickHandler = new ClickHandler() {
- @Override
- public void onClick(ClickEvent event) {
- History.back();
- }
-
- };
-
- protected ClickHandler sendClickHandler = new ClickHandler() {
- public void onClick(ClickEvent event) {
- send();
- }
- };
-
- protected void send() {
- if (!validate())
- return;
- hupaController.showTopLoading("Sending...");
-
- MessageDetails oldDetails = place.getParameters().getOldDetails();
-
- if ("new".equals(place.getToken())) {
- SendMessageRequest sendReq = rf.sendMessageRequest();
- SendMessageAction sendAction = sendReq.create(SendMessageAction.class);
- sendAction.setMessage(parseMessage(sendReq));
- sendReq.send(sendAction).fire(new Receiver<GenericResult>() {
- @Override
- public void onSuccess(GenericResult response) {
- afterSend(response);
- }
- });
- } else if ("forward".equals(place.getToken())) {
- // FIXME will get a NullPointerException given accessing
- // directly from some URL like #/compose:forward
- SendForwardMessageRequest req = rf.sendForwardMessageRequest();
- SendForwardMessageAction action = req.create(SendForwardMessageAction.class);
- action.setReferences(oldDetails.getReferences());
-
- action.setMessage(parseMessage(req));
- ImapFolder f = req.create(ImapFolder.class);
- f.setFullName(place.getParameters().getFolderName());
- action.setFolder(f);
- action.setUid(place.getParameters().getOldmessage().getUid());
- req.send(action).fire(new Receiver<GenericResult>() {
- @Override
- public void onSuccess(GenericResult response) {
- afterSend(response);
- }
- });
- } else {
- SendReplyMessageRequest replyReq = rf.sendReplyMessageRequest();
- SendReplyMessageAction action = replyReq.create(SendReplyMessageAction.class);
- action.setReferences(oldDetails.getReferences());
- action.setMessage(parseMessage(replyReq));
- ImapFolder folder = replyReq.create(ImapFolder.class);
- folder.setFullName(place.getParameters().getFolderName());
- action.setFolder(folder);
- action.setUid(place.getParameters().getOldmessage().getUid());
- replyReq.send(action).fire(new Receiver<GenericResult>() {
- @Override
- public void onSuccess(GenericResult response) {
- afterSend(response);
- }
- });
- }
- }
- private boolean validate() {
- // Don't trust only in view validation
- return display.validate() && display.getTo().getText().trim().length() > 0
- && EmailListValidator.isValidAddressList(display.getTo().getText())
- && EmailListValidator.isValidAddressList(display.getCc().getText())
- && EmailListValidator.isValidAddressList(display.getBcc().getText());
- }
-
- protected SmtpMessage parseMessage(RequestContext rc) {
- SmtpMessage message = rc.create(SmtpMessage.class);
- List<MessageAttachment> attaches = new ArrayList<MessageAttachment>();
- for (MessageAttachment attach : attachments) {
- MessageAttachment attachMent = rc.create(MessageAttachment.class);
- attachMent.setName(attach.getName());
- attachMent.setSize(attach.getSize());
- attachMent.setContentType(attach.getContentType());
- attaches.add(attachMent);
- }
- message.setFrom(display.getFromText());
- message.setSubject(display.getSubject().getText());
- message.setText(display.getMessageHTML().getHTML());
- message.setMessageAttachments(attaches);
- message.setTo(emailTextToArray(display.getTo().getText()));
- message.setCc(emailTextToArray(display.getCc().getText()));
- message.setBcc(emailTextToArray(display.getBcc().getText()));
- return message;
- }
-
- private List<String> emailTextToArray(String emails) {
- List<String> cc = new ArrayList<String>();
- for (String ccRaw : emails.split("[,;]+")) {
- String ccRecip = ccRaw.trim();
- if (ccRecip.length() > 0) {
- cc.add(ccRaw.trim());
- }
- }
- return cc;
- }
-
- private void afterSend(GenericResult response) {
- hupaController.hideTopLoading();
- hupaController.showNotice("Your mail has been sent.", 10000);
- History.back();
- }
-
- public interface Displayable extends IsWidget {
- String getFromText();
- void showCc();
- void hideCc();
- void showBcc();
- void hideBcc();
- void showReply();
- void hideReply();
- void showFollowup();
- void hideFollowup();
- HasText getTo();
- HasText getCc();
- HasText getBcc();
- HasText getSubject();
- HasClickHandlers getSendClick();
- HasClickHandlers getCancelClick();
- HasClickHandlers getCcClick();
- HasClickHandlers get_CcClick();
- HasClickHandlers getBccClick();
- HasClickHandlers get_BccClick();
- HasClickHandlers getReplyClick();
- HasClickHandlers get_ReplyClick();
- HasClickHandlers getFollowupClick();
- HasClickHandlers get_FollowupClick();
- boolean validate();
- HasText getMessage();
- HasHTML getMessageHTML();
- ListBox getFromList();
- IUploader getUploader();
- void fillContactList(String[] contacts);
- HasFocusHandlers getAttachButton();
- }
+ eventBus.addHandler(LoginEvent.TYPE, new LoginEventHandler() {
+ public void onLogin(LoginEvent event) {
+ user = event.getUser();
+ }
+ });
+ eventBus.addHandler(AttachClickEvent.TYPE, new AttachClickEventHandler() {
+ public void onAttachClick(AttachClickEvent event) {
+ display.getAttachButton().fireEvent(new ClickEvent() {
+ });
+ }
+ });
+ registerHandler(display.getSendClick().addClickHandler(sendClickHandler));
+ registerHandler(display.getCancelClick().addClickHandler(cancelClickHandler));
+
+ registerHandler(display.getCcClick().addClickHandler(new ClickHandler() {
+ @Override
+ public void onClick(ClickEvent event) {
+ display.showCc();
+ }
+ }));
+ registerHandler(display.get_CcClick().addClickHandler(new ClickHandler() {
+ @Override
+ public void onClick(ClickEvent event) {
+ display.hideCc();
+ }
+ }));
+ registerHandler(display.getBccClick().addClickHandler(new ClickHandler() {
+ @Override
+ public void onClick(ClickEvent event) {
+ display.showBcc();
+ }
+ }));
+ registerHandler(display.get_BccClick().addClickHandler(new ClickHandler() {
+ @Override
+ public void onClick(ClickEvent event) {
+ display.hideBcc();
+ }
+ }));
+ registerHandler(display.getReplyClick().addClickHandler(new ClickHandler() {
+ @Override
+ public void onClick(ClickEvent event) {
+ display.showReply();
+ }
+ }));
+ registerHandler(display.get_ReplyClick().addClickHandler(new ClickHandler() {
+ @Override
+ public void onClick(ClickEvent event) {
+ display.hideReply();
+ }
+ }));
+ registerHandler(display.getFollowupClick().addClickHandler(new ClickHandler() {
+ @Override
+ public void onClick(ClickEvent event) {
+ display.showFollowup();
+ }
+ }));
+ registerHandler(display.get_FollowupClick().addClickHandler(new ClickHandler() {
+ @Override
+ public void onClick(ClickEvent event) {
+ display.hideFollowup();
+ }
+ }));
+ registerHandler(display.getUploader().addOnStatusChangedHandler(onStatusChangedHandler));
+ registerHandler(display.getUploader().addOnFinishUploadHandler(onFinishUploadHandler));
+ registerHandler(display.getUploader().addOnCancelUploadHandler(onCancelUploadHandler));
+
+ eventBus.addHandler(MailToEvent.TYPE, new MailToEventHandler() {
+ @Override
+ public void onMailTo(MailToEvent event) {
+ display.getTo().setText(event.getMailto());
+ }
+ });
+
+ fillSuggestList();
+
+ }
+
+ private void fillSuggestList() {
+ // TODO move this to hupaStorage
+ Storage contactStore = Storage.getLocalStorageIfSupported();
+ if (contactStore != null) {
+ String contactsString = contactStore.getItem(MessageListActivity.CONTACTS_STORE);
+ if (contactsString != null) {
+ display.fillContactList(contactsString.replace("[", "").replace("]", "").trim().split(","));
+ }
+ }
+ }
+
+ private OnFinishUploaderHandler onFinishUploadHandler = new OnFinishUploaderHandler() {
+ public void onFinish(IUploader uploader) {
+ if (uploader.getStatus() == Status.SUCCESS) {
+ MessageAttachment attachment = new MessageAttachmentImpl();
+ // We use the fileInputName (unique) instead of the fileName so
+ // as we
+ // can find the item in the registry.
+ attachment.setName(uploader.getInputName());
+ attachment.setContentType(uploader.getServerInfo().ctype);
+ attachment.setSize(uploader.getServerInfo().size);
+ attachments.add(attachment);
+ }
+ }
+ };
+
+ private OnStatusChangedHandler onStatusChangedHandler = new OnStatusChangedHandler() {
+ public void onStatusChanged(IUploader uploader) {
+ Status stat = display.getUploader().getStatus();
+ ((HasEnabled) display.getSendClick()).setEnabled(stat != Status.INPROGRESS);
+ }
+ };
+
+ private OnCancelUploaderHandler onCancelUploadHandler = new OnCancelUploaderHandler() {
+ public void onCancel(IUploader uploader) {
+ for (Iterator<MessageAttachment> i = attachments.iterator(); i.hasNext();) {
+ MessageAttachment attachment = i.next();
+ if (attachment.getName().equals(uploader.getInputName()))
+ i.remove();
+ }
+ }
+ };
+
+ private ClickHandler cancelClickHandler = new ClickHandler() {
+ @Override
+ public void onClick(ClickEvent event) {
+ History.back();
+ }
+
+ };
+
+ protected ClickHandler sendClickHandler = new ClickHandler() {
+ public void onClick(ClickEvent event) {
+ send();
+ }
+ };
+
+ protected void send() {
+ if (!validate())
+ return;
+ hupaController.showTopLoading("Sending...");
+
+ MessageDetails oldDetails = place.getParameters().getOldDetails();
+
+ if ("new".equals(place.getToken())) {
+ SendMessageRequest sendReq = rf.sendMessageRequest();
+ SendMessageAction sendAction = sendReq.create(SendMessageAction.class);
+ sendAction.setMessage(parseMessage(sendReq));
+ sendReq.send(sendAction).fire(new Receiver<GenericResult>() {
+ @Override
+ public void onSuccess(GenericResult response) {
+ afterSend(response);
+ }
+ });
+ } else if ("forward".equals(place.getToken())) {
+ // FIXME will get a NullPointerException given accessing
+ // directly from some URL like #/compose:forward
+ SendForwardMessageRequest req = rf.sendForwardMessageRequest();
+ SendForwardMessageAction action = req.create(SendForwardMessageAction.class);
+ action.setReferences(oldDetails.getReferences());
+
+ action.setMessage(parseMessage(req));
+ ImapFolder f = req.create(ImapFolder.class);
+ f.setFullName(place.getParameters().getFolderName());
+ action.setFolder(f);
+ action.setUid(place.getParameters().getOldmessage().getUid());
+ req.send(action).fire(new Receiver<GenericResult>() {
+ @Override
+ public void onSuccess(GenericResult response) {
+ afterSend(response);
+ }
+ });
+ } else {
+ SendReplyMessageRequest replyReq = rf.sendReplyMessageRequest();
+ SendReplyMessageAction action = replyReq.create(SendReplyMessageAction.class);
+ action.setReferences(oldDetails.getReferences());
+ action.setMessage(parseMessage(replyReq));
+ ImapFolder folder = replyReq.create(ImapFolder.class);
+ folder.setFullName(place.getParameters().getFolderName());
+ action.setFolder(folder);
+ action.setUid(place.getParameters().getOldmessage().getUid());
+ replyReq.send(action).fire(new Receiver<GenericResult>() {
+ @Override
+ public void onSuccess(GenericResult response) {
+ afterSend(response);
+ }
+ });
+ }
+ }
+ private boolean validate() {
+ // Don't trust only in view validation
+ return display.validate() && display.getTo().getText().trim().length() > 0
+ && EmailListValidator.isValidAddressList(display.getTo().getText())
+ && EmailListValidator.isValidAddressList(display.getCc().getText())
+ && EmailListValidator.isValidAddressList(display.getBcc().getText());
+ }
+
+ protected SmtpMessage parseMessage(RequestContext rc) {
+ SmtpMessage message = rc.create(SmtpMessage.class);
+ List<MessageAttachment> attaches = new ArrayList<MessageAttachment>();
+ for (MessageAttachment attach : attachments) {
+ MessageAttachment attachMent = rc.create(MessageAttachment.class);
+ attachMent.setName(attach.getName());
+ attachMent.setSize(attach.getSize());
+ attachMent.setContentType(attach.getContentType());
+ attaches.add(attachMent);
+ }
+ message.setFrom(display.getFromText());
+ message.setSubject(display.getSubject().getText());
+ message.setText(display.getMessageHTML().getHTML());
+ message.setMessageAttachments(attaches);
+ message.setTo(emailTextToArray(display.getTo().getText()));
+ message.setCc(emailTextToArray(display.getCc().getText()));
+ message.setBcc(emailTextToArray(display.getBcc().getText()));
+ return message;
+ }
+
+ private List<String> emailTextToArray(String emails) {
+ List<String> cc = new ArrayList<String>();
+ for (String ccRaw : emails.split("[,;]+")) {
+ String ccRecip = ccRaw.trim();
+ if (ccRecip.length() > 0) {
+ cc.add(ccRaw.trim());
+ }
+ }
+ return cc;
+ }
+
+ private void afterSend(GenericResult response) {
+ hupaController.hideTopLoading();
+ hupaController.showNotice("Your mail has been sent.", 10000);
+ History.back();
+ }
+
+ public interface Displayable extends IsWidget {
+ String getFromText();
+ void showCc();
+ void hideCc();
+ void showBcc();
+ void hideBcc();
+ void showReply();
+ void hideReply();
+ void showFollowup();
+ void hideFollowup();
+ HasText getTo();
+ HasText getCc();
+ HasText getBcc();
+ HasText getSubject();
+ HasClickHandlers getSendClick();
+ HasClickHandlers getCancelClick();
+ HasClickHandlers getCcClick();
+ HasClickHandlers get_CcClick();
+ HasClickHandlers getBccClick();
+ HasClickHandlers get_BccClick();
+ HasClickHandlers getReplyClick();
+ HasClickHandlers get_ReplyClick();
+ HasClickHandlers getFollowupClick();
+ HasClickHandlers get_FollowupClick();
+ boolean validate();
+ HasText getMessage();
+ HasHTML getMessageHTML();
+ ListBox getFromList();
+ IUploader getUploader();
+ void fillContactList(String[] contacts);
+ HasFocusHandlers getAttachButton();
+ }
}
Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/ComposeToolBarActivity.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/ComposeToolBarActivity.java?rev=1579559&r1=1579558&r2=1579559&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/ComposeToolBarActivity.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/ComposeToolBarActivity.java Thu Mar 20 08:16:02 2014
@@ -31,17 +31,17 @@ import com.google.inject.Inject;
public class ComposeToolBarActivity extends AppBaseActivity {
public Activity with(ComposePlace place) {
- return this;
- }
-
+ return this;
+ }
+
@Inject private Displayable display;
-
- @Override
- public void start(AcceptsOneWidget container, EventBus eventBus) {
- container.setWidget(display.asWidget());
- }
- public interface Displayable extends IsWidget {
- HasClickHandlers getSendClick();
- }
+ @Override
+ public void start(AcceptsOneWidget container, EventBus eventBus) {
+ container.setWidget(display.asWidget());
+ }
+
+ public interface Displayable extends IsWidget {
+ HasClickHandlers getSendClick();
+ }
}
Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/ContactPropertiesActivity.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/ContactPropertiesActivity.java?rev=1579559&r1=1579558&r2=1579559&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/ContactPropertiesActivity.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/ContactPropertiesActivity.java Thu Mar 20 08:16:02 2014
@@ -31,15 +31,15 @@ import com.google.inject.Inject;
public class ContactPropertiesActivity extends AppBaseActivity {
- @Override
- public void start(AcceptsOneWidget container, EventBus eventBus) {
- container.setWidget(display.asWidget());
- }
+ @Override
+ public void start(AcceptsOneWidget container, EventBus eventBus) {
+ container.setWidget(display.asWidget());
+ }
- @Inject private Displayable display;
+ @Inject private Displayable display;
- public interface Displayable extends IsWidget {
- void cascade(LabelNode labelNode, List<LabelNode> list, int cascadeTypeAdd);
- HasClickHandlers getSave();
- }
+ public interface Displayable extends IsWidget {
+ void cascade(LabelNode labelNode, List<LabelNode> list, int cascadeTypeAdd);
+ HasClickHandlers getSave();
+ }
}
Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/ContactsListActivity.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/ContactsListActivity.java?rev=1579559&r1=1579558&r2=1579559&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/ContactsListActivity.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/ContactsListActivity.java Thu Mar 20 08:16:02 2014
@@ -44,70 +44,70 @@ import com.google.web.bindery.requestfac
public class ContactsListActivity extends AppBaseActivity {
- @Inject private HupaController hupaController;
- @Inject private Displayable display;
- @Inject private LabelPropertiesActivity.Displayable labelProperties;
-
-
- @Override
- public void start(AcceptsOneWidget container, EventBus eventBus) {
- container.setWidget(display.asWidget());
- bindTo(eventBus);
- }
-
- private void bindTo(final EventBus eventBus) {
- this.registerHandler(display.getDelete().addClickHandler(new ClickHandler() {
- @Override
- public void onClick(ClickEvent event) {
- if (Window.confirm("Are you sure?")) {
- eventBus.fireEvent(new DeleteFolderEvent());
- }
- }
- }));
- eventBus.addHandler(DeleteFolderEvent.TYPE, new DeleteFolderEventHandler() {
- @Override
- public void onDeleteFolderEvent(DeleteFolderEvent event) {
- deleteSelected();
- }
- });
- eventBus.addHandler(RefreshLabelListEvent.TYPE, new RefreshLabelListEventHandler(){
- @Override
- public void onRefreshEvent(RefreshLabelListEvent event) {
- display.refresh();
- }
- });
- }
-
- public interface Displayable extends IsWidget {
- final int CASCADE_TYPE_ADD = 0x01;
- final int CASCADE_TYPE_RENAME = 0x02;
- SingleSelectionModel<LabelNode> getSelectionModel();
- HasClickHandlers getAdd();
- HasClickHandlers getDelete();
- void refresh();
- }
-
- public void deleteSelected() {
- hupaController.showTopLoading("Deleting...");
- SingleSelectionModel<LabelNode> selectionModel = display.getSelectionModel();
- LabelNode labelNode = selectionModel.getSelectedObject();
- DeleteFolderRequest req = rf.deleteFolderRequest();
- DeleteFolderAction action = req.create(DeleteFolderAction.class);
- final ImapFolder f = req.create(ImapFolder.class);
- f.setFullName(labelNode.getFolder().getFullName());
- action.setFolder(f);
- req.delete(action).fire(new Receiver<GenericResult>() {
- @Override
- public void onSuccess(GenericResult response) {
- hupaController.hideTopLoading();
- display.refresh();
- hupaController.showNotice("The label \"" + f.getFullName() + "\" was deleted.", 10000);
- }
- @Override
- public void onFailure(ServerFailure error) {
- hupaController.hideTopLoading();
- hupaController.showNotice(error.getMessage(), 10000);
- }
- });
- }
+ @Inject private HupaController hupaController;
+ @Inject private Displayable display;
+ @Inject private LabelPropertiesActivity.Displayable labelProperties;
+
+
+ @Override
+ public void start(AcceptsOneWidget container, EventBus eventBus) {
+ container.setWidget(display.asWidget());
+ bindTo(eventBus);
+ }
+
+ private void bindTo(final EventBus eventBus) {
+ this.registerHandler(display.getDelete().addClickHandler(new ClickHandler() {
+ @Override
+ public void onClick(ClickEvent event) {
+ if (Window.confirm("Are you sure?")) {
+ eventBus.fireEvent(new DeleteFolderEvent());
+ }
+ }
+ }));
+ eventBus.addHandler(DeleteFolderEvent.TYPE, new DeleteFolderEventHandler() {
+ @Override
+ public void onDeleteFolderEvent(DeleteFolderEvent event) {
+ deleteSelected();
+ }
+ });
+ eventBus.addHandler(RefreshLabelListEvent.TYPE, new RefreshLabelListEventHandler(){
+ @Override
+ public void onRefreshEvent(RefreshLabelListEvent event) {
+ display.refresh();
+ }
+ });
+ }
+
+ public interface Displayable extends IsWidget {
+ final int CASCADE_TYPE_ADD = 0x01;
+ final int CASCADE_TYPE_RENAME = 0x02;
+ SingleSelectionModel<LabelNode> getSelectionModel();
+ HasClickHandlers getAdd();
+ HasClickHandlers getDelete();
+ void refresh();
+ }
+
+ public void deleteSelected() {
+ hupaController.showTopLoading("Deleting...");
+ SingleSelectionModel<LabelNode> selectionModel = display.getSelectionModel();
+ LabelNode labelNode = selectionModel.getSelectedObject();
+ DeleteFolderRequest req = rf.deleteFolderRequest();
+ DeleteFolderAction action = req.create(DeleteFolderAction.class);
+ final ImapFolder f = req.create(ImapFolder.class);
+ f.setFullName(labelNode.getFolder().getFullName());
+ action.setFolder(f);
+ req.delete(action).fire(new Receiver<GenericResult>() {
+ @Override
+ public void onSuccess(GenericResult response) {
+ hupaController.hideTopLoading();
+ display.refresh();
+ hupaController.showNotice("The label \"" + f.getFullName() + "\" was deleted.", 10000);
+ }
+ @Override
+ public void onFailure(ServerFailure error) {
+ hupaController.hideTopLoading();
+ hupaController.showNotice(error.getMessage(), 10000);
+ }
+ });
+ }
}
Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/FolderListActivity.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/FolderListActivity.java?rev=1579559&r1=1579558&r2=1579559&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/FolderListActivity.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/FolderListActivity.java Thu Mar 20 08:16:02 2014
@@ -30,37 +30,37 @@ import com.google.inject.Inject;
public class FolderListActivity extends AppBaseActivity {
- @Inject private Displayable display;
+ @Inject private Displayable display;
- @Override
- public void start(AcceptsOneWidget container, EventBus eventBus) {
- container.setWidget(display.asWidget());
- bindTo(eventBus);
- }
-
- private Timer refreshFoldersTimer = new Timer() {
+ @Override
+ public void start(AcceptsOneWidget container, EventBus eventBus) {
+ container.setWidget(display.asWidget());
+ bindTo(eventBus);
+ }
+
+ private Timer refreshFoldersTimer = new Timer() {
public void run() {
eventBus.fireEvent(new RefreshFoldersEvent());
}
};
- private void bindTo(EventBus eventBus) {
- eventBus.addHandler(RefreshFoldersEvent.TYPE, new RefreshFoldersEventHandler() {
- @Override
- public void onRefreshEvent(RefreshFoldersEvent event) {
- display.refresh();
- }
- });
+ private void bindTo(EventBus eventBus) {
+ eventBus.addHandler(RefreshFoldersEvent.TYPE, new RefreshFoldersEventHandler() {
+ @Override
+ public void onRefreshEvent(RefreshFoldersEvent event) {
+ display.refresh();
+ }
+ });
refreshFoldersTimer.scheduleRepeating(3*60*1000);
- }
-
- @Override
- public void onStop() {
- super.onStop();
- refreshFoldersTimer.cancel();
- }
-
- public interface Displayable extends IsWidget {
- void refresh();
- }
+ }
+
+ @Override
+ public void onStop() {
+ super.onStop();
+ refreshFoldersTimer.cancel();
+ }
+
+ public interface Displayable extends IsWidget {
+ void refresh();
+ }
}
Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/LabelListActivity.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/LabelListActivity.java?rev=1579559&r1=1579558&r2=1579559&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/LabelListActivity.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/LabelListActivity.java Thu Mar 20 08:16:02 2014
@@ -44,70 +44,70 @@ import com.google.web.bindery.requestfac
public class LabelListActivity extends AppBaseActivity {
- @Inject private HupaController hupaController;
- @Inject private Displayable display;
- @Inject private LabelPropertiesActivity.Displayable labelProperties;
-
-
- @Override
- public void start(AcceptsOneWidget container, EventBus eventBus) {
- container.setWidget(display.asWidget());
- bindTo(eventBus);
- }
-
- private void bindTo(final EventBus eventBus) {
- this.registerHandler(display.getDelete().addClickHandler(new ClickHandler() {
- @Override
- public void onClick(ClickEvent event) {
- if (Window.confirm("Are you sure?")) {
- eventBus.fireEvent(new DeleteFolderEvent());
- }
- }
- }));
- eventBus.addHandler(DeleteFolderEvent.TYPE, new DeleteFolderEventHandler() {
- @Override
- public void onDeleteFolderEvent(DeleteFolderEvent event) {
- deleteSelected();
- }
- });
- eventBus.addHandler(RefreshLabelListEvent.TYPE, new RefreshLabelListEventHandler(){
- @Override
- public void onRefreshEvent(RefreshLabelListEvent event) {
- display.refresh();
- }
- });
- }
-
- public interface Displayable extends IsWidget {
- final int CASCADE_TYPE_ADD = 0x01;
- final int CASCADE_TYPE_RENAME = 0x02;
- SingleSelectionModel<LabelNode> getSelectionModel();
- HasClickHandlers getAdd();
- HasClickHandlers getDelete();
- void refresh();
- }
-
- public void deleteSelected() {
- hupaController.showTopLoading("Deleting...");
- SingleSelectionModel<LabelNode> selectionModel = display.getSelectionModel();
- LabelNode labelNode = selectionModel.getSelectedObject();
- DeleteFolderRequest req = rf.deleteFolderRequest();
- DeleteFolderAction action = req.create(DeleteFolderAction.class);
- final ImapFolder f = req.create(ImapFolder.class);
- f.setFullName(labelNode.getFolder().getFullName());
- action.setFolder(f);
- req.delete(action).fire(new Receiver<GenericResult>() {
- @Override
- public void onSuccess(GenericResult response) {
- hupaController.hideTopLoading();
- display.refresh();
- hupaController.showNotice("The label \"" + f.getFullName() + "\" was deleted.", 10000);
- }
- @Override
- public void onFailure(ServerFailure error) {
- hupaController.hideTopLoading();
- hupaController.showNotice(error.getMessage(), 10000);
- }
- });
- }
+ @Inject private HupaController hupaController;
+ @Inject private Displayable display;
+ @Inject private LabelPropertiesActivity.Displayable labelProperties;
+
+
+ @Override
+ public void start(AcceptsOneWidget container, EventBus eventBus) {
+ container.setWidget(display.asWidget());
+ bindTo(eventBus);
+ }
+
+ private void bindTo(final EventBus eventBus) {
+ this.registerHandler(display.getDelete().addClickHandler(new ClickHandler() {
+ @Override
+ public void onClick(ClickEvent event) {
+ if (Window.confirm("Are you sure?")) {
+ eventBus.fireEvent(new DeleteFolderEvent());
+ }
+ }
+ }));
+ eventBus.addHandler(DeleteFolderEvent.TYPE, new DeleteFolderEventHandler() {
+ @Override
+ public void onDeleteFolderEvent(DeleteFolderEvent event) {
+ deleteSelected();
+ }
+ });
+ eventBus.addHandler(RefreshLabelListEvent.TYPE, new RefreshLabelListEventHandler(){
+ @Override
+ public void onRefreshEvent(RefreshLabelListEvent event) {
+ display.refresh();
+ }
+ });
+ }
+
+ public interface Displayable extends IsWidget {
+ final int CASCADE_TYPE_ADD = 0x01;
+ final int CASCADE_TYPE_RENAME = 0x02;
+ SingleSelectionModel<LabelNode> getSelectionModel();
+ HasClickHandlers getAdd();
+ HasClickHandlers getDelete();
+ void refresh();
+ }
+
+ public void deleteSelected() {
+ hupaController.showTopLoading("Deleting...");
+ SingleSelectionModel<LabelNode> selectionModel = display.getSelectionModel();
+ LabelNode labelNode = selectionModel.getSelectedObject();
+ DeleteFolderRequest req = rf.deleteFolderRequest();
+ DeleteFolderAction action = req.create(DeleteFolderAction.class);
+ final ImapFolder f = req.create(ImapFolder.class);
+ f.setFullName(labelNode.getFolder().getFullName());
+ action.setFolder(f);
+ req.delete(action).fire(new Receiver<GenericResult>() {
+ @Override
+ public void onSuccess(GenericResult response) {
+ hupaController.hideTopLoading();
+ display.refresh();
+ hupaController.showNotice("The label \"" + f.getFullName() + "\" was deleted.", 10000);
+ }
+ @Override
+ public void onFailure(ServerFailure error) {
+ hupaController.hideTopLoading();
+ hupaController.showNotice(error.getMessage(), 10000);
+ }
+ });
+ }
}
Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/LabelPropertiesActivity.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/LabelPropertiesActivity.java?rev=1579559&r1=1579558&r2=1579559&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/LabelPropertiesActivity.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/LabelPropertiesActivity.java Thu Mar 20 08:16:02 2014
@@ -31,15 +31,15 @@ import com.google.inject.Inject;
public class LabelPropertiesActivity extends AppBaseActivity {
- @Override
- public void start(AcceptsOneWidget container, EventBus eventBus) {
- container.setWidget(display.asWidget());
- }
+ @Override
+ public void start(AcceptsOneWidget container, EventBus eventBus) {
+ container.setWidget(display.asWidget());
+ }
- @Inject private Displayable display;
+ @Inject private Displayable display;
- public interface Displayable extends IsWidget {
- void cascade(LabelNode labelNode, List<LabelNode> list, int cascadeTypeAdd);
- HasClickHandlers getSave();
- }
+ public interface Displayable extends IsWidget {
+ void cascade(LabelNode labelNode, List<LabelNode> list, int cascadeTypeAdd);
+ HasClickHandlers getSave();
+ }
}
Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/LoginActivity.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/LoginActivity.java?rev=1579559&r1=1579558&r2=1579559&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/LoginActivity.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/LoginActivity.java Thu Mar 20 08:16:02 2014
@@ -44,13 +44,13 @@ import com.google.web.bindery.requestfac
import com.google.web.bindery.requestfactory.shared.ServerFailure;
public class LoginActivity extends AppBaseActivity {
-
+
@Inject private HupaLayoutable hupaLayout;
@Inject private Displayable display;
@Inject private HupaConstants constants;
@Inject private HupaStorage storage;
-
+
private Settings settings;
@Override
@@ -72,24 +72,24 @@ public class LoginActivity extends AppBa
if (user.isEmpty() || pass.isEmpty())
return;
display.setLoading(true);
-
+
LoginUserRequest loginRequest = rf.loginRequest();
if (settings != null) {
settings = display.getSettings(loginRequest.edit(settings));
}
-
+
loginRequest.login(user, pass, settings).fire(new Receiver<User>() {
@Override
public void onSuccess(User response) {
HupaController.user = response;
-
+
RootLayoutPanel.get().clear();
RootLayoutPanel.get().add(hupaLayout.get());
pc.goTo(new FolderPlace(response.getSettings().getInboxFolderName()));
-
+
eventBus.fireEvent(new LoginEvent(response));
display.setLoading(false);
-
+
storage.saveSettings(user, settings);
}
@Override
@@ -109,7 +109,7 @@ public class LoginActivity extends AppBa
public Widget asWidget();
void setSettings(Settings s);
}
-
+
public void loadSettings() {
System.out.println("Load settings");
String email = display.getUserNameValue().getValue();
Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/LogoActivity.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/LogoActivity.java?rev=1579559&r1=1579558&r2=1579559&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/LogoActivity.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/LogoActivity.java Thu Mar 20 08:16:02 2014
@@ -26,12 +26,12 @@ import com.google.inject.Inject;
public class LogoActivity extends AppBaseActivity {
- @Override
- public void start(AcceptsOneWidget container, EventBus eventBus) {
- container.setWidget(display.asWidget());
- }
+ @Override
+ public void start(AcceptsOneWidget container, EventBus eventBus) {
+ container.setWidget(display.asWidget());
+ }
- @Inject private Displayable display;
-
- public interface Displayable extends IsWidget {}
+ @Inject private Displayable display;
+
+ public interface Displayable extends IsWidget {}
}
Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/MessageContentActivity.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/MessageContentActivity.java?rev=1579559&r1=1579558&r2=1579559&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/MessageContentActivity.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/MessageContentActivity.java Thu Mar 20 08:16:02 2014
@@ -54,134 +54,134 @@ import com.google.web.bindery.requestfac
public class MessageContentActivity extends AppBaseActivity {
- private static final Logger log = Logger.getLogger(MessageContentActivity.class.getName());
+ private static final Logger log = Logger.getLogger(MessageContentActivity.class.getName());
- @Inject private Displayable display;
+ @Inject private Displayable display;
@Inject private ToolBarActivity.Displayable toolBar;
-
- private String folder;
- private String uid;
- private MessageDetails details;
-
- public MessageContentActivity() {
+
+ private String folder;
+ private String uid;
+ private MessageDetails details;
+
+ public MessageContentActivity() {
exportJSMethods(this);
}
-
- @Override
- public void start(AcceptsOneWidget container, final EventBus eventBus) {
- bindTo(eventBus);
- if (isUidSet()) {
+
+ @Override
+ public void start(AcceptsOneWidget container, final EventBus eventBus) {
+ bindTo(eventBus);
+ if (isUidSet()) {
hc.showTopLoading("Loading... ");
display.clearContent();
- GetMessageDetailsRequest req = rf.messageDetailsRequest();
- GetMessageDetailsAction action = req.create(GetMessageDetailsAction.class);
- final ImapFolder f = req.create(ImapFolder.class);
- f.setFullName(folder);
- action.setFolder(f);
- action.setUid(Long.parseLong(uid));
-
- final String id = uid;
- req.get(action).fire(new Receiver<GetMessageDetailsResult>() {
- @Override
- public void onSuccess(GetMessageDetailsResult response) {
- if (!id.equals(uid)) {
- return;
- }
+ GetMessageDetailsRequest req = rf.messageDetailsRequest();
+ GetMessageDetailsAction action = req.create(GetMessageDetailsAction.class);
+ final ImapFolder f = req.create(ImapFolder.class);
+ f.setFullName(folder);
+ action.setFolder(f);
+ action.setUid(Long.parseLong(uid));
+
+ final String id = uid;
+ req.get(action).fire(new Receiver<GetMessageDetailsResult>() {
+ @Override
+ public void onSuccess(GetMessageDetailsResult response) {
+ if (!id.equals(uid)) {
+ return;
+ }
hc.hideTopLoading();
- eventBus.fireEvent(new MessageViewEvent(response.getMessageDetails()));
+ eventBus.fireEvent(new MessageViewEvent(response.getMessageDetails()));
- details = response.getMessageDetails();
- display.fillMessageContent(details.getText(), false);
-
- List<MessageAttachment> attaches = details.getMessageAttachments();
- if (attaches != null && !attaches.isEmpty()) {
- display.setAttachments(attaches, folder, Long.parseLong(uid));
- }
- }
+ details = response.getMessageDetails();
+ display.fillMessageContent(details.getText(), false);
- @Override
- public void onFailure(ServerFailure error) {
+ List<MessageAttachment> attaches = details.getMessageAttachments();
+ if (attaches != null && !attaches.isEmpty()) {
+ display.setAttachments(attaches, folder, Long.parseLong(uid));
+ }
+ }
+
+ @Override
+ public void onFailure(ServerFailure error) {
hc.hideTopLoading();
toolBar.enableAllTools(false);
- if (error.isFatal()) {
- hc.showNotice(error.getMessage(), 10000);
- }
- }
- });
- }
- container.setWidget(display.asWidget());
- }
-
- private void bindTo(EventBus eventBus) {
- eventBus.addHandler(ShowRawEvent.TYPE, new ShowRawEventHandler() {
- @Override
- public void onShowRaw(ShowRawEvent event) {
- String message_url = GWT.getModuleBaseURL() + SConsts.SERVLET_SOURCE + "?" + SConsts.PARAM_UID + "="
- + uid + "&" + SConsts.PARAM_FOLDER + "=" + folder;
- Window.open(message_url, "_blank", "");
- }
- });
- eventBus.addHandler(RefreshFoldersEvent.TYPE, new RefreshFoldersEventHandler() {
+ if (error.isFatal()) {
+ hc.showNotice(error.getMessage(), 10000);
+ }
+ }
+ });
+ }
+ container.setWidget(display.asWidget());
+ }
+
+ private void bindTo(EventBus eventBus) {
+ eventBus.addHandler(ShowRawEvent.TYPE, new ShowRawEventHandler() {
+ @Override
+ public void onShowRaw(ShowRawEvent event) {
+ String message_url = GWT.getModuleBaseURL() + SConsts.SERVLET_SOURCE + "?" + SConsts.PARAM_UID + "="
+ + uid + "&" + SConsts.PARAM_FOLDER + "=" + folder;
+ Window.open(message_url, "_blank", "");
+ }
+ });
+ eventBus.addHandler(RefreshFoldersEvent.TYPE, new RefreshFoldersEventHandler() {
public void onRefreshEvent(RefreshFoldersEvent event) {
display.clearContent();
}
});
- }
-
- private boolean isUidSet() {
- return uid != null && uid.matches("\\d+");
- }
+ }
- public interface Displayable extends IsWidget {
- void clearContent();
+ private boolean isUidSet() {
+ return uid != null && uid.matches("\\d+");
+ }
+
+ public interface Displayable extends IsWidget {
+ void clearContent();
void setAttachments(List<MessageAttachment> attachements, String folder, long uid);
- HasHTML getMessageHTML();
+ HasHTML getMessageHTML();
void fillMessageContent(String messageDetail, boolean isEditable);
- }
+ }
+
+ public Activity with(TokenWrapper tokenWrapper) {
+ folder = tokenWrapper.getFolder();
+ uid = tokenWrapper.getUid();
+ return this;
+ }
+
+ public void openLink(String url) {
+ Window.open(url, "_blank", "");
+ }
+
+ public void mailTo(String mailto) {
+ pc.goTo(new ComposePlace("new").with(new Parameters(null, null, null, null)));
+ eventBus.fireEvent(new MailToEvent(mailto));
+ }
- public Activity with(TokenWrapper tokenWrapper) {
- folder = tokenWrapper.getFolder();
- uid = tokenWrapper.getUid();
- return this;
- }
-
- public void openLink(String url) {
- Window.open(url, "_blank", "");
- }
-
- public void mailTo(String mailto) {
- pc.goTo(new ComposePlace("new").with(new Parameters(null, null, null, null)));
- eventBus.fireEvent(new MailToEvent(mailto));
- }
-
- private String getHeader(String key) {
+ private String getHeader(String key) {
for (MailHeader h : details.getMailHeaders()) {
if (h.getName().equals(key)) {
return h.getValue();
}
}
return null;
- }
-
+ }
+
private boolean isSenderMessage() {
String from = getHeader("From");
return from != null && from.contains(HupaController.user.getName())
|| folder.equals(HupaController.user.getSettings().getSentFolderName());
}
- protected native void exportJSMethods(MessageContentActivity activity)
- /*-{
- $wnd.openLink = function(url) {
- try {
- activity.@org.apache.hupa.client.activity.MessageContentActivity::openLink(Ljava/lang/String;) (url);
- } catch(e) {}
- return false;
- };
- $wnd.mailTo = function(mail) {
- try {
- activity.@org.apache.hupa.client.activity.MessageContentActivity::mailTo(Ljava/lang/String;) (mail);
- } catch(e) {}
- return false;
- };
+ protected native void exportJSMethods(MessageContentActivity activity)
+ /*-{
+ $wnd.openLink = function(url) {
+ try {
+ activity.@org.apache.hupa.client.activity.MessageContentActivity::openLink(Ljava/lang/String;) (url);
+ } catch(e) {}
+ return false;
+ };
+ $wnd.mailTo = function(mail) {
+ try {
+ activity.@org.apache.hupa.client.activity.MessageContentActivity::mailTo(Ljava/lang/String;) (mail);
+ } catch(e) {}
+ return false;
+ };
}-*/;
}
Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/MessageListActivity.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/MessageListActivity.java?rev=1579559&r1=1579558&r2=1579559&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/MessageListActivity.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/MessageListActivity.java Thu Mar 20 08:16:02 2014
@@ -73,56 +73,56 @@ import com.google.web.bindery.requestfac
public class MessageListActivity extends AppBaseActivity {
- @Inject protected Displayable display;
- @Inject protected ToolBarActivity.Displayable toolBar;
+ @Inject protected Displayable display;
+ @Inject protected ToolBarActivity.Displayable toolBar;
@Inject protected HupaStorage hupaStorage;
protected String folderName;
- protected User user;
- FetchMessagesResult currentFechResult;
- Promise gettingMessages;
-
- boolean first = true;
-
- @Inject
- public MessageListActivity(EventBus eventBus) {
- bindTo(eventBus);
+ protected User user;
+ FetchMessagesResult currentFechResult;
+ Promise gettingMessages;
+
+ boolean first = true;
+
+ @Inject
+ public MessageListActivity(EventBus eventBus) {
+ bindTo(eventBus);
}
-
+
private Timer refreshMessagesTimer = new Timer() {
public void run() {
display.refresh();
}
};
-
+
@Override
public void onStop() {
super.onStop();
refreshMessagesTimer.cancel();
- }
-
- @Override
- public void start(AcceptsOneWidget container, final EventBus eventBus) {
- refreshMessagesTimer.scheduleRepeating(5*60*1000);
-
- container.setWidget(display.asWidget());
- if (!first) {
- display.refresh();
- first = false;
- }
- rf.sessionRequest().getUser().fire(new Receiver<User>() {
- @Override
- public void onSuccess(User u) {
- if (u == null) {
- onFailure(null);
- } else {
- user = u;
- }
- }
- @Override
- public void onFailure(ServerFailure error) {
- }
- });
+ }
+
+ @Override
+ public void start(AcceptsOneWidget container, final EventBus eventBus) {
+ refreshMessagesTimer.scheduleRepeating(5*60*1000);
+
+ container.setWidget(display.asWidget());
+ if (!first) {
+ display.refresh();
+ first = false;
+ }
+ rf.sessionRequest().getUser().fire(new Receiver<User>() {
+ @Override
+ public void onSuccess(User u) {
+ if (u == null) {
+ onFailure(null);
+ } else {
+ user = u;
+ }
+ }
+ @Override
+ public void onFailure(ServerFailure error) {
+ }
+ });
this.registerHandler(display.getGrid().addCellPreviewHandler(new Handler<Message>() {
@Override
public void onCellPreview(final CellPreviewEvent<Message> event) {
@@ -130,10 +130,10 @@ public class MessageListActivity extends
onMessageSelected(event.getValue());
}
}
- }));
- }
-
- protected void onMessageSelected(Message message) {
+ }));
+ }
+
+ protected void onMessageSelected(Message message) {
antiSelectMessages(display.getGrid().getVisibleItems());
GetMessageDetailsRequest req = rf.messageDetailsRequest();
GetMessageDetailsAction action = req.create(GetMessageDetailsAction.class);
@@ -149,91 +149,91 @@ public class MessageListActivity extends
toolBar.enableDealingTools(true);
ToolBarView.Parameters p = new ToolBarView.Parameters(user, folderName, message, null);
toolBar.setParameters(p);
-
+
// display.refresh();
// eventBus.fireEvent(new RefreshFoldersEvent(event.getValue()));
-
- }
-
+
+ }
+
private String getToken(Message message) {
String token = folderName + AbstractPlace.SPLITTER + message.getUid();
return token;
}
-
- private boolean hasClickedButFirstCol(CellPreviewEvent<Message> event) {
- return "click".equals(event.getNativeEvent().getType()) && 0 != event.getColumn();
- }
-
- private void bindTo(final EventBus eventBus) {
-
- eventBus.addHandler(DeleteClickEvent.TYPE, new DeleteClickEventHandler() {
- @Override
- public void onDeleteClickEvent(DeleteClickEvent event) {
- deleteSelectedMessages();
- }
- });
-
- eventBus.addHandler(RefreshMessagesEvent.TYPE, new RefreshMessagesEventHandler() {
- @Override
- public void onRefresh(RefreshMessagesEvent event) {
- display.setSearchValue(event.getSearchValue());
- display.refresh();
- System.out.println("REFRESH DISPLAY");
- }
- });
-
- eventBus.addHandler(MoveMessageEvent.TYPE, new MoveMessageEventHandler() {
-
- @Override
- public void onMoveMessageHandler(final MoveMessageEvent event) {
- hc.showTopLoading("Moving...");
- MoveMessageRequest req = rf.moveMessageRequest();
- ImapFolder f = req.create(ImapFolder.class);
- ImapFolder newF = req.create(ImapFolder.class);
-
- String fullName = null;
- if (pc.getWhere() instanceof FolderPlace) {
- fullName = ((FolderPlace) pc.getWhere()).getToken();
- } else {
- fullName = ((MessagePlace) pc.getWhere()).getTokenWrapper().getFolder();
- }
- f.setFullName(fullName);
- newF.setFullName(event.getNewFolder().getFullName());
- MoveMessageAction action = req.create(MoveMessageAction.class);
-
- final List<Long> uids = display.getSelectedMessagesIds();
- // TODO can move more than one message once.
- if (uids.isEmpty() || uids.size() > 1) {
- hc.hideTopLoading();
- hc.showNotice("Please select one and only one message", 10000);
- return;
- }
- action.setMessageUid(uids.get(0));
- action.setNewFolder(newF);
- action.setOldFolder(f);
- req.move(action).fire(new Receiver<GenericResult>() {
-
- @Override
- public void onSuccess(GenericResult response) {
- display.refresh();
- eventBus.fireEvent(new RefreshFoldersEvent());
- hc.hideTopLoading();
- hc.showNotice("The conversation has been moved to \"" + event.getNewFolder() + "\"", 10000);
- }
-
- @Override
- public void onFailure(ServerFailure error) {
- super.onFailure(error);
- hc.hideTopLoading();
- hc.showNotice(error.getMessage(), 10000);
- }
-
- });
- }
-
- });
-
- eventBus.addHandler(MessageViewEvent.TYPE, new MessageViewEventHandler() {
+
+ private boolean hasClickedButFirstCol(CellPreviewEvent<Message> event) {
+ return "click".equals(event.getNativeEvent().getType()) && 0 != event.getColumn();
+ }
+
+ private void bindTo(final EventBus eventBus) {
+
+ eventBus.addHandler(DeleteClickEvent.TYPE, new DeleteClickEventHandler() {
+ @Override
+ public void onDeleteClickEvent(DeleteClickEvent event) {
+ deleteSelectedMessages();
+ }
+ });
+
+ eventBus.addHandler(RefreshMessagesEvent.TYPE, new RefreshMessagesEventHandler() {
+ @Override
+ public void onRefresh(RefreshMessagesEvent event) {
+ display.setSearchValue(event.getSearchValue());
+ display.refresh();
+ System.out.println("REFRESH DISPLAY");
+ }
+ });
+
+ eventBus.addHandler(MoveMessageEvent.TYPE, new MoveMessageEventHandler() {
+
+ @Override
+ public void onMoveMessageHandler(final MoveMessageEvent event) {
+ hc.showTopLoading("Moving...");
+ MoveMessageRequest req = rf.moveMessageRequest();
+ ImapFolder f = req.create(ImapFolder.class);
+ ImapFolder newF = req.create(ImapFolder.class);
+
+ String fullName = null;
+ if (pc.getWhere() instanceof FolderPlace) {
+ fullName = ((FolderPlace) pc.getWhere()).getToken();
+ } else {
+ fullName = ((MessagePlace) pc.getWhere()).getTokenWrapper().getFolder();
+ }
+ f.setFullName(fullName);
+ newF.setFullName(event.getNewFolder().getFullName());
+ MoveMessageAction action = req.create(MoveMessageAction.class);
+
+ final List<Long> uids = display.getSelectedMessagesIds();
+ // TODO can move more than one message once.
+ if (uids.isEmpty() || uids.size() > 1) {
+ hc.hideTopLoading();
+ hc.showNotice("Please select one and only one message", 10000);
+ return;
+ }
+ action.setMessageUid(uids.get(0));
+ action.setNewFolder(newF);
+ action.setOldFolder(f);
+ req.move(action).fire(new Receiver<GenericResult>() {
+
+ @Override
+ public void onSuccess(GenericResult response) {
+ display.refresh();
+ eventBus.fireEvent(new RefreshFoldersEvent());
+ hc.hideTopLoading();
+ hc.showNotice("The conversation has been moved to \"" + event.getNewFolder() + "\"", 10000);
+ }
+
+ @Override
+ public void onFailure(ServerFailure error) {
+ super.onFailure(error);
+ hc.hideTopLoading();
+ hc.showNotice(error.getMessage(), 10000);
+ }
+
+ });
+ }
+
+ });
+
+ eventBus.addHandler(MessageViewEvent.TYPE, new MessageViewEventHandler() {
public void onMessageViewEvent(final MessageViewEvent event) {
if (event.messageDetails != null && gettingMessages != null) {
gettingMessages.done(new Function() {
@@ -257,14 +257,14 @@ public class MessageListActivity extends
toolBar.setParameters(p);
break;
}
- }
+ }
}
});
}
}
});
-
- eventBus.addHandler(MessageListRangeChangedEvent.TYPE, new MessageListRangeChangedEventHandler() {
+
+ eventBus.addHandler(MessageListRangeChangedEvent.TYPE, new MessageListRangeChangedEventHandler() {
public void onRangeChangedEvent(MessageListRangeChangedEvent event) {
gettingMessages = hupaStorage
.gettingMessages(true, folderName, event.start, event.size, event.search)
@@ -285,52 +285,52 @@ public class MessageListActivity extends
public void f() {
hc.hideTopLoading();
}
- });
-
+ });
+
}
});
- }
+ }
- public MessageListActivity with(String folderName) {
- this.folderName = folderName;
- return this;
- }
+ public MessageListActivity with(String folderName) {
+ this.folderName = folderName;
+ return this;
+ }
- public interface Displayable extends IsWidget {
- MessagesCellTable getGrid();
+ public interface Displayable extends IsWidget {
+ MessagesCellTable getGrid();
- void refresh();
+ void refresh();
- List<Long> getSelectedMessagesIds();
+ List<Long> getSelectedMessagesIds();
- Set<Message> getSelectedMessages();
+ Set<Message> getSelectedMessages();
- void setSearchValue(String searchValue);
+ void setSearchValue(String searchValue);
MessageListDataProvider getDataProvider();
- }
+ }
+
+ private void antiSelectMessages(Collection<Message> c) {
+ toolBar.enableAllTools(false);
+ for (Message msg : c) {
+ if (!display.getGrid().getSelectionModel().isSelected(msg))
+ continue;
+ display.getGrid().getSelectionModel().setSelected(msg, false);
+ }
+ }
+ private void deleteSelectedMessages() {
+ final List<Long> uids = display.getSelectedMessagesIds();
- private void antiSelectMessages(Collection<Message> c) {
- toolBar.enableAllTools(false);
- for (Message msg : c) {
- if (!display.getGrid().getSelectionModel().isSelected(msg))
- continue;
- display.getGrid().getSelectionModel().setSelected(msg, false);
- }
- }
- private void deleteSelectedMessages() {
- final List<Long> uids = display.getSelectedMessagesIds();
-
- if (uids.size() > 1) {
+ if (uids.size() > 1) {
Dialog.confirm("Do you want to delete selected messages?", new Command() {
public void execute() {
doDelete(uids);
}
});
- }
-
- }
+ }
+
+ }
protected void doDelete(final List<Long> uids) {
hc.showTopLoading("Deleting...");
@@ -341,36 +341,36 @@ public class MessageListActivity extends
} else {
fullName = ((MessagePlace) pc.getWhere()).getTokenWrapper().getFolder();
}
-
+
DeleteMessageByUidRequest req = rf.deleteMessageByUidRequest();
- DeleteMessageByUidAction action = req.create(DeleteMessageByUidAction.class);
- ImapFolder f = req.create(ImapFolder.class);
- f.setFullName(fullName);
- action.setMessageUids(uids);
- action.setFolder(f);
- req.delete(action).fire(new Receiver<DeleteMessageResult>() {
- @Override
- public void onSuccess(DeleteMessageResult response) {
- antiSelectMessages(display.getSelectedMessages());
- display.refresh();
- hc.hideTopLoading();
+ DeleteMessageByUidAction action = req.create(DeleteMessageByUidAction.class);
+ ImapFolder f = req.create(ImapFolder.class);
+ f.setFullName(fullName);
+ action.setMessageUids(uids);
+ action.setFolder(f);
+ req.delete(action).fire(new Receiver<DeleteMessageResult>() {
+ @Override
+ public void onSuccess(DeleteMessageResult response) {
+ antiSelectMessages(display.getSelectedMessages());
+ display.refresh();
+ hc.hideTopLoading();
pc.goTo(new FolderPlace(folderName));
- eventBus.fireEvent(new RefreshFoldersEvent());
+ eventBus.fireEvent(new RefreshFoldersEvent());
for (Long uid : uids) {
removeMessage(uid);
}
display.getDataProvider().setFechMessagesResult(currentFechResult);
// display.getGrid().getRowElement(0).scrollIntoView();
- }
-
- @Override
- public void onFailure(ServerFailure error) {
- hc.hideTopLoading();
- hc.showNotice("Error removing messages", 5000);
- super.onFailure(error);
- }
-
- private void removeMessage(Long uid) {
+ }
+
+ @Override
+ public void onFailure(ServerFailure error) {
+ hc.hideTopLoading();
+ hc.showNotice("Error removing messages", 5000);
+ super.onFailure(error);
+ }
+
+ private void removeMessage(Long uid) {
List<Message> messages = currentFechResult.getMessages();
int l = messages.size();
for (int i = 0; i < l; i++){
@@ -380,11 +380,11 @@ public class MessageListActivity extends
return;
}
}
- }
- });
+ }
+ });
}
-
-
+
+
// TODO move this stuff to hupaStorage
private void cacheContacts() {
for (Message message : currentFechResult.getMessages()) {
@@ -405,7 +405,7 @@ public class MessageListActivity extends
}
saveToLocalStorage(contacts);
}
-
+
private void saveToLocalStorage(Set<String> contacts) {
contactsStore = Storage.getLocalStorageIfSupported();
if (contactsStore != null) {
@@ -418,7 +418,7 @@ public class MessageListActivity extends
contactsStore.setItem(CONTACTS_STORE, contacts.toString());
}
}
-
+
public static final String CONTACTS_STORE = "hupa-contacts";
Set<String> contacts = new LinkedHashSet<String>();
private Storage contactsStore = null;
Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/MessageListFooterActivity.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/MessageListFooterActivity.java?rev=1579559&r1=1579558&r2=1579559&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/MessageListFooterActivity.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/MessageListFooterActivity.java Thu Mar 20 08:16:02 2014
@@ -34,30 +34,30 @@ import com.google.inject.Inject;
public class MessageListFooterActivity extends AppBaseActivity {
- @Override
- public void start(AcceptsOneWidget container, EventBus eventBus) {
- container.setWidget(display.asWidget());
- bindTo(eventBus);
- }
+ @Override
+ public void start(AcceptsOneWidget container, EventBus eventBus) {
+ container.setWidget(display.asWidget());
+ bindTo(eventBus);
+ }
- private void bindTo(final EventBus eventBus) {
- final ListBox labels = display.getLabels();
- labels.addChangeHandler(new ChangeHandler() {
- public void onChange(ChangeEvent event) {
- int selectedIndex = labels.getSelectedIndex();
- if (selectedIndex > 0){
- String newFolderName = labels.getItemText(labels.getSelectedIndex()).replace(".", "").trim();
- eventBus.fireEvent(new MoveMessageEvent(new ImapFolderImpl(newFolderName)));
- }
- }
- });
- }
+ private void bindTo(final EventBus eventBus) {
+ final ListBox labels = display.getLabels();
+ labels.addChangeHandler(new ChangeHandler() {
+ public void onChange(ChangeEvent event) {
+ int selectedIndex = labels.getSelectedIndex();
+ if (selectedIndex > 0){
+ String newFolderName = labels.getItemText(labels.getSelectedIndex()).replace(".", "").trim();
+ eventBus.fireEvent(new MoveMessageEvent(new ImapFolderImpl(newFolderName)));
+ }
+ }
+ });
+ }
- @Inject private Displayable display;
-
- public interface Displayable extends IsWidget {
- SimplePager getPager();
- HasVisibility getLabelsPanel();
- ListBox getLabels();
- }
+ @Inject private Displayable display;
+
+ public interface Displayable extends IsWidget {
+ SimplePager getPager();
+ HasVisibility getLabelsPanel();
+ ListBox getLabels();
+ }
}
Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/NavigationActivity.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/NavigationActivity.java?rev=1579559&r1=1579558&r2=1579559&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/NavigationActivity.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/NavigationActivity.java Thu Mar 20 08:16:02 2014
@@ -29,24 +29,24 @@ import com.google.inject.Inject;
public class NavigationActivity extends AppBaseActivity {
- @Override
- public void start(AcceptsOneWidget container, EventBus eventBus) {
- container.setWidget(display.asWidget());
- itemChangeByPlace();
- }
+ @Override
+ public void start(AcceptsOneWidget container, EventBus eventBus) {
+ container.setWidget(display.asWidget());
+ itemChangeByPlace();
+ }
- private void itemChangeByPlace() {
- Place place = pc.getWhere();
- if (place instanceof SettingPlace) {
- display.select(2);
- } else {
- display.select(1);
- }
- }
+ private void itemChangeByPlace() {
+ Place place = pc.getWhere();
+ if (place instanceof SettingPlace) {
+ display.select(2);
+ } else {
+ display.select(1);
+ }
+ }
- @Inject private Displayable display;
+ @Inject private Displayable display;
- public interface Displayable extends IsWidget {
- void select(int i);
- }
+ public interface Displayable extends IsWidget {
+ void select(int i);
+ }
}
Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/NotificationActivity.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/NotificationActivity.java?rev=1579559&r1=1579558&r2=1579559&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/NotificationActivity.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/NotificationActivity.java Thu Mar 20 08:16:02 2014
@@ -26,15 +26,15 @@ import com.google.inject.Inject;
public class NotificationActivity extends AppBaseActivity {
- @Override
- public void start(AcceptsOneWidget container, EventBus eventBus) {
- container.setWidget(display.asWidget());
- }
+ @Override
+ public void start(AcceptsOneWidget container, EventBus eventBus) {
+ container.setWidget(display.asWidget());
+ }
- @Inject private Displayable display;
+ @Inject private Displayable display;
- public interface Displayable extends IsWidget {
- void hideNotification();
- void notice(String html);
- }
+ public interface Displayable extends IsWidget {
+ void hideNotification();
+ void notice(String html);
+ }
}
Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/SearchBoxActivity.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/SearchBoxActivity.java?rev=1579559&r1=1579558&r2=1579559&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/SearchBoxActivity.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/SearchBoxActivity.java Thu Mar 20 08:16:02 2014
@@ -35,14 +35,14 @@ import com.google.inject.Inject;
public class SearchBoxActivity extends AppBaseActivity {
- @Override
- public void start(AcceptsOneWidget container, EventBus eventBus) {
- bindTo(eventBus);
- container.setWidget(display.asWidget());
-
- }
+ @Override
+ public void start(AcceptsOneWidget container, EventBus eventBus) {
+ bindTo(eventBus);
+ container.setWidget(display.asWidget());
- private void bindTo(final EventBus eventBus) {
+ }
+
+ private void bindTo(final EventBus eventBus) {
registerHandler(display.getSearchClick().addClickHandler(new ClickHandler() {
@@ -66,15 +66,15 @@ public class SearchBoxActivity extends A
// }
//
// }));
- }
+ }
- @Inject private Displayable display;
+ @Inject private Displayable display;
- public interface Displayable extends IsWidget {
- HasClickHandlers getSearchClick();
+ public interface Displayable extends IsWidget {
+ HasClickHandlers getSearchClick();
- HasValue<String> getSearchValue();
+ HasValue<String> getSearchValue();
- void fillSearchOracle(List<Message> messages);
- }
+ void fillSearchOracle(List<Message> messages);
+ }
}
Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/SettingNavActivity.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/SettingNavActivity.java?rev=1579559&r1=1579558&r2=1579559&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/SettingNavActivity.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/SettingNavActivity.java Thu Mar 20 08:16:02 2014
@@ -33,29 +33,29 @@ public class SettingNavActivity extends
@Inject protected Displayable display;
- @Override
- public void start(AcceptsOneWidget container, EventBus eventBus) {
- container.setWidget(display.asWidget());
- itemChangeByPlace();
- bindTo(eventBus);
- }
+ @Override
+ public void start(AcceptsOneWidget container, EventBus eventBus) {
+ container.setWidget(display.asWidget());
+ itemChangeByPlace();
+ bindTo(eventBus);
+ }
- protected void itemChangeByPlace() {
+ protected void itemChangeByPlace() {
display.singleSelect(1);
- }
+ }
- protected void bindTo(EventBus eventBus) {
- registerHandler(display.getLabelsAchor().addClickHandler(new ClickHandler() {
- @Override
- public void onClick(ClickEvent event) {
- display.singleSelect(1);
- pc.goTo(new SettingPlace("labels"));
- }
- }));
- }
+ protected void bindTo(EventBus eventBus) {
+ registerHandler(display.getLabelsAchor().addClickHandler(new ClickHandler() {
+ @Override
+ public void onClick(ClickEvent event) {
+ display.singleSelect(1);
+ pc.goTo(new SettingPlace("labels"));
+ }
+ }));
+ }
- public interface Displayable extends IsWidget {
- HasClickHandlers getLabelsAchor();
- void singleSelect(int i);
- }
+ public interface Displayable extends IsWidget {
+ HasClickHandlers getLabelsAchor();
+ void singleSelect(int i);
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org