Author: norman
Date: Mon Aug 24 18:00:16 2009
New Revision: 807322

URL: http://svn.apache.org/viewvc?rev=807322&view=rev
Log:
only bind handlers if the presenter is not already bound
fix deleting of rows from the table

Modified:
    
labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPMessageListPresenter.java
    labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPMessageListView.java
    labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPMessagePresenter.java
    
labs/hupa/src/main/java/org/apache/hupa/client/widgets/RefetchPagingScrollTable.java

Modified: 
labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPMessageListPresenter.java
URL: 
http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPMessageListPresenter.java?rev=807322&r1=807321&r2=807322&view=diff
==============================================================================
--- 
labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPMessageListPresenter.java
 (original)
+++ 
labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPMessageListPresenter.java
 Mon Aug 24 18:00:16 2009
@@ -83,6 +83,7 @@
        private String searchValue;
        private DispatchAsync dispatcher;
        private ShowMessageTableListener tableListener = new 
ShowMessageTableListener();
+       private boolean isBound = false;
        public final static Place PLACE = new Place("IMAPMessageList");
        
        
@@ -167,7 +168,7 @@
                }));
                
                display.addTableListener(tableListener);
-               
+               isBound = true;
        }
 
        private void deleteMessages() {
@@ -190,7 +191,10 @@
                this.user = user;
                this.folder = folder;
                this.searchValue  = searchValue;
-               bind();
+               // workaround
+               if (isBound == false) {
+                       bind();
+               }
                refreshDisplay();
        }
        @Override
@@ -204,6 +208,7 @@
                display.removeTableListener(tableListener);
                display.reset();
                display.deselectAllMessages();
+               isBound = false;
        }
 
        public void refreshDisplay() {

Modified: 
labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPMessageListView.java
URL: 
http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPMessageListView.java?rev=807322&r1=807321&r2=807322&view=diff
==============================================================================
--- labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPMessageListView.java 
(original)
+++ labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPMessageListView.java 
Mon Aug 24 18:00:16 2009
@@ -113,7 +113,6 @@
        private Hyperlink allLink = new Hyperlink(constants.all(),"");  
        private Hyperlink noneLink = new Hyperlink(constants.none(),"");
 
-
        
        @Inject
        public IMAPMessageListView(DispatchAsync dispatcher,EventBus bus, 
PagingScrollTableRowDragController controller) {

Modified: 
labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPMessagePresenter.java
URL: 
http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPMessagePresenter.java?rev=807322&r1=807321&r2=807322&view=diff
==============================================================================
--- 
labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPMessagePresenter.java 
(original)
+++ 
labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPMessagePresenter.java 
Mon Aug 24 18:00:16 2009
@@ -74,6 +74,7 @@
        private DispatchAsync dispatcher;
        private IMAPFolder folder;
        private User user;
+       private boolean isBound = false;
 
        @Inject
        private IMAPMessagePresenter(IMAPMessagePresenter.Display 
display,EventBus bus, DispatchAsync dispatcher) {
@@ -86,7 +87,9 @@
                this.message = message;
                this.folder = folder;
                this.user = user;
-               bind();
+               if (isBound == false) { 
+                       bind();
+               }
                refreshDisplay();
        }
 
@@ -149,7 +152,7 @@
                        }
                        
                }));
-               
+               isBound = true;
        }
 
        @Override
@@ -181,7 +184,7 @@
 
        @Override
        protected void onUnbind() {
-               
+               isBound = false;
        }
 
        public void refreshDisplay() {

Modified: 
labs/hupa/src/main/java/org/apache/hupa/client/widgets/RefetchPagingScrollTable.java
URL: 
http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/client/widgets/RefetchPagingScrollTable.java?rev=807322&r1=807321&r2=807322&view=diff
==============================================================================
--- 
labs/hupa/src/main/java/org/apache/hupa/client/widgets/RefetchPagingScrollTable.java
 (original)
+++ 
labs/hupa/src/main/java/org/apache/hupa/client/widgets/RefetchPagingScrollTable.java
 Mon Aug 24 18:00:16 2009
@@ -23,6 +23,7 @@
 import java.util.HashSet;
 import java.util.Iterator;
 
+import com.google.gwt.core.client.GWT;
 import com.google.gwt.gen2.table.client.FixedWidthFlexTable;
 import com.google.gwt.gen2.table.client.FixedWidthGrid;
 import com.google.gwt.gen2.table.client.MutableTableModel;
@@ -97,10 +98,12 @@
                // Check if we found any rows to remove
                if (rowsIndex.isEmpty() == false) {
                        // remove the row value on deletion
-                       getRowValues().removeAll(rows);
-                       selectedRows.removeAll(rows);
                        for (int i = 0; i <rowsIndex.size();i++) {
-                               ((MutableTableModel) 
getTableModel()).removeRow(rowsIndex.get(i));
+                               int index = rowsIndex.get(i) -i;
+                               selectedRows.remove(getRowValue(index));
+                               getRowValues().remove(index);
+
+                               ((MutableTableModel) 
getTableModel()).removeRow(index);
                        }
                        
                        // Check if we need to refetch rows



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

Reply via email to