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 no...@apache.org on 2009/11/10 14:49:03 UTC

svn commit: r834463 - in /james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp: AppPresenter.java IMAPMessageListPresenter.java IMAPMessageListView.java IMAPMessagePresenter.java MainPresenter.java MessageSendPresenter.java

Author: norman
Date: Tue Nov 10 13:49:03 2009
New Revision: 834463

URL: http://svn.apache.org/viewvc?rev=834463&view=rev
Log:
Better handling of history

Modified:
    james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/AppPresenter.java
    james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/IMAPMessageListPresenter.java
    james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/IMAPMessageListView.java
    james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/IMAPMessagePresenter.java
    james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/MainPresenter.java
    james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/MessageSendPresenter.java

Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/AppPresenter.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/AppPresenter.java?rev=834463&r1=834462&r2=834463&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/AppPresenter.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/AppPresenter.java Tue Nov 10 13:49:03 2009
@@ -22,8 +22,6 @@
 
 import net.customware.gwt.dispatch.client.DispatchAsync;
 import net.customware.gwt.presenter.client.EventBus;
-import net.customware.gwt.presenter.client.place.PlaceRequest;
-import net.customware.gwt.presenter.client.place.PlaceRequestEvent;
 import net.customware.gwt.presenter.client.widget.WidgetContainerDisplay;
 import net.customware.gwt.presenter.client.widget.WidgetContainerPresenter;
 
@@ -78,30 +76,26 @@
     private DispatchAsync dispatcher;
     private User user;
     private ServerStatus serverStatus = ServerStatus.Available;
-
+    private MainPresenter mainPresenter;
+    private LoginPresenter loginPresenter;
+    
     @Inject
     public AppPresenter(Display display, DispatchAsync dispatcher,final EventBus bus, LoginPresenter loginPresenter, MainPresenter mainPresenter) {
         super(display,bus, loginPresenter, mainPresenter);
+        this.mainPresenter = mainPresenter;
+        this.loginPresenter = loginPresenter;
         this.dispatcher = dispatcher;  
     }
 
     private void showMain(User user) {
         display.showTopNavigation(true);
-        PlaceRequest request = new PlaceRequest("Main");
-        request = request.with("user", user.getName());
-        
-        eventBus.fireEvent(new PlaceRequestEvent(request));
+        mainPresenter.revealDisplay(user);
     }
     
     
     private void showLogin(String username) {
         display.showTopNavigation(false);
-        PlaceRequest request = new PlaceRequest("Login");
-        if (username != null) {
-            request = request.with("user", username);
-        }
-        
-        eventBus.fireEvent(new PlaceRequestEvent(request));
+        loginPresenter.revealDisplay();
     }
 
     @Override

Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/IMAPMessageListPresenter.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/IMAPMessageListPresenter.java?rev=834463&r1=834462&r2=834463&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/IMAPMessageListPresenter.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/IMAPMessageListPresenter.java Tue Nov 10 13:49:03 2009
@@ -34,6 +34,8 @@
 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.MoveMessageEvent;
 import org.apache.hupa.shared.events.MoveMessageEventHandler;
@@ -47,7 +49,6 @@
 import org.apache.hupa.shared.rpc.SetFlag;
 import org.apache.hupa.widgets.ui.HasEnable;
 
-import com.google.gwt.core.client.GWT;
 import com.google.gwt.event.dom.client.ClickEvent;
 import com.google.gwt.event.dom.client.ClickHandler;
 import com.google.gwt.event.dom.client.HasClickHandlers;
@@ -75,7 +76,7 @@
         public HasClickHandlers getDeleteAllClick();
         public HasEnable getDeleteEnable();
 
-        public void reloadData(User user, IMAPFolder folder,String searchValue);
+        public void reloadData();
         public void removeMessages(ArrayList<Message> messages);
         public ArrayList<Message> getSelectedMessages();
         public void reset();
@@ -98,7 +99,6 @@
     private ArrayList<HandlerRegistration> regList = new ArrayList<HandlerRegistration>();
     private User user;
     private IMAPFolder folder;
-    private String searchValue;
     private DispatchAsync dispatcher;
     private ShowMessageTableListener tableListener = new ShowMessageTableListener();
     
@@ -205,7 +205,6 @@
                 }
                 dispatcher.execute(new SetFlag(folder, IMAPFlag.SEEN, true, uids), new HupaCallback<GenericResult>(dispatcher, eventBus) {
                     public void callback(GenericResult result) {
-                        GWT.log("S="+selectedMessages.size(), null);
                         for (int i = 0; i < selectedMessages.size(); i++) {
                             Message m = selectedMessages.get(i);
                             if (m.getFlags().contains(IMAPFlag.SEEN) == false) {
@@ -250,7 +249,15 @@
             
             
         }));
-        
+        registerHandler(eventBus.addHandler(FolderSelectionEvent.TYPE, new FolderSelectionEventHandler() {
+
+            public void onFolderSelectionEvent(FolderSelectionEvent event) {
+                folder = event.getFolder();
+                user = event.getUser();
+                firePresenterRevealedEvent(true);
+            }
+            
+        }));
         regList.add(display.getDataTableSelection().addRowSelectionHandler(new RowSelectionHandler() {
                 public void onRowSelection(RowSelectionEvent event) {
                     if (event.getSelectedRows().size() == 0) {
@@ -325,17 +332,21 @@
 
     @Override
     protected void onRevealDisplay() {
-        display.reset();
-        display.deselectAllMessages();
-        display.reloadData(user, folder, searchValue);
+        //display.reset();
+        //display.deselectAllMessages();
+        display.reloadData();
         
     }
     
-    public void reveal(User user, IMAPFolder folder, String searchValue) {
+    public void revealDisplay(User user, IMAPFolder folder) {
         this.user = user;
+        if (this.folder == null || this.folder.getFullName().equals(folder.getFullName()) == false) {
+            display.reset();
+            display.deselectAllMessages();
+        }
         this.folder = folder;
-        this.searchValue = searchValue;
         firePresenterChangedEvent();
+        revealDisplay();
     }
 
 }

Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/IMAPMessageListView.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/IMAPMessageListView.java?rev=834463&r1=834462&r2=834463&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/IMAPMessageListView.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/IMAPMessageListView.java Tue Nov 10 13:49:03 2009
@@ -34,9 +34,7 @@
 import org.apache.hupa.client.widgets.EnableButton;
 import org.apache.hupa.client.widgets.PagingOptions;
 import org.apache.hupa.client.widgets.DragRefetchPagingScrollTable.DragHandlerFactory;
-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.widgets.ui.HasEnable;
 import org.cobogw.gwt.user.client.ui.Button;
@@ -426,13 +424,8 @@
         return mailTable.getDataTable();
     }
     
-    /*
-     * (non-Javadoc)
-     * @see org.apache.hupa.client.mvp.IMAPMessageListPresenter.Display#reloadData(org.apache.hupa.shared.data.User, org.apache.hupa.shared.data.IMAPFolder, java.lang.String)
-     */
-    public void reloadData(User user, IMAPFolder folder,String searchValue) {
-        cTableModel.clearCache();
-        mailTable.getTableModel().setRowCount(MutableTableModel.UNKNOWN_ROW_COUNT);
+
+    public void reloadData() {
         mailTable.reloadPage();
     }
     
@@ -443,9 +436,8 @@
     public void reset() {
         pageBox.setSelectedIndex(0);
         cTableModel.clearCache();
-        cTableModel.setRowCount(0);
-        mailTable.reloadPage();
-        options.reset();
+        cTableModel.setRowCount(CachedTableModel.UNKNOWN_ROW_COUNT);
+        mailTable.gotoFirstPage();
     }
 
     /*
@@ -467,25 +459,6 @@
 
     /*
      * (non-Javadoc)
-     * @see net.customware.gwt.presenter.client.Display#startProcessing()
-     */
-    public void startProcessing() {
-        // TODO Auto-generated method stub
-        
-    }
-
-    /*
-     * (non-Javadoc)
-     * @see net.customware.gwt.presenter.client.Display#stopProcessing()
-     */
-    public void stopProcessing() {
-        // TODO Auto-generated method stub
-        
-    }
-
-
-    /*
-     * (non-Javadoc)
      * @see org.apache.hupa.client.mvp.IMAPMessageListPresenter.Display#getDeleteClick()
      */
     public HasClickHandlers getDeleteClick() {

Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/IMAPMessagePresenter.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/IMAPMessagePresenter.java?rev=834463&r1=834462&r2=834463&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/IMAPMessagePresenter.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/IMAPMessagePresenter.java Tue Nov 10 13:49:03 2009
@@ -86,13 +86,14 @@
     }
 
     
-    public void reveal(User user, IMAPFolder folder, Message message, MessageDetails messageDetails) {
+    public void revealDisplay(User user, IMAPFolder folder, Message message, MessageDetails messageDetails) {
         this.message = message;
         this.messageDetails = messageDetails;
         this.folder = folder;
         this.user = user;
         updateDisplay();
         firePresenterChangedEvent();
+        revealDisplay();
     }
 
     private void updateDisplay() {

Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/MainPresenter.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/MainPresenter.java?rev=834463&r1=834462&r2=834463&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/MainPresenter.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/MainPresenter.java Tue Nov 10 13:49:03 2009
@@ -24,8 +24,6 @@
 import java.util.Comparator;
 
 import net.customware.gwt.presenter.client.EventBus;
-import net.customware.gwt.presenter.client.place.PlaceRequest;
-import net.customware.gwt.presenter.client.place.PlaceRequestEvent;
 import net.customware.gwt.presenter.client.widget.WidgetContainerDisplay;
 import net.customware.gwt.presenter.client.widget.WidgetContainerPresenter;
 
@@ -139,7 +137,6 @@
     private CachingDispatchAsync cachingDispatcher;
     private User user;
     private IMAPFolder folder;
-    private String searchValue;
     private IMAPMessageListPresenter messageListPresenter;
     private IMAPMessagePresenter messagePresenter;
     private MessageSendPresenter sendPresenter;
@@ -233,42 +230,32 @@
         return tList;
     }
 
-    private void showMessageTable(User user, IMAPFolder folder, String searchValue, boolean refresh) {
+    private void showMessageTable(User user, IMAPFolder folder) {
         this.user = user;
         this.folder = folder;
-        this.searchValue = searchValue;
-        messageListPresenter.reveal(user, folder, searchValue);
-        PlaceRequest request = new PlaceRequest("MessageList");
-        eventBus.fireEvent(new PlaceRequestEvent(request));
+        messageListPresenter.revealDisplay(user, folder);
     }
 
     private void showMessage(User user, IMAPFolder folder, Message message, MessageDetails details) {
-        messagePresenter.reveal(user, folder, message, details);
-        PlaceRequest request = new PlaceRequest("IMAPMessage");
-        eventBus.fireEvent(new PlaceRequestEvent(request));
+        messagePresenter.revealDisplay(user, folder, message, details);
     }
 
     private void showNewMessage() {
-        sendPresenter.reveal(user);
-        PlaceRequest request = new PlaceRequest("MessageSend");
-        eventBus.fireEvent(new PlaceRequestEvent(request));
+        sendPresenter.revealDisplay(user);
     }
 
     private void showForwardMessage(ForwardMessageEvent event) {
-        sendPresenter.reveal(event.getUser(), event.getFolder(), event.getMessage(), event.getMessageDetails(), Type.FORWARD);
-        PlaceRequest request = new PlaceRequest("MessageSend");
-        eventBus.fireEvent(new PlaceRequestEvent(request));
+        sendPresenter.revealDisplay(event.getUser(), event.getFolder(), event.getMessage(), event.getMessageDetails(), Type.FORWARD);
     }
 
     private void showReplyMessage(ReplyMessageEvent event) {
         if (event.getReplyAll()) {
-            sendPresenter.reveal(event.getUser(), event.getFolder(), event.getMessage(), event.getMessageDetails(), Type.REPLY_ALL);
+            sendPresenter.revealDisplay(event.getUser(), event.getFolder(), event.getMessage(), event.getMessageDetails(), Type.REPLY_ALL);
         } else {
-            sendPresenter.reveal(event.getUser(), event.getFolder(), event.getMessage(), event.getMessageDetails(), Type.REPLY);
+            sendPresenter.revealDisplay(event.getUser(), event.getFolder(), event.getMessage(), event.getMessageDetails(), Type.REPLY);
 
         }
-        PlaceRequest request = new PlaceRequest("MessageSend");
-        eventBus.fireEvent(new PlaceRequestEvent(request));
+        sendPresenter.revealDisplay();
     }
 
     /**
@@ -287,7 +274,7 @@
         registerHandler(eventBus.addHandler(LoadMessagesEvent.TYPE, new LoadMessagesEventHandler() {
 
             public void onLoadMessagesEvent(LoadMessagesEvent loadMessagesEvent) {
-                showMessageTable(loadMessagesEvent.getUser(), loadMessagesEvent.getFolder(), loadMessagesEvent.getSearchValue(), true);
+                showMessageTable(loadMessagesEvent.getUser(), loadMessagesEvent.getFolder());
             }
 
         }));
@@ -337,7 +324,7 @@
         registerHandler(eventBus.addHandler(SentMessageEvent.TYPE, new SentMessageEventHandler() {
 
             public void onSentMessageEvent(SentMessageEvent ev) {
-                showMessageTable(user, folder, searchValue, false);
+                showMessageTable(user, folder);
             }
 
         }));
@@ -361,7 +348,7 @@
             public void onFolderSelectionEvent(FolderSelectionEvent event) {
                 user = event.getUser();
                 folder = event.getFolder();
-                showMessageTable(user, event.getFolder(), searchValue, true);
+                showMessageTable(user, event.getFolder());
             }
 
         }));
@@ -381,7 +368,7 @@
         registerHandler(eventBus.addHandler(BackEvent.TYPE, new BackEventHandler() {
 
             public void onBackEvent(BackEvent event) {
-                showMessageTable(user, folder, searchValue, false);
+                showMessageTable(user, folder);
             }
 
         }));
@@ -535,11 +522,17 @@
         super.onUnbind();
     }
 
+    
+    public void revealDisplay(User user) {
+        this.user = user;
+        loadTreeItems();  
+        firePresenterChangedEvent();
+        revealDisplay();
+    }
+    
     @Override
     protected void onRevealDisplay() {
-        // load IMAPFolder and the message table
-        loadTreeItems();
-        showMessageTable(user, folder, null, true);
+        showMessageTable(user, folder);
 
         super.onRevealDisplay();
     }

Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/MessageSendPresenter.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/MessageSendPresenter.java?rev=834463&r1=834462&r2=834463&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/MessageSendPresenter.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/MessageSendPresenter.java Tue Nov 10 13:49:03 2009
@@ -327,7 +327,7 @@
      * @param oldDetails the olddetails ( if there are any)
      * @param type the type 
      */
-    public void reveal(User user, IMAPFolder folder, Message oldmessage, MessageDetails oldDetails, Type type) {
+    public void revealDisplay(User user, IMAPFolder folder, Message oldmessage, MessageDetails oldDetails, Type type) {
         this.oldmessage = oldmessage;
         this.oldDetails = oldDetails;
         this.folder = folder;
@@ -366,6 +366,7 @@
             }
         }
         firePresenterChangedEvent();
+        revealDisplay();
     }
     
     /**
@@ -373,8 +374,8 @@
      * 
      * @param user
      */
-    public void reveal(User user) {
-        reveal(user,null,null,null, Type.NEW);
+    public void revealDisplay(User user) {
+        revealDisplay(user,null,null,null, Type.NEW);
     }
 
     @Override



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