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