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