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 do...@apache.org on 2013/09/12 06:24:21 UTC

svn commit: r1522342 - in /james/hupa/trunk/client/src/main/java/org/apache/hupa/client: activity/MessageListActivity.java activity/ToolBarActivity.java ioc/AppGinModule.java ui/MessageListView.java ui/ToolBarView.java

Author: dongxu
Date: Thu Sep 12 04:24:21 2013
New Revision: 1522342

URL: http://svn.apache.org/r1522342
Log:
fixed issue#59, coupled with fixing some UI refreshment issues in toolsbar

Modified:
    james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/MessageListActivity.java
    james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/ToolBarActivity.java
    james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ioc/AppGinModule.java
    james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/MessageListView.java
    james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/ToolBarView.java

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=1522342&r1=1522341&r2=1522342&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 Sep 12 04:24:21 2013
@@ -23,6 +23,7 @@ package org.apache.hupa.client.activity;
 <<<<<<< HEAD
 <<<<<<< HEAD
 <<<<<<< HEAD
+<<<<<<< HEAD
 import java.util.Collection;
 import java.util.List;
 import java.util.Set;
@@ -252,10 +253,15 @@ import org.apache.hupa.client.rf.GetMess
 import org.apache.hupa.client.place.MailFolderPlace;
 >>>>>>> make reload message content work, use the same place with folder list, while separated with slash, that looks like Gmail's
 =======
+=======
+import java.util.Collection;
+>>>>>>> fixed issue#59, coupled with fixing some UI refreshment issues in toolsbar
 import java.util.List;
+import java.util.Set;
 
 import org.apache.hupa.client.place.DefaultPlace;
 import org.apache.hupa.client.place.MailFolderPlace;
+import org.apache.hupa.client.rf.DeleteMessageByUidRequest;
 import org.apache.hupa.client.rf.FetchMessagesRequest;
 import org.apache.hupa.client.rf.GetMessageDetailsRequest;
 import org.apache.hupa.client.rf.HupaRequestFactory;
@@ -263,6 +269,8 @@ import org.apache.hupa.client.ui.Message
 >>>>>>> let messages list activity make use of mvp
 import org.apache.hupa.client.ui.WidgetDisplayable;
 import org.apache.hupa.shared.data.ImapFolderImpl;
+import org.apache.hupa.shared.domain.DeleteMessageByUidAction;
+import org.apache.hupa.shared.domain.DeleteMessageResult;
 import org.apache.hupa.shared.domain.FetchMessagesAction;
 import org.apache.hupa.shared.domain.FetchMessagesResult;
 import org.apache.hupa.shared.domain.GetMessageDetailsAction;
@@ -305,11 +313,7 @@ public class MessageListActivity extends
 			@Override
 			public void onCellPreview(final CellPreviewEvent<Message> event) {
 				if (hasClickedButFirstCol(event)) {
-					List<Message> displayedItems = display.getGrid().getVisibleItems();
-					for (Message msg : displayedItems) {
-						display.getGrid().getSelectionModel().setSelected(msg, false);
-						toolBarDisplay.enableAllTools(false);
-					}
+					antiSelectMessages(display.getGrid().getVisibleItems());
 					GetMessageDetailsRequest req = requestFactory.messageDetailsRequest();
 					GetMessageDetailsAction action = req.create(GetMessageDetailsAction.class);
 					final ImapFolder f = req.create(ImapFolder.class);
@@ -424,12 +428,41 @@ public class MessageListActivity extends
 >>>>>>> make reload message content work, use the same place with folder list, while separated with slash, that looks like Gmail's
 	public interface Displayable extends WidgetDisplayable {
 		MessagesCellTable getGrid();
+
+		List<Long> getSelectedMessagesIds();
+
+		void refresh();
+
+		Set<Message> getSelectedMessages();
 	}
 
 	public void setFolder(ImapFolder folder) {
 		this.folder = folder;
-		// if (folder != null)
-		// fetch(0);
+	}
+
+	private void antiSelectMessages(Collection<Message> c) {
+		for (Message msg : c) {
+			display.getGrid().getSelectionModel().setSelected(msg, false);
+			toolBarDisplay.enableAllTools(false);
+		}
+	}
+	public void deleteSelectedMessages() {
+		MailFolderPlace currentPlace = (MailFolderPlace) placeController.getWhere();
+		final List<Long> uids = display.getSelectedMessagesIds();
+		DeleteMessageByUidRequest req = requestFactory.deleteMessageByUidRequest();
+		DeleteMessageByUidAction action = req.create(DeleteMessageByUidAction.class);
+		ImapFolder f = req.create(ImapFolder.class);
+		f.setFullName(currentPlace.getFullName());
+		action.setMessageUids(uids);
+		action.setFolder(f);
+		req.delete(action).fire(new Receiver<DeleteMessageResult>() {
+			@Override
+			public void onSuccess(DeleteMessageResult response) {
+				fetch(0);
+				antiSelectMessages(display.getSelectedMessages());
+				display.refresh();
+			}
+		});
 	}
 >>>>>>> prepare for message content panel
 }

Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/ToolBarActivity.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/ToolBarActivity.java?rev=1522342&r1=1522341&r2=1522342&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/ToolBarActivity.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/ToolBarActivity.java Thu Sep 12 04:24:21 2013
@@ -26,7 +26,11 @@ package org.apache.hupa.client.activity;
 import java.util.ArrayList;
 import java.util.List;
 
+<<<<<<< HEAD
 import org.apache.hupa.client.place.FolderPlace;
+=======
+import org.apache.hupa.client.place.MailFolderPlace;
+>>>>>>> fixed issue#59, coupled with fixing some UI refreshment issues in toolsbar
 import org.apache.hupa.client.rf.SetFlagRequest;
 import org.apache.hupa.client.ui.MessagesCellTable;
 import org.apache.hupa.client.ui.ToolBarView.Parameters;
@@ -169,10 +173,6 @@ import org.apache.hupa.shared.domain.Gen
 import org.apache.hupa.shared.domain.ImapFolder;
 import org.apache.hupa.shared.domain.Message;
 import org.apache.hupa.shared.domain.SetFlagAction;
-import org.apache.hupa.shared.events.LoadMessagesEvent;
-import org.apache.hupa.shared.events.LoadMessagesEventHandler;
-import org.apache.hupa.shared.events.LoginEvent;
-import org.apache.hupa.shared.events.LoginEventHandler;
 
 import com.google.gwt.event.dom.client.ClickEvent;
 import com.google.gwt.event.dom.client.ClickHandler;
@@ -188,6 +188,9 @@ public class ToolBarActivity extends App
 
 	@Inject private Displayable display;
 	@Inject private MessagesCellTable table;
+	@Inject private MessageListActivity.Displayable messagesDisplay;
+	@Inject private MessageListActivity messageListActivity;
+	//FIXME messagesDisplay can not be injected into ToolBarView, why?
 	private String folderName;
 
 	@Override
@@ -208,17 +211,6 @@ public class ToolBarActivity extends App
 >>>>>>> integrate all of the views to their corresponding activities and mappers
 =======
 	private void bindTo(EventBus eventBus) {
-		eventBus.addHandler(LoginEvent.TYPE, new LoginEventHandler() {
-			@Override
-			public void onLogin(LoginEvent e) {
-				display.setParameters(new Parameters(e.getUser(), null, null, null));
-			}
-		});
-		eventBus.addHandler(LoadMessagesEvent.TYPE, new LoadMessagesEventHandler() {
-			public void onLoadMessagesEvent(LoadMessagesEvent loadMessagesEvent) {
-				display.enableAllTools(false);
-			}
-		});
 		registerHandler(display.getMark().addClickHandler(new ClickHandler() {
 			public void onClick(ClickEvent event) {
 				// Reposition the popup relative to the button
@@ -244,6 +236,15 @@ public class ToolBarActivity extends App
 				display.getPopup().hide();
 			}
 		}));
+		registerHandler(display.getDelete().addClickHandler(new ClickHandler(){
+
+			@Override
+			public void onClick(ClickEvent event) {		
+				if (!(placeController.getWhere() instanceof MailFolderPlace))
+					return;
+				messageListActivity.deleteSelectedMessages();
+			}
+		}));
 	}
 
 	protected void toMarkRead(boolean read) {
@@ -289,6 +290,7 @@ public class ToolBarActivity extends App
 		HasClickHandlers getMarkRead();
 
 		HasClickHandlers getMark();
+		HasClickHandlers getDelete();
 
 		PopupPanel getPopup();
 	}

Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ioc/AppGinModule.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ioc/AppGinModule.java?rev=1522342&r1=1522341&r2=1522342&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ioc/AppGinModule.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ioc/AppGinModule.java Thu Sep 12 04:24:21 2013
@@ -515,7 +515,7 @@ public class AppGinModule extends Abstra
 		bind(NavigationActivity.Displayable.class).to(NavigationView.class);
 		bind(ToolBarActivity.Displayable.class).to(ToolBarView.class).in(Singleton.class);
 		// bind(FolderListActivity.Displayable.class).to(FolderListView.class);
-		bind(MessageListActivity.Displayable.class).to(MessageListView.class);
+		bind(MessageListActivity.Displayable.class).to(MessageListView.class).in(Singleton.class);
 		bind(MessageListFooterActivity.Displayable.class).to(MessageListFooterView.class);
 		bind(MessageContentActivity.Displayable.class).to(MessageContentView.class);
 		bind(StatusActivity.Displayable.class).to(StatusView.class);

Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/MessageListView.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/MessageListView.java?rev=1522342&r1=1522341&r2=1522342&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/MessageListView.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/MessageListView.java Thu Sep 12 04:24:21 2013
@@ -23,6 +23,7 @@ package org.apache.hupa.client.ui;
 <<<<<<< HEAD
 <<<<<<< HEAD
 <<<<<<< HEAD
+<<<<<<< HEAD
 import java.util.ArrayList;
 import java.util.List;
 <<<<<<< HEAD
@@ -76,6 +77,12 @@ import org.apache.hupa.client.place.Mail
 import org.apache.hupa.client.rf.FetchMessagesRequest;
 import org.apache.hupa.client.rf.GetMessageDetailsRequest;
 =======
+=======
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Set;
+
+>>>>>>> fixed issue#59, coupled with fixing some UI refreshment issues in toolsbar
 import org.apache.hupa.client.activity.MessageListActivity;
 >>>>>>> scrub code
 import org.apache.hupa.client.rf.HupaRequestFactory;
@@ -89,12 +96,12 @@ import com.google.gwt.uibinder.client.Ui
 import com.google.gwt.uibinder.client.UiField;
 import com.google.gwt.user.cellview.client.DataGrid;
 import com.google.gwt.user.client.ui.Composite;
+import com.google.gwt.view.client.MultiSelectionModel;
 import com.google.inject.Inject;
 
 public class MessageListView extends Composite implements MessageListActivity.Displayable {
 
 	@UiField(provided = true) MessagesCellTable grid;
-	
 
 	@Inject
 	public MessageListView(final EventBus eventBus, final HupaRequestFactory requestFactory,
@@ -103,6 +110,7 @@ public class MessageListView extends Com
 		initWidget(binder.createAndBindUi(this));
 	}
 <<<<<<< HEAD
+<<<<<<< HEAD
 
 	public void fetch(final int start) {
 		FetchMessagesRequest req = requestFactory.messagesRequest();
@@ -161,6 +169,9 @@ public class MessageListView extends Com
 =======
 =======
 >>>>>>> let messages list activity make use of mvp
+=======
+
+>>>>>>> fixed issue#59, coupled with fixing some UI refreshment issues in toolsbar
 	interface MessageListUiBinder extends UiBinder<DataGrid<Message>, MessageListView> {
 >>>>>>> coping with reply and forward sending message
 	}
@@ -170,6 +181,7 @@ public class MessageListView extends Com
 <<<<<<< HEAD
 <<<<<<< HEAD
 <<<<<<< HEAD
+<<<<<<< HEAD
 	@Override
 	public MessagesCellTable getGrid() {
 		return grid;
@@ -217,14 +229,43 @@ public class MessageListView extends Com
 =======
 
 >>>>>>> let messages list activity make use of mvp
+=======
+>>>>>>> fixed issue#59, coupled with fixing some UI refreshment issues in toolsbar
 	@Override
 	public MessagesCellTable getGrid() {
 		return grid;
 	}
 
 <<<<<<< HEAD
+<<<<<<< HEAD
 >>>>>>> prepare for place management and history controller
 =======
+=======
+	@Override
+	public List<Long> getSelectedMessagesIds() {
+		List<Long> selecteds = new ArrayList<Long>();
+		MultiSelectionModel<? super Message> selectionModel = (MultiSelectionModel<? super Message>) grid
+				.getSelectionModel();
+		selectionModel.getSelectedSet();
+		for (Message msg : getSelectedMessages()) {
+			selecteds.add(msg.getUid());
+		}
+		return selecteds;
+	}
+
+	@Override
+	public void refresh() {
+		grid.refresh();
+	}
+
+	@SuppressWarnings("unchecked")
+	@Override
+	public Set<Message> getSelectedMessages() {
+		MultiSelectionModel<? super Message> selectionModel = (MultiSelectionModel<? super Message>) grid
+				.getSelectionModel();
+		return (Set<Message>) selectionModel.getSelectedSet();
+	}
+>>>>>>> fixed issue#59, coupled with fixing some UI refreshment issues in toolsbar
 
 >>>>>>> let messages list activity make use of mvp
 }

Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/ToolBarView.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/ToolBarView.java?rev=1522342&r1=1522341&r2=1522342&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/ToolBarView.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/ToolBarView.java Thu Sep 12 04:24:21 2013
@@ -22,6 +22,7 @@ package org.apache.hupa.client.ui;
 <<<<<<< HEAD
 <<<<<<< HEAD
 <<<<<<< HEAD
+<<<<<<< HEAD
 import org.apache.hupa.client.activity.ToolBarActivity;
 import org.apache.hupa.client.place.ComposePlace;
 <<<<<<< HEAD
@@ -35,13 +36,17 @@ import org.apache.hupa.shared.events.Del
 =======
 import java.util.ArrayList;
 
+=======
+>>>>>>> fixed issue#59, coupled with fixing some UI refreshment issues in toolsbar
 import org.apache.hupa.client.activity.ToolBarActivity;
 import org.apache.hupa.client.place.ComposePlace;
-import org.apache.hupa.client.rf.DeleteMessageByUidRequest;
 import org.apache.hupa.client.rf.HupaRequestFactory;
+<<<<<<< HEAD
 import org.apache.hupa.shared.domain.DeleteMessageByUidAction;
 import org.apache.hupa.shared.domain.DeleteMessageResult;
 >>>>>>> fill the empty compose view with the old message when the composing type are reply, replyAll, forward and preparing for about & deleting operation
+=======
+>>>>>>> fixed issue#59, coupled with fixing some UI refreshment issues in toolsbar
 import org.apache.hupa.shared.domain.ImapFolder;
 import org.apache.hupa.shared.domain.Message;
 import org.apache.hupa.shared.domain.MessageDetails;
@@ -375,12 +380,11 @@ import com.google.gwt.user.client.ui.Pop
 import com.google.gwt.user.client.ui.VerticalPanel;
 import com.google.gwt.user.client.ui.Widget;
 import com.google.inject.Inject;
-import com.google.web.bindery.requestfactory.shared.Receiver;
 
 public class ToolBarView extends Composite implements ToolBarActivity.Displayable {
 
-	@Inject PlaceController placeController;
-	@Inject protected HupaRequestFactory requestFactory;
+	@Inject private PlaceController placeController;
+	@Inject private HupaRequestFactory requestFactory;
 
 	@UiField Anchor refresh;
 	@UiField Anchor compose;
@@ -487,27 +491,6 @@ public class ToolBarView extends Composi
 		placeController.goTo(new ComposePlace("forward").with(parameters));
 	}
 
-	@UiHandler("delete")
-	void handleDeleteClick(ClickEvent e) {
-		if (null == parameters)
-			return;
-		ArrayList<Long> uidList = new ArrayList<Long>();
-		uidList.add(parameters.getOldmessage().getUid());
-		DeleteMessageByUidRequest req = requestFactory.deleteMessageByUidRequest();
-		DeleteMessageByUidAction action = req.create(DeleteMessageByUidAction.class);
-		ImapFolder f = req.create(ImapFolder.class);
-		f.setFullName(parameters.getFolder().getFullName());
-		action.setMessageUids(uidList);
-		action.setFolder(f);
-		req.delete(action).fire(new Receiver<DeleteMessageResult>() {
-			@Override
-			public void onSuccess(DeleteMessageResult response) {
-				// TODO how to refresh the message list
-				placeController.goTo(placeController.getWhere());
-			}
-		});
-	}
-
 	public ToolBarView() {
 		initWidget(binder.createAndBindUi(this));
 <<<<<<< HEAD
@@ -586,6 +569,11 @@ public class ToolBarView extends Composi
 	}
 
 	@Override
+	public HasClickHandlers getDelete() {
+		return delete;
+	}
+
+	@Override
 	public void enableAllTools(boolean is) {
 		this.enableSendingTools(is);
 		this.enableDealingTools(is);



---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org