Author: norman
Date: Mon Aug 3 10:13:23 2009
New Revision: 800280
URL: http://svn.apache.org/viewvc?rev=800280&view=rev
Log:
Fix fileupload
Support of forwarding messages
Added:
labs/hupa/src/main/java/org/apache/hupa/shared/events/ForwardMessageEvent.java
labs/hupa/src/main/java/org/apache/hupa/shared/events/ForwardMessageEventHandler.java
Modified:
labs/hupa/src/main/java/org/apache/hupa/client/HupaConstants.java
labs/hupa/src/main/java/org/apache/hupa/client/HupaConstants.properties
labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPMessagePresenter.java
labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPMessageView.java
labs/hupa/src/main/java/org/apache/hupa/client/mvp/MainPresenter.java
labs/hupa/src/main/java/org/apache/hupa/client/mvp/MessageSendPresenter.java
labs/hupa/src/main/java/org/apache/hupa/server/FileItemRegistry.java
labs/hupa/src/main/java/org/apache/hupa/server/handler/AbstractSendMessageHandler.java
labs/hupa/src/main/java/org/apache/hupa/server/handler/ForwardMessageHandler.java
Modified: labs/hupa/src/main/java/org/apache/hupa/client/HupaConstants.java
URL:
http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/client/HupaConstants.java?rev=800280&r1=800279&r2=800280&view=diff
==============================================================================
--- labs/hupa/src/main/java/org/apache/hupa/client/HupaConstants.java (original)
+++ labs/hupa/src/main/java/org/apache/hupa/client/HupaConstants.java Mon Aug
3 10:13:23 2009
@@ -69,4 +69,6 @@
public String headerBcc();
public String sendButton();
+
+ public String forwardMailButton();
}
Modified:
labs/hupa/src/main/java/org/apache/hupa/client/HupaConstants.properties
URL:
http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/client/HupaConstants.properties?rev=800280&r1=800279&r2=800280&view=diff
==============================================================================
--- labs/hupa/src/main/java/org/apache/hupa/client/HupaConstants.properties
(original)
+++ labs/hupa/src/main/java/org/apache/hupa/client/HupaConstants.properties Mon
Aug 3 10:13:23 2009
@@ -22,4 +22,5 @@
searchButton=Search in message
emptyMailTable=There are no emails to display
attachments=Attachments
-sendButton=Send
\ No newline at end of file
+sendButton=Send
+forwardMailButton=Forward
\ No newline at end of file
Modified:
labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPMessagePresenter.java
URL:
http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPMessagePresenter.java?rev=800280&r1=800279&r2=800280&view=diff
==============================================================================
---
labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPMessagePresenter.java
(original)
+++
labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPMessagePresenter.java
Mon Aug 3 10:13:23 2009
@@ -34,6 +34,7 @@
import org.apache.hupa.shared.data.IMAPMessage;
import org.apache.hupa.shared.data.MessageAttachment;
import org.apache.hupa.shared.data.User;
+import org.apache.hupa.shared.events.ForwardMessageEvent;
import org.apache.hupa.shared.events.LoadMessagesEvent;
import org.apache.hupa.shared.rpc.DeleteMessage;
import org.apache.hupa.shared.rpc.DeleteMessageResult;
@@ -59,6 +60,10 @@
public HasHTML getContent();
public HasClickHandlers getDeleteButtonClick();
+ public HasClickHandlers getReplyButtonClick();
+ public HasClickHandlers getReplyAllButtonClick();
+ public HasClickHandlers getForwardButtonClick();
+
public void setAttachments(List<MessageAttachment>
attachements, String sessionId, String folder, long uid);
}
@@ -126,6 +131,13 @@
});
+ display.getForwardButtonClick().addClickHandler(new
ClickHandler() {
+
+ public void onClick(ClickEvent event) {
+ eventBus.fireEvent(new
ForwardMessageEvent(user,folder,message));
+ }
+
+ });
}
Modified:
labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPMessageView.java
URL:
http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPMessageView.java?rev=800280&r1=800279&r2=800280&view=diff
==============================================================================
--- labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPMessageView.java
(original)
+++ labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPMessageView.java Mon
Aug 3 10:13:23 2009
@@ -58,6 +58,8 @@
private Button deleteMsgButton = new Button();
private Button replyMsgButton = new Button();
private Button replyAllMsgButton = new Button();
+ private Button forwardMsgButton = new Button();
+
private FlowPanel attachments = new FlowPanel();
private HupaConstants constants = GWT.create(HupaConstants.class);
@@ -117,12 +119,13 @@
deleteMsgButton.setText(constants.deleteMailButton());
replyMsgButton.setText(constants.replyMailButton());
replyAllMsgButton.setText(constants.replyAllMailButton());
+ forwardMsgButton.setText(constants.forwardMailButton());
ButtonBar buttonBar = new ButtonBar();
buttonBar.addStyleName("hupa-IMAPMessageWidget-ButtonBar");
buttonBar.add(replyMsgButton);
buttonBar.add(replyAllMsgButton);
buttonBar.add(deleteMsgButton);
-
+ buttonBar.add(forwardMsgButton);
buttonBar.setWidth("100%");
mPanel.add(buttonBar);
@@ -197,5 +200,17 @@
}
}
}
+
+ public HasClickHandlers getForwardButtonClick() {
+ return forwardMsgButton;
+ }
+
+ public HasClickHandlers getReplyAllButtonClick() {
+ return replyAllMsgButton;
+ }
+
+ public HasClickHandlers getReplyButtonClick() {
+ return replyMsgButton;
+ }
}
Modified: labs/hupa/src/main/java/org/apache/hupa/client/mvp/MainPresenter.java
URL:
http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/client/mvp/MainPresenter.java?rev=800280&r1=800279&r2=800280&view=diff
==============================================================================
--- labs/hupa/src/main/java/org/apache/hupa/client/mvp/MainPresenter.java
(original)
+++ labs/hupa/src/main/java/org/apache/hupa/client/mvp/MainPresenter.java Mon
Aug 3 10:13:23 2009
@@ -32,6 +32,7 @@
import net.customware.gwt.presenter.client.widget.WidgetPresenter;
import org.apache.hupa.client.MyAsyncCallback;
+import org.apache.hupa.client.mvp.MessageSendPresenter.Type;
import org.apache.hupa.client.widgets.IMAPTreeItem;
import org.apache.hupa.shared.data.IMAPFolder;
import org.apache.hupa.shared.data.IMAPMessage;
@@ -39,6 +40,8 @@
import org.apache.hupa.shared.data.IMAPMessage.IMAPFlag;
import org.apache.hupa.shared.events.ExpandMessageEvent;
import org.apache.hupa.shared.events.ExpandMessageEventHandler;
+import org.apache.hupa.shared.events.ForwardMessageEvent;
+import org.apache.hupa.shared.events.ForwardMessageEventHandler;
import org.apache.hupa.shared.events.LoadMessagesEvent;
import org.apache.hupa.shared.events.LoginEvent;
import org.apache.hupa.shared.events.LoginEventHandler;
@@ -189,9 +192,14 @@
private void showNewMessage() {
+ sendPresenter.bind(user, Type.NEW);
display.setCenter(sendPresenter.getDisplay().asWidget());
}
+ private void showForwardMessage(ForwardMessageEvent event) {
+
sendPresenter.bind(event.getUser(),event.getFolder(),event.getMessage(),Type.FORWARD);
+ display.setCenter(sendPresenter.getDisplay().asWidget());
+ }
private void reset() {
display.getSearchValue().setValue("");
display.bindTreeItems(new ArrayList<IMAPTreeItem>());
@@ -274,6 +282,14 @@
});
+ eventBus.addHandler(ForwardMessageEvent.TYPE, new
ForwardMessageEventHandler() {
+
+ public void onForwardMessageEvent(ForwardMessageEvent
event) {
+ showForwardMessage(event);
+ }
+
+ });
+
Window.addWindowClosingHandler(new ClosingHandler() {
public void onWindowClosing(ClosingEvent event) {
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=800280&r1=800279&r2=800280&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
Mon Aug 3 10:13:23 2009
@@ -32,6 +32,8 @@
import net.customware.gwt.presenter.client.widget.WidgetPresenter;
import org.apache.hupa.client.MyAsyncCallback;
+import org.apache.hupa.shared.data.IMAPFolder;
+import org.apache.hupa.shared.data.IMAPMessage;
import org.apache.hupa.shared.data.Message;
import org.apache.hupa.shared.data.MessageAttachment;
import org.apache.hupa.shared.data.MessageContent;
@@ -43,6 +45,7 @@
import org.apache.hupa.shared.events.LoginEventHandler;
import org.apache.hupa.shared.events.SentMessageEvent;
import org.apache.hupa.shared.rpc.EmptyResult;
+import org.apache.hupa.shared.rpc.ForwardMessage;
import org.apache.hupa.shared.rpc.SendMessage;
import com.google.gwt.event.dom.client.ClickEvent;
@@ -60,6 +63,9 @@
public static final Place PLACE = new Place("MessageSend");
private ArrayList<MessageAttachment> aList = new
ArrayList<MessageAttachment>();
private UploaderValueChangeHandler handler = new
UploaderValueChangeHandler();
+ private Type type = Type.FORWARD;
+ private IMAPFolder folder;
+ private IMAPMessage oldmessage;
@Inject
public MessageSendPresenter(Display display, EventBus eventBus,
DispatchAsync dispatcher) {
@@ -69,6 +75,13 @@
}
+ public enum Type {
+ NEW,
+ REPLY,
+ REPLY_ALL,
+ FORWARD
+ }
+
public interface Display extends WidgetDisplay {
public HasText getFromText();
public HasText getToText();
@@ -145,14 +158,25 @@
content.setMessageAttachments(aList);
message.setHeader(header);
message.setMessageContent(content);
- dispatcher.execute(new
SendMessage(user.getSessionId(),message), new
MyAsyncCallback<EmptyResult>(eventBus,user) {
+ if (type.equals(Type.NEW)) {
+ dispatcher.execute(new
SendMessage(user.getSessionId(),message), new
MyAsyncCallback<EmptyResult>(eventBus,user) {
- public void
onSuccess(EmptyResult result) {
- reset();
- eventBus.fireEvent(new
SentMessageEvent());
- }
+ public void
onSuccess(EmptyResult result) {
+ reset();
+
eventBus.fireEvent(new SentMessageEvent());
+ }
- });
+ });
+ } else if(type.equals(Type.FORWARD)) {
+ dispatcher.execute(new
ForwardMessage(user.getSessionId(),message,folder,oldmessage.getUid()), new
MyAsyncCallback<EmptyResult>(eventBus,user) {
+
+ public void
onSuccess(EmptyResult result) {
+ reset();
+
eventBus.fireEvent(new SentMessageEvent());
+ }
+
+ });
+ }
}
@@ -168,6 +192,9 @@
display.getToText().setText("");
display.getSubjectText().setText("");
aList.clear();
+ folder = null;
+ oldmessage = null;
+ type = Type.NEW;
}
@Override
@@ -221,11 +248,31 @@
private class UploaderValueChangeHandler implements
ValueChangeHandler<IUploader> {
public void onValueChange(ValueChangeEvent<IUploader> event) {
- String name = ((Uploader)
event.getValue()).getFileInputName();
+ String name = ((Uploader)
event.getValue()).getFilename();
MessageAttachment attachment = new MessageAttachment();
attachment.setName(name);
aList.add(attachment);
}
}
+
+
+ public void bind(User user, IMAPFolder folder, IMAPMessage
oldmessage,Type type) {
+ this.oldmessage = oldmessage;
+ this.folder = folder;
+ this.user = user;
+ this.type = type;
+ if (type.equals(Type.FORWARD)) {
+ display.getSubjectText().setText("Fwd: " +
oldmessage.getHeader().getSubject());
+ display.getMessageText().setText("\n\n-------- Original
Message -------\n" );
+ } else {
+ display.getSubjectText().setText("");
+ display.getMessageText().setText("");
+ }
+ }
+
+ public void bind(User user, Type type) {
+ bind(user,null,null,type);
+ }
+
}
Modified: labs/hupa/src/main/java/org/apache/hupa/server/FileItemRegistry.java
URL:
http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/server/FileItemRegistry.java?rev=800280&r1=800279&r2=800280&view=diff
==============================================================================
--- labs/hupa/src/main/java/org/apache/hupa/server/FileItemRegistry.java
(original)
+++ labs/hupa/src/main/java/org/apache/hupa/server/FileItemRegistry.java Mon
Aug 3 10:13:23 2009
@@ -23,16 +23,27 @@
import java.util.Map;
import org.apache.commons.fileupload.FileItem;
+import org.apache.commons.logging.Log;
+
+import com.google.inject.Inject;
public class FileItemRegistry {
public Map<String,FileItem> map = new HashMap<String, FileItem>();
+ private Log logger;
+
+ @Inject
+ public FileItemRegistry(Log logger) {
+ this.logger = logger;
+ }
public void add(FileItem item) {
- map.put(item.getName(), item);
+ logger.debug("Store item " + item.getName() + " with name " +
item.getFieldName());
+ map.put(item.getFieldName(), item);
}
public FileItem get(String name) {
+ logger.debug("Retrieve item " + name);
return map.get(name);
}
}
Modified:
labs/hupa/src/main/java/org/apache/hupa/server/handler/AbstractSendMessageHandler.java
URL:
http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/server/handler/AbstractSendMessageHandler.java?rev=800280&r1=800279&r2=800280&view=diff
==============================================================================
---
labs/hupa/src/main/java/org/apache/hupa/server/handler/AbstractSendMessageHandler.java
(original)
+++
labs/hupa/src/main/java/org/apache/hupa/server/handler/AbstractSendMessageHandler.java
Mon Aug 3 10:13:23 2009
@@ -117,17 +117,17 @@
protected Multipart handleAttachments(Multipart multipart,
ArrayList<MessageAttachment> attachments) throws MessagingException {
if (attachments != null) {
- // lopp over the attachments
- for (int i = 0; i < attachments.size(); i++) {
- // get the attachment from the registry
- FileItem fItem =
registry.get(attachments.get(i).getName());
- // Part two is attachment
- MimeBodyPart messageBodyPart = new MimeBodyPart();
- DataSource source = new FileItemDataStore(fItem);
- messageBodyPart.setDataHandler(new DataHandler(source));
- messageBodyPart.setFileName(source.getName());
- multipart.addBodyPart(messageBodyPart);
- }
+ // lopp over the attachments
+ for (int i = 0; i < attachments.size(); i++) {
+ // get the attachment from the registry
+ FileItem fItem =
registry.get(attachments.get(i).getName());
+ // Part two is attachment
+ MimeBodyPart messageBodyPart = new
MimeBodyPart();
+ DataSource source = new
FileItemDataStore(fItem);
+ messageBodyPart.setDataHandler(new
DataHandler(source));
+ messageBodyPart.setFileName(source.getName());
+ multipart.addBodyPart(messageBodyPart);
+ }
}
return multipart;
}
@@ -234,6 +234,8 @@
} catch (MessagingException e) {
logger.error("Error while sending message", e);
throw new ActionException("Error while sending
message");
+ } catch (NullPointerException e) {
+ e.printStackTrace();
}
return new EmptyResult();
}
Modified:
labs/hupa/src/main/java/org/apache/hupa/server/handler/ForwardMessageHandler.java
URL:
http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/server/handler/ForwardMessageHandler.java?rev=800280&r1=800279&r2=800280&view=diff
==============================================================================
---
labs/hupa/src/main/java/org/apache/hupa/server/handler/ForwardMessageHandler.java
(original)
+++
labs/hupa/src/main/java/org/apache/hupa/server/handler/ForwardMessageHandler.java
Mon Aug 3 10:13:23 2009
@@ -21,6 +21,7 @@
import java.util.ArrayList;
+import javax.mail.Folder;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Multipart;
@@ -74,7 +75,8 @@
message.addRecipient(RecipientType.CC, new
InternetAddress(cc
.get(i)));
}
- message.setSubject("Fwd: " +
m.getHeader().getSubject());
+ message.setSubject(m.getHeader().getSubject());
+ message.saveChanges();
return message;
}
@@ -87,7 +89,7 @@
MimeBodyPart messageBodyPart = new MimeBodyPart();
// fill message
- messageBodyPart.setText(m.getMessageContent().getText());
+ messageBodyPart.setText(m.getMessageContent().getText() +
"\n\nOriginal message:\n" );
Multipart multipart = new MimeMultipart();
multipart.addBodyPart(messageBodyPart);
@@ -95,6 +97,9 @@
IMAPStore store = cache.get(getUser(action.getSessionId()));
IMAPFolder folder = (IMAPFolder)
store.getFolder(action.getFolder().getFullName());
+ if (folder.isOpen() == false) {
+ folder.open(Folder.READ_ONLY);
+ }
Message fMessage =
folder.getMessageByUID(action.getReplyMessageUid());
// Create and fill part for the forwarded content
@@ -111,6 +116,10 @@
return message;
}
+ /*
+ * (non-Javadoc)
+ * @see net.customware.gwt.dispatch.server.ActionHandler#getActionType()
+ */
public Class<ForwardMessage> getActionType() {
return ForwardMessage.class;
}
Added:
labs/hupa/src/main/java/org/apache/hupa/shared/events/ForwardMessageEvent.java
URL:
http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/shared/events/ForwardMessageEvent.java?rev=800280&view=auto
==============================================================================
---
labs/hupa/src/main/java/org/apache/hupa/shared/events/ForwardMessageEvent.java
(added)
+++
labs/hupa/src/main/java/org/apache/hupa/shared/events/ForwardMessageEvent.java
Mon Aug 3 10:13:23 2009
@@ -0,0 +1,43 @@
+package org.apache.hupa.shared.events;
+
+import org.apache.hupa.shared.data.IMAPFolder;
+import org.apache.hupa.shared.data.IMAPMessage;
+import org.apache.hupa.shared.data.User;
+
+import com.google.gwt.event.shared.GwtEvent;
+
+public class ForwardMessageEvent extends GwtEvent<ForwardMessageEventHandler> {
+
+ public final static Type<ForwardMessageEventHandler> TYPE = new
Type<ForwardMessageEventHandler>();
+ private User user;
+ private IMAPFolder folder;
+ private IMAPMessage message;
+
+ public ForwardMessageEvent(User user, IMAPFolder folder, IMAPMessage
message) {
+ this.user = user;
+ this.folder = folder;
+ this.message = message;
+ }
+
+ public User getUser() {
+ return user;
+ }
+
+ public IMAPFolder getFolder() {
+ return folder;
+ }
+
+ public IMAPMessage getMessage() {
+ return message;
+ }
+
+ @Override
+ protected void dispatch(ForwardMessageEventHandler handler) {
+ handler.onForwardMessageEvent(this);
+ }
+
+ @Override
+ public
com.google.gwt.event.shared.GwtEvent.Type<ForwardMessageEventHandler>
getAssociatedType() {
+ return TYPE;
+ }
+}
Added:
labs/hupa/src/main/java/org/apache/hupa/shared/events/ForwardMessageEventHandler.java
URL:
http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/shared/events/ForwardMessageEventHandler.java?rev=800280&view=auto
==============================================================================
---
labs/hupa/src/main/java/org/apache/hupa/shared/events/ForwardMessageEventHandler.java
(added)
+++
labs/hupa/src/main/java/org/apache/hupa/shared/events/ForwardMessageEventHandler.java
Mon Aug 3 10:13:23 2009
@@ -0,0 +1,10 @@
+package org.apache.hupa.shared.events;
+
+import com.google.gwt.event.shared.EventHandler;
+
+
+public interface ForwardMessageEventHandler extends EventHandler{
+
+
+ public void onForwardMessageEvent(ForwardMessageEvent event);
+}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]