Author: norman
Date: Tue Sep 22 18:39:22 2009
New Revision: 817756

URL: http://svn.apache.org/viewvc?rev=817756&view=rev
Log:
Move enable / disable of buttons to presenter

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

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=817756&r1=817755&r2=817756&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 Sep 22 18:39:22 2009
@@ -47,13 +47,17 @@
 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.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;
+import com.google.gwt.gen2.event.shared.HandlerRegistration;
 import com.google.gwt.gen2.table.event.client.HasPageLoadHandlers;
 import com.google.gwt.gen2.table.event.client.HasRowSelectionHandlers;
+import com.google.gwt.gen2.table.event.client.RowSelectionEvent;
+import com.google.gwt.gen2.table.event.client.RowSelectionHandler;
 import com.google.gwt.user.client.rpc.AsyncCallback;
 import com.google.gwt.user.client.ui.SourcesTableEvents;
 import com.google.gwt.user.client.ui.TableListener;
@@ -72,6 +76,8 @@
                public Message getData(int rowIndex);
                public HasClickHandlers getDeleteClick();
                public HasClickHandlers getDeleteAllClick();
+               public HasEnable getDeleteEnable();
+
                public void reloadData(User user, IMAPFolder folder,String 
searchValue);
                public void removeMessages(ArrayList<Message> messages);
                public ArrayList<Message> getSelectedMessages();
@@ -81,16 +87,18 @@
 
                public HasClickHandlers getConfirmDeleteDialogClick();
                public HasClickHandlers getConfirmDeleteAllDialogClick();
-
                public void selectAllMessages();
                public void deselectAllMessages();
                public HasClickHandlers getSelectAllClick();
                public HasClickHandlers getSelectNoneClick();
                public HasClickHandlers getMarkSeenClick();
                public HasClickHandlers getMarkUnseenClick();
+               public HasEnable getMarkSeenEnable();
+               public HasEnable getMarkUnseenEnable();
                public void redraw();
        }
 
+       private ArrayList<HandlerRegistration> regList = new 
ArrayList<HandlerRegistration>();
        private User user;
        private IMAPFolder folder;
        private String searchValue;
@@ -277,10 +285,27 @@
                        
                }));
                
+               
regList.add(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.addTableListener(tableListener);
                isBound = true;
        }
 
+       
        private void deleteMessages() {
                final ArrayList<Message> selectedMessages = new 
ArrayList<Message>(display.getSelectedMessages());
                ArrayList<Long> uids = new ArrayList<Long>();
@@ -330,6 +355,9 @@
         */
        protected void onUnbind() {
                display.removeTableListener(tableListener);
+               for (int i = 0; i < regList.size(); i++) {
+                       regList.get(i).removeHandler();
+               }
                isBound = false;
        }
 

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=817756&r1=817755&r2=817756&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 Sep 22 18:39:22 2009
@@ -35,6 +35,7 @@
 import org.apache.hupa.client.widgets.ConfirmDialogBox;
 import org.apache.hupa.client.widgets.DragRefetchPagingScrollTable;
 import org.apache.hupa.client.widgets.HasDialog;
+import org.apache.hupa.client.widgets.MyButton;
 import org.apache.hupa.client.widgets.PagingOptions;
 import 
org.apache.hupa.client.widgets.DragRefetchPagingScrollTable.DragHandlerFactory;
 import org.apache.hupa.shared.data.IMAPFolder;
@@ -44,6 +45,7 @@
 import org.apache.hupa.shared.events.MessagesReceivedEvent;
 import org.apache.hupa.shared.rpc.FetchMessages;
 import org.apache.hupa.shared.rpc.FetchMessagesResult;
+import org.apache.hupa.widgets.ui.HasEnable;
 import org.cobogw.gwt.user.client.ui.Button;
 import org.cobogw.gwt.user.client.ui.ButtonBar;
 
@@ -74,8 +76,6 @@
 import com.google.gwt.gen2.table.event.client.HasRowSelectionHandlers;
 import com.google.gwt.gen2.table.event.client.PageLoadEvent;
 import com.google.gwt.gen2.table.event.client.PageLoadHandler;
-import com.google.gwt.gen2.table.event.client.RowSelectionEvent;
-import com.google.gwt.gen2.table.event.client.RowSelectionHandler;
 import com.google.gwt.i18n.client.DateTimeFormat;
 import com.google.gwt.user.client.Window;
 import com.google.gwt.user.client.rpc.AsyncCallback;
@@ -106,13 +106,13 @@
 
        private EventBus bus;
        private FixedWidthGrid dataTable = createDataTable();
-       private Button deleteMailButton = new 
Button(constants.deleteMailButton());
+       private MyButton deleteMailButton = new 
MyButton(constants.deleteMailButton());
        private Button newMailButton = new Button(constants.newMailButton());
        private Button deleteAllMailButton = new Button(constants.deleteAll());
        private ConfirmDialogBox confirmBox = new ConfirmDialogBox();
        private ConfirmDialogBox confirmDeleteAllBox = new ConfirmDialogBox();
-       private Button markSeenButton = new Button(constants.markSeen());
-       private Button markUnSeenButton = new Button(constants.markUnseen());
+       private MyButton markSeenButton = new MyButton(constants.markSeen());
+       private MyButton markUnSeenButton = new 
MyButton(constants.markUnseen());
 
        private ListBox pageBox = new ListBox();
        private Hyperlink allLink = new Hyperlink(constants.all(),"");  
@@ -172,17 +172,6 @@
                mailTable.getDataTable().setCellSpacing(0);
                mailTable.setSortPolicy(SortPolicy.DISABLED);
 
-               dataTable.addRowSelectionHandler(new RowSelectionHandler() {
-
-                       public void onRowSelection(RowSelectionEvent event) {
-                               if 
(mailTable.getDataTable().getSelectedRows().size() == 0) {
-                                       deleteMailButton.setEnabled(false);
-                               } else {
-                                       deleteMailButton.setEnabled(true);
-                               }
-                       }
-                       
-               });
                // This is only needed as workaround in pagingscrolltable
                // See 
http://code.google.com/p/google-web-toolkit-incubator/wiki/PagingScrollTable
                mailTable.setWidth(Window.getClientWidth() -150 -40+"px");
@@ -756,4 +745,28 @@
        public HasClickHandlers getMarkUnseenClick() {
                return markUnSeenButton;
        }
+
+       /*
+        * (non-Javadoc)
+        * @see 
org.apache.hupa.client.mvp.IMAPMessageListPresenter.Display#getDeleteEnable()
+        */
+       public HasEnable getDeleteEnable() {
+               return deleteMailButton;
+       }
+
+       /*
+        * (non-Javadoc)
+        * @see 
org.apache.hupa.client.mvp.IMAPMessageListPresenter.Display#getMarkSeenEnable()
+        */
+       public HasEnable getMarkSeenEnable() {
+               return markSeenButton;
+       }
+
+       /*
+        * (non-Javadoc)
+        * @see 
org.apache.hupa.client.mvp.IMAPMessageListPresenter.Display#getMarkUnseenEnable()
+        */
+       public HasEnable getMarkUnseenEnable() {
+               return markUnSeenButton;
+       }
 }



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

Reply via email to