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-unsubscr...@james.apache.org
For additional commands, e-mail: server-dev-h...@james.apache.org

Reply via email to