Author: dongxu
Date: Thu Sep 12 04:41:52 2013
New Revision: 1522377

URL: http://svn.apache.org/r1522377
Log:
make folders list view refresh automatically according to the actual unread 
message

Modified:
    
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/MessageListActivity.java
    
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/MessageListView.java
    
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/MessagesCellTable.java
    
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/ToolBarView.java

Modified: 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/MessageListActivity.java
URL: 
http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/MessageListActivity.java?rev=1522377&r1=1522376&r2=1522377&view=diff
==============================================================================
--- 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/MessageListActivity.java
 (original)
+++ 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/MessageListActivity.java
 Thu Sep 12 04:41:52 2013
@@ -296,6 +296,7 @@ import org.apache.hupa.shared.domain.Use
 import org.apache.hupa.shared.events.DeleteClickEvent;
 import org.apache.hupa.shared.events.DeleteClickEventHandler;
 import org.apache.hupa.shared.events.ExpandMessageEvent;
+import org.apache.hupa.shared.events.RefreshUnreadEvent;
 
 import com.google.gwt.event.shared.EventBus;
 import com.google.gwt.user.client.ui.AcceptsOneWidget;
@@ -321,48 +322,54 @@ public class MessageListActivity extends
                container.setWidget(display.asWidget());
                bindTo(eventBus);
                display.refresh();
-//             
this.registerHandler(display.getGrid().addCellPreviewHandler(new 
Handler<Message>() {
-//                     @Override
-//                     public void onCellPreview(final 
CellPreviewEvent<Message> event) {
-//                             if (hasClickedButFirstCol(event)) {
-//                                     
antiSelectMessages(display.getGrid().getVisibleItems());
-//                                     GetMessageDetailsRequest req = 
rf.messageDetailsRequest();
-//                                     GetMessageDetailsAction action = 
req.create(GetMessageDetailsAction.class);
-//                                     final ImapFolder f = 
req.create(ImapFolder.class);
-//                                     f.setFullName(folderName);
-//                                     action.setFolder(f);
-//                                     
action.setUid(event.getValue().getUid());
-//                                     req.get(action).fire(new 
Receiver<GetMessageDetailsResult>() {
-//                                             @Override
-//                                             public void 
onSuccess(GetMessageDetailsResult response) {
-//                                                     eventBus.fireEvent(new 
ExpandMessageEvent(user, new ImapFolderImpl(folderName), event
-//                                                                     
.getValue(), response.getMessageDetails()));
-////                                                   
display.getGrid().getSelectionModel().setSelected(event.getValue(), true);
-//                                                     
display.getGrid().noSelectionModel.setSelected(event.getValue(), true);
-//                                                     
toolBar.enableAllTools(true);
-//                                                     ToolBarView.Parameters 
p = new ToolBarView.Parameters(user, folderName, event.getValue(),
-//                                                                     
response.getMessageDetails());
-//                                                     
toolBar.setParameters(p);
-//                                                     MessagePlace place = 
new MessagePlace(folderName + AbstractPlace.SPLITTER
-//                                                                     + 
event.getValue().getUid());
-//                                                     pc.goTo(place);
-//                                             }
-//
-//                                             @Override
-//                                             public void 
onFailure(ServerFailure error) {
-//                                                     if (error.isFatal()) {
-//                                                             // 
log.log(Level.SEVERE, error.getMessage());
-//                                                             // TODO write 
the error message to
-//                                                             // status bar.
-//                                                             
toolBar.enableAllTools(false);
-//                                                             throw new 
RuntimeException(error.getMessage());
-//                                                     }
-//                                             }
-//                                     });
-//                             }
-//                     }
-//
-//             }));
+               
this.registerHandler(display.getGrid().addCellPreviewHandler(new 
Handler<Message>() {
+                       @Override
+                       public void onCellPreview(final 
CellPreviewEvent<Message> event) {
+                               if (hasClickedButFirstCol(event)) {
+                                       
antiSelectMessages(display.getGrid().getVisibleItems());
+                                       GetMessageDetailsRequest req = 
rf.messageDetailsRequest();
+                                       GetMessageDetailsAction action = 
req.create(GetMessageDetailsAction.class);
+                                       final ImapFolder f = 
req.create(ImapFolder.class);
+                                       f.setFullName(folderName);
+                                       action.setFolder(f);
+                                       
action.setUid(event.getValue().getUid());
+                                       req.get(action).fire(new 
Receiver<GetMessageDetailsResult>() {
+                                               @Override
+                                               public void 
onSuccess(GetMessageDetailsResult response) {
+                                                       eventBus.fireEvent(new 
ExpandMessageEvent(user, new ImapFolderImpl(folderName), event
+                                                                       
.getValue(), response.getMessageDetails()));
+                                                       // 
display.getGrid().getSelectionModel().setSelected(event.getValue(),
+                                                       // true);
+                                                       
display.getGrid().getSelectionModel().setSelected(event.getValue(), true);
+                                                       
toolBar.enableAllTools(true);
+                                                       ToolBarView.Parameters 
p = new ToolBarView.Parameters(user, folderName, event.getValue(),
+                                                                       
response.getMessageDetails());
+                                                       
toolBar.setParameters(p);
+                                                       MessagePlace place = 
new MessagePlace(folderName + AbstractPlace.SPLITTER
+                                                                       + 
event.getValue().getUid());
+                                                       pc.goTo(place);
+                                                       display.refresh();
+                                                       eventBus.fireEvent(new 
RefreshUnreadEvent());
+                                               }
+
+                                               @Override
+                                               public void 
onFailure(ServerFailure error) {
+                                                       if (error.isFatal()) {
+                                                               // 
log.log(Level.SEVERE, error.getMessage());
+                                                               // TODO write 
the error message to
+                                                               // status bar.
+                                                               
toolBar.enableAllTools(false);
+                                                               throw new 
RuntimeException(error.getMessage());
+                                                       }
+                                               }
+                                       });
+                               }
+                       }
+
+               }));
+       }
+       private boolean hasClickedButFirstCol(CellPreviewEvent<Message> event) {
+               return "click".equals(event.getNativeEvent().getType()) && 0 != 
event.getColumn();
        }
 
        private void bindTo(EventBus eventBus) {
@@ -397,7 +404,7 @@ public class MessageListActivity extends
 >>>>>>> make reload message content work, use the same place with folder list, 
 >>>>>>> while separated with slash, that looks like Gmail's
        public interface Displayable extends WidgetDisplayable {
                MessagesCellTable getGrid();
-               
+
                void refresh();
 
                List<Long> getSelectedMessagesIds();
@@ -431,7 +438,8 @@ public class MessageListActivity extends
                        @Override
                        public void onSuccess(DeleteMessageResult response) {
                                
antiSelectMessages(display.getSelectedMessages());
-//                             refresh();
+                               display.refresh();
+                               eventBus.fireEvent(new RefreshUnreadEvent());
                        }
                });
        }

Modified: 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/MessageListView.java
URL: 
http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/MessageListView.java?rev=1522377&r1=1522376&r2=1522377&view=diff
==============================================================================
--- 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/MessageListView.java
 (original)
+++ 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/MessageListView.java
 Thu Sep 12 04:41:52 2013
@@ -261,7 +261,7 @@ public class MessageListView extends Com
                List<Long> selecteds = new ArrayList<Long>();
                MultiSelectionModel<? super Message> selectionModel = 
(MultiSelectionModel<? super Message>) grid
                                .getSelectionModel();
-               NoSelectionModel<? super Message> noSelectionModel = 
(NoSelectionModel<? super Message>)grid.getSelectionModel();
+//             NoSelectionModel<? super Message> noSelectionModel = 
(NoSelectionModel<? super Message>)grid.getSelectionModel();
                
                selectionModel.getSelectedSet();
                for (Message msg : getSelectedMessages()) {

Modified: 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/MessagesCellTable.java
URL: 
http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/MessagesCellTable.java?rev=1522377&r1=1522376&r2=1522377&view=diff
==============================================================================
--- 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/MessagesCellTable.java
 (original)
+++ 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/MessagesCellTable.java
 Thu Sep 12 04:41:52 2013
@@ -585,7 +585,7 @@ public class MessagesCellTable extends D
                }
        };
        private final MultiSelectionModel<? super Message> selectionModel = new 
MultiSelectionModel<Message>(KEY_PROVIDER);
-       public final NoSelectionModel<Message> noSelectionModel = new 
NoSelectionModel<Message>(KEY_PROVIDER);
+//     public final NoSelectionModel<Message> noSelectionModel = new 
NoSelectionModel<Message>(KEY_PROVIDER);
 
        PlaceController pc;
        HupaRequestFactory rf;
@@ -700,49 +700,49 @@ public class MessagesCellTable extends D
                // setSelectionModel(selectionModel,
                // DefaultSelectionEventManager.<Message> 
createCheckboxManager(0));
 
-               setSelectionModel(noSelectionModel, 
DefaultSelectionEventManager.<Message> createBlacklistManager(0));
+               setSelectionModel(selectionModel, 
DefaultSelectionEventManager.<Message> createBlacklistManager(0));
 
-               noSelectionModel.addSelectionChangeHandler(new 
SelectionChangeEvent.Handler() {
-                       @Override
-                       public void onSelectionChange(SelectionChangeEvent 
event) {
-                               message = 
noSelectionModel.getLastSelectedObject();
-                               GetMessageDetailsRequest req = 
rf.messageDetailsRequest();
-                               GetMessageDetailsAction action = 
req.create(GetMessageDetailsAction.class);
-                               final ImapFolder f = 
req.create(ImapFolder.class);
-
-                               f.setFullName(parseFolderName(pc));
-                               action.setFolder(f);
-                               action.setUid(message.getUid());
-                               req.get(action).fire(new 
Receiver<GetMessageDetailsResult>() {
-                                       @Override
-                                       public void 
onSuccess(GetMessageDetailsResult response) {
-                                               // 
display.getGrid().getSelectionModel().setSelected(event.getValue(),
-                                               // true);
-                                               // 
noSelectionModel.setSelected(message, true);
-                                               toolBar.enableAllTools(true);
-                                               ToolBarView.Parameters p = new 
ToolBarView.Parameters(null, folderName, message, response
-                                                               
.getMessageDetails());
-                                               toolBar.setParameters(p);
-                                               MessagePlace place = new 
MessagePlace(folderName + AbstractPlace.SPLITTER + message.getUid());
-                                               refresh();
-                                               eventBus.fireEvent(new 
RefreshUnreadEvent());
-                                               pc.goTo(place);
-                                       }
-
-                                       @Override
-                                       public void onFailure(ServerFailure 
error) {
-                                               if (error.isFatal()) {
-                                                       // 
log.log(Level.SEVERE, error.getMessage());
-                                                       // TODO write the error 
message to
-                                                       // status bar.
-                                                       
toolBar.enableAllTools(false);
-                                                       throw new 
RuntimeException(error.getMessage());
-                                               }
-                                       }
-                               });
-                       }
-
-               });
+//             selectionModel.addSelectionChangeHandler(new 
SelectionChangeEvent.Handler() {
+//                     @Override
+//                     public void onSelectionChange(SelectionChangeEvent 
event) {
+//                             message = eventselectionModel.get;
+//                             GetMessageDetailsRequest req = 
rf.messageDetailsRequest();
+//                             GetMessageDetailsAction action = 
req.create(GetMessageDetailsAction.class);
+//                             final ImapFolder f = 
req.create(ImapFolder.class);
+//
+//                             f.setFullName(parseFolderName(pc));
+//                             action.setFolder(f);
+//                             action.setUid(message.getUid());
+//                             req.get(action).fire(new 
Receiver<GetMessageDetailsResult>() {
+//                                     @Override
+//                                     public void 
onSuccess(GetMessageDetailsResult response) {
+//                                             // 
display.getGrid().getSelectionModel().setSelected(event.getValue(),
+//                                             // true);
+//                                             // 
noSelectionModel.setSelected(message, true);
+//                                             toolBar.enableAllTools(true);
+//                                             ToolBarView.Parameters p = new 
ToolBarView.Parameters(null, folderName, message, response
+//                                                             
.getMessageDetails());
+//                                             toolBar.setParameters(p);
+//                                             MessagePlace place = new 
MessagePlace(folderName + AbstractPlace.SPLITTER + message.getUid());
+//                                             refresh();
+//                                             eventBus.fireEvent(new 
RefreshUnreadEvent());
+//                                             pc.goTo(place);
+//                                     }
+//
+//                                     @Override
+//                                     public void onFailure(ServerFailure 
error) {
+//                                             if (error.isFatal()) {
+//                                                     // 
log.log(Level.SEVERE, error.getMessage());
+//                                                     // TODO write the error 
message to
+//                                                     // status bar.
+//                                                     
toolBar.enableAllTools(false);
+//                                                     throw new 
RuntimeException(error.getMessage());
+//                                             }
+//                                     }
+//                             });
+//                     }
+//
+//             });
 
                if (dataProvider == null) {
                        dataProvider = new MessageListDataProvider();

Modified: 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/ToolBarView.java
URL: 
http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/ToolBarView.java?rev=1522377&r1=1522376&r2=1522377&view=diff
==============================================================================
--- 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/ToolBarView.java
 (original)
+++ 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/ToolBarView.java
 Thu Sep 12 04:41:52 2013
@@ -682,14 +682,14 @@ public class ToolBarView extends Composi
                forwardGroup.addStyleName(style.disabledButton());
                replyAllTip.addStyleName(style.disabledButton());
                forwardTip.addStyleName(style.disabledButton());
-               if(replyReg != null){
-                       replyReg.removeHandler();
-                       replyAllReg.removeHandler();
-                       forwardReg.removeHandler();     
-                       replyReg = null;
-                       replyAllReg = null;
-                       forwardReg = null;
-               }
+//             if(replyReg != null){
+//                     replyReg.removeHandler();
+//                     replyAllReg.removeHandler();
+//                     forwardReg.removeHandler();     
+//                     replyReg = null;
+//                     replyAllReg = null;
+//                     forwardReg = null;
+//             }
        }
 
        private void removeSendingDisableds() {
@@ -699,14 +699,14 @@ public class ToolBarView extends Composi
                replyAllTip.removeStyleName(style.disabledButton());
                forwardTip.removeStyleName(style.disabledButton());
 
-               if(replyReg != null){
-                       replyReg.removeHandler();
-                       replyAllReg.removeHandler();
-                       forwardReg.removeHandler();     
-               }
-               replyReg = reply.addClickHandler(replyHandler);
-               replyAllReg = replyAll.addClickHandler(replyAllHandler);
-               forwardReg = forward.addClickHandler(forwardHandler);
+//             if(replyReg != null){
+//                     replyReg.removeHandler();
+//                     replyAllReg.removeHandler();
+//                     forwardReg.removeHandler();     
+//             }
+//             replyReg = reply.addClickHandler(replyHandler);
+//             replyAllReg = replyAll.addClickHandler(replyAllHandler);
+//             forwardReg = forward.addClickHandler(forwardHandler);
                
        }
        
@@ -716,12 +716,12 @@ public class ToolBarView extends Composi
                delete.addStyleName(style.disabledButton());
                mark.addStyleName(style.disabledButton());
                
-               if(deleteReg != null){
-                       deleteReg.removeHandler();
-                       markReg.removeHandler();
-                       deleteReg = null;
-                       markReg = null;
-               }
+//             if(deleteReg != null){
+//                     deleteReg.removeHandler();
+//                     markReg.removeHandler();
+//                     deleteReg = null;
+//                     markReg = null;
+//             }
        }
 
        private void removeDealingDisableds() {
@@ -737,6 +737,7 @@ public class ToolBarView extends Composi
                
 =======
 
+<<<<<<< HEAD
                if(markReg != null){
                        deleteReg.removeHandler();
                        markReg.removeHandler();
@@ -745,6 +746,14 @@ public class ToolBarView extends Composi
                markReg = mark.addClickHandler(markHandler);
                deleteReg = delete.addClickHandler(deleteHandler);
 >>>>>>> fixed issue#57 - really disable the tools in toolbar
+=======
+//             if(markReg != null){
+//                     deleteReg.removeHandler();
+//                     markReg.removeHandler();
+//             }
+//             markReg = mark.addClickHandler(markHandler);
+//             deleteReg = delete.addClickHandler(deleteHandler);
+>>>>>>> make folders list view refresh automatically according to the actual 
unread message
        }
 
        interface ToolBarUiBinder extends UiBinder<FlowPanel, ToolBarView> {



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