Author: norman
Date: Tue Aug 25 10:01:29 2009
New Revision: 807538

URL: http://svn.apache.org/viewvc?rev=807538&view=rev
Log:
Fix increasing / decreasing message count on deletion

Modified:
    labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPFolderPresenter.java
    labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPFolderView.java

Modified: 
labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPFolderPresenter.java
URL: 
http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPFolderPresenter.java?rev=807538&r1=807537&r2=807538&view=diff
==============================================================================
--- labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPFolderPresenter.java 
(original)
+++ labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPFolderPresenter.java 
Tue Aug 25 10:01:29 2009
@@ -90,6 +90,8 @@
                public HasEnable getNewEnable();
                public void deleteSelectedFolder();
                public HasEditable createFolder(EditHandler handler);
+               public void increaseUnseenMessageCount(IMAPFolder folder, int 
amount);
+               public void decreaseUnseenMessageCount(IMAPFolder folder, int 
amount);
        }
 
        protected void loadTreeItems() {
@@ -204,8 +206,11 @@
                registerHandler(eventBus.addHandler(DecreaseUnseenEvent.TYPE, 
new DecreaseUnseenEventHandler() {
 
                        public void onDecreaseUnseenEvent(DecreaseUnseenEvent 
event) {
-                               
-                               
tItem.descreaseUnseenMessageCount(event.getAmount());
+                               // Check if the folder was the trash folder. If 
not increase the message count of the trash folder
+                               if 
(IMAPFolder.DEFAULT_TRASH.equalsIgnoreCase(event.getFolder().getFullName()) == 
false) {
+                                       display.increaseUnseenMessageCount(new 
IMAPFolder(IMAPFolder.DEFAULT_TRASH),event.getAmount());
+                               }
+                               
display.decreaseUnseenMessageCount(event.getFolder(),event.getAmount());
                        }
                        
                }));

Modified: labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPFolderView.java
URL: 
http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPFolderView.java?rev=807538&r1=807537&r2=807538&view=diff
==============================================================================
--- labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPFolderView.java 
(original)
+++ labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPFolderView.java Tue 
Aug 25 10:01:29 2009
@@ -381,5 +381,49 @@
                
                return newItem;
        }
+
+       /*
+        * (non-Javadoc)
+        * @see 
org.apache.hupa.client.mvp.IMAPFolderPresenter.Display#decreaseUnseenMessageCount(org.apache.hupa.shared.data.IMAPFolder,
 int)
+        */
+       public void decreaseUnseenMessageCount(IMAPFolder folder, int amount) {
+               int count = folderTree.getItemCount();
+               for (int i = 0; i < count; i++) {
+                       IMAPTreeItem item = 
findTreeItemForFolder((IMAPTreeItem) folderTree.getItem(i), folder);
+                       if (item != null) {
+                               item.descreaseUnseenMessageCount(amount);
+                               break;
+                       }
+                       
+               }
+       }
+
+       /*
+        * (non-Javadoc)
+        * @see 
org.apache.hupa.client.mvp.IMAPFolderPresenter.Display#increaseUnseenMessageCount(org.apache.hupa.shared.data.IMAPFolder,
 int)
+        */
+       public void increaseUnseenMessageCount(IMAPFolder folder, int amount) {
+               int count = folderTree.getItemCount();
+               for (int i = 0; i < count; i++) {
+                       IMAPTreeItem item = 
findTreeItemForFolder((IMAPTreeItem) folderTree.getItem(i), folder);
+                       if (item != null) {
+                               item.increaseUnseenMessageCount(amount);
+                               break;
+                       }
+                       
+               }
+       }
        
+       private IMAPTreeItem findTreeItemForFolder(IMAPTreeItem item, 
IMAPFolder folder) {
+               if 
(folder.getFullName().equalsIgnoreCase(((IMAPFolder)item.getUserObject()).getFullName()))
 {
+                       return item;
+               }
+               for (int i = 0; i < item.getChildCount(); i++) {
+                       IMAPTreeItem tItem = 
findTreeItemForFolder((IMAPTreeItem)item.getChild(i),folder);
+                       if (tItem != null) {
+                               return tItem;
+                       }
+               }
+               return null;
+       }
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to