You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@labs.apache.org by no...@apache.org on 2009/09/13 17:05:15 UTC
svn commit: r814328 - in /labs/hupa/trunk:
client/src/main/java/org/apache/hupa/client/
client/src/main/java/org/apache/hupa/client/mvp/
server/src/main/java/org/apache/hupa/server/handler/
Author: norman
Date: Sun Sep 13 15:05:14 2009
New Revision: 814328
URL: http://svn.apache.org/viewvc?rev=814328&view=rev
Log:
add a delete all messages button (LABS-431)
Modified:
labs/hupa/trunk/client/src/main/java/org/apache/hupa/client/HupaConstants.java
labs/hupa/trunk/client/src/main/java/org/apache/hupa/client/HupaConstants.properties
labs/hupa/trunk/client/src/main/java/org/apache/hupa/client/HupaMessages.java
labs/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/IMAPMessageListPresenter.java
labs/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/IMAPMessageListView.java
labs/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/AbstractDeleteMessageHandler.java
labs/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/DeleteAllMessagesHandler.java
Modified: labs/hupa/trunk/client/src/main/java/org/apache/hupa/client/HupaConstants.java
URL: http://svn.apache.org/viewvc/labs/hupa/trunk/client/src/main/java/org/apache/hupa/client/HupaConstants.java?rev=814328&r1=814327&r2=814328&view=diff
==============================================================================
--- labs/hupa/trunk/client/src/main/java/org/apache/hupa/client/HupaConstants.java (original)
+++ labs/hupa/trunk/client/src/main/java/org/apache/hupa/client/HupaConstants.java Sun Sep 13 15:05:14 2009
@@ -104,4 +104,6 @@
public String sessionTimedOut();
public String rawTitle();
+
+ public String deleteAll();
}
Modified: labs/hupa/trunk/client/src/main/java/org/apache/hupa/client/HupaConstants.properties
URL: http://svn.apache.org/viewvc/labs/hupa/trunk/client/src/main/java/org/apache/hupa/client/HupaConstants.properties?rev=814328&r1=814327&r2=814328&view=diff
==============================================================================
--- labs/hupa/trunk/client/src/main/java/org/apache/hupa/client/HupaConstants.properties (original)
+++ labs/hupa/trunk/client/src/main/java/org/apache/hupa/client/HupaConstants.properties Sun Sep 13 15:05:14 2009
@@ -41,4 +41,5 @@
backButton=Back
rawButton=Show raw message
rawTitle=Raw message view
+deleteAll=Delete all messages
sessionTimedOut=Your session is timed out. Please login again!
Modified: labs/hupa/trunk/client/src/main/java/org/apache/hupa/client/HupaMessages.java
URL: http://svn.apache.org/viewvc/labs/hupa/trunk/client/src/main/java/org/apache/hupa/client/HupaMessages.java?rev=814328&r1=814327&r2=814328&view=diff
==============================================================================
--- labs/hupa/trunk/client/src/main/java/org/apache/hupa/client/HupaMessages.java (original)
+++ labs/hupa/trunk/client/src/main/java/org/apache/hupa/client/HupaMessages.java Sun Sep 13 15:05:14 2009
@@ -26,6 +26,9 @@
@DefaultMessage("Are you sure you want to delete the selected messages?")
public String confirmDeleteMessages();
+ @DefaultMessage("Are you sure you want to delete all messages in the selected folder?")
+ public String confirmDeleteAllMessages();
+
@DefaultMessage("Moving message")
public String moveMessage();
Modified: labs/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/IMAPMessageListPresenter.java
URL: http://svn.apache.org/viewvc/labs/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/IMAPMessageListPresenter.java?rev=814328&r1=814327&r2=814328&view=diff
==============================================================================
--- labs/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/IMAPMessageListPresenter.java (original)
+++ labs/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/IMAPMessageListPresenter.java Sun Sep 13 15:05:14 2009
@@ -38,6 +38,7 @@
import org.apache.hupa.shared.events.MoveMessageEvent;
import org.apache.hupa.shared.events.MoveMessageEventHandler;
import org.apache.hupa.shared.events.NewMessageEvent;
+import org.apache.hupa.shared.rpc.DeleteAllMessages;
import org.apache.hupa.shared.rpc.DeleteMessageByUid;
import org.apache.hupa.shared.rpc.DeleteMessageResult;
import org.apache.hupa.shared.rpc.MoveMessage;
@@ -66,12 +67,17 @@
public HasClickHandlers getNewClick();
public Message getData(int rowIndex);
public HasClickHandlers getDeleteClick();
+ public HasClickHandlers getDeleteAllClick();
public void reloadData(User user, IMAPFolder folder,String searchValue);
public void removeMessages(ArrayList<Message> messages);
public ArrayList<Message> getSelectedMessages();
public void reset();
- public HasDialog getConfirmDialog();
- public HasClickHandlers getConfirmDialogClick();
+ public HasDialog getConfirmDeleteDialog();
+ public HasDialog getConfirmDeleteAllDialog();
+
+ public HasClickHandlers getConfirmDeleteDialogClick();
+ public HasClickHandlers getConfirmDeleteAllDialogClick();
+
public void selectAllMessages();
public void deselectAllMessages();
public HasClickHandlers getSelectAllClick();
@@ -144,7 +150,7 @@
public void onClick(com.google.gwt.event.dom.client.ClickEvent event) {
if (folder.getFullName().equals(user.getSettings().getTrashFolderName())) {
- display.getConfirmDialog().show();
+ display.getConfirmDeleteDialog().show();
} else {
deleteMessages();
}
@@ -152,7 +158,7 @@
}
}));
- registerHandler(display.getConfirmDialogClick().addClickHandler(new ClickHandler() {
+ registerHandler(display.getConfirmDeleteDialogClick().addClickHandler(new ClickHandler() {
public void onClick(ClickEvent event) {
deleteMessages();
@@ -168,6 +174,32 @@
}));
+ registerHandler(display.getDeleteAllClick().addClickHandler(new ClickHandler() {
+
+ public void onClick(ClickEvent event) {
+ display.getConfirmDeleteAllDialog().center();
+ }
+
+ }));
+
+ registerHandler(display.getConfirmDeleteAllDialogClick().addClickHandler(new ClickHandler() {
+
+ public void onClick(ClickEvent event) {
+ dispatcher.execute(new DeleteAllMessages(user.getSessionId(),folder), new SessionAsyncCallback<DeleteMessageResult>(new AsyncCallback<DeleteMessageResult>() {
+
+ public void onFailure(Throwable caught) {
+ GWT.log("E=", caught);
+ }
+
+ public void onSuccess(DeleteMessageResult result) {
+ display.reset();
+ eventBus.fireEvent(new DecreaseUnseenEvent(user,folder,result.getCount()));
+ }
+ }, eventBus,user));
+ }
+
+ }));
+
display.addTableListener(tableListener);
isBound = true;
}
Modified: labs/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/IMAPMessageListView.java
URL: http://svn.apache.org/viewvc/labs/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/IMAPMessageListView.java?rev=814328&r1=814327&r2=814328&view=diff
==============================================================================
--- labs/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/IMAPMessageListView.java (original)
+++ labs/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/IMAPMessageListView.java Sun Sep 13 15:05:14 2009
@@ -108,7 +108,10 @@
private FixedWidthGrid dataTable = createDataTable();
private Button deleteMailButton = new Button(constants.deleteMailButton());
private Button newMailButton = new Button(constants.newMailButton());
+ private Button deleteAllMailButton = new Button(constants.deleteAll());
private ConfirmDialogBox confirmBox = new ConfirmDialogBox();
+ private ConfirmDialogBox confirmDeleteAllBox = new ConfirmDialogBox();
+
private ListBox pageBox = new ListBox();
private Hyperlink allLink = new Hyperlink(constants.all(),"");
private Hyperlink noneLink = new Hyperlink(constants.none(),"");
@@ -192,11 +195,16 @@
mailTable.fillWidth();
options = new PagingOptions(mailTable);
+
+ HorizontalPanel buttonBar = new HorizontalPanel();
+ buttonBar.setSpacing(5);
+
ButtonBar navigatorBar = new ButtonBar();
navigatorBar.add(newMailButton);
deleteMailButton.setEnabled(false);
navigatorBar.add(deleteMailButton);
-
+ buttonBar.add(navigatorBar);
+ buttonBar.add(deleteAllMailButton);
pageBox.addItem("20");
@@ -212,8 +220,7 @@
HorizontalPanel hPanel = new HorizontalPanel();
hPanel.setStyleName("hupa-MailTableControl");
hPanel.setSpacing(10);
- hPanel.add(navigatorBar);
- //hPanel.add(options);
+ hPanel.add(buttonBar);
hPanel.add(pageBox);
hPanel.setCellHorizontalAlignment(pageBox, HorizontalPanel.ALIGN_RIGHT);
@@ -239,6 +246,7 @@
//vPanel.add(bar);
vPanel.add(mailTable);
confirmBox.setText(messages.confirmDeleteMessages());
+ confirmDeleteAllBox.setText(messages.confirmDeleteAllMessages());
initWidget(vPanel);
}
@@ -609,20 +617,38 @@
* (non-Javadoc)
* @see org.apache.hupa.client.mvp.IMAPMessageListPresenter.Display#getConfirmDialog()
*/
- public HasDialog getConfirmDialog() {
+ public HasDialog getConfirmDeleteDialog() {
return confirmBox;
}
+
/*
* (non-Javadoc)
- * @see org.apache.hupa.client.mvp.IMAPMessageListPresenter.Display#getConfirmDialogClick()
+ * @see org.apache.hupa.client.mvp.IMAPMessageListPresenter.Display#getConfirmDeleteDialogClick()
*/
- public HasClickHandlers getConfirmDialogClick() {
+ public HasClickHandlers getConfirmDeleteDialogClick() {
return confirmBox;
}
/*
* (non-Javadoc)
+ * @see org.apache.hupa.client.mvp.IMAPMessageListPresenter.Display#getConfirmDeleteAllDialog()
+ */
+ public HasDialog getConfirmDeleteAllDialog() {
+ return confirmDeleteAllBox;
+ }
+
+
+ /*
+ * (non-Javadoc)
+ * @see org.apache.hupa.client.mvp.IMAPMessageListPresenter.Display#getConfirmDeleteAllDialogClick()
+ */
+ public HasClickHandlers getConfirmDeleteAllDialogClick() {
+ return confirmDeleteAllBox;
+ }
+
+ /*
+ * (non-Javadoc)
* @see org.apache.hupa.client.mvp.IMAPMessageListPresenter.Display#deselectAllMessages()
*/
public void deselectAllMessages() {
@@ -700,4 +726,12 @@
public void redraw() {
mailTable.reloadPage();
}
+
+ /*
+ * (non-Javadoc)
+ * @see org.apache.hupa.client.mvp.IMAPMessageListPresenter.Display#getDeleteAllClick()
+ */
+ public HasClickHandlers getDeleteAllClick() {
+ return deleteAllMailButton;
+ }
}
Modified: labs/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/AbstractDeleteMessageHandler.java
URL: http://svn.apache.org/viewvc/labs/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/AbstractDeleteMessageHandler.java?rev=814328&r1=814327&r2=814328&view=diff
==============================================================================
--- labs/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/AbstractDeleteMessageHandler.java (original)
+++ labs/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/AbstractDeleteMessageHandler.java Sun Sep 13 15:05:14 2009
@@ -37,6 +37,11 @@
import com.google.inject.Provider;
import com.sun.mail.imap.IMAPStore;
+/**
+ * Abstract class which should get extended by all handlers which needs to handle message deletion
+ *
+ * @param <Action>
+ */
public abstract class AbstractDeleteMessageHandler<Action extends DeleteMessage>
extends AbstractSessionHandler<Action, DeleteMessageResult> {
@@ -46,6 +51,10 @@
super(cache, logger, sessionProvider);
}
+ /*
+ * (non-Javadoc)
+ * @see org.apache.hupa.server.handler.AbstractSessionHandler#executeInternal(org.apache.hupa.shared.rpc.Session, net.customware.gwt.dispatch.server.ExecutionContext)
+ */
public DeleteMessageResult executeInternal(Action action,
ExecutionContext context) throws ActionException {
org.apache.hupa.shared.data.IMAPFolder folder = action.getFolder();
@@ -103,5 +112,12 @@
}
}
+ /**
+ * Return an array holding all messages which should get deleted by the given action
+ *
+ * @param action
+ * @return messages
+ * @throws ActionException
+ */
protected abstract Message[] getMessagesToDelete(Action action) throws ActionException;
}
Modified: labs/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/DeleteAllMessagesHandler.java
URL: http://svn.apache.org/viewvc/labs/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/DeleteAllMessagesHandler.java?rev=814328&r1=814327&r2=814328&view=diff
==============================================================================
--- labs/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/DeleteAllMessagesHandler.java (original)
+++ labs/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/DeleteAllMessagesHandler.java Sun Sep 13 15:05:14 2009
@@ -19,6 +19,7 @@
package org.apache.hupa.server.handler;
+import javax.mail.Folder;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.servlet.http.HttpSession;
@@ -43,7 +44,10 @@
super(cache, logger, sessionProvider);
}
- @Override
+ /*
+ * (non-Javadoc)
+ * @see org.apache.hupa.server.handler.AbstractDeleteMessageHandler#getMessagesToDelete(org.apache.hupa.shared.rpc.DeleteMessage)
+ */
protected Message[] getMessagesToDelete(DeleteAllMessages action)
throws ActionException {
User user = getUser(action.getSessionId());
@@ -51,7 +55,9 @@
logger.info("Delete all messages in folder " + action.getFolder() + " for user " + user);
IMAPStore store =cache.get(user);
IMAPFolder folder = (IMAPFolder) store.getFolder(action.getFolder().getFullName());
-
+ if (folder.isOpen() == false) {
+ folder.open(Folder.READ_WRITE);
+ }
return folder.getMessages();
} catch (MessagingException e) {
String errorMsg = "Error while deleting all messages in folder " + action.getFolder() + " for user " + user;
@@ -62,6 +68,10 @@
}
+ /*
+ * (non-Javadoc)
+ * @see net.customware.gwt.dispatch.server.ActionHandler#getActionType()
+ */
public Class<DeleteAllMessages> getActionType() {
return DeleteAllMessages.class;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@labs.apache.org
For additional commands, e-mail: commits-help@labs.apache.org