Author: dongxu
Date: Thu Sep 12 04:37:35 2013
New Revision: 1522371

URL: http://svn.apache.org/r1522371
Log:
try to rearrange the places and history managment.

Removed:
    
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mapper/MainContentActivityMapper.java
    
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/IMAPMessageView.java
Modified:
    
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/HupaController.java
    
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/AppBaseActivity.java
    
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/FolderListActivity.java
    
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/LoginActivity.java
    
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/MessageContentActivity.java
    
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/activity/MessageListFooterActivity.java
    
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/ToolBarActivity.java
    
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ioc/AppGinModule.java
    
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mapper/MessageContentActivityMapper.java
    
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mapper/MessageListActivityMapper.java
    
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mapper/ToolBarActivityMapper.java
    
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/place/IMAPMessagePlace.java
    
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/place/MailFolderPlace.java
    
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/ComposeView.ui.xml
    
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/FolderListView.java
    
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/FoldersTreeViewModel.java
    
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/LabelPropertiesView.java
    
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/MessageListFooterView.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/_CenterSettingPanel.java

Modified: 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/HupaController.java
URL: 
http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/HupaController.java?rev=1522371&r1=1522370&r2=1522371&view=diff
==============================================================================
--- 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/HupaController.java
 (original)
+++ 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/HupaController.java
 Thu Sep 12 04:37:35 2013
@@ -99,7 +99,12 @@ import org.apache.hupa.shared.domain.Idl
 import org.apache.hupa.shared.domain.User;
 import org.apache.hupa.shared.events.LoginEvent;
 
+<<<<<<< HEAD
 >>>>>>> move new theme ui from experiment to hupa evo
+=======
+import com.google.gwt.core.client.Scheduler;
+import com.google.gwt.core.client.Scheduler.ScheduledCommand;
+>>>>>>> try to rearrange the places and history managment.
 import com.google.gwt.dom.client.StyleInjector;
 import com.google.gwt.event.shared.EventBus;
 import com.google.gwt.place.shared.Place;
@@ -409,7 +414,12 @@ public class HupaController {
        }
 
        public void hideTopLoading() {
-               topBar.hideLoading();
+               Scheduler.get().scheduleDeferred(new ScheduledCommand() {
+                       @Override
+                       public void execute() {
+                               topBar.hideLoading();
+                       }
+               });
        }
 
        private final Timer hideNotice = new Timer() {

Modified: 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/AppBaseActivity.java
URL: 
http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/AppBaseActivity.java?rev=1522371&r1=1522370&r2=1522371&view=diff
==============================================================================
--- 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/AppBaseActivity.java
 (original)
+++ 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/AppBaseActivity.java
 Thu Sep 12 04:37:35 2013
@@ -24,6 +24,9 @@ import java.util.List;
 
 <<<<<<< HEAD
 <<<<<<< HEAD
+<<<<<<< HEAD
+=======
+>>>>>>> try to rearrange the places and history managment.
 import org.apache.hupa.client.HupaController;
 import org.apache.hupa.client.rf.HupaRequestFactory;
 
@@ -37,6 +40,7 @@ public abstract class AppBaseActivity ex
 
        @Inject protected EventBus eventBus;
        @Inject protected HupaController hc;
+<<<<<<< HEAD
        @Inject protected PlaceController pc;
        @Inject protected HupaRequestFactory rf;
 
@@ -57,6 +61,8 @@ public abstract class AppBaseActivity ex
 >>>>>>> fix issue 10
 =======
        @Inject protected EventBus eventBus;
+=======
+>>>>>>> try to rearrange the places and history managment.
        @Inject protected PlaceController placeController;
        @Inject protected HupaRequestFactory requestFactory;
 

Modified: 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/FolderListActivity.java
URL: 
http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/FolderListActivity.java?rev=1522371&r1=1522370&r2=1522371&view=diff
==============================================================================
--- 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/FolderListActivity.java
 (original)
+++ 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/FolderListActivity.java
 Thu Sep 12 04:37:35 2013
@@ -107,6 +107,7 @@ public class FolderListActivity extends 
 =======
 >>>>>>> fixed issue#45, issue#47, issue#51. change the layout of composite, 
 >>>>>>> don't use contact instead of folders list
        public interface Displayable extends WidgetDisplayable {
+               void refresh();
        }
 >>>>>>> make reload mail folder place work, fixed issue #7
 }

Modified: 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/LoginActivity.java
URL: 
http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/LoginActivity.java?rev=1522371&r1=1522370&r2=1522371&view=diff
==============================================================================
--- 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/LoginActivity.java
 (original)
+++ 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/LoginActivity.java
 Thu Sep 12 04:37:35 2013
@@ -486,7 +486,7 @@ public class LoginActivity extends Abstr
                                RootLayoutPanel.get().clear();
                                RootLayoutPanel.get().add(hupaLayout.get());
 //                             placeController.goTo(new 
MailFolderPlace(response.getSettings().getDraftsFolderName()));
-                               placeController.goTo(new 
MailFolderPlace(response));
+                               placeController.goTo(new 
MailFolderPlace(response.getSettings().getDraftsFolderName()));
                                eventBus.fireEvent(new LoginEvent(response));
                                display.setLoading(false);
                        }

Modified: 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/MessageContentActivity.java
URL: 
http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/MessageContentActivity.java?rev=1522371&r1=1522370&r2=1522371&view=diff
==============================================================================
--- 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/MessageContentActivity.java
 (original)
+++ 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/MessageContentActivity.java
 Thu Sep 12 04:37:35 2013
@@ -181,6 +181,7 @@ import org.apache.hupa.shared.domain.Get
 import org.apache.hupa.shared.domain.GetMessageDetailsResult;
 import org.apache.hupa.shared.domain.ImapFolder;
 
+import com.google.gwt.activity.shared.Activity;
 import com.google.gwt.event.shared.EventBus;
 import com.google.gwt.user.client.ui.AcceptsOneWidget;
 import com.google.inject.Inject;
@@ -247,9 +248,8 @@ public class MessageContentActivity exte
                void fillMessageContent(String messageContent);
        }
 
-       public MessageContentActivity with(MailFolderPlace place) {
-               this.fullName = place.getFullName();
-               this.uid = place.getUid();
+       public Activity with(String token) {
+               uid = token;
                return this;
        }
 >>>>>>> make message content work as expected partly

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=1522371&r1=1522370&r2=1522371&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:37:35 2013
@@ -28,6 +28,7 @@ import java.util.Collection;
 import java.util.List;
 import java.util.Set;
 
+<<<<<<< HEAD
 import org.apache.hupa.client.place.AbstractPlace;
 import org.apache.hupa.client.place.FolderPlace;
 import org.apache.hupa.client.place.MessagePlace;
@@ -259,12 +260,17 @@ import java.util.Collection;
 import java.util.List;
 import java.util.Set;
 
+=======
+import org.apache.hupa.client.HupaController;
+>>>>>>> try to rearrange the places and history managment.
 import org.apache.hupa.client.place.DefaultPlace;
+import org.apache.hupa.client.place.IMAPMessagePlace;
 import org.apache.hupa.client.place.MailFolderPlace;
 import org.apache.hupa.client.rf.DeleteMessageByUidRequest;
 import org.apache.hupa.client.rf.FetchMessagesRequest;
 import org.apache.hupa.client.rf.GetMessageDetailsRequest;
 import org.apache.hupa.client.rf.HupaRequestFactory;
+import org.apache.hupa.client.ui.HasRefresh;
 import org.apache.hupa.client.ui.MessagesCellTable;
 <<<<<<< HEAD
 >>>>>>> let messages list activity make use of mvp
@@ -293,9 +299,10 @@ import com.google.gwt.core.client.Schedu
 import com.google.gwt.event.shared.EventBus;
 import com.google.gwt.place.shared.PlaceController;
 import com.google.gwt.user.client.ui.AcceptsOneWidget;
+import com.google.gwt.view.client.AsyncDataProvider;
 import com.google.gwt.view.client.CellPreviewEvent;
 import com.google.gwt.view.client.CellPreviewEvent.Handler;
-import com.google.gwt.view.client.RangeChangeEvent;
+import com.google.gwt.view.client.HasData;
 import com.google.inject.Inject;
 import com.google.web.bindery.requestfactory.shared.Receiver;
 import com.google.web.bindery.requestfactory.shared.ServerFailure;
@@ -303,8 +310,6 @@ import com.google.web.bindery.requestfac
 public class MessageListActivity extends AppBaseActivity {
 
        @Inject private Displayable display;
-       @Inject private HupaRequestFactory requestFactory;
-       @Inject private PlaceController placeController;
        @Inject private ToolBarActivity.Displayable toolBar;
        @Inject private TopBarActivity.Displayable topBar;
        private String folderName;
@@ -316,7 +321,7 @@ public class MessageListActivity extends
        public void start(AcceptsOneWidget container, final EventBus eventBus) {
                container.setWidget(display.asWidget());
                bindTo(eventBus);
-               display.getGrid().addCellPreviewHandler(new Handler<Message>() {
+               
this.registerHandler(display.getGrid().addCellPreviewHandler(new 
Handler<Message>() {
                        @Override
                        public void onCellPreview(final 
CellPreviewEvent<Message> event) {
                                if (hasClickedButFirstCol(event)) {
@@ -337,8 +342,7 @@ public class MessageListActivity extends
                                                        ToolBarView.Parameters 
p = new ToolBarView.Parameters(user, folderName, event.getValue(),
                                                                        
response.getMessageDetails());
                                                        
toolBar.setParameters(p);
-                                                       MailFolderPlace place = 
new MailFolderPlace(f.getFullName() + "/"
-                                                                       + 
event.getValue().getUid());
+                                                       IMAPMessagePlace place 
= new IMAPMessagePlace(String.valueOf(event.getValue().getUid()));
                                                        
placeController.goTo(place);
                                                }
 
@@ -356,63 +360,122 @@ public class MessageListActivity extends
                                }
                        }
 
-               });
-               display.getGrid().addRangeChangeHandler(new 
RangeChangeEvent.Handler() {
-                       @Override
-                       public void onRangeChange(RangeChangeEvent event) {
-                               fetch(event.getNewRange().getStart());
-                       }
-               });
-               if (!pending) {
-                       pending = true;
-                       Scheduler.get().scheduleFinally(new ScheduledCommand() {
+               }));
+               dataProvider = new MessageListDataProvider();
+               dataProvider.addDataDisplay(display.getGrid());
+//             dataProvider.refresh();
+               
+//             display.getGrid().addRangeChangeHandler(new 
RangeChangeEvent.Handler() {
+//                     @Override
+//                     public void onRangeChange(RangeChangeEvent event) {
+//                             fetch(event.getNewRange().getStart());
+//                     }
+//             });
+//             if (!pending) {
+//                     pending = true;
+//                     Scheduler.get().scheduleFinally(new ScheduledCommand() {
+//                             @Override
+//                             public void execute() {
+//                                     pending = false;
+//                                     fetch(0);
+//                             }
+//                     });
+//             }
+       }
+       
+       public void refresh(){
+               dataProvider.refresh();
+       }
+
+       private MessageListDataProvider dataProvider;
+       public class MessageListDataProvider extends AsyncDataProvider<Message> 
implements HasRefresh{
+
+               HasData<Message> display;
+               
+               @Override
+               public void addDataDisplay(HasData<Message> display) {
+                       super.addDataDisplay(display);
+                       this.display = display;
+               }
+               
+
+               @Override
+               public void refresh() {
+                       this.onRangeChanged(display);
+               }
+
+               @Override
+               protected void onRangeChanged(HasData<Message> display) {
+                       FetchMessagesRequest req = 
requestFactory.messagesRequest();
+                       FetchMessagesAction action = 
req.create(FetchMessagesAction.class);
+                       final ImapFolder f = req.create(ImapFolder.class);
+                       f.setFullName(folderName);
+                       action.setFolder(f);
+                       action.setOffset(display.getVisibleRange().getLength());
+                       action.setSearchString(searchValue);
+                       action.setStart(display.getVisibleRange().getStart());
+                       req.fetch(action).fire(new 
Receiver<FetchMessagesResult>() {
                                @Override
-                               public void execute() {
-                                       pending = false;
-                                       fetch(0);
+                               public void onSuccess(final FetchMessagesResult 
response) {
+                                       if (response == null || 
response.getRealCount()== 0) {
+                                               updateRowCount(-1, true);
+                                       } else {
+                                               updateRowData(0, 
response.getMessages());
+                                       }
+                                       hc.hideTopLoading();
+                               }
+
+                               @Override
+                               public void onFailure(ServerFailure error) {
+                                       if (error.isFatal()) {
+                                               throw new 
RuntimeException(error.getMessage());
+                                       }
+                                       hc.hideTopLoading();
                                }
                        });
+
                }
+               
        }
 
        private boolean hasClickedButFirstCol(CellPreviewEvent<Message> event) {
                return "click".equals(event.getNativeEvent().getType()) && 0 != 
event.getColumn();
        }
-       public void fetch(final int start) {
-               FetchMessagesRequest req = requestFactory.messagesRequest();
-               FetchMessagesAction action = 
req.create(FetchMessagesAction.class);
-               final ImapFolder f = req.create(ImapFolder.class);
-               f.setFullName(folderName);
-               action.setFolder(f);
-               action.setOffset(display.getGrid().getPageSize());
-               action.setSearchString(searchValue);
-               action.setStart(start);
-               req.fetch(action).fire(new Receiver<FetchMessagesResult>() {
-
-                       @Override
-                       public void onSuccess(final FetchMessagesResult result) 
{
-                               assert result != null;
-                               
display.getGrid().setRowCount(result.getRealCount());
-                               display.getGrid().setRowData(start, 
result.getMessages());
-                               Scheduler.get().scheduleDeferred(new 
ScheduledCommand() {
-                                       @Override
-                                       public void execute() {
-                                               topBar.hideLoading();
-                                       }
-                               });
-                       }
-
-                       @Override
-                       public void onFailure(ServerFailure error) {
-                               placeController.goTo(new DefaultPlace("@"));
-                               if (error.isFatal()) {
-                                       // FIXME should goto login page 
regarding the long time
-                                       // session expired.
-                                       throw new 
RuntimeException(error.getMessage());
-                               }
-                       }
-               });
-       }
+//     public void fetch(final int start) {
+//             FetchMessagesRequest req = requestFactory.messagesRequest();
+//             FetchMessagesAction action = 
req.create(FetchMessagesAction.class);
+//             final ImapFolder f = req.create(ImapFolder.class);
+//             f.setFullName(folderName);
+//             action.setFolder(f);
+//             action.setOffset(display.getGrid().getPageSize());
+//             action.setSearchString(searchValue);
+//             action.setStart(start);
+//             req.fetch(action).fire(new Receiver<FetchMessagesResult>() {
+//
+//                     @Override
+//                     public void onSuccess(final FetchMessagesResult result) 
{
+//                             assert result != null;
+//                             
display.getGrid().setRowCount(result.getRealCount());
+//                             display.getGrid().setRowData(start, 
result.getMessages());
+//                             Scheduler.get().scheduleDeferred(new 
ScheduledCommand() {
+//                                     @Override
+//                                     public void execute() {
+//                                             topBar.hideLoading();
+//                                     }
+//                             });
+//                     }
+//
+//                     @Override
+//                     public void onFailure(ServerFailure error) {
+//                             placeController.goTo(new DefaultPlace("@"));
+//                             if (error.isFatal()) {
+//                                     // FIXME should goto login page 
regarding the long time
+//                                     // session expired.
+//                                     throw new 
RuntimeException(error.getMessage());
+//                             }
+//                     }
+//             });
+//     }
 
        private void bindTo(EventBus eventBus) {
                eventBus.addHandler(LoadMessagesEvent.TYPE, new 
LoadMessagesEventHandler() {
@@ -420,11 +483,11 @@ public class MessageListActivity extends
                                user = loadMessagesEvent.getUser();
                                folderName = 
loadMessagesEvent.getFolder().getFullName();
                                searchValue = 
loadMessagesEvent.getSearchValue();
-                               fetch(0);
+                               hc.hideTopLoading();
 
                        }
                });
-               eventBus.addHandler(DeleteClickEvent.TYPE, new 
DeleteClickEventHandler(){
+               eventBus.addHandler(DeleteClickEvent.TYPE, new 
DeleteClickEventHandler() {
                        @Override
                        public void onDeleteClickEvent(DeleteClickEvent event) {
                                deleteSelectedMessages();
@@ -477,15 +540,14 @@ public class MessageListActivity extends
                DeleteMessageByUidRequest req = 
requestFactory.deleteMessageByUidRequest();
                DeleteMessageByUidAction action = 
req.create(DeleteMessageByUidAction.class);
                ImapFolder f = req.create(ImapFolder.class);
-               f.setFullName(currentPlace.getFullName());
+               f.setFullName(currentPlace.getToken());
                action.setMessageUids(uids);
                action.setFolder(f);
                req.delete(action).fire(new Receiver<DeleteMessageResult>() {
                        @Override
                        public void onSuccess(DeleteMessageResult response) {
-                               fetch(0);
                                
antiSelectMessages(display.getSelectedMessages());
-                               display.refresh();
+                               refresh();
                        }
                });
        }

Modified: 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/MessageListFooterActivity.java
URL: 
http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/MessageListFooterActivity.java?rev=1522371&r1=1522370&r2=1522371&view=diff
==============================================================================
--- 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/MessageListFooterActivity.java
 (original)
+++ 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/MessageListFooterActivity.java
 Thu Sep 12 04:37:35 2013
@@ -35,6 +35,7 @@ import com.google.gwt.user.client.ui.Lis
 import org.apache.hupa.client.ui.WidgetDisplayable;
 
 import com.google.gwt.event.shared.EventBus;
+import com.google.gwt.user.cellview.client.SimplePager;
 import com.google.gwt.user.client.ui.AcceptsOneWidget;
 >>>>>>> integrate all of the views to their corresponding activities and 
 >>>>>>> mappers
 import com.google.inject.Inject;
@@ -66,6 +67,7 @@ public class MessageListFooterActivity e
        @Inject private Displayable display;
        
 <<<<<<< HEAD
+<<<<<<< HEAD
        public interface Displayable extends IsWidget {
                SimplePager getPager();
                HasVisibility getLabelsPanel();
@@ -74,4 +76,9 @@ public class MessageListFooterActivity e
 =======
        public interface Displayable extends WidgetDisplayable {}
 >>>>>>> integrate all of the views to their corresponding activities and 
 >>>>>>> mappers
+=======
+       public interface Displayable extends WidgetDisplayable {
+               SimplePager getPager();
+       }
+>>>>>>> try to rearrange the places and history managment.
 }

Modified: 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/ToolBarActivity.java
URL: 
http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/ToolBarActivity.java?rev=1522371&r1=1522370&r2=1522371&view=diff
==============================================================================
--- 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/ToolBarActivity.java
 (original)
+++ 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/ToolBarActivity.java
 Thu Sep 12 04:37:35 2013
@@ -185,6 +185,8 @@ import org.apache.hupa.shared.domain.Ima
 import org.apache.hupa.shared.domain.Message;
 import org.apache.hupa.shared.domain.SetFlagAction;
 
+import com.google.gwt.core.client.Scheduler;
+import com.google.gwt.core.client.Scheduler.ScheduledCommand;
 import com.google.gwt.event.dom.client.ClickEvent;
 import com.google.gwt.event.dom.client.ClickHandler;
 import com.google.gwt.event.dom.client.HasClickHandlers;
@@ -199,16 +201,16 @@ public class ToolBarActivity extends App
 
        @Inject private Displayable display;
        @Inject private MessagesCellTable table;
-       @Inject private MessageListActivity.Displayable messagesDisplay;
+       @Inject private MessageListActivity messagesDisplay;
+       @Inject private FolderListActivity.Displayable folderListDisplay;
        @Inject private HupaController hupaController;
-       //FIXME messagesDisplay can not be injected into ToolBarView, why?
+       // FIXME messagesDisplay can not be injected into ToolBarView, why?
        private String folderName;
-       
-       @Override
-       public void onStop(){
-               //for tool bar work as expected, not to unbind event handlers
-       }
-       
+
+//     @Override
+//     public void onStop() {
+//             // for tool bar work as expected, not to unbind event handlers
+//     }
 
        @Override
        public void start(AcceptsOneWidget container, EventBus eventBus) {
@@ -220,8 +222,8 @@ public class ToolBarActivity extends App
                this.folderName = folder;
                return this;
        }
-       
-       public Displayable getDisplay(){
+
+       public Displayable getDisplay() {
                return display;
        }
 
@@ -249,7 +251,7 @@ public class ToolBarActivity extends App
                                display.getPopup().hide();
                        }
                }));
-               
+
                registerHandler(display.getDeleteReg());
                registerHandler(display.getMarkReg());
                registerHandler(display.getReplyReg());
@@ -257,8 +259,6 @@ public class ToolBarActivity extends App
                registerHandler(display.getForwardReg());
        }
 
-       
-
        protected void toMarkRead(boolean read) {
                List<Long> uids = new ArrayList<Long>();
                for (Message msg : table.getVisibleItems()) {
@@ -278,11 +278,14 @@ public class ToolBarActivity extends App
                req.set(action).fire(new Receiver<GenericResult>() {
                        @Override
                        public void onSuccess(GenericResult response) {
-                               hupaController.hideTopLoading();
                                table.refresh();
-                               table.setStyleBaseOnTag();
+//                             table.setStyleBaseOnTag();
+                               folderListDisplay.refresh();
+                               messagesDisplay.refresh();
+                               hupaController.hideTopLoading();
                        }
                });
+
        }
 
        public interface Displayable extends WidgetDisplayable {

Modified: 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ioc/AppGinModule.java
URL: 
http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ioc/AppGinModule.java?rev=1522371&r1=1522370&r2=1522371&view=diff
==============================================================================
--- 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ioc/AppGinModule.java
 (original)
+++ 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ioc/AppGinModule.java
 Thu Sep 12 04:37:35 2013
@@ -65,6 +65,7 @@ import org.apache.hupa.client.activity.C
 import org.apache.hupa.client.activity.ComposeToolBarActivity;
 >>>>>>> toggle to display/hide the tool bar view to adjust the compose and 
 >>>>>>> message panel
 import org.apache.hupa.client.activity.FolderListActivity;
+<<<<<<< HEAD
 import org.apache.hupa.client.activity.LabelListActivity;
 import org.apache.hupa.client.activity.LabelPropertiesActivity;
 import org.apache.hupa.client.activity.LoginActivity;
@@ -145,6 +146,8 @@ import org.apache.hupa.client.HupaContro
 import org.apache.hupa.client.activity.FolderListActivity;
 >>>>>>> integrate all of the views to their corresponding activities and 
 >>>>>>> mappers
 import org.apache.hupa.client.activity.IMAPMessageActivity;
+=======
+>>>>>>> try to rearrange the places and history managment.
 import org.apache.hupa.client.activity.IMAPMessageListActivity;
 import org.apache.hupa.client.activity.LabelListActivity;
 import org.apache.hupa.client.activity.LabelPropertiesActivity;
@@ -257,9 +260,12 @@ import org.apache.hupa.client.ui.HupaLay
 import org.apache.hupa.client.ui.IMAPMessageListView;
 <<<<<<< HEAD
 <<<<<<< HEAD
+<<<<<<< HEAD
 =======
 >>>>>>> 1. improve the inbox folder place.
 import org.apache.hupa.client.ui.IMAPMessageView;
+=======
+>>>>>>> try to rearrange the places and history managment.
 import org.apache.hupa.client.ui.LabelListView;
 import org.apache.hupa.client.ui.LabelPropertiesView;
 import org.apache.hupa.client.ui.LoginLayout;
@@ -594,6 +600,7 @@ public class AppGinModule extends Abstra
                
bind(WestActivity.Displayable.class).to(WestView.class).in(Singleton.class);
                
bind(IMAPMessageListActivity.Displayable.class).to(IMAPMessageListView.class);
                
bind(MessageSendActivity.Displayable.class).to(MessageSendView.class);
+<<<<<<< HEAD
                
bind(IMAPMessageActivity.Displayable.class).to(IMAPMessageView.class);
 <<<<<<< HEAD
 <<<<<<< HEAD
@@ -627,6 +634,8 @@ public class AppGinModule extends Abstra
 =======
                
 =======
+=======
+>>>>>>> try to rearrange the places and history managment.
 
 >>>>>>> integrate all of the views to their corresponding activities and 
 >>>>>>> mappers
                bind(LoginActivity.class).in(Singleton.class);
@@ -637,7 +646,6 @@ public class AppGinModule extends Abstra
                bind(WestActivity.class).in(Singleton.class);
                bind(IMAPMessageListActivity.class).in(Singleton.class);
                bind(MessageSendActivity.class).in(Singleton.class);
-               bind(IMAPMessageActivity.class).in(Singleton.class);
 
                bind(MessagesCellTable.class).in(Singleton.class);
                bind(FoldersTreeViewModel.class).in(Singleton.class);

Modified: 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mapper/MessageContentActivityMapper.java
URL: 
http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mapper/MessageContentActivityMapper.java?rev=1522371&r1=1522370&r2=1522371&view=diff
==============================================================================
--- 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mapper/MessageContentActivityMapper.java
 (original)
+++ 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mapper/MessageContentActivityMapper.java
 Thu Sep 12 04:37:35 2013
@@ -23,6 +23,7 @@ import org.apache.hupa.client.activity.M
 <<<<<<< HEAD
 <<<<<<< HEAD
 <<<<<<< HEAD
+<<<<<<< HEAD
 import org.apache.hupa.client.place.MessagePlace;
 
 import com.google.gwt.activity.shared.Activity;
@@ -33,6 +34,9 @@ import com.google.gwt.core.client.RunAsy
 import org.apache.hupa.client.place.DefaultPlace;
 =======
 >>>>>>> scrub code
+=======
+import org.apache.hupa.client.place.IMAPMessagePlace;
+>>>>>>> try to rearrange the places and history managment.
 import org.apache.hupa.client.place.MailFolderPlace;
 <<<<<<< HEAD
 >>>>>>> prepare for message content panel
@@ -111,7 +115,7 @@ public class MessageContentActivityMappe
                                        (MailFolderPlace) place);
 =======
        public Activity getActivity(final Place place) {
-               if (place instanceof MailFolderPlace) {
+               if (place instanceof IMAPMessagePlace) {
                        return new ActivityAsyncProxy() {
                                @Override
                                protected void doAsync(RunAsyncCallback 
callback) {
@@ -120,8 +124,7 @@ public class MessageContentActivityMappe
 
                                @Override
                                protected Activity createInstance() {
-                                       return 
messageContentActivityProvider.get().with(
-                                                       (MailFolderPlace) 
place);
+                                       return 
messageContentActivityProvider.get().with(((IMAPMessagePlace)place).getToken());
                                }
                        };
 >>>>>>> support code split

Modified: 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mapper/MessageListActivityMapper.java
URL: 
http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mapper/MessageListActivityMapper.java?rev=1522371&r1=1522370&r2=1522371&view=diff
==============================================================================
--- 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mapper/MessageListActivityMapper.java
 (original)
+++ 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mapper/MessageListActivityMapper.java
 Thu Sep 12 04:37:35 2013
@@ -35,6 +35,7 @@ import org.apache.hupa.client.place.Defa
 =======
 >>>>>>> support code split
 import org.apache.hupa.client.place.MailFolderPlace;
+<<<<<<< HEAD
 >>>>>>> make message list view panel work as expected partly
 
 import com.google.gwt.activity.shared.Activity;
@@ -42,6 +43,11 @@ import com.google.gwt.activity.shared.Ac
 <<<<<<< HEAD
 >>>>>>> integrate all of the views to their corresponding activities and 
 >>>>>>> mappers
 =======
+=======
+import org.apache.hupa.client.place.SettingPlace;
+
+import com.google.gwt.activity.shared.Activity;
+>>>>>>> try to rearrange the places and history managment.
 import com.google.gwt.core.client.GWT;
 import com.google.gwt.core.client.RunAsyncCallback;
 >>>>>>> support code split
@@ -50,10 +56,14 @@ import com.google.inject.Inject;
 import com.google.inject.Provider;
 
 <<<<<<< HEAD
+<<<<<<< HEAD
 public class MessageListActivityMapper extends _MessageActivityMapper {
 =======
 public class MessageListActivityMapper implements ActivityMapper {
 >>>>>>> integrate all of the views to their corresponding activities and 
 >>>>>>> mappers
+=======
+public class MessageListActivityMapper extends MainActivityMapper {
+>>>>>>> try to rearrange the places and history managment.
        private final Provider<MessageListActivity> messageListActivityProvider;
 
        @Inject
@@ -63,6 +73,7 @@ public class MessageListActivityMapper i
 
 <<<<<<< HEAD
 <<<<<<< HEAD
+<<<<<<< HEAD
        @Override
        protected Activity lazyLoadActivity(final Place place) {
                if (place instanceof FolderPlace) {
@@ -95,6 +106,11 @@ public class MessageListActivityMapper i
 =======
        public Activity getActivity(final Place place) {
                if (!(place instanceof MailFolderPlace))
+=======
+       @Override
+       Activity asyncLoadActivity(final Place place) {
+               if (place instanceof SettingPlace)
+>>>>>>> try to rearrange the places and history managment.
                        return null;
                return new ActivityAsyncProxy() {
                        @Override
@@ -114,7 +130,7 @@ public class MessageListActivityMapper i
 =======
                        @Override
                        protected Activity createInstance() {
-                               return 
messageListActivityProvider.get().with(((MailFolderPlace) place).getFullName());
+                               return messageListActivityProvider.get();
                        }
                };
 >>>>>>> fixed issue#57 - really disable the tools in toolbar

Modified: 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mapper/ToolBarActivityMapper.java
URL: 
http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mapper/ToolBarActivityMapper.java?rev=1522371&r1=1522370&r2=1522371&view=diff
==============================================================================
--- 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mapper/ToolBarActivityMapper.java
 (original)
+++ 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mapper/ToolBarActivityMapper.java
 Thu Sep 12 04:37:35 2013
@@ -140,7 +140,7 @@ public class ToolBarActivityMapper exten
                final ToolBarActivity tba = toolBarActivityProvider.get();
                if (place instanceof MailFolderPlace) { // might be from login 
page
                        MailFolderPlace here = (MailFolderPlace) place;
-                       tba.getDisplay().setParameters(new 
Parameters(here.getUser(), here.getFullName(), null, null));
+                       tba.getDisplay().setParameters(new Parameters(null, 
here.getToken(), null, null));
                }
 
 >>>>>>> fixed issue#18
@@ -154,7 +154,7 @@ public class ToolBarActivityMapper exten
                        protected Activity createInstance() {
                                String token = null;
                                if (place instanceof MailFolderPlace) {
-                                       token = ((MailFolderPlace) 
place).getFullName();
+                                       token = ((MailFolderPlace) 
place).getToken();
                                }
                                return tba.with(token);
                        }

Modified: 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/place/IMAPMessagePlace.java
URL: 
http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/place/IMAPMessagePlace.java?rev=1522371&r1=1522370&r2=1522371&view=diff
==============================================================================
--- 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/place/IMAPMessagePlace.java
 (original)
+++ 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/place/IMAPMessagePlace.java
 Thu Sep 12 04:37:35 2013
@@ -24,6 +24,7 @@ package org.apache.hupa.client.place;
 <<<<<<< HEAD
 <<<<<<< HEAD
 <<<<<<< HEAD
+<<<<<<< HEAD
 =======
 import org.apache.hupa.client.activity.IMAPMessageActivity;
 >>>>>>> 1. improve the inbox folder place.
@@ -83,10 +84,13 @@ public class IMAPMessagePlace extends Pl
        
 =======
 =======
+=======
+>>>>>>> try to rearrange the places and history managment.
 import com.google.gwt.place.shared.PlaceTokenizer;
 import com.google.gwt.place.shared.Prefix;
 
 public class IMAPMessagePlace extends AbstractPlace {
+<<<<<<< HEAD
 >>>>>>> remove some warnings and create the AbstractPlace that can give place 
 >>>>>>> infomation
 
 >>>>>>> forward and reply message to use RF
@@ -143,6 +147,11 @@ public class IMAPMessagePlace extends Ab
 
        public User getUser() {
                return user;
+=======
+       String token;
+       public IMAPMessagePlace(String token){
+               this.token = token;
+>>>>>>> try to rearrange the places and history managment.
        }
 
 <<<<<<< HEAD
@@ -203,10 +212,11 @@ public class IMAPMessagePlace extends Ab
 
                @Override
                public String getToken(IMAPMessagePlace place) {
-                       return place.getMessageDetails().getMessageId();
+                       return place.getToken();
                }
        }
 
+<<<<<<< HEAD
        public IMAPMessagePlace with(User user, ImapFolder folder, Message 
message, MessageDetails messageDetails) {
                this.message = message;
                this.messageDetails = messageDetails;
@@ -226,6 +236,10 @@ public class IMAPMessagePlace extends Ab
 =======
        public String getMessageId() {
                return messageId;
+=======
+       public String getToken() {
+               return token;
+>>>>>>> try to rearrange the places and history managment.
        }
 
 >>>>>>> prepare for message content panel

Modified: 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/place/MailFolderPlace.java
URL: 
http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/place/MailFolderPlace.java?rev=1522371&r1=1522370&r2=1522371&view=diff
==============================================================================
--- 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/place/MailFolderPlace.java
 (original)
+++ 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/place/MailFolderPlace.java
 Thu Sep 12 04:37:35 2013
@@ -19,74 +19,19 @@
 
 package org.apache.hupa.client.place;
 
-import org.apache.hupa.shared.domain.User;
-
 import com.google.gwt.place.shared.PlaceTokenizer;
 import com.google.gwt.place.shared.Prefix;
 
 public class MailFolderPlace extends AbstractPlace {
 
-       private User user;
-       private String uid;
-       private String fullName;
-       private static final String DELIMITER = "/";
-
-       /**
-        * Folder places look like: #Mock-Inbox, #INBOX,<br>
-        * while message places: #Mock-Inbox&#47;10, #INBOX&#47;1234,
-        * #%5BGmail%5DDrafts&#47;18
-        * 
-        * @param token
-        */
-       public MailFolderPlace(String token) {
-               if (isMessagePlace(token)) {
-                       initPlace4Message(token);
-               } else {
-                       initPlace4Folder(token);
-               }
-       }
-
-       public MailFolderPlace(User user) {
-               String token = user.getSettings().getInboxFolderName();
-               if (isMessagePlace(token)) {
-                       initPlace4Message(token);
-               } else {
-                       initPlace4Folder(token);
-               }
-               this.user = user;
-       }
-
-       private boolean isMessagePlace(String token) {
-               return token.contains(DELIMITER) && isEndWIthDigit(token);
-       }
-
-       private void initPlace4Folder(String token) {
-               fullName = token;
-       }
+       private String token;
 
-       private void initPlace4Message(String token) {
-               fullName = token.substring(0, token.lastIndexOf(DELIMITER));
-               uid = token.substring(token.lastIndexOf(DELIMITER) + 1);
-       }
-
-       private boolean isEndWIthDigit(String token) {
-               return token.substring(token.lastIndexOf(DELIMITER) + 1)
-                               .matches("\\d+");
-       }
-
-       public String getUid() {
-               return uid;
-       }
-
-       public String getFullName() {
-               return fullName;
+       public MailFolderPlace(String token) {
+               this.token = token;
        }
 
-       public User getUser(){
-               return user;
-       }
        // the main place use empty string such that colon'd disappear
-       @Prefix("")
+       @Prefix("folder")
        public static class Tokenizer implements 
PlaceTokenizer<MailFolderPlace> {
 
                @Override
@@ -96,36 +41,11 @@ public class MailFolderPlace extends Abs
 
                @Override
                public String getToken(MailFolderPlace place) {
-                       StringBuilder token = new 
StringBuilder(place.getFullName());
-                       if (place.getUid() != null && place.getUid().length() > 
0) {
-                               token.append(DELIMITER + place.getUid());
-                       }
-                       return token.toString();
+                       return place.getToken();
                }
        }
 
-       @Override
-       public boolean equals(Object o) {
-               if (o == null)
-                       return false;
-               if (o == this)
-                       return true;
-               if (o.getClass() != getClass())
-                       return false;
-               MailFolderPlace place = (MailFolderPlace) o;
-               return (fullName == place.fullName || (fullName != null && 
fullName
-                               .equals(place.getFullName())))
-                               && (uid == place.uid || (uid != null && 
uid.equals(place
-                                               .getUid())));
-       }
-
-       @Override
-       public int hashCode() {
-               final int prime = 31;
-               int result = 1;
-               result = prime * result
-                               + ((fullName == null) ? 0 : 
fullName.hashCode());
-               result = prime * result + ((uid == null) ? 0 : uid.hashCode());
-               return result;
+       public String getToken() {
+               return token;
        }
 }

Modified: 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/ComposeView.ui.xml
URL: 
http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/ComposeView.ui.xml?rev=1522371&r1=1522370&r2=1522371&view=diff
==============================================================================
--- 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/ComposeView.ui.xml
 (original)
+++ 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/ComposeView.ui.xml
 Thu Sep 12 04:37:35 2013
@@ -310,7 +310,7 @@
                                        </g:east>
                                        <g:center>
                                                <g:DockLayoutPanel>
-                                                       <g:north size="37">
+                                                       <g:north size="23">
                                                                <g:SimplePanel 
ui:field="editorToolBar" />
                                                        </g:north>
                                                        <g:center>

Modified: 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/FolderListView.java
URL: 
http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/FolderListView.java?rev=1522371&r1=1522370&r2=1522371&view=diff
==============================================================================
--- 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/FolderListView.java
 (original)
+++ 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/FolderListView.java
 Thu Sep 12 04:37:35 2013
@@ -218,23 +218,28 @@ import java.util.logging.Logger;
 =======
 >>>>>>> scrub code
 import org.apache.hupa.client.activity.FolderListActivity;
+import org.apache.hupa.client.ui.RightCellTree.Css;
 
 >>>>>>> integrate all of the views to their corresponding activities and 
 >>>>>>> mappers
 import com.google.gwt.core.client.GWT;
+import com.google.gwt.resources.client.ImageResource;
 import com.google.gwt.uibinder.client.UiBinder;
 import com.google.gwt.uibinder.client.UiField;
+import com.google.gwt.user.cellview.client.CellTree;
 import com.google.gwt.user.client.ui.Composite;
 import com.google.gwt.user.client.ui.SimplePanel;
 import com.google.inject.Inject;
 
 public class FolderListView extends Composite implements 
FolderListActivity.Displayable {
        @UiField SimplePanel thisView;
-       private RightCellTree cellTree;
+       private CellTree cellTree;
+       private FoldersTreeViewModel viewModel; 
 
        @Inject
        public FolderListView(final FoldersTreeViewModel viewModel) {
                initWidget(binder.createAndBindUi(this));
 <<<<<<< HEAD
+<<<<<<< HEAD
 //             if (place instanceof ComposePlace) {
 //                     contactPanel = new HTMLPanel("contacts list");
 //                     if (thisView.getWidget() != null
@@ -263,11 +268,30 @@ public class FolderListView extends Comp
 >>>>>>> fixed issue#32
 =======
                cellTree = new RightCellTree(viewModel);
+=======
+               this.viewModel = viewModel;
+               cellTree = new CellTree(viewModel,null,Resources.INSTANCE);
+>>>>>>> try to rearrange the places and history managment.
                cellTree.setAnimationEnabled(true);
                thisView.add(cellTree);
 >>>>>>> fixed issue#45, issue#47, issue#51. change the layout of composite, 
 >>>>>>> don't use contact instead of folders list
        }
+       public interface Resources extends CellTree.Resources {
+
+               Resources INSTANCE = GWT.create(Resources.class);
 
+               @Source("res/CssFolderListView.css")
+               public Css cellTreeStyle();
+
+               @Source("res/listicons.png")
+               public ImageResource listicons();
+       }
+       
+       @Override
+       public void refresh(){
+               viewModel.refresh();
+       }
+       
        interface FolderListUiBinder extends UiBinder<SimplePanel, 
FolderListView> {
        }
 

Modified: 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/FoldersTreeViewModel.java
URL: 
http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/FoldersTreeViewModel.java?rev=1522371&r1=1522370&r2=1522371&view=diff
==============================================================================
--- 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/FoldersTreeViewModel.java
 (original)
+++ 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/FoldersTreeViewModel.java
 Thu Sep 12 04:37:35 2013
@@ -23,7 +23,7 @@ import java.util.List;
 
 import org.apache.hupa.client.HupaController;
 import org.apache.hupa.client.activity.NotificationActivity;
-import org.apache.hupa.client.activity.TopBarActivity;
+import org.apache.hupa.client.place.IMAPMessagePlace;
 import org.apache.hupa.client.place.MailFolderPlace;
 import org.apache.hupa.client.rf.HupaRequestFactory;
 import org.apache.hupa.shared.domain.ImapFolder;
@@ -56,7 +56,6 @@ public class FoldersTreeViewModel implem
        @Inject private HupaRequestFactory rf;
        @Inject private HupaController controller;
        @Inject private PlaceController placeController;
-       @Inject private TopBarActivity.Displayable topBar;
        @Inject private NotificationActivity.Displayable notice;
        private User user;
        private ImapFolder currentFolder;
@@ -69,11 +68,11 @@ public class FoldersTreeViewModel implem
                        @SuppressWarnings("unchecked")
                        @Override
                        public void onSelectionChange(SelectionChangeEvent 
event) {
-                               topBar.showLoading("loading");//FIXME delay to 
show, why
+                               controller.showTopLoading("Loading...");
                                SingleSelectionModel<ImapFolder> selectionModel 
= (SingleSelectionModel<ImapFolder>) event.getSource();
                                currentFolder = 
selectionModel.getSelectedObject();
                                eventBus.fireEvent(new LoadMessagesEvent(user, 
selectionModel.getSelectedObject()));
-                               placeController.goTo(new 
MailFolderPlace(selectionModel.getSelectedObject().getFullName()));
+                               placeController.goTo(new 
IMAPMessagePlace(selectionModel.getSelectedObject().getFullName()));
                        }
                });
                eventBus.addHandler(LoginEvent.TYPE, new LoginEventHandler() {
@@ -90,6 +89,11 @@ public class FoldersTreeViewModel implem
                                        return item == null ? null : 
item.getFullName();
                                }
                        });
+       private ImapFolderListDataProvider dataProvider;
+
+       public void refresh() {
+               dataProvider.refresh();
+       }
 
        /**
         * Get the {@link NodeInfo} that provides the children of the specified
@@ -97,11 +101,12 @@ public class FoldersTreeViewModel implem
         */
        @Override
        public <T> NodeInfo<?> getNodeInfo(T value) {
-               return new DefaultNodeInfo<ImapFolder>(new 
ImapFolderListDataProvider(rf, (ImapFolder) value), new FolderCell(
-                               ClickEvent.getType().getName()), 
selectionModel, null);
+               dataProvider = new ImapFolderListDataProvider(rf, (ImapFolder) 
value);
+               return new DefaultNodeInfo<ImapFolder>(dataProvider, new 
FolderCell(ClickEvent.getType().getName()),
+                               selectionModel, null);
        }
 
-       class FolderCell extends AbstractCell<ImapFolder> implements 
HasEditable{
+       class FolderCell extends AbstractCell<ImapFolder> implements 
HasEditable {
                public FolderCell(String... consumedEvents) {
                        super(consumedEvents);
                }
@@ -111,26 +116,32 @@ public class FoldersTreeViewModel implem
                        if (value != null) {
                                sb.appendEscaped(value.getName());
                        }
+                       if (value.getUnseenMessageCount() > 0) {
+                               sb.appendHtmlConstant("<span 
style='position:absolute;right:6px;top:3px;font-weight:bold;'>(");
+                               sb.appendHtmlConstant("" + 
value.getUnseenMessageCount());
+                               sb.appendHtmlConstant(")</span>");
+                       }
                }
 
-//             @Override
-//        public Set<String> getConsumedEvents() {
-//            HashSet<String> events = new HashSet<String>();
-//            events.add("click");
-//            return events;
-//        }
+               // @Override
+               // public Set<String> getConsumedEvents() {
+               // HashSet<String> events = new HashSet<String>();
+               // events.add("click");
+               // return events;
+               // }
                // TODO is this a click event?
                @Override
                public void onBrowserEvent(Context context, Element parent, 
ImapFolder value, NativeEvent event,
                                ValueUpdater<ImapFolder> valueUpdater) {
                        super.onBrowserEvent(context, parent, value, event, 
valueUpdater);
-//                     if("click".equals(event.getType())){//FIXME why slow in 
debug mode
-//                             topBar.showLoading();
-//                     }
-                       if (clickSameFolder(value)) {
+                       // if("click".equals(event.getType())){//FIXME why slow 
in debug
+                       // mode
+                       // topBar.showLoading();
+                       // }
+//                     if (clickSameFolder(value)) {
                                eventBus.fireEvent(new LoadMessagesEvent(user, 
value));
                                placeController.goTo(new 
MailFolderPlace(value.getFullName()));
-                       }
+//                     }
                }
 
                private boolean clickSameFolder(ImapFolder value) {
@@ -139,17 +150,17 @@ public class FoldersTreeViewModel implem
                @Override
                public void startEdit() {
                        // TODO Auto-generated method stub
-                       
+
                }
                @Override
                public void cancelEdit() {
                        // TODO Auto-generated method stub
-                       
+
                }
                @Override
                public void stopEdit() {
                        // TODO Auto-generated method stub
-                       
+
                }
                @Override
                public boolean isEdit() {
@@ -158,10 +169,11 @@ public class FoldersTreeViewModel implem
                }
        }
 
-       public class ImapFolderListDataProvider extends 
AsyncDataProvider<ImapFolder> {
+       public class ImapFolderListDataProvider extends 
AsyncDataProvider<ImapFolder> implements HasRefresh{
 
                private HupaRequestFactory rf;
                private ImapFolder folder;
+               private HasData<ImapFolder> display;
 
                public ImapFolderListDataProvider(HupaRequestFactory rf, 
ImapFolder folder) {
                        this.rf = rf;
@@ -171,6 +183,7 @@ public class FoldersTreeViewModel implem
                @Override
                public void addDataDisplay(HasData<ImapFolder> display) {
                        super.addDataDisplay(display);
+                       this.display = display;
                }
 
                @Override
@@ -196,6 +209,11 @@ public class FoldersTreeViewModel implem
 
                }
 
+               @Override
+               public void refresh() {
+                       this.onRangeChanged(display);
+               }
+
        }
 
        /**

Modified: 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/LabelPropertiesView.java
URL: 
http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/LabelPropertiesView.java?rev=1522371&r1=1522370&r2=1522371&view=diff
==============================================================================
--- 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/LabelPropertiesView.java
 (original)
+++ 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/LabelPropertiesView.java
 Thu Sep 12 04:37:35 2013
@@ -343,7 +343,7 @@ public class LabelPropertiesView extends
 >>>>>>> add rename RF to label setting feature
 =======
                int parentIndex = wholeList.indexOf(isParent ? labelNode : 
labelNode.getParent());
-               parent.setSelectedIndex(parentIndex < 0 ? 0 : parentIndex);
+               parent.setSelectedIndex(parentIndex < 0 ? 0 : parentIndex + 1);
        }
        @Override
        public HasClickHandlers getSave() {

Modified: 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/MessageListFooterView.java
URL: 
http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/MessageListFooterView.java?rev=1522371&r1=1522370&r2=1522371&view=diff
==============================================================================
--- 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/MessageListFooterView.java
 (original)
+++ 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/MessageListFooterView.java
 Thu Sep 12 04:37:35 2013
@@ -142,6 +142,7 @@ public class MessageListFooterView exten
                SimplePager.Resources pagerResources = 
GWT.create(SimplePager.Resources.class);
                simplePager = new SimplePager(TextLocation.CENTER, 
pagerResources, false, 0, true);
                simplePager.setDisplay(table);
+               simplePager.startLoading();
                initWidget(binder.createAndBindUi(this));
        }
 
@@ -161,11 +162,15 @@ public class MessageListFooterView exten
        private static MessageListFooterUiBinder binder = 
GWT.create(MessageListFooterUiBinder.class);
 
 <<<<<<< HEAD
+<<<<<<< HEAD
+=======
+>>>>>>> try to rearrange the places and history managment.
        @Override
        public SimplePager getPager() {
                return simplePager;
        }
 
+<<<<<<< HEAD
        @Override
        public HasVisibility getLabelsPanel() {
                return labelsPanel;
@@ -178,4 +183,6 @@ public class MessageListFooterView exten
 
 =======
 >>>>>>> make login page as one part of the overall layout & splite layout to 
 >>>>>>> little one
+=======
+>>>>>>> try to rearrange the places and history managment.
 }

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=1522371&r1=1522370&r2=1522371&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:37:35 2013
@@ -631,7 +631,7 @@ public class MessagesCellTable extends D
                return row.getFlags().contains(IMAPFlag.SEEN);
        }
        public void markRead(final Message message, final boolean read) {
-               setStyleBasedOnSelected(read);
+//             setStyleBasedOnSelected(read);
                flush();
        }
 

Modified: 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/_CenterSettingPanel.java
URL: 
http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/_CenterSettingPanel.java?rev=1522371&r1=1522370&r2=1522371&view=diff
==============================================================================
--- 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/_CenterSettingPanel.java
 (original)
+++ 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/_CenterSettingPanel.java
 Thu Sep 12 04:37:35 2013
@@ -93,9 +93,14 @@ public class _CenterSettingPanel extends
 import java.util.Arrays;
 import java.util.List;
 
+<<<<<<< HEAD
 import com.google.gwt.cell.client.TextCell;
 >>>>>>> make label settings prototype
+=======
+import com.google.gwt.cell.client.AbstractCell;
+>>>>>>> try to rearrange the places and history managment.
 import com.google.gwt.core.client.GWT;
+import com.google.gwt.safehtml.shared.SafeHtmlBuilder;
 import com.google.gwt.uibinder.client.UiBinder;
 import com.google.gwt.uibinder.client.UiField;
 import com.google.gwt.user.cellview.client.CellList;
@@ -115,20 +120,20 @@ public class _CenterSettingPanel extends
        @UiField SplitLayoutPanel thisPanel;
 
        @UiField SimpleLayoutPanel settingsTab;
-       
+
        @UiField SimpleLayoutPanel labelListContainer;
        @UiField SimplePanel labelPropertiesContainer;
-       
+
        public _CenterSettingPanel() {
-               
+
                initWidget(binder.createAndBindUi(this));
                settingsTab.setWidget(createTabList());
        }
+
        private static final List<String> TABS = Arrays.asList("Folders");
 
        private CellList<String> createTabList() {
-               TextCell textCell = new TextCell();
-               CellList<String> cellList = new CellList<String>(textCell);
+               CellList<String> cellList = new CellList<String>(new 
SpanCell());
                
cellList.setKeyboardSelectionPolicy(KeyboardSelectionPolicy.ENABLED);
                final SingleSelectionModel<String> selectionModel = new 
SingleSelectionModel<String>();
                cellList.setSelectionModel(selectionModel);
@@ -136,7 +141,7 @@ public class _CenterSettingPanel extends
                        public void onSelectionChange(SelectionChangeEvent 
event) {
                                String selected = 
selectionModel.getSelectedObject();
                                if (selected != null) {
-//                                     Window.alert("You selected: " + 
selected);
+                                       // Window.alert("You selected: " + 
selected);
                                }
                        }
                });
@@ -148,9 +153,28 @@ public class _CenterSettingPanel extends
        }
 
 <<<<<<< HEAD
+<<<<<<< HEAD
        interface _CeterSettingPanelUiBinder extends UiBinder<DockLayoutPanel, 
_CenterSettingPanel> {
 >>>>>>> attempt to add label setting feature
 =======
+=======
+       static class SpanCell extends AbstractCell<String> {
+
+               public SpanCell() {
+               }
+
+               @Override
+               public void render(Context context, String value, 
SafeHtmlBuilder sb) {
+                       if (value == null) {
+                               return;
+                       }
+                       sb.appendHtmlConstant("<span style='display: 
block;color: #376572;text-shadow: 0px 1px 1px #fff;text-decoration: 
none;cursor: default;padding: 6px 8px 2px 8px;height: 17px;white-space: 
nowrap;'>");
+                       sb.appendHtmlConstant(value);
+                       sb.appendHtmlConstant("</span>");
+               }
+       }
+
+>>>>>>> try to rearrange the places and history managment.
        interface _CeterSettingPanelUiBinder extends UiBinder<SplitLayoutPanel, 
_CenterSettingPanel> {
 >>>>>>> add layout styles to three part
        }



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