Author: dongxu
Date: Thu Sep 12 02:49:20 2013
New Revision: 1522145

URL: http://svn.apache.org/r1522145
Log: (empty)

Added:
    
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/CachingTopActivityMapper.java
    
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/CachingWestActivityMapper.java
Removed:
    
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/place/MailPlace.java
Modified:
    
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/IMAPMessageListActivity.java
    
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/TopActivity.java
    
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/WestActivity.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/place/IMAPMessagePlace.java
    
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/place/MailInboxPlace.java
    
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/place/MessageSendPlace.java
    
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/IMAPMessageListView.java
    
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/WestView.java

Modified: 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/IMAPMessageListActivity.java
URL: 
http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/IMAPMessageListActivity.java?rev=1522145&r1=1522144&r2=1522145&view=diff
==============================================================================
--- 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/IMAPMessageListActivity.java
 (original)
+++ 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/IMAPMessageListActivity.java
 Thu Sep 12 02:49:20 2013
@@ -384,6 +384,7 @@ import java.util.ArrayList;
 import net.customware.gwt.dispatch.client.DispatchAsync;
 
 <<<<<<< HEAD
+<<<<<<< HEAD
 import org.apache.hupa.client.HandlerRegistrationAdapter;
 import org.apache.hupa.client.activity.MessageSendActivity.Type;
 import org.apache.hupa.client.evo.HupaEvoCallback;
@@ -422,20 +423,49 @@ import com.google.gwt.event.dom.client.C
 import com.google.gwt.event.dom.client.ClickEvent;
 import com.google.gwt.event.dom.client.ClickHandler;
 =======
+=======
+import org.apache.hupa.client.HandlerRegistrationAdapter;
+import org.apache.hupa.client.HupaCallback;
+import org.apache.hupa.client.HupaEvoCallback;
+>>>>>>> 
 import org.apache.hupa.client.mvp.WidgetDisplayable;
 import org.apache.hupa.client.place.MailInboxPlace;
 import org.apache.hupa.client.widgets.HasDialog;
 import org.apache.hupa.shared.data.IMAPFolder;
 import org.apache.hupa.shared.data.Message;
 import org.apache.hupa.shared.data.User;
+import org.apache.hupa.shared.data.Message.IMAPFlag;
 import org.apache.hupa.shared.events.DecreaseUnseenEvent;
 import org.apache.hupa.shared.events.ExpandMessageEvent;
+import org.apache.hupa.shared.events.FolderSelectionEvent;
+import org.apache.hupa.shared.events.FolderSelectionEventHandler;
+import org.apache.hupa.shared.events.IncreaseUnseenEvent;
+import org.apache.hupa.shared.events.LoadMessagesEvent;
 import org.apache.hupa.shared.events.LogoutEvent;
 import org.apache.hupa.shared.events.LogoutEventHandler;
+import org.apache.hupa.shared.events.MessagesReceivedEvent;
+import org.apache.hupa.shared.events.MessagesReceivedEventHandler;
+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.GenericResult;
+import org.apache.hupa.shared.rpc.MoveMessage;
+import org.apache.hupa.shared.rpc.MoveMessageResult;
+import org.apache.hupa.shared.rpc.SetFlag;
 import org.apache.hupa.widgets.ui.HasEnable;
 
 import com.google.gwt.activity.shared.AbstractActivity;
+<<<<<<< HEAD
 >>>>>>> Change to new mvp framework - first step
+=======
+import com.google.gwt.event.dom.client.ChangeEvent;
+import com.google.gwt.event.dom.client.ChangeHandler;
+import com.google.gwt.event.dom.client.ClickEvent;
+import com.google.gwt.event.dom.client.ClickHandler;
+>>>>>>> 
 import com.google.gwt.event.dom.client.HasChangeHandlers;
 import com.google.gwt.event.dom.client.HasClickHandlers;
 import com.google.gwt.event.shared.EventBus;
@@ -443,12 +473,18 @@ import com.google.gwt.gen2.table.event.c
 import com.google.gwt.gen2.table.event.client.HasPageLoadHandlers;
 import com.google.gwt.gen2.table.event.client.HasRowSelectionHandlers;
 <<<<<<< HEAD
+<<<<<<< HEAD
+=======
+>>>>>>> 
 import com.google.gwt.gen2.table.event.client.PageChangeEvent;
 import com.google.gwt.gen2.table.event.client.PageChangeHandler;
 import com.google.gwt.gen2.table.event.client.RowSelectionEvent;
 import com.google.gwt.gen2.table.event.client.RowSelectionHandler;
+<<<<<<< HEAD
 =======
 >>>>>>> Change to new mvp framework - first step
+=======
+>>>>>>> 
 import com.google.gwt.place.shared.PlaceController;
 import com.google.gwt.user.client.ui.AcceptsOneWidget;
 import com.google.gwt.user.client.ui.HasValue;
@@ -747,9 +783,220 @@ public class IMAPMessageListActivity ext
        }
        
        private void bind(){
-               
+               eventBus.addHandler(MessagesReceivedEvent.TYPE, new 
MessagesReceivedEventHandler() {
+
+            public void onMessagesReceived(MessagesReceivedEvent event) {
+
+                // fill the oracle
+                display.fillSearchOracle(event.getMessages());
+            }
+
+        });
+               display.getSearchClick().addClickHandler(new ClickHandler() {
+
+            public void onClick(ClickEvent event) {
+                String searchValue = null;
+                if (display.getSearchValue().getValue().trim().length() > 0) {
+                    searchValue = display.getSearchValue().getValue().trim();
+                }
+                eventBus.fireEvent(new LoadMessagesEvent(user, folder, 
searchValue));
+            }
+
+        });
+               eventBus.addHandler(MoveMessageEvent.TYPE, new 
MoveMessageEventHandler() {
+
+            public void onMoveMessageHandler(MoveMessageEvent event) {
+                final Message message = event.getMessage();
+                dispatcher.execute(new MoveMessage(event.getOldFolder(), 
event.getNewFolder(), message.getUid()), new 
HupaEvoCallback<MoveMessageResult>(dispatcher, eventBus) {
+                    public void callback(MoveMessageResult result) {
+                        ArrayList<Message> messageArray = new 
ArrayList<Message>();
+                        messageArray.add(message);
+                        display.removeMessages(messageArray);
+                    }
+                }); 
+            }
+            
+        });
+               display.getSelectAllClick().addClickHandler(new ClickHandler() {
+
+            public void onClick(ClickEvent event) {
+                display.deselectAllMessages();
+                display.selectAllMessages();
+            }
+            
+        });
+               display.getSelectNoneClick().addClickHandler(new ClickHandler() 
{
+
+            public void onClick(ClickEvent event) {
+                display.deselectAllMessages();
+            }
+            
+        });
+               display.getDeleteClick().addClickHandler(new 
com.google.gwt.event.dom.client.ClickHandler() {
+
+            public void onClick(com.google.gwt.event.dom.client.ClickEvent 
event) {
+                if 
(folder.getFullName().equals(user.getSettings().getTrashFolderName())) {
+                    display.getConfirmDeleteDialog().show();
+                } else {
+                    deleteMessages();
+                }
+                
+            }
+            
+        });
+               display.getConfirmDeleteDialogClick().addClickHandler(new 
ClickHandler() {
+
+            public void onClick(ClickEvent event) {
+                deleteMessages();
+            }
+            
+        });
+               display.getNewClick().addClickHandler(new 
com.google.gwt.event.dom.client.ClickHandler() {
+
+            public void onClick(com.google.gwt.event.dom.client.ClickEvent 
event) {
+                eventBus.fireEvent(new NewMessageEvent());
+            }
+            
+        });
+               display.getDeleteAllClick().addClickHandler(new ClickHandler() {
+
+            public void onClick(ClickEvent event) {
+                display.getConfirmDeleteAllDialog().center();
+            }
+            
+        });
+               display.getConfirmDeleteAllDialogClick().addClickHandler(new 
ClickHandler() {
+
+            public void onClick(ClickEvent event) {
+                dispatcher.execute(new DeleteAllMessages(folder), new 
HupaEvoCallback<DeleteMessageResult>(dispatcher, eventBus) {
+                    public void callback(DeleteMessageResult result) {
+                        display.reset();
+                        display.reloadData();
+//                        eventBus.fireEvent(new 
DecreaseUnseenEvent(user,folder,result.getCount()));
+                    }
+                });
+            }
+            
+        });
+               display.getMarkSeenClick().addClickHandler( new ClickHandler() {
+            public void onClick(ClickEvent event) {
+                final ArrayList<Message> selectedMessages = new 
ArrayList<Message>(display.getSelectedMessages());
+                ArrayList<Long> uids = new ArrayList<Long>();
+                for (Message m : selectedMessages) {
+                    if (m.getFlags().contains(IMAPFlag.SEEN) == false) {
+                        uids.add(m.getUid());
+                    } else {
+                        selectedMessages.remove(m);
+                    }
+                }
+                dispatcher.execute(new SetFlag(folder, IMAPFlag.SEEN, true, 
uids), new HupaEvoCallback<GenericResult>(dispatcher, eventBus) {
+                    public void callback(GenericResult result) {
+                        for (Message m : selectedMessages) {
+                            if (m.getFlags().contains(IMAPFlag.SEEN) == false) 
{
+                                m.getFlags().add(IMAPFlag.SEEN);
+                            }
+                        }
+                        display.redraw();
+                        eventBus.fireEvent(new DecreaseUnseenEvent(user, 
folder,selectedMessages.size()));
+                    }
+                });
+            }
+
+        });
+               display.getMarkUnseenClick().addClickHandler(new ClickHandler() 
{
+
+            public void onClick(ClickEvent event) {
+                final ArrayList<Message> selectedMessages = new 
ArrayList<Message>(display.getSelectedMessages());
+                ArrayList<Long> uids = new ArrayList<Long>();
+                for (Message m : selectedMessages) {
+                    if (m.getFlags().contains(IMAPFlag.SEEN)) {
+                        uids.add(m.getUid());
+                    } else {
+                        selectedMessages.remove(m);
+                    }
+                }
+                
+                dispatcher.execute(new SetFlag(folder, IMAPFlag.SEEN, false, 
uids), new HupaEvoCallback<GenericResult>(dispatcher, eventBus) {
+                    public void callback(GenericResult result) {
+                        for (Message m : selectedMessages) {
+                            if (m.getFlags().contains(IMAPFlag.SEEN)) {
+                                m.getFlags().remove(IMAPFlag.SEEN);
+                            }
+                        }
+                        display.redraw();
+                        eventBus.fireEvent(new IncreaseUnseenEvent(user, 
folder,selectedMessages.size()));
+                    }
+                });
+            }
+            
+            
+        });
+               eventBus.addHandler(FolderSelectionEvent.TYPE, new 
FolderSelectionEventHandler() {//TODO
+
+            public void onFolderSelectionEvent(FolderSelectionEvent event) {
+                folder = event.getFolder();
+                user = event.getUser();
+            }
+            
+        });
+               new 
HandlerRegistrationAdapter(display.getDataTableSelection().addRowSelectionHandler(new
 RowSelectionHandler() {
+            public void onRowSelection(RowSelectionEvent event) {
+                if (event.getSelectedRows().size() == 0) {
+                    display.getDeleteEnable().setEnabled(false);
+                    display.getMarkSeenEnable().setEnabled(false);
+                    display.getMarkUnseenEnable().setEnabled(false);
+                } else {
+                    display.getDeleteEnable().setEnabled(true);
+                    display.getMarkSeenEnable().setEnabled(true);
+                    display.getMarkUnseenEnable().setEnabled(true);
+                }
+            }
+            
+        
+        
+               }));
+               display.getRefreshClick().addClickHandler(new ClickHandler() {
+
+            public void onClick(ClickEvent event) {
+                display.reset();
+                display.reloadData();
+            }
+            
+        });
+               new 
HandlerRegistrationAdapter(display.getDataTablePageChange().addPageChangeHandler(new
 PageChangeHandler() {//TODO
+
+            public void onPageChange(PageChangeEvent event) {
+                //firePresenterRevealedEvent(true);
+//                firePresenterChangedEvent();
+            }
+            
+        }));
+               display.getRowsPerPageChange().addChangeHandler(new 
ChangeHandler() {
+
+            public void onChange(ChangeEvent event) {
+                //firePresenterRevealedEvent(true);
+//                firePresenterChangedEvent();
+            }
+            
+        });
+               display.addTableListener(tableListener);
        }
 
+    private void deleteMessages() {
+        final ArrayList<Message> selectedMessages = new 
ArrayList<Message>(display.getSelectedMessages());
+        ArrayList<Long> uids = new ArrayList<Long>();
+        for (Message m : selectedMessages) {
+            uids.add(m.getUid());
+        }
+        // maybe its better to just remove the messages from the table and 
expect the removal will work
+        display.removeMessages(selectedMessages);
+
+        dispatcher.execute(new DeleteMessageByUid(folder,uids), new 
HupaEvoCallback<DeleteMessageResult>(dispatcher, eventBus) {
+            public void callback(DeleteMessageResult result) {
+                eventBus.fireEvent(new 
DecreaseUnseenEvent(user,folder,result.getCount()));
+            }
+        }); 
+    }
        public IMAPMessageListActivity with(User user){
                this.user = user;
                this.folder = new 
IMAPFolder(user.getSettings().getInboxFolderName());

Modified: 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/TopActivity.java
URL: 
http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/TopActivity.java?rev=1522145&r1=1522144&r2=1522145&view=diff
==============================================================================
--- 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/TopActivity.java
 (original)
+++ 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/TopActivity.java
 Thu Sep 12 02:49:20 2013
@@ -46,6 +46,7 @@ import org.apache.hupa.shared.data.User;
 =======
 import org.apache.hupa.client.HupaEvoCallback;
 import org.apache.hupa.client.mvp.WidgetDisplayable;
+import org.apache.hupa.client.place.DefaultPlace;
 import org.apache.hupa.shared.data.User;
 >>>>>>> introduce the top activity
 import org.apache.hupa.shared.events.FlashEvent;
@@ -102,9 +103,13 @@ import com.google.gwt.user.client.ui.Acc
 import com.google.gwt.user.client.ui.HasText;
 import com.google.inject.Inject;
 <<<<<<< HEAD
+<<<<<<< HEAD
 import com.google.inject.Provider;
 =======
 >>>>>>> introduce the top activity
+=======
+import com.google.inject.Provider;
+>>>>>>> 
 
 public class TopActivity extends AbstractActivity {
 
@@ -161,6 +166,7 @@ public class TopActivity extends Abstrac
                                showLogin(username);
                                noopTimer.cancel();
 <<<<<<< HEAD
+<<<<<<< HEAD
                                
TopActivity.this.placeController.goTo(defaultPlaceProvider.get());
                        }
 <<<<<<< HEAD
@@ -183,6 +189,9 @@ public class TopActivity extends Abstrac
                eventBus.addHandler(ServerStatusEvent.TYPE, new 
ServerStatusEventHandler() {
 =======
 =======
+=======
+                               
TopActivity.this.placeController.goTo(defaultPlaceProvider.get());
+>>>>>>> 
                        }
 >>>>>>> introduce the top activity
 
@@ -324,16 +333,24 @@ public class TopActivity extends Abstrac
        private Timer noopTimer = new IdleTimer();
 
        @Inject
+<<<<<<< HEAD
        public TopActivity(Displayable display, EventBus eventBus, 
PlaceController placeController,
 >>>>>>> introduce the top activity
+=======
+       public TopActivity(Displayable display, EventBus eventBus, 
PlaceController placeController, Provider<DefaultPlace> defaultPlaceProvider,
+>>>>>>> 
                        HupaConstants constants, DispatchAsync dispatcher) {
                this.dispatcher = dispatcher;
                this.display = display;
                this.eventBus = eventBus;
 <<<<<<< HEAD
+<<<<<<< HEAD
                this.defaultPlaceProvider = defaultPlaceProvider;
 =======
 >>>>>>> introduce the top activity
+=======
+               this.defaultPlaceProvider = defaultPlaceProvider;
+>>>>>>> 
                this.constants = constants;
                this.placeController = placeController;
 
@@ -376,9 +393,13 @@ public class TopActivity extends Abstrac
        private final PlaceController placeController;
        private final DispatchAsync dispatcher;
 <<<<<<< HEAD
+<<<<<<< HEAD
        private final Provider<DefaultPlace> defaultPlaceProvider;
 =======
 >>>>>>> introduce the top activity
+=======
+       private final Provider<DefaultPlace> defaultPlaceProvider;
+>>>>>>> 
 
        private User user;
        private ServerStatus serverStatus = ServerStatus.Available;

Modified: 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/WestActivity.java
URL: 
http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/WestActivity.java?rev=1522145&r1=1522144&r2=1522145&view=diff
==============================================================================
--- 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/WestActivity.java
 (original)
+++ 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/WestActivity.java
 Thu Sep 12 02:49:20 2013
@@ -302,15 +302,54 @@ import org.apache.hupa.shared.rpc.GetMes
 import org.apache.hupa.shared.rpc.GetMessageDetailsResult;
 =======
 import org.apache.hupa.client.HupaEvoCallback;
+import org.apache.hupa.client.mvp.MessageSendPresenter.Type;
+import org.apache.hupa.client.mvp.MainPresenter;
 import org.apache.hupa.client.mvp.WidgetContainerDisplayable;
+import org.apache.hupa.client.place.IMAPMessagePlace;
+import org.apache.hupa.client.place.MailInboxPlace;
+import org.apache.hupa.client.place.MessageSendPlace;
 import org.apache.hupa.client.widgets.HasDialog;
 import org.apache.hupa.client.widgets.IMAPTreeItem;
 import org.apache.hupa.shared.data.IMAPFolder;
+import org.apache.hupa.shared.data.Message;
+import org.apache.hupa.shared.data.Message.IMAPFlag;
+import org.apache.hupa.shared.data.MessageDetails;
 import org.apache.hupa.shared.data.User;
+import org.apache.hupa.shared.events.BackEvent;
+import org.apache.hupa.shared.events.BackEventHandler;
+import org.apache.hupa.shared.events.DecreaseUnseenEvent;
+import org.apache.hupa.shared.events.DecreaseUnseenEventHandler;
+import org.apache.hupa.shared.events.ExpandMessageEvent;
+import org.apache.hupa.shared.events.ExpandMessageEventHandler;
+import org.apache.hupa.shared.events.FolderSelectionEvent;
+import org.apache.hupa.shared.events.FolderSelectionEventHandler;
+import org.apache.hupa.shared.events.ForwardMessageEvent;
+import org.apache.hupa.shared.events.ForwardMessageEventHandler;
+import org.apache.hupa.shared.events.IncreaseUnseenEvent;
+import org.apache.hupa.shared.events.IncreaseUnseenEventHandler;
+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 org.apache.hupa.shared.events.MessagesReceivedEvent;
+import org.apache.hupa.shared.events.MessagesReceivedEventHandler;
+import org.apache.hupa.shared.events.NewMessageEvent;
+import org.apache.hupa.shared.events.NewMessageEventHandler;
+import org.apache.hupa.shared.events.ReplyMessageEvent;
+import org.apache.hupa.shared.events.ReplyMessageEventHandler;
+import org.apache.hupa.shared.events.SentMessageEvent;
+import org.apache.hupa.shared.events.SentMessageEventHandler;
+import org.apache.hupa.shared.rpc.CreateFolder;
+import org.apache.hupa.shared.rpc.DeleteFolder;
 import org.apache.hupa.shared.rpc.FetchFolders;
 import org.apache.hupa.shared.rpc.FetchFoldersResult;
 import org.apache.hupa.shared.rpc.GenericResult;
+<<<<<<< HEAD
 >>>>>>> Change to new mvp framework - first step
+=======
+import org.apache.hupa.shared.rpc.GetMessageDetails;
+import org.apache.hupa.shared.rpc.GetMessageDetailsResult;
+>>>>>>> 
 import org.apache.hupa.shared.rpc.RenameFolder;
 import org.apache.hupa.widgets.event.EditEvent;
 import org.apache.hupa.widgets.event.EditHandler;
@@ -319,6 +358,9 @@ import org.apache.hupa.widgets.ui.HasEna
 
 import com.google.gwt.activity.shared.AbstractActivity;
 <<<<<<< HEAD
+<<<<<<< HEAD
+=======
+>>>>>>> 
 import com.google.gwt.core.client.GWT;
 import com.google.gwt.event.dom.client.ClickEvent;
 import com.google.gwt.event.dom.client.ClickHandler;
@@ -335,6 +377,7 @@ import com.google.gwt.user.client.ui.Acc
 import com.google.gwt.user.client.ui.TreeItem;
 import com.google.inject.Inject;
 import com.google.inject.Provider;
+<<<<<<< HEAD
 import com.google.web.bindery.requestfactory.shared.Receiver;
 =======
 import com.google.gwt.event.dom.client.HasClickHandlers;
@@ -345,6 +388,8 @@ import com.google.gwt.user.client.ui.Acc
 import com.google.gwt.user.client.ui.TreeItem;
 import com.google.inject.Inject;
 >>>>>>> Change to new mvp framework - first step
+=======
+>>>>>>> 
 
 public class WestActivity extends AbstractActivity {
 
@@ -352,6 +397,7 @@ public class WestActivity extends Abstra
        private final EventBus eventBus;
        private final PlaceController placeController;
 <<<<<<< HEAD
+<<<<<<< HEAD
        private final Provider<IMAPMessagePlace> IMAPMessagePlaceProvider;
        private final Provider<MessageSendPlace> messageSendPlaceProvider;
        private final Provider<IMAPMessagePlace> messagePlaceProvider;
@@ -373,27 +419,43 @@ public class WestActivity extends Abstra
     public WestActivity(Displayable display, EventBus eventBus, 
PlaceController placeController,
                        DispatchAsync dispatcher,Provider<IMAPMessagePlace> 
IMAPMessagePlaceProvider,Provider<MessageSendPlace> 
messageSendPlaceProvider,Provider<IMAPMessagePlace> messagePlaceProvider){
 =======
+=======
+       private final Provider<MailInboxPlace> mailInboxPlaceProvider;
+       private final Provider<IMAPMessagePlace> IMAPMessagePlaceProvider;
+       private final Provider<MessageSendPlace> messageSendPlaceProvider;
+>>>>>>> 
        
     private DispatchAsync dispatcher;
     private User user;
     private IMAPFolder folder;
     private IMAPTreeItem tItem;
     private HasEditable editableTreeItem;
+    private String searchValue;
     
     @Inject
     public WestActivity(Displayable display, EventBus eventBus, 
PlaceController placeController,
+<<<<<<< HEAD
                        DispatchAsync dispatcher){
 >>>>>>> Change to new mvp framework - first step
+=======
+                       DispatchAsync dispatcher,Provider<MailInboxPlace> 
mailInboxPlaceProvider,Provider<IMAPMessagePlace> 
IMAPMessagePlaceProvider,Provider<MessageSendPlace> messageSendPlaceProvider){
+>>>>>>> 
        this.dispatcher = dispatcher;
        this.display = display;
        this.eventBus = eventBus;
        this.placeController = placeController;
 <<<<<<< HEAD
+<<<<<<< HEAD
        this.IMAPMessagePlaceProvider = IMAPMessagePlaceProvider;
        this.messageSendPlaceProvider = messageSendPlaceProvider;
        this.messagePlaceProvider = messagePlaceProvider;
 =======
 >>>>>>> Change to new mvp framework - first step
+=======
+       this.mailInboxPlaceProvider = mailInboxPlaceProvider;
+       this.IMAPMessagePlaceProvider = IMAPMessagePlaceProvider;
+       this.messageSendPlaceProvider = messageSendPlaceProvider;
+>>>>>>> 
        
     }
 
@@ -542,6 +604,9 @@ public class WestActivity extends Abstra
     }
        private void bind(){
 <<<<<<< HEAD
+<<<<<<< HEAD
+=======
+>>>>>>> 
                eventBus.addHandler(LoadMessagesEvent.TYPE, new 
LoadMessagesEventHandler() {
 
             public void onLoadMessagesEvent(LoadMessagesEvent 
loadMessagesEvent) {
@@ -568,9 +633,13 @@ public class WestActivity extends Abstra
                             eventBus.fireEvent(new DecreaseUnseenEvent(user, 
folder));
                         }
                         display.setLoadingMessage(false);
+<<<<<<< HEAD
 //                        showMessage(user, folder, message, 
result.getMessageDetails());
 
                         
placeController.goTo(messagePlaceProvider.get().with(user,folder, 
message,result.getMessageDetails()));
+=======
+                        showMessage(user, folder, message, 
result.getMessageDetails());
+>>>>>>> 
                     }
                 });
             }
@@ -658,7 +727,11 @@ public class WestActivity extends Abstra
                 tItem = (IMAPTreeItem) event.getSelectedItem();
                 if (tItem.isEdit()) 
                     return;
+<<<<<<< HEAD
                 folder = (IMAPFolderProxy) tItem.getUserObject();
+=======
+                folder = (IMAPFolder) tItem.getUserObject();
+>>>>>>> 
                 eventBus.fireEvent(new LoadMessagesEvent(user, folder));
             }
 
@@ -669,7 +742,11 @@ public class WestActivity extends Abstra
                 tItem = (IMAPTreeItem) event.getSelectedItem();
                 if (tItem.isEdit()) 
                     return;
+<<<<<<< HEAD
                 folder = (IMAPFolderProxy) tItem.getUserObject();
+=======
+                folder = (IMAPFolder) tItem.getUserObject();
+>>>>>>> 
                 if 
(folder.getFullName().equalsIgnoreCase(user.getSettings().getInboxFolderName()))
 {
                     display.getDeleteEnable().setEnabled(false);
                     display.getRenameEnable().setEnabled(false);
@@ -742,7 +819,11 @@ public class WestActivity extends Abstra
                eventBus.addHandler(MessagesReceivedEvent.TYPE, new 
MessagesReceivedEventHandler() {
 
             public void onMessagesReceived(MessagesReceivedEvent event) {
+<<<<<<< HEAD
                IMAPFolderProxy f = event.getFolder();
+=======
+                IMAPFolder f = event.getFolder();
+>>>>>>> 
                 display.updateTreeItem(f);
             }
 
@@ -751,14 +832,21 @@ public class WestActivity extends Abstra
 
             public void onLogin(LoginEvent event) {
                 user = event.getUser();
+<<<<<<< HEAD
 //                folder = (IMAPFolderProxy)new 
IMAPFolder(user.getSettings().getInboxFolderName());;
                 searchValue = null;
 //                showMessageTable(user, folder, searchValue);
+=======
+                folder = new 
IMAPFolder(user.getSettings().getInboxFolderName());;
+                searchValue = null;
+                showMessageTable(user, folder, searchValue);
+>>>>>>> 
             }
             
         });
 
         exportJSMethods(this);
+<<<<<<< HEAD
        }
 
     
@@ -813,6 +901,65 @@ public class WestActivity extends Abstra
        }
 
 >>>>>>> Change to new mvp framework - first step
+=======
+       }
+
+    
+    public void openLink(String url) {
+        Window.open(url, "_blank", "");
+    }
+
+    public void mailTo(String mailto) {
+//        sendPresenter.revealDisplay(user, mailto);
+    }
+    private native void exportJSMethods(WestActivity westactivity) /*-{
+      $wnd.openLink = function(url) {
+        try {
+           
westactivi...@org.apache.hupa.client.activity.WestActivity::openLink(Ljava/lang/String;)
 (url);
+        } catch(e) {}
+        return false;
+      };
+      $wnd.mailTo = function(mail) {
+        try {
+           
westactivi...@org.apache.hupa.client.activity.WestActivity::mailTo(Ljava/lang/String;)
 (mail);
+        } catch(e) {}
+        return false;
+      };
+    }-*/;
+    private void showMessageTable(User user, IMAPFolder folder, String 
searchValue) {
+        this.user = user;
+        this.folder = folder;
+        this.searchValue = searchValue;
+        placeController.goTo(mailInboxPlaceProvider.get().with(user));
+    }
+
+    private void showMessage(User user, IMAPFolder folder, Message message, 
MessageDetails details) {
+       placeController.goTo(IMAPMessagePlaceProvider.get());
+    }
+
+    private void showNewMessage() {
+       placeController.goTo(this.messageSendPlaceProvider.get());
+//        sendPresenter.revealDisplay(user);
+    }
+
+    private void showForwardMessage(ForwardMessageEvent event) {
+       placeController.goTo(this.messageSendPlaceProvider.get());
+//        sendPresenter.revealDisplay(event.getUser(), event.getFolder(), 
event.getMessage(), event.getMessageDetails(), Type.FORWARD);
+    }
+
+    private void showReplyMessage(ReplyMessageEvent event) {
+        if (event.getReplyAll()) {
+               placeController.goTo(this.messageSendPlaceProvider.get());
+//            sendPresenter.revealDisplay(event.getUser(), event.getFolder(), 
event.getMessage(), event.getMessageDetails(), Type.REPLY_ALL);
+        } else {
+               placeController.goTo(this.messageSendPlaceProvider.get());
+//            sendPresenter.revealDisplay(event.getUser(), event.getFolder(), 
event.getMessage(), event.getMessageDetails(), Type.REPLY);
+
+        }
+       placeController.goTo(this.messageSendPlaceProvider.get());
+//        sendPresenter.revealDisplay();
+    }
+>>>>>>> 
     public interface Displayable extends WidgetContainerDisplayable {
         
         public HasSelectionHandlers<TreeItem> getTree();

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=1522145&r1=1522144&r2=1522145&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 02:49:20 2013
@@ -128,8 +128,8 @@ import org.apache.hupa.client.activity.T
 import org.apache.hupa.client.activity.WestActivity;
 import org.apache.hupa.client.dnd.PagingScrollTableRowDragController;
 import org.apache.hupa.client.mvp.AppPlaceHistoryMapper;
+import org.apache.hupa.client.mvp.CachingTopActivityMapper;
 import org.apache.hupa.client.mvp.MainContentActivityMapper;
-import org.apache.hupa.client.mvp.TopActivityMapper;
 import org.apache.hupa.client.mvp.WestActivityMapper;
 >>>>>>> Change to new mvp framework - first step
 import org.apache.hupa.client.place.DefaultPlace;
@@ -385,7 +385,7 @@ public class AppGinModule extends Abstra
        @Provides
        @Singleton
        @Named("TopRegion")
-       public ActivityManager getTopRegionActivityMapper(TopActivityMapper 
activityMapper,
+       public ActivityManager 
getTopRegionActivityMapper(CachingTopActivityMapper activityMapper,
                        EventBus eventBus) {
                return new ActivityManager(activityMapper, eventBus);
        }

Added: 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/CachingTopActivityMapper.java
URL: 
http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/CachingTopActivityMapper.java?rev=1522145&view=auto
==============================================================================
--- 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/CachingTopActivityMapper.java
 (added)
+++ 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/CachingTopActivityMapper.java
 Thu Sep 12 02:49:20 2013
@@ -0,0 +1,33 @@
+package org.apache.hupa.client.mvp;
+
+import com.google.gwt.activity.shared.Activity;
+import com.google.gwt.activity.shared.ActivityMapper;
+import com.google.gwt.activity.shared.CachingActivityMapper;
+import com.google.gwt.activity.shared.FilteredActivityMapper;
+import com.google.gwt.place.shared.Place;
+import com.google.inject.Inject;
+
+public class CachingTopActivityMapper implements ActivityMapper {
+
+       private ActivityMapper filteredActivityMapper;
+
+       @Inject
+       public CachingTopActivityMapper(TopActivityMapper topActivityMapper) {
+
+               FilteredActivityMapper.Filter filter = new 
FilteredActivityMapper.Filter() {
+                       @Override
+                       public Place filter(Place place) {
+                               return place;
+                       }
+               };
+
+               CachingActivityMapper cachingActivityMapper = new 
CachingActivityMapper(topActivityMapper);
+               filteredActivityMapper = new FilteredActivityMapper(filter, 
cachingActivityMapper);
+       }
+
+       @Override
+       public Activity getActivity(Place place) {
+               return filteredActivityMapper.getActivity(place);
+       }
+
+}

Added: 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/CachingWestActivityMapper.java
URL: 
http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/CachingWestActivityMapper.java?rev=1522145&view=auto
==============================================================================
--- 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/CachingWestActivityMapper.java
 (added)
+++ 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/CachingWestActivityMapper.java
 Thu Sep 12 02:49:20 2013
@@ -0,0 +1,36 @@
+package org.apache.hupa.client.mvp;
+
+import org.apache.hupa.client.place.DefaultPlace;
+import org.apache.hupa.client.place.MailInboxPlace;
+
+import com.google.gwt.activity.shared.Activity;
+import com.google.gwt.activity.shared.ActivityMapper;
+import com.google.gwt.activity.shared.CachingActivityMapper;
+import com.google.gwt.activity.shared.FilteredActivityMapper;
+import com.google.gwt.place.shared.Place;
+import com.google.inject.Inject;
+
+public class CachingWestActivityMapper implements ActivityMapper {
+
+       private ActivityMapper filteredActivityMapper;
+
+       @Inject
+       public CachingWestActivityMapper(WestActivityMapper westActivityMapper) 
{
+
+               FilteredActivityMapper.Filter filter = new 
FilteredActivityMapper.Filter() {
+                       @Override
+                       public Place filter(Place place) {
+                               return place instanceof DefaultPlace ? place : 
new MailInboxPlace(null); // FIXME with user
+                       }
+               };
+
+               CachingActivityMapper cachingActivityMapper = new 
CachingActivityMapper(westActivityMapper);
+               filteredActivityMapper = new FilteredActivityMapper(filter, 
cachingActivityMapper);
+       }
+
+       @Override
+       public Activity getActivity(Place place) {
+               return filteredActivityMapper.getActivity(place);
+       }
+
+}

Modified: 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/place/IMAPMessagePlace.java
URL: 
http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/place/IMAPMessagePlace.java?rev=1522145&r1=1522144&r2=1522145&view=diff
==============================================================================
--- 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/place/IMAPMessagePlace.java
 (original)
+++ 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/place/IMAPMessagePlace.java
 Thu Sep 12 02:49:20 2013
@@ -1,16 +1,20 @@
 package org.apache.hupa.client.place;
 
+<<<<<<< HEAD
 import org.apache.hupa.shared.data.IMAPFolder;
 import org.apache.hupa.shared.data.Message;
 import org.apache.hupa.shared.data.MessageDetails;
 import org.apache.hupa.shared.data.User;
 import org.apache.hupa.shared.proxy.IMAPFolderProxy;
 
+=======
+>>>>>>> 
 import com.google.gwt.place.shared.Place;
 import com.google.gwt.place.shared.PlaceTokenizer;
 import com.google.gwt.place.shared.Prefix;
 
 public class IMAPMessagePlace extends Place {
+<<<<<<< HEAD
        
        private Message message;
        private MessageDetails messageDetails;
@@ -34,6 +38,10 @@ public class IMAPMessagePlace extends Pl
        }
 
 @Prefix("message")
+=======
+
+  @Prefix("IMAPMessage")
+>>>>>>> 
   public static class Tokenizer implements PlaceTokenizer<IMAPMessagePlace> {
 
     @Override
@@ -43,7 +51,11 @@ public class IMAPMessagePlace extends Pl
 
     @Override
     public String getToken(IMAPMessagePlace place) {
+<<<<<<< HEAD
       return String.valueOf(place.getMessage().getUid());
+=======
+      return "IMAPMessage";
+>>>>>>> 
     }
   }
   
@@ -51,6 +63,7 @@ public class IMAPMessagePlace extends Pl
          return this.getClass().getName()+"->[IMAPMessage]";
   }
 
+<<<<<<< HEAD
        public IMAPMessagePlace with(User user, IMAPFolderProxy folder, Message 
message, MessageDetails messageDetails){
       this.message = message;
       this.messageDetails = messageDetails;
@@ -59,4 +72,6 @@ public class IMAPMessagePlace extends Pl
       return this;
        }
 
+=======
+>>>>>>> 
 }

Modified: 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/place/MailInboxPlace.java
URL: 
http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/place/MailInboxPlace.java?rev=1522145&r1=1522144&r2=1522145&view=diff
==============================================================================
--- 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/place/MailInboxPlace.java
 (original)
+++ 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/place/MailInboxPlace.java
 Thu Sep 12 02:49:20 2013
@@ -2,13 +2,25 @@ package org.apache.hupa.client.place;
 
 import org.apache.hupa.shared.data.User;
 
+import com.google.gwt.place.shared.Place;
 import com.google.gwt.place.shared.PlaceTokenizer;
 import com.google.gwt.place.shared.Prefix;
 
-public class MailInboxPlace extends MailPlace {
+public class MailInboxPlace extends Place {
 
        private static final String PREFIX = "inbox";
        private User user;
+       private String mailId;
+       
+       public MailInboxPlace(){
+               this.mailId = "";
+       }
+       public MailInboxPlace(String token){
+               this.mailId = token;
+       }
+       public String getMailId(){
+               return mailId;
+       }
 
        /**
         * equality test based on Class type, to let different instance of this
@@ -46,12 +58,12 @@ public class MailInboxPlace extends Mail
 
                @Override
                public MailInboxPlace getPlace(String token) {
-                       return new MailInboxPlace();
+                       return new MailInboxPlace(token);
                }
 
                @Override
                public String getToken(MailInboxPlace place) {
-                       return PREFIX;
+                       return place.getMailId();
                }
        }
 }

Modified: 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/place/MessageSendPlace.java
URL: 
http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/place/MessageSendPlace.java?rev=1522145&r1=1522144&r2=1522145&view=diff
==============================================================================
--- 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/place/MessageSendPlace.java
 (original)
+++ 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/place/MessageSendPlace.java
 Thu Sep 12 02:49:20 2013
@@ -1,4 +1,5 @@
 <<<<<<< HEAD
+<<<<<<< HEAD
 /****************************************************************
  * Licensed to the Apache Software Foundation (ASF) under one   *
  * or more contributor license agreements.  See the NOTICE file *
@@ -40,11 +41,16 @@ import org.apache.hupa.shared.data.User;
 import org.apache.hupa.shared.proxy.IMAPFolderProxy;
 
 >>>>>>> 1. improve the inbox folder place.
+=======
+package org.apache.hupa.client.place;
+
+>>>>>>> 
 import com.google.gwt.place.shared.Place;
 import com.google.gwt.place.shared.PlaceTokenizer;
 import com.google.gwt.place.shared.Prefix;
 
 <<<<<<< HEAD
+<<<<<<< HEAD
 public class MessageSendPlace extends AbstractPlace {
 
        
@@ -168,4 +174,26 @@ public class MessageSendPlace extends Pl
        
        
 >>>>>>> 1. improve the inbox folder place.
+=======
+public class MessageSendPlace extends Place {
+
+  @Prefix("MessageSend")
+  public static class Tokenizer implements PlaceTokenizer<MessageSendPlace> {
+
+    @Override
+    public MessageSendPlace getPlace(String token) {
+      return new MessageSendPlace();
+    }
+
+    @Override
+    public String getToken(MessageSendPlace place) {
+      return "MessageSend";
+    }
+  }
+  
+  public String toString(){
+         return this.getClass().getName()+"->[MessageSend]";
+  }
+
+>>>>>>> 
 }

Modified: 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/IMAPMessageListView.java
URL: 
http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/IMAPMessageListView.java?rev=1522145&r1=1522144&r2=1522145&view=diff
==============================================================================
--- 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/IMAPMessageListView.java
 (original)
+++ 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/IMAPMessageListView.java
 Thu Sep 12 02:49:20 2013
@@ -772,9 +772,13 @@ import com.google.gwt.gen2.table.event.c
 import com.google.gwt.gen2.table.event.client.RowCountChangeHandler;
 import com.google.gwt.i18n.client.DateTimeFormat;
 <<<<<<< HEAD
+<<<<<<< HEAD
 import com.google.gwt.user.client.ui.Anchor;
 =======
 >>>>>>> Change to new mvp framework - first step
+=======
+import com.google.gwt.user.client.ui.Anchor;
+>>>>>>> 
 import com.google.gwt.user.client.ui.Composite;
 import com.google.gwt.user.client.ui.HTML;
 import com.google.gwt.user.client.ui.HasValue;
@@ -814,6 +818,7 @@ public class IMAPMessageListView extends
 
     private ListBox pageBox = new ListBox();
 <<<<<<< HEAD
+<<<<<<< HEAD
     private Anchor allLink;    
     private Anchor noneLink;
     private Anchor refreshLink;
@@ -822,6 +827,11 @@ public class IMAPMessageListView extends
     private Hyperlink noneLink;
     private Hyperlink refreshLink;
 >>>>>>> Change to new mvp framework - first step
+=======
+    private Anchor allLink;    
+    private Anchor noneLink;
+    private Anchor refreshLink;
+>>>>>>> 
     private MultiWordSuggestOracle oracle = new MultiWordSuggestOracle(" ,@");
     private SuggestBox searchBox = new SuggestBox(oracle);
     private Button searchButton;
@@ -838,6 +848,7 @@ public class IMAPMessageListView extends
         markSeenButton = new EnableButton(constants.markSeen());
         markUnSeenButton = new EnableButton(constants.markUnseen());
 <<<<<<< HEAD
+<<<<<<< HEAD
         allLink = new Anchor(constants.all());    
         noneLink = new Anchor(constants.none());
         refreshLink = new Anchor(constants.refresh());
@@ -846,6 +857,11 @@ public class IMAPMessageListView extends
         noneLink = new Hyperlink(constants.none(),"");
         refreshLink = new Hyperlink(constants.refresh(),"");
 >>>>>>> Change to new mvp framework - first step
+=======
+        allLink = new Anchor(constants.all());    
+        noneLink = new Anchor(constants.none());
+        refreshLink = new Anchor(constants.refresh());
+>>>>>>> 
         searchButton = new Button(constants.searchButton());
         loading = new Loading(constants.loading());
         this.cTableModel = new CachedTableModel<Message>(mTableModel);

Modified: 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/WestView.java
URL: 
http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/WestView.java?rev=1522145&r1=1522144&r2=1522145&view=diff
==============================================================================
--- 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/WestView.java 
(original)
+++ 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/WestView.java 
Thu Sep 12 02:49:20 2013
@@ -179,6 +179,7 @@ public class WestView extends Composite 
         this.bus = bus;
         loader = new Loading(constants.loading());
 <<<<<<< HEAD
+<<<<<<< HEAD
         newFolderButton = new EnableHyperlink(constants.newFolder(), null);
         renameFolderButton = new EnableHyperlink(constants.renameFolder(), 
null);
         deleteFolderButton = new EnableHyperlink(constants.deleteFolder(), 
null);
@@ -187,6 +188,11 @@ public class WestView extends Composite 
         renameFolderButton = new EnableHyperlink(constants.renameFolder(), "");
         deleteFolderButton = new EnableHyperlink(constants.deleteFolder(), "");
 >>>>>>> Change to new mvp framework - first step
+=======
+        newFolderButton = new EnableHyperlink(constants.newFolder(), null);
+        renameFolderButton = new EnableHyperlink(constants.renameFolder(), 
null);
+        deleteFolderButton = new EnableHyperlink(constants.deleteFolder(), 
null);
+>>>>>>> 
         
         dockPanel = new DockPanel();
 



---------------------------------------------------------------------
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