Author: dongxu Date: Thu Sep 12 05:01:25 2013 New Revision: 1522431 URL: http://svn.apache.org/r1522431 Log: fixed issue#85, can move one message now in DEMO mode, while not test in Gmail mode
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/activity/MessageListFooterActivity.java james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/LabelListView.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/MessageListFooterView.ui.xml james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/MessagesCellTable.java james/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/events/MoveMessageEvent.java Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/MessageListActivity.java URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/MessageListActivity.java?rev=1522431&r1=1522430&r2=1522431&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 05:01:25 2013 @@ -294,13 +294,17 @@ import org.apache.hupa.shared.data.ImapF >>>>>>> fixed issue#82, make display message first and then mark etc. import org.apache.hupa.shared.domain.DeleteMessageByUidAction; import org.apache.hupa.shared.domain.DeleteMessageResult; +import org.apache.hupa.shared.domain.GenericResult; import org.apache.hupa.shared.domain.GetMessageDetailsAction; import org.apache.hupa.shared.domain.GetMessageDetailsResult; import org.apache.hupa.shared.domain.ImapFolder; import org.apache.hupa.shared.domain.Message; +import org.apache.hupa.shared.domain.MoveMessageAction; import org.apache.hupa.shared.domain.User; import org.apache.hupa.shared.events.DeleteClickEvent; import org.apache.hupa.shared.events.DeleteClickEventHandler; +import org.apache.hupa.shared.events.MoveMessageEvent; +import org.apache.hupa.shared.events.MoveMessageEventHandler; import org.apache.hupa.shared.events.RefreshMessagesEvent; import org.apache.hupa.shared.events.RefreshMessagesEventHandler; import org.apache.hupa.shared.events.RefreshUnreadEvent; @@ -320,7 +324,7 @@ public class MessageListActivity extends @Inject private ToolBarActivity.Displayable toolBar; @Inject private TopBarActivity.Displayable topBar; private String folderName; -// private String searchValue; + // private String searchValue; private User user; @Override @@ -377,15 +381,15 @@ public class MessageListActivity extends return "click".equals(event.getNativeEvent().getType()) && 0 != event.getColumn(); } - private void bindTo(EventBus eventBus) { + private void bindTo(final EventBus eventBus) { eventBus.addHandler(DeleteClickEvent.TYPE, new DeleteClickEventHandler() { @Override public void onDeleteClickEvent(DeleteClickEvent event) { deleteSelectedMessages(); } }); - - eventBus.addHandler(RefreshMessagesEvent.TYPE, new RefreshMessagesEventHandler(){ + + eventBus.addHandler(RefreshMessagesEvent.TYPE, new RefreshMessagesEventHandler() { @Override public void onRefresh(RefreshMessagesEvent event) { display.setSearchValue(event.getSearchValue()); @@ -393,6 +397,56 @@ public class MessageListActivity extends } }); + eventBus.addHandler(MoveMessageEvent.TYPE, new MoveMessageEventHandler() { + + @Override + public void onMoveMessageHandler(final MoveMessageEvent event) { + hc.showTopLoading("Moving..."); + MoveMessageRequest req = rf.moveMessageRequest(); + ImapFolder f = req.create(ImapFolder.class); + ImapFolder newF = req.create(ImapFolder.class); + + String fullName = null; + if (pc.getWhere() instanceof FolderPlace) { + fullName = ((FolderPlace) pc.getWhere()).getToken(); + } else { + fullName = ((MessagePlace) pc.getWhere()).getTokenWrapper().getFolder(); + } + f.setFullName(fullName); + newF.setFullName(event.getNewFolder().getFullName()); + MoveMessageAction action = req.create(MoveMessageAction.class); + + final List<Long> uids = display.getSelectedMessagesIds(); + if(uids.isEmpty() || uids.size() > 1){//TODO can move more than one message once. + hc.hideTopLoading(); + hc.showNotice("Please select one and only one message", 10000); + return; + } + action.setMessageUid(uids.get(0)); + action.setNewFolder(newF); + action.setOldFolder(f); + req.move(action).fire(new Receiver<GenericResult>() { + + @Override + public void onSuccess(GenericResult response) { + display.refresh(); + eventBus.fireEvent(new RefreshUnreadEvent()); + hc.hideTopLoading(); + hc.showNotice("The conversation has been moved to \"" + event.getNewFolder() + "\"", 10000); + } + + @Override + public void onFailure(ServerFailure error) { + super.onFailure(error); + hc.hideTopLoading(); + hc.showNotice(error.getMessage(), 10000); + } + + }); + } + + }); + } public MessageListActivity with(String folderName) { 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=1522431&r1=1522430&r2=1522431&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 05:01:25 2013 @@ -21,11 +21,15 @@ package org.apache.hupa.client.activity; <<<<<<< HEAD <<<<<<< HEAD +<<<<<<< HEAD +======= +>>>>>>> fixed issue#85, can move one message now in DEMO mode, while not test in Gmail mode import org.apache.hupa.shared.data.ImapFolderImpl; import org.apache.hupa.shared.events.MoveMessageEvent; import com.google.gwt.event.dom.client.ChangeEvent; import com.google.gwt.event.dom.client.ChangeHandler; +<<<<<<< HEAD import com.google.gwt.event.shared.EventBus; import com.google.gwt.user.cellview.client.SimplePager; import com.google.gwt.user.client.ui.AcceptsOneWidget; @@ -40,11 +44,18 @@ import com.google.gwt.user.cellview.clie import com.google.gwt.user.client.ui.AcceptsOneWidget; >>>>>>> integrate all of the views to their corresponding activities and >>>>>>> mappers ======= +======= +>>>>>>> fixed issue#85, can move one message now in DEMO mode, while not test in Gmail mode import com.google.gwt.event.shared.EventBus; import com.google.gwt.user.cellview.client.SimplePager; import com.google.gwt.user.client.ui.AcceptsOneWidget; +import com.google.gwt.user.client.ui.HasVisibility; import com.google.gwt.user.client.ui.IsWidget; +<<<<<<< HEAD >>>>>>> replace with IsWidget +======= +import com.google.gwt.user.client.ui.ListBox; +>>>>>>> fixed issue#85, can move one message now in DEMO mode, while not test in Gmail mode import com.google.inject.Inject; public class MessageListFooterActivity extends AppBaseActivity { @@ -53,6 +64,9 @@ public class MessageListFooterActivity e public void start(AcceptsOneWidget container, EventBus eventBus) { container.setWidget(display.asWidget()); <<<<<<< HEAD +<<<<<<< HEAD +======= +>>>>>>> fixed issue#85, can move one message now in DEMO mode, while not test in Gmail mode bindTo(eventBus); } @@ -67,8 +81,11 @@ public class MessageListFooterActivity e } } }); +<<<<<<< HEAD ======= >>>>>>> integrate all of the views to their corresponding activities and >>>>>>> mappers +======= +>>>>>>> fixed issue#85, can move one message now in DEMO mode, while not test in Gmail mode } @Inject private Displayable display; @@ -90,6 +107,8 @@ public class MessageListFooterActivity e public interface Displayable extends IsWidget { >>>>>>> replace with IsWidget SimplePager getPager(); + HasVisibility getLabelsPanel(); + ListBox getLabels(); } >>>>>>> try to rearrange the places and history managment. } Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/LabelListView.java URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/LabelListView.java?rev=1522431&r1=1522430&r2=1522431&view=diff ============================================================================== --- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/LabelListView.java (original) +++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/LabelListView.java Thu Sep 12 05:01:25 2013 @@ -194,11 +194,9 @@ import org.apache.hupa.client.activity.L import org.apache.hupa.client.rf.HupaRequestFactory; import org.apache.hupa.shared.domain.ImapFolder; -import com.google.gwt.cell.client.AbstractCell; import com.google.gwt.core.client.GWT; import com.google.gwt.event.dom.client.ClickEvent; import com.google.gwt.event.dom.client.HasClickHandlers; -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.uibinder.client.UiHandler; @@ -267,27 +265,6 @@ public class LabelListView extends Compo } }); - static class LabelCell extends AbstractCell<LabelNode> { - - public LabelCell() { - } - - @Override - public void render(com.google.gwt.cell.client.Cell.Context context, LabelNode value, SafeHtmlBuilder sb) { - if (value == null) { - return; - } - - if (value.getFolder().getSubscribed()) { - sb.appendHtmlConstant(value.getNameForDisplay()); - } else { - sb.appendHtmlConstant("<span style='color:gray;'>"); - sb.appendHtmlConstant(value.getNameForDisplay()); - sb.appendHtmlConstant("</span>"); - } - } - } - public class ImapLabelListDataProvider extends AsyncDataProvider<LabelNode> implements HasRefresh { private HupaRequestFactory rf; 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=1522431&r1=1522430&r2=1522431&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 05:01:25 2013 @@ -21,6 +21,9 @@ package org.apache.hupa.client.ui; <<<<<<< HEAD <<<<<<< HEAD +<<<<<<< HEAD +======= +>>>>>>> fixed issue#85, can move one message now in DEMO mode, while not test in Gmail mode import java.util.ArrayList; import java.util.List; @@ -35,6 +38,7 @@ import com.google.gwt.user.cellview.clie import com.google.gwt.user.cellview.client.SimplePager.TextLocation; import com.google.gwt.user.client.ui.Composite; import com.google.gwt.user.client.ui.HasVisibility; +<<<<<<< HEAD import com.google.gwt.user.client.ui.HorizontalPanel; import com.google.gwt.user.client.ui.ListBox; import com.google.gwt.user.client.ui.SimplePanel; @@ -129,21 +133,88 @@ import com.google.gwt.uibinder.client.Ui import com.google.gwt.user.cellview.client.SimplePager; import com.google.gwt.user.cellview.client.SimplePager.TextLocation; import com.google.gwt.user.client.ui.Composite; +======= +>>>>>>> fixed issue#85, can move one message now in DEMO mode, while not test in Gmail mode import com.google.gwt.user.client.ui.HorizontalPanel; +import com.google.gwt.user.client.ui.ListBox; +import com.google.gwt.user.client.ui.SimplePanel; import com.google.inject.Inject; +import com.google.web.bindery.requestfactory.shared.Receiver; +import com.google.web.bindery.requestfactory.shared.ServerFailure; public class MessageListFooterView extends Composite implements MessageListFooterActivity.Displayable { - @UiField(provided = true) - SimplePager simplePager; + @UiField(provided = true) SimplePager simplePager; + + @UiField ListBox labels; + @UiField SimplePanel labelsPanel; + private List<LabelNode> folderNodes = new ArrayList<LabelNode>(); + + private static final String ROOT_PATH = "imap_root"; @Inject - public MessageListFooterView(final MessagesCellTable table) { + public MessageListFooterView(final MessagesCellTable table, final HupaRequestFactory rf) { SimplePager.Resources pagerResources = GWT.create(SimplePager.Resources.class); simplePager = new SimplePager(TextLocation.CENTER, pagerResources, false, 0, true); simplePager.setDisplay(table); -// simplePager.setRangeLimited(false); + // simplePager.setRangeLimited(false); initWidget(binder.createAndBindUi(this)); + + rf.fetchFoldersRequest().fetch(null, Boolean.TRUE).fire(new Receiver<List<ImapFolder>>() { + + private String INTENTS = " "; + + @Override + public void onSuccess(List<ImapFolder> response) { + folderNodes.clear(); + if (response == null || response.size() == 0) { + } else { + for (ImapFolder folder : response) { + fillCellList(folderNodes, folder, LabelNode.ROOT, ""); + } + } + + makeParentList(); + } + + private void fillCellList(List<LabelNode> folderNodes, ImapFolder curFolder, LabelNode parent, + String intents) { + LabelNode labelNode = new LabelNode(); + labelNode.setFolder(curFolder); + labelNode.setName(curFolder.getName()); + labelNode.setNameForDisplay(intents + curFolder.getName()); + labelNode.setParent(parent); + labelNode.setPath(curFolder.getFullName()); + folderNodes.add(labelNode); + if ("inbox".equalsIgnoreCase(curFolder.getName())) { + // if(selectionModel.getSelectedObject() == null){ + // selectionModel.setSelected(labelNode, true); + // } + } + if (curFolder.getHasChildren()) { + for (ImapFolder subFolder : curFolder.getChildren()) { + fillCellList(folderNodes, subFolder, labelNode, intents + INTENTS); + } + } + } + + @Override + public void onFailure(ServerFailure error) { + if (error.isFatal()) { + throw new RuntimeException(error.getMessage()); + } + } + + }); + } + + private void makeParentList() { + labels.clear(); + labels.addItem("Move to...", ROOT_PATH); + for (LabelNode folderNode : this.folderNodes) { + labels.addItem(folderNode.getNameForDisplay().replace(" ", ". "), folderNode.getPath()); + } + } <<<<<<< HEAD @@ -175,6 +246,9 @@ public class MessageListFooterView exten } <<<<<<< HEAD +<<<<<<< HEAD +======= +>>>>>>> fixed issue#85, can move one message now in DEMO mode, while not test in Gmail mode @Override public HasVisibility getLabelsPanel() { return labelsPanel; @@ -185,8 +259,11 @@ public class MessageListFooterView exten return labels; } +<<<<<<< HEAD ======= >>>>>>> make login page as one part of the overall layout & splite layout to >>>>>>> little one ======= >>>>>>> try to rearrange the places and history managment. +======= +>>>>>>> fixed issue#85, can move one message now in DEMO mode, while not test in Gmail mode } Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/MessageListFooterView.ui.xml URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/MessageListFooterView.ui.xml?rev=1522431&r1=1522430&r2=1522431&view=diff ============================================================================== --- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/MessageListFooterView.ui.xml (original) +++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/MessageListFooterView.ui.xml Thu Sep 12 05:01:25 2013 @@ -24,6 +24,7 @@ <c:SimplePager ui:field="simplePager" /> <g:SimplePanel ui:field="labelsPanel" addStyleNames="{style.moveMessage}"> <g:ListBox ui:field="labels"></g:ListBox> +<<<<<<< HEAD </g:SimplePanel> </g:HorizontalPanel> ======= @@ -48,6 +49,8 @@ ======= <g:SimplePanel addStyleNames="{style.moveMessage}"> <g:HTML>Hello</g:HTML> +======= +>>>>>>> fixed issue#85, can move one message now in DEMO mode, while not test in Gmail mode </g:SimplePanel> </g:HorizontalPanel> >>>>>>> remove deprecated code 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=1522431&r1=1522430&r2=1522431&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 05:01:25 2013 @@ -838,7 +838,7 @@ public class MessagesCellTable extends D dataProvider.updateRowData(range.getStart(), sortedList); } - private String parseFolderName(final PlaceController pc) { + public String parseFolderName(final PlaceController pc) { Place place = pc.getWhere(); if (place instanceof FolderPlace) { folderName = ((FolderPlace) place).getToken(); Modified: james/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/events/MoveMessageEvent.java URL: http://svn.apache.org/viewvc/james/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/events/MoveMessageEvent.java?rev=1522431&r1=1522430&r2=1522431&view=diff ============================================================================== --- james/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/events/MoveMessageEvent.java (original) +++ james/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/events/MoveMessageEvent.java Thu Sep 12 05:01:25 2013 @@ -119,7 +119,11 @@ public class MoveMessageEvent extends Gw this.message = message; } - public User getUser() { + public MoveMessageEvent(ImapFolder newFolder) { + this.newFolder = newFolder; + } + + public User getUser() { return user; } --------------------------------------------------------------------- To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org