Author: dongxu
Date: Thu Sep 12 03:52:48 2013
New Revision: 1522265

URL: http://svn.apache.org/r1522265
Log:
prepare for place management and history controller

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/mapper/MessageListActivityMapper.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/FoldersTreeViewModel.java
    
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/HupaLayout.ui.xml
    
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/MessageListView.ui.xml

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=1522265&r1=1522264&r2=1522265&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 03:52:48 2013
@@ -243,6 +243,7 @@ public class MessageListActivity extends
 =======
 =======
 import org.apache.hupa.client.place.IMAPMessagePlace;
+import org.apache.hupa.client.place.MailFolderPlace;
 import org.apache.hupa.client.rf.GetMessageDetailsRequest;
 >>>>>>> prepare for message content panel
 import org.apache.hupa.client.ui.WidgetDisplayable;
@@ -260,7 +261,6 @@ import org.apache.hupa.shared.events.Log
 import com.google.gwt.event.shared.EventBus;
 import com.google.gwt.user.client.ui.AcceptsOneWidget;
 import com.google.inject.Inject;
-import com.google.inject.Provider;
 import com.google.web.bindery.requestfactory.shared.Receiver;
 
 public class MessageListActivity extends AppBaseActivity {
@@ -315,6 +315,11 @@ public class MessageListActivity extends
                        }
                });
        }
+       
+       public MessageListActivity with(MailFolderPlace place){
+               display.setFolder(place.getFolder());
+               return this;
+       }
 
        private void cloneFolder(ImapFolder desc, ImapFolder src) {
                desc.setChildren(src.getChildren());
@@ -339,6 +344,7 @@ public class MessageListActivity extends
 >>>>>>> make message content work as expected partly
 
        public interface Displayable extends WidgetDisplayable {
+               void setFolder(ImapFolder folder);
        }
 >>>>>>> prepare for message content panel
 }

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=1522265&r1=1522264&r2=1522265&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 03:52:48 2013
@@ -80,7 +80,7 @@ public class MessageListActivityMapper i
 =======
        public Activity getActivity(Place place) {
                if(place instanceof DefaultPlace)return null;
-               else if (place instanceof MailFolderPlace) return 
messageListActivityProvider.get();
+               else if (place instanceof MailFolderPlace) return 
messageListActivityProvider.get().with((MailFolderPlace)place);
                return messageListActivityProvider.get();
 >>>>>>> integrate all of the views to their corresponding activities and 
 >>>>>>> mappers
        }

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=1522265&r1=1522264&r2=1522265&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 03:52:48 2013
@@ -30,14 +30,15 @@ public class MailFolderPlace extends Abs
        private static final String PREFIX = "folder";
        private User user;
        private String folderName = "";
-       
-       public String getFolderName(){
+
+       public String getFolderName() {
                return folderName;
        }
 
-       public void setFolderName(String folderName){
+       public void setFolderName(String folderName) {
                this.folderName = folderName;
        }
+
        /**
         * equality test based on Class type, to let different instance of this
         * Place class to be equals for CachingActivityMapper test on Place 
equality
@@ -48,7 +49,8 @@ public class MailFolderPlace extends Abs
         */
        @Override
        public boolean equals(Object otherPlace) {
-               return this == otherPlace ;//|| (otherPlace != null && 
getClass() == otherPlace.getClass());
+               return this == otherPlace;// || (otherPlace != null && 
getClass() ==
+                                                                       // 
otherPlace.getClass());
        }
 
        @Override
@@ -61,6 +63,17 @@ public class MailFolderPlace extends Abs
                return this;
        }
 
+       public MailFolderPlace with(String folderName) {
+               this.folderName = folderName;
+               return this;
+       }
+
+       public MailFolderPlace with(ImapFolder folder) {
+               this.folder = folder;
+               this.folderName = folder.getName();
+               return this;
+       }
+
        public User getUser() {
                return user;
        }
@@ -70,9 +83,7 @@ public class MailFolderPlace extends Abs
 
                @Override
                public MailFolderPlace getPlace(String token) {
-                       MailFolderPlace p = new MailFolderPlace();
-                       p.setFolderName(token);
-                       return p;
+                       return new MailFolderPlace().with(token);
                }
 
                @Override
@@ -80,15 +91,18 @@ public class MailFolderPlace extends Abs
                        return place.getFolderName();
                }
        }
+
        private ImapFolder folder;
        private String searchValue;
-       
+
        public ImapFolder getFolder() {
                return folder;
        }
+
        public String getSearchValue() {
                return searchValue;
        }
+
        public MailFolderPlace with(User user, ImapFolder folder, String 
searchValue) {
                this.folder = folder;
                this.searchValue = searchValue;

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=1522265&r1=1522264&r2=1522265&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 03:52:48 2013
@@ -21,15 +21,19 @@ package org.apache.hupa.client.ui;
 
 import java.util.List;
 
+import org.apache.hupa.client.place.MailFolderPlace;
 import org.apache.hupa.client.rf.HupaRequestFactory;
-import org.apache.hupa.client.ui.res.TreeResources;
 import org.apache.hupa.shared.domain.ImapFolder;
 import org.apache.hupa.shared.domain.User;
 import org.apache.hupa.shared.events.LoadMessagesEvent;
 
 import com.google.gwt.cell.client.AbstractCell;
-import com.google.gwt.core.shared.GWT;
+import com.google.gwt.cell.client.ValueUpdater;
+import com.google.gwt.dom.client.Element;
+import com.google.gwt.dom.client.NativeEvent;
+import com.google.gwt.event.dom.client.ClickEvent;
 import com.google.gwt.event.shared.EventBus;
+import com.google.gwt.place.shared.PlaceController;
 import com.google.gwt.safehtml.shared.SafeHtmlBuilder;
 import com.google.gwt.view.client.AsyncDataProvider;
 import com.google.gwt.view.client.HasData;
@@ -38,15 +42,17 @@ import com.google.gwt.view.client.Select
 import com.google.gwt.view.client.SingleSelectionModel;
 import com.google.gwt.view.client.TreeViewModel;
 import com.google.inject.Inject;
+import com.google.inject.Provider;
 import com.google.web.bindery.requestfactory.shared.Receiver;
 import com.google.web.bindery.requestfactory.shared.ServerFailure;
 
 public class FoldersTreeViewModel implements TreeViewModel {
 
-       protected User user;
        @Inject protected HupaRequestFactory rf;
        @Inject protected EventBus eventBus;
-       private static TreeResources images;
+       @Inject protected PlaceController placeController;
+       @Inject private Provider<MailFolderPlace> folderPlaceProvider;
+       protected User user;
 
        public FoldersTreeViewModel() {
 
@@ -59,11 +65,10 @@ public class FoldersTreeViewModel implem
                                                                .getSource();
                                                eventBus.fireEvent(new 
LoadMessagesEvent(user,
                                                                
selectionModel.getSelectedObject()));
+                                               
placeController.goTo(folderPlaceProvider.get().with(
+                                                               
selectionModel.getSelectedObject()));
                                        }
                                });
-               if (images == null) {
-                       images = GWT.create(TreeResources.class);
-               }
        }
 
        private final SingleSelectionModel<ImapFolder> selectionModel = new 
SingleSelectionModel<ImapFolder>(
@@ -81,7 +86,9 @@ public class FoldersTreeViewModel implem
        @Override
        public <T> NodeInfo<?> getNodeInfo(T value) {
                return new DefaultNodeInfo<ImapFolder>(new 
ImapFolderListDataProvider(
-                               (ImapFolder) value), new 
AbstractCell<ImapFolder>() {//TODO subfolders style and different image for 
each folder
+                               (ImapFolder) value), new 
AbstractCell<ImapFolder>(ClickEvent
+                               .getType().getName()) {
+                       // TODO different images for each folder
                        @Override
                        public void render(Context context, ImapFolder value,
                                        SafeHtmlBuilder sb) {
@@ -89,6 +96,14 @@ public class FoldersTreeViewModel implem
                                        sb.appendEscaped(value.getName());
                                }
                        }
+
+                       @Override
+                       public void onBrowserEvent(Context context, Element 
parent,
+                                       ImapFolder value, NativeEvent event,
+                                       ValueUpdater<ImapFolder> valueUpdater) {
+                               eventBus.fireEvent(new LoadMessagesEvent(user, 
value));
+                               
placeController.goTo(folderPlaceProvider.get().with(value.getName()));
+                       }
                }, selectionModel, null);
        }
 

Modified: 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/HupaLayout.ui.xml
URL: 
http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/HupaLayout.ui.xml?rev=1522265&r1=1522264&r2=1522265&view=diff
==============================================================================
--- 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/HupaLayout.ui.xml
 (original)
+++ 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/HupaLayout.ui.xml
 Thu Sep 12 03:52:48 2013
@@ -118,10 +118,10 @@
                @sprite .messageContentWorkAround {
                        margin: 8px 0 8px 8px;
                        padding-right: 8px;
-            gwt-image: 'originLogo';
-            background-position: center center;
-            width: auto;
-            height: auto;
+                       gwt-image: 'originLogo';
+                       background-position: center center;
+                       width: auto;
+                       height: auto;
                }
        </ui:style>
        <g:LayoutPanel addStyleNames="{style.minWidth}">

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=1522265&r1=1522264&r2=1522265&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 03:52:48 2013
@@ -92,7 +92,7 @@ import com.google.web.bindery.requestfac
 public class MessageListView extends Composite implements
                MessageListActivity.Displayable {
 
-       @UiField(provided = true) DataGrid<Message> table;
+       @UiField(provided = true) DataGrid<Message> grid;
        private HupaRequestFactory requestFactory;
        private EventBus eventBus;
        private ImapFolder folder;
@@ -106,9 +106,9 @@ public class MessageListView extends Com
                        final MessagesCellTable table) {
                this.requestFactory = requestFactory;
                this.eventBus = eventBus;
-               this.table = table;
+               grid = table;
                initWidget(binder.createAndBindUi(this));
-               this.table.addCellPreviewHandler(new Handler<Message>() {
+               grid.addCellPreviewHandler(new Handler<Message>() {
                        @Override
                        public void onCellPreview(CellPreviewEvent<Message> 
event) {
                                if (hasClickedButFirstCol(event)) {
@@ -118,8 +118,9 @@ public class MessageListView extends Com
                                        }
                                        
table.getSelectionModel().setSelected(event.getValue(),
                                                        true);
-                                       eventBus.fireEvent(new 
ExpandMessageEvent(user, folder,
-                                                       event.getValue()));
+                                       MessageListView.this.eventBus
+                                                       .fireEvent(new 
ExpandMessageEvent(user, folder,
+                                                                       
event.getValue()));
                                }
                        }
 
@@ -130,7 +131,7 @@ public class MessageListView extends Com
                        }
 
                });
-               this.table.addRangeChangeHandler(new RangeChangeEvent.Handler() 
{
+               grid.addRangeChangeHandler(new RangeChangeEvent.Handler() {
                        @Override
                        public void onRangeChange(RangeChangeEvent event) {
                                fetch(event.getNewRange().getStart());
@@ -180,7 +181,7 @@ public class MessageListView extends Com
                folder1.setSubscribed(folder.getSubscribed());
                folder1.setUnseenMessageCount(folder.getUnseenMessageCount());
                action.setFolder(folder1);
-               action.setOffset(table.getPageSize());
+               action.setOffset(grid.getPageSize());
                action.setSearchString(searchValue);
                action.setStart(start);
                messagesRequest.fetch(action).fire(new 
Receiver<FetchMessagesResult>() {
@@ -198,8 +199,8 @@ public class MessageListView extends Com
                                // 
folder.setMessageCount(result.getRealCount());// TODO if do
                                // this, there will be auto bean has been 
frozen.
                                // 
folder.setUnseenMessageCount(result.getRealUnreadCount());
-                               table.setRowCount(result.getRealCount());
-                               table.setRowData(start, result.getMessages());
+                               grid.setRowCount(result.getRealCount());
+                               grid.setRowData(start, result.getMessages());
 
                                // pager.setPageStart(start);
                                // eventBus.fireEvent(new 
MessagesReceivedEvent(folder1,
@@ -212,6 +213,7 @@ public class MessageListView extends Com
 <<<<<<< HEAD
 <<<<<<< HEAD
 <<<<<<< HEAD
+<<<<<<< HEAD
        interface MessageListUiBinder extends UiBinder<HTMLPanel, 
MessageListView> {
 >>>>>>> make login page as one part of the overall layout & splite layout to 
 >>>>>>> little one
 =======
@@ -226,12 +228,17 @@ public class MessageListView extends Com
 =======
        interface MessageListUiBinder extends UiBinder<DataGrid, 
MessageListView> {
 >>>>>>> deal with onResizeEvent of folder list panel, but found issue #25
+=======
+       interface MessageListUiBinder extends
+                       UiBinder<DataGrid<Message>, MessageListView> {
+>>>>>>> prepare for place management and history controller
        }
 
        private static MessageListUiBinder binder = GWT
                        .create(MessageListUiBinder.class);
 
 <<<<<<< HEAD
+<<<<<<< HEAD
        @Override
        public MessagesCellTable getGrid() {
                return grid;
@@ -275,4 +282,11 @@ public class MessageListView extends Com
 
 =======
 >>>>>>> make login page as one part of the overall layout & splite layout to 
 >>>>>>> little one
+=======
+       @Override
+       public void setFolder(ImapFolder folder) {
+               this.folder = folder;
+       }
+
+>>>>>>> prepare for place management and history controller
 }

Modified: 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/MessageListView.ui.xml
URL: 
http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/MessageListView.ui.xml?rev=1522265&r1=1522264&r2=1522265&view=diff
==============================================================================
--- 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/MessageListView.ui.xml
 (original)
+++ 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/MessageListView.ui.xml
 Thu Sep 12 03:52:48 2013
@@ -42,6 +42,10 @@
 >>>>>>> adjust to the ui of folder list panel
 =======
        xmlns:hupa='urn:import:org.apache.hupa.client.ui' 
xmlns:c='urn:import:com.google.gwt.user.cellview.client'>
+<<<<<<< HEAD
        <c:DataGrid ui:field="table" />
 >>>>>>> deal with onResizeEvent of folder list panel, but found issue #25
+=======
+       <c:DataGrid ui:field="grid" />
+>>>>>>> prepare for place management and history controller
 </ui:UiBinder>
\ No newline at end of file



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