Author: dongxu Date: Thu Sep 12 02:49:20 2013 New Revision: 1522145 URL: http://svn.apache.org/r1522145 Log: (empty)
Added: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/CachingTopActivityMapper.java james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/CachingWestActivityMapper.java Removed: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/place/MailPlace.java Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/IMAPMessageListActivity.java james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/TopActivity.java james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/WestActivity.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/place/IMAPMessagePlace.java james/hupa/trunk/client/src/main/java/org/apache/hupa/client/place/MailInboxPlace.java james/hupa/trunk/client/src/main/java/org/apache/hupa/client/place/MessageSendPlace.java james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/IMAPMessageListView.java james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/WestView.java Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/IMAPMessageListActivity.java URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/IMAPMessageListActivity.java?rev=1522145&r1=1522144&r2=1522145&view=diff ============================================================================== --- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/IMAPMessageListActivity.java (original) +++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/IMAPMessageListActivity.java Thu Sep 12 02:49:20 2013 @@ -384,6 +384,7 @@ import java.util.ArrayList; import net.customware.gwt.dispatch.client.DispatchAsync; <<<<<<< HEAD +<<<<<<< HEAD import org.apache.hupa.client.HandlerRegistrationAdapter; import org.apache.hupa.client.activity.MessageSendActivity.Type; import org.apache.hupa.client.evo.HupaEvoCallback; @@ -422,20 +423,49 @@ import com.google.gwt.event.dom.client.C import com.google.gwt.event.dom.client.ClickEvent; import com.google.gwt.event.dom.client.ClickHandler; ======= +======= +import org.apache.hupa.client.HandlerRegistrationAdapter; +import org.apache.hupa.client.HupaCallback; +import org.apache.hupa.client.HupaEvoCallback; +>>>>>>> import org.apache.hupa.client.mvp.WidgetDisplayable; import org.apache.hupa.client.place.MailInboxPlace; import org.apache.hupa.client.widgets.HasDialog; import org.apache.hupa.shared.data.IMAPFolder; import org.apache.hupa.shared.data.Message; import org.apache.hupa.shared.data.User; +import org.apache.hupa.shared.data.Message.IMAPFlag; import org.apache.hupa.shared.events.DecreaseUnseenEvent; import org.apache.hupa.shared.events.ExpandMessageEvent; +import org.apache.hupa.shared.events.FolderSelectionEvent; +import org.apache.hupa.shared.events.FolderSelectionEventHandler; +import org.apache.hupa.shared.events.IncreaseUnseenEvent; +import org.apache.hupa.shared.events.LoadMessagesEvent; import org.apache.hupa.shared.events.LogoutEvent; import org.apache.hupa.shared.events.LogoutEventHandler; +import org.apache.hupa.shared.events.MessagesReceivedEvent; +import org.apache.hupa.shared.events.MessagesReceivedEventHandler; +import org.apache.hupa.shared.events.MoveMessageEvent; +import org.apache.hupa.shared.events.MoveMessageEventHandler; +import org.apache.hupa.shared.events.NewMessageEvent; +import org.apache.hupa.shared.rpc.DeleteAllMessages; +import org.apache.hupa.shared.rpc.DeleteMessageByUid; +import org.apache.hupa.shared.rpc.DeleteMessageResult; +import org.apache.hupa.shared.rpc.GenericResult; +import org.apache.hupa.shared.rpc.MoveMessage; +import org.apache.hupa.shared.rpc.MoveMessageResult; +import org.apache.hupa.shared.rpc.SetFlag; import org.apache.hupa.widgets.ui.HasEnable; import com.google.gwt.activity.shared.AbstractActivity; +<<<<<<< HEAD >>>>>>> Change to new mvp framework - first step +======= +import com.google.gwt.event.dom.client.ChangeEvent; +import com.google.gwt.event.dom.client.ChangeHandler; +import com.google.gwt.event.dom.client.ClickEvent; +import com.google.gwt.event.dom.client.ClickHandler; +>>>>>>> import com.google.gwt.event.dom.client.HasChangeHandlers; import com.google.gwt.event.dom.client.HasClickHandlers; import com.google.gwt.event.shared.EventBus; @@ -443,12 +473,18 @@ import com.google.gwt.gen2.table.event.c import com.google.gwt.gen2.table.event.client.HasPageLoadHandlers; import com.google.gwt.gen2.table.event.client.HasRowSelectionHandlers; <<<<<<< HEAD +<<<<<<< HEAD +======= +>>>>>>> import com.google.gwt.gen2.table.event.client.PageChangeEvent; import com.google.gwt.gen2.table.event.client.PageChangeHandler; import com.google.gwt.gen2.table.event.client.RowSelectionEvent; import com.google.gwt.gen2.table.event.client.RowSelectionHandler; +<<<<<<< HEAD ======= >>>>>>> Change to new mvp framework - first step +======= +>>>>>>> import com.google.gwt.place.shared.PlaceController; import com.google.gwt.user.client.ui.AcceptsOneWidget; import com.google.gwt.user.client.ui.HasValue; @@ -747,9 +783,220 @@ public class IMAPMessageListActivity ext } private void bind(){ - + eventBus.addHandler(MessagesReceivedEvent.TYPE, new MessagesReceivedEventHandler() { + + public void onMessagesReceived(MessagesReceivedEvent event) { + + // fill the oracle + display.fillSearchOracle(event.getMessages()); + } + + }); + display.getSearchClick().addClickHandler(new ClickHandler() { + + public void onClick(ClickEvent event) { + String searchValue = null; + if (display.getSearchValue().getValue().trim().length() > 0) { + searchValue = display.getSearchValue().getValue().trim(); + } + eventBus.fireEvent(new LoadMessagesEvent(user, folder, searchValue)); + } + + }); + eventBus.addHandler(MoveMessageEvent.TYPE, new MoveMessageEventHandler() { + + public void onMoveMessageHandler(MoveMessageEvent event) { + final Message message = event.getMessage(); + dispatcher.execute(new MoveMessage(event.getOldFolder(), event.getNewFolder(), message.getUid()), new HupaEvoCallback<MoveMessageResult>(dispatcher, eventBus) { + public void callback(MoveMessageResult result) { + ArrayList<Message> messageArray = new ArrayList<Message>(); + messageArray.add(message); + display.removeMessages(messageArray); + } + }); + } + + }); + display.getSelectAllClick().addClickHandler(new ClickHandler() { + + public void onClick(ClickEvent event) { + display.deselectAllMessages(); + display.selectAllMessages(); + } + + }); + display.getSelectNoneClick().addClickHandler(new ClickHandler() { + + public void onClick(ClickEvent event) { + display.deselectAllMessages(); + } + + }); + display.getDeleteClick().addClickHandler(new com.google.gwt.event.dom.client.ClickHandler() { + + public void onClick(com.google.gwt.event.dom.client.ClickEvent event) { + if (folder.getFullName().equals(user.getSettings().getTrashFolderName())) { + display.getConfirmDeleteDialog().show(); + } else { + deleteMessages(); + } + + } + + }); + display.getConfirmDeleteDialogClick().addClickHandler(new ClickHandler() { + + public void onClick(ClickEvent event) { + deleteMessages(); + } + + }); + display.getNewClick().addClickHandler(new com.google.gwt.event.dom.client.ClickHandler() { + + public void onClick(com.google.gwt.event.dom.client.ClickEvent event) { + eventBus.fireEvent(new NewMessageEvent()); + } + + }); + display.getDeleteAllClick().addClickHandler(new ClickHandler() { + + public void onClick(ClickEvent event) { + display.getConfirmDeleteAllDialog().center(); + } + + }); + display.getConfirmDeleteAllDialogClick().addClickHandler(new ClickHandler() { + + public void onClick(ClickEvent event) { + dispatcher.execute(new DeleteAllMessages(folder), new HupaEvoCallback<DeleteMessageResult>(dispatcher, eventBus) { + public void callback(DeleteMessageResult result) { + display.reset(); + display.reloadData(); +// eventBus.fireEvent(new DecreaseUnseenEvent(user,folder,result.getCount())); + } + }); + } + + }); + display.getMarkSeenClick().addClickHandler( new ClickHandler() { + public void onClick(ClickEvent event) { + final ArrayList<Message> selectedMessages = new ArrayList<Message>(display.getSelectedMessages()); + ArrayList<Long> uids = new ArrayList<Long>(); + for (Message m : selectedMessages) { + if (m.getFlags().contains(IMAPFlag.SEEN) == false) { + uids.add(m.getUid()); + } else { + selectedMessages.remove(m); + } + } + dispatcher.execute(new SetFlag(folder, IMAPFlag.SEEN, true, uids), new HupaEvoCallback<GenericResult>(dispatcher, eventBus) { + public void callback(GenericResult result) { + for (Message m : selectedMessages) { + if (m.getFlags().contains(IMAPFlag.SEEN) == false) { + m.getFlags().add(IMAPFlag.SEEN); + } + } + display.redraw(); + eventBus.fireEvent(new DecreaseUnseenEvent(user, folder,selectedMessages.size())); + } + }); + } + + }); + display.getMarkUnseenClick().addClickHandler(new ClickHandler() { + + public void onClick(ClickEvent event) { + final ArrayList<Message> selectedMessages = new ArrayList<Message>(display.getSelectedMessages()); + ArrayList<Long> uids = new ArrayList<Long>(); + for (Message m : selectedMessages) { + if (m.getFlags().contains(IMAPFlag.SEEN)) { + uids.add(m.getUid()); + } else { + selectedMessages.remove(m); + } + } + + dispatcher.execute(new SetFlag(folder, IMAPFlag.SEEN, false, uids), new HupaEvoCallback<GenericResult>(dispatcher, eventBus) { + public void callback(GenericResult result) { + for (Message m : selectedMessages) { + if (m.getFlags().contains(IMAPFlag.SEEN)) { + m.getFlags().remove(IMAPFlag.SEEN); + } + } + display.redraw(); + eventBus.fireEvent(new IncreaseUnseenEvent(user, folder,selectedMessages.size())); + } + }); + } + + + }); + eventBus.addHandler(FolderSelectionEvent.TYPE, new FolderSelectionEventHandler() {//TODO + + public void onFolderSelectionEvent(FolderSelectionEvent event) { + folder = event.getFolder(); + user = event.getUser(); + } + + }); + new HandlerRegistrationAdapter(display.getDataTableSelection().addRowSelectionHandler(new RowSelectionHandler() { + public void onRowSelection(RowSelectionEvent event) { + if (event.getSelectedRows().size() == 0) { + display.getDeleteEnable().setEnabled(false); + display.getMarkSeenEnable().setEnabled(false); + display.getMarkUnseenEnable().setEnabled(false); + } else { + display.getDeleteEnable().setEnabled(true); + display.getMarkSeenEnable().setEnabled(true); + display.getMarkUnseenEnable().setEnabled(true); + } + } + + + + })); + display.getRefreshClick().addClickHandler(new ClickHandler() { + + public void onClick(ClickEvent event) { + display.reset(); + display.reloadData(); + } + + }); + new HandlerRegistrationAdapter(display.getDataTablePageChange().addPageChangeHandler(new PageChangeHandler() {//TODO + + public void onPageChange(PageChangeEvent event) { + //firePresenterRevealedEvent(true); +// firePresenterChangedEvent(); + } + + })); + display.getRowsPerPageChange().addChangeHandler(new ChangeHandler() { + + public void onChange(ChangeEvent event) { + //firePresenterRevealedEvent(true); +// firePresenterChangedEvent(); + } + + }); + display.addTableListener(tableListener); } + private void deleteMessages() { + final ArrayList<Message> selectedMessages = new ArrayList<Message>(display.getSelectedMessages()); + ArrayList<Long> uids = new ArrayList<Long>(); + for (Message m : selectedMessages) { + uids.add(m.getUid()); + } + // maybe its better to just remove the messages from the table and expect the removal will work + display.removeMessages(selectedMessages); + + dispatcher.execute(new DeleteMessageByUid(folder,uids), new HupaEvoCallback<DeleteMessageResult>(dispatcher, eventBus) { + public void callback(DeleteMessageResult result) { + eventBus.fireEvent(new DecreaseUnseenEvent(user,folder,result.getCount())); + } + }); + } public IMAPMessageListActivity with(User user){ this.user = user; this.folder = new IMAPFolder(user.getSettings().getInboxFolderName()); Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/TopActivity.java URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/TopActivity.java?rev=1522145&r1=1522144&r2=1522145&view=diff ============================================================================== --- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/TopActivity.java (original) +++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/TopActivity.java Thu Sep 12 02:49:20 2013 @@ -46,6 +46,7 @@ import org.apache.hupa.shared.data.User; ======= import org.apache.hupa.client.HupaEvoCallback; import org.apache.hupa.client.mvp.WidgetDisplayable; +import org.apache.hupa.client.place.DefaultPlace; import org.apache.hupa.shared.data.User; >>>>>>> introduce the top activity import org.apache.hupa.shared.events.FlashEvent; @@ -102,9 +103,13 @@ import com.google.gwt.user.client.ui.Acc import com.google.gwt.user.client.ui.HasText; import com.google.inject.Inject; <<<<<<< HEAD +<<<<<<< HEAD import com.google.inject.Provider; ======= >>>>>>> introduce the top activity +======= +import com.google.inject.Provider; +>>>>>>> public class TopActivity extends AbstractActivity { @@ -161,6 +166,7 @@ public class TopActivity extends Abstrac showLogin(username); noopTimer.cancel(); <<<<<<< HEAD +<<<<<<< HEAD TopActivity.this.placeController.goTo(defaultPlaceProvider.get()); } <<<<<<< HEAD @@ -183,6 +189,9 @@ public class TopActivity extends Abstrac eventBus.addHandler(ServerStatusEvent.TYPE, new ServerStatusEventHandler() { ======= ======= +======= + TopActivity.this.placeController.goTo(defaultPlaceProvider.get()); +>>>>>>> } >>>>>>> introduce the top activity @@ -324,16 +333,24 @@ public class TopActivity extends Abstrac private Timer noopTimer = new IdleTimer(); @Inject +<<<<<<< HEAD public TopActivity(Displayable display, EventBus eventBus, PlaceController placeController, >>>>>>> introduce the top activity +======= + public TopActivity(Displayable display, EventBus eventBus, PlaceController placeController, Provider<DefaultPlace> defaultPlaceProvider, +>>>>>>> HupaConstants constants, DispatchAsync dispatcher) { this.dispatcher = dispatcher; this.display = display; this.eventBus = eventBus; <<<<<<< HEAD +<<<<<<< HEAD this.defaultPlaceProvider = defaultPlaceProvider; ======= >>>>>>> introduce the top activity +======= + this.defaultPlaceProvider = defaultPlaceProvider; +>>>>>>> this.constants = constants; this.placeController = placeController; @@ -376,9 +393,13 @@ public class TopActivity extends Abstrac private final PlaceController placeController; private final DispatchAsync dispatcher; <<<<<<< HEAD +<<<<<<< HEAD private final Provider<DefaultPlace> defaultPlaceProvider; ======= >>>>>>> introduce the top activity +======= + private final Provider<DefaultPlace> defaultPlaceProvider; +>>>>>>> private User user; private ServerStatus serverStatus = ServerStatus.Available; Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/WestActivity.java URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/WestActivity.java?rev=1522145&r1=1522144&r2=1522145&view=diff ============================================================================== --- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/WestActivity.java (original) +++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/WestActivity.java Thu Sep 12 02:49:20 2013 @@ -302,15 +302,54 @@ import org.apache.hupa.shared.rpc.GetMes import org.apache.hupa.shared.rpc.GetMessageDetailsResult; ======= import org.apache.hupa.client.HupaEvoCallback; +import org.apache.hupa.client.mvp.MessageSendPresenter.Type; +import org.apache.hupa.client.mvp.MainPresenter; import org.apache.hupa.client.mvp.WidgetContainerDisplayable; +import org.apache.hupa.client.place.IMAPMessagePlace; +import org.apache.hupa.client.place.MailInboxPlace; +import org.apache.hupa.client.place.MessageSendPlace; import org.apache.hupa.client.widgets.HasDialog; import org.apache.hupa.client.widgets.IMAPTreeItem; import org.apache.hupa.shared.data.IMAPFolder; +import org.apache.hupa.shared.data.Message; +import org.apache.hupa.shared.data.Message.IMAPFlag; +import org.apache.hupa.shared.data.MessageDetails; import org.apache.hupa.shared.data.User; +import org.apache.hupa.shared.events.BackEvent; +import org.apache.hupa.shared.events.BackEventHandler; +import org.apache.hupa.shared.events.DecreaseUnseenEvent; +import org.apache.hupa.shared.events.DecreaseUnseenEventHandler; +import org.apache.hupa.shared.events.ExpandMessageEvent; +import org.apache.hupa.shared.events.ExpandMessageEventHandler; +import org.apache.hupa.shared.events.FolderSelectionEvent; +import org.apache.hupa.shared.events.FolderSelectionEventHandler; +import org.apache.hupa.shared.events.ForwardMessageEvent; +import org.apache.hupa.shared.events.ForwardMessageEventHandler; +import org.apache.hupa.shared.events.IncreaseUnseenEvent; +import org.apache.hupa.shared.events.IncreaseUnseenEventHandler; +import org.apache.hupa.shared.events.LoadMessagesEvent; +import org.apache.hupa.shared.events.LoadMessagesEventHandler; +import org.apache.hupa.shared.events.LoginEvent; +import org.apache.hupa.shared.events.LoginEventHandler; +import org.apache.hupa.shared.events.MessagesReceivedEvent; +import org.apache.hupa.shared.events.MessagesReceivedEventHandler; +import org.apache.hupa.shared.events.NewMessageEvent; +import org.apache.hupa.shared.events.NewMessageEventHandler; +import org.apache.hupa.shared.events.ReplyMessageEvent; +import org.apache.hupa.shared.events.ReplyMessageEventHandler; +import org.apache.hupa.shared.events.SentMessageEvent; +import org.apache.hupa.shared.events.SentMessageEventHandler; +import org.apache.hupa.shared.rpc.CreateFolder; +import org.apache.hupa.shared.rpc.DeleteFolder; import org.apache.hupa.shared.rpc.FetchFolders; import org.apache.hupa.shared.rpc.FetchFoldersResult; import org.apache.hupa.shared.rpc.GenericResult; +<<<<<<< HEAD >>>>>>> Change to new mvp framework - first step +======= +import org.apache.hupa.shared.rpc.GetMessageDetails; +import org.apache.hupa.shared.rpc.GetMessageDetailsResult; +>>>>>>> import org.apache.hupa.shared.rpc.RenameFolder; import org.apache.hupa.widgets.event.EditEvent; import org.apache.hupa.widgets.event.EditHandler; @@ -319,6 +358,9 @@ import org.apache.hupa.widgets.ui.HasEna import com.google.gwt.activity.shared.AbstractActivity; <<<<<<< HEAD +<<<<<<< HEAD +======= +>>>>>>> import com.google.gwt.core.client.GWT; import com.google.gwt.event.dom.client.ClickEvent; import com.google.gwt.event.dom.client.ClickHandler; @@ -335,6 +377,7 @@ import com.google.gwt.user.client.ui.Acc import com.google.gwt.user.client.ui.TreeItem; import com.google.inject.Inject; import com.google.inject.Provider; +<<<<<<< HEAD import com.google.web.bindery.requestfactory.shared.Receiver; ======= import com.google.gwt.event.dom.client.HasClickHandlers; @@ -345,6 +388,8 @@ import com.google.gwt.user.client.ui.Acc import com.google.gwt.user.client.ui.TreeItem; import com.google.inject.Inject; >>>>>>> Change to new mvp framework - first step +======= +>>>>>>> public class WestActivity extends AbstractActivity { @@ -352,6 +397,7 @@ public class WestActivity extends Abstra private final EventBus eventBus; private final PlaceController placeController; <<<<<<< HEAD +<<<<<<< HEAD private final Provider<IMAPMessagePlace> IMAPMessagePlaceProvider; private final Provider<MessageSendPlace> messageSendPlaceProvider; private final Provider<IMAPMessagePlace> messagePlaceProvider; @@ -373,27 +419,43 @@ public class WestActivity extends Abstra public WestActivity(Displayable display, EventBus eventBus, PlaceController placeController, DispatchAsync dispatcher,Provider<IMAPMessagePlace> IMAPMessagePlaceProvider,Provider<MessageSendPlace> messageSendPlaceProvider,Provider<IMAPMessagePlace> messagePlaceProvider){ ======= +======= + private final Provider<MailInboxPlace> mailInboxPlaceProvider; + private final Provider<IMAPMessagePlace> IMAPMessagePlaceProvider; + private final Provider<MessageSendPlace> messageSendPlaceProvider; +>>>>>>> private DispatchAsync dispatcher; private User user; private IMAPFolder folder; private IMAPTreeItem tItem; private HasEditable editableTreeItem; + private String searchValue; @Inject public WestActivity(Displayable display, EventBus eventBus, PlaceController placeController, +<<<<<<< HEAD DispatchAsync dispatcher){ >>>>>>> Change to new mvp framework - first step +======= + DispatchAsync dispatcher,Provider<MailInboxPlace> mailInboxPlaceProvider,Provider<IMAPMessagePlace> IMAPMessagePlaceProvider,Provider<MessageSendPlace> messageSendPlaceProvider){ +>>>>>>> this.dispatcher = dispatcher; this.display = display; this.eventBus = eventBus; this.placeController = placeController; <<<<<<< HEAD +<<<<<<< HEAD this.IMAPMessagePlaceProvider = IMAPMessagePlaceProvider; this.messageSendPlaceProvider = messageSendPlaceProvider; this.messagePlaceProvider = messagePlaceProvider; ======= >>>>>>> Change to new mvp framework - first step +======= + this.mailInboxPlaceProvider = mailInboxPlaceProvider; + this.IMAPMessagePlaceProvider = IMAPMessagePlaceProvider; + this.messageSendPlaceProvider = messageSendPlaceProvider; +>>>>>>> } @@ -542,6 +604,9 @@ public class WestActivity extends Abstra } private void bind(){ <<<<<<< HEAD +<<<<<<< HEAD +======= +>>>>>>> eventBus.addHandler(LoadMessagesEvent.TYPE, new LoadMessagesEventHandler() { public void onLoadMessagesEvent(LoadMessagesEvent loadMessagesEvent) { @@ -568,9 +633,13 @@ public class WestActivity extends Abstra eventBus.fireEvent(new DecreaseUnseenEvent(user, folder)); } display.setLoadingMessage(false); +<<<<<<< HEAD // showMessage(user, folder, message, result.getMessageDetails()); placeController.goTo(messagePlaceProvider.get().with(user,folder, message,result.getMessageDetails())); +======= + showMessage(user, folder, message, result.getMessageDetails()); +>>>>>>> } }); } @@ -658,7 +727,11 @@ public class WestActivity extends Abstra tItem = (IMAPTreeItem) event.getSelectedItem(); if (tItem.isEdit()) return; +<<<<<<< HEAD folder = (IMAPFolderProxy) tItem.getUserObject(); +======= + folder = (IMAPFolder) tItem.getUserObject(); +>>>>>>> eventBus.fireEvent(new LoadMessagesEvent(user, folder)); } @@ -669,7 +742,11 @@ public class WestActivity extends Abstra tItem = (IMAPTreeItem) event.getSelectedItem(); if (tItem.isEdit()) return; +<<<<<<< HEAD folder = (IMAPFolderProxy) tItem.getUserObject(); +======= + folder = (IMAPFolder) tItem.getUserObject(); +>>>>>>> if (folder.getFullName().equalsIgnoreCase(user.getSettings().getInboxFolderName())) { display.getDeleteEnable().setEnabled(false); display.getRenameEnable().setEnabled(false); @@ -742,7 +819,11 @@ public class WestActivity extends Abstra eventBus.addHandler(MessagesReceivedEvent.TYPE, new MessagesReceivedEventHandler() { public void onMessagesReceived(MessagesReceivedEvent event) { +<<<<<<< HEAD IMAPFolderProxy f = event.getFolder(); +======= + IMAPFolder f = event.getFolder(); +>>>>>>> display.updateTreeItem(f); } @@ -751,14 +832,21 @@ public class WestActivity extends Abstra public void onLogin(LoginEvent event) { user = event.getUser(); +<<<<<<< HEAD // folder = (IMAPFolderProxy)new IMAPFolder(user.getSettings().getInboxFolderName());; searchValue = null; // showMessageTable(user, folder, searchValue); +======= + folder = new IMAPFolder(user.getSettings().getInboxFolderName());; + searchValue = null; + showMessageTable(user, folder, searchValue); +>>>>>>> } }); exportJSMethods(this); +<<<<<<< HEAD } @@ -813,6 +901,65 @@ public class WestActivity extends Abstra } >>>>>>> Change to new mvp framework - first step +======= + } + + + public void openLink(String url) { + Window.open(url, "_blank", ""); + } + + public void mailTo(String mailto) { +// sendPresenter.revealDisplay(user, mailto); + } + private native void exportJSMethods(WestActivity westactivity) /*-{ + $wnd.openLink = function(url) { + try { + westactivi...@org.apache.hupa.client.activity.WestActivity::openLink(Ljava/lang/String;) (url); + } catch(e) {} + return false; + }; + $wnd.mailTo = function(mail) { + try { + westactivi...@org.apache.hupa.client.activity.WestActivity::mailTo(Ljava/lang/String;) (mail); + } catch(e) {} + return false; + }; + }-*/; + private void showMessageTable(User user, IMAPFolder folder, String searchValue) { + this.user = user; + this.folder = folder; + this.searchValue = searchValue; + placeController.goTo(mailInboxPlaceProvider.get().with(user)); + } + + private void showMessage(User user, IMAPFolder folder, Message message, MessageDetails details) { + placeController.goTo(IMAPMessagePlaceProvider.get()); + } + + private void showNewMessage() { + placeController.goTo(this.messageSendPlaceProvider.get()); +// sendPresenter.revealDisplay(user); + } + + private void showForwardMessage(ForwardMessageEvent event) { + placeController.goTo(this.messageSendPlaceProvider.get()); +// sendPresenter.revealDisplay(event.getUser(), event.getFolder(), event.getMessage(), event.getMessageDetails(), Type.FORWARD); + } + + private void showReplyMessage(ReplyMessageEvent event) { + if (event.getReplyAll()) { + placeController.goTo(this.messageSendPlaceProvider.get()); +// sendPresenter.revealDisplay(event.getUser(), event.getFolder(), event.getMessage(), event.getMessageDetails(), Type.REPLY_ALL); + } else { + placeController.goTo(this.messageSendPlaceProvider.get()); +// sendPresenter.revealDisplay(event.getUser(), event.getFolder(), event.getMessage(), event.getMessageDetails(), Type.REPLY); + + } + placeController.goTo(this.messageSendPlaceProvider.get()); +// sendPresenter.revealDisplay(); + } +>>>>>>> public interface Displayable extends WidgetContainerDisplayable { public HasSelectionHandlers<TreeItem> getTree(); 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=1522145&r1=1522144&r2=1522145&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 02:49:20 2013 @@ -128,8 +128,8 @@ import org.apache.hupa.client.activity.T import org.apache.hupa.client.activity.WestActivity; import org.apache.hupa.client.dnd.PagingScrollTableRowDragController; import org.apache.hupa.client.mvp.AppPlaceHistoryMapper; +import org.apache.hupa.client.mvp.CachingTopActivityMapper; import org.apache.hupa.client.mvp.MainContentActivityMapper; -import org.apache.hupa.client.mvp.TopActivityMapper; import org.apache.hupa.client.mvp.WestActivityMapper; >>>>>>> Change to new mvp framework - first step import org.apache.hupa.client.place.DefaultPlace; @@ -385,7 +385,7 @@ public class AppGinModule extends Abstra @Provides @Singleton @Named("TopRegion") - public ActivityManager getTopRegionActivityMapper(TopActivityMapper activityMapper, + public ActivityManager getTopRegionActivityMapper(CachingTopActivityMapper activityMapper, EventBus eventBus) { return new ActivityManager(activityMapper, eventBus); } Added: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/CachingTopActivityMapper.java URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/CachingTopActivityMapper.java?rev=1522145&view=auto ============================================================================== --- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/CachingTopActivityMapper.java (added) +++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/CachingTopActivityMapper.java Thu Sep 12 02:49:20 2013 @@ -0,0 +1,33 @@ +package org.apache.hupa.client.mvp; + +import com.google.gwt.activity.shared.Activity; +import com.google.gwt.activity.shared.ActivityMapper; +import com.google.gwt.activity.shared.CachingActivityMapper; +import com.google.gwt.activity.shared.FilteredActivityMapper; +import com.google.gwt.place.shared.Place; +import com.google.inject.Inject; + +public class CachingTopActivityMapper implements ActivityMapper { + + private ActivityMapper filteredActivityMapper; + + @Inject + public CachingTopActivityMapper(TopActivityMapper topActivityMapper) { + + FilteredActivityMapper.Filter filter = new FilteredActivityMapper.Filter() { + @Override + public Place filter(Place place) { + return place; + } + }; + + CachingActivityMapper cachingActivityMapper = new CachingActivityMapper(topActivityMapper); + filteredActivityMapper = new FilteredActivityMapper(filter, cachingActivityMapper); + } + + @Override + public Activity getActivity(Place place) { + return filteredActivityMapper.getActivity(place); + } + +} Added: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/CachingWestActivityMapper.java URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/CachingWestActivityMapper.java?rev=1522145&view=auto ============================================================================== --- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/CachingWestActivityMapper.java (added) +++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/CachingWestActivityMapper.java Thu Sep 12 02:49:20 2013 @@ -0,0 +1,36 @@ +package org.apache.hupa.client.mvp; + +import org.apache.hupa.client.place.DefaultPlace; +import org.apache.hupa.client.place.MailInboxPlace; + +import com.google.gwt.activity.shared.Activity; +import com.google.gwt.activity.shared.ActivityMapper; +import com.google.gwt.activity.shared.CachingActivityMapper; +import com.google.gwt.activity.shared.FilteredActivityMapper; +import com.google.gwt.place.shared.Place; +import com.google.inject.Inject; + +public class CachingWestActivityMapper implements ActivityMapper { + + private ActivityMapper filteredActivityMapper; + + @Inject + public CachingWestActivityMapper(WestActivityMapper westActivityMapper) { + + FilteredActivityMapper.Filter filter = new FilteredActivityMapper.Filter() { + @Override + public Place filter(Place place) { + return place instanceof DefaultPlace ? place : new MailInboxPlace(null); // FIXME with user + } + }; + + CachingActivityMapper cachingActivityMapper = new CachingActivityMapper(westActivityMapper); + filteredActivityMapper = new FilteredActivityMapper(filter, cachingActivityMapper); + } + + @Override + public Activity getActivity(Place place) { + return filteredActivityMapper.getActivity(place); + } + +} 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=1522145&r1=1522144&r2=1522145&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 02:49:20 2013 @@ -1,16 +1,20 @@ package org.apache.hupa.client.place; +<<<<<<< HEAD import org.apache.hupa.shared.data.IMAPFolder; import org.apache.hupa.shared.data.Message; import org.apache.hupa.shared.data.MessageDetails; import org.apache.hupa.shared.data.User; import org.apache.hupa.shared.proxy.IMAPFolderProxy; +======= +>>>>>>> import com.google.gwt.place.shared.Place; import com.google.gwt.place.shared.PlaceTokenizer; import com.google.gwt.place.shared.Prefix; public class IMAPMessagePlace extends Place { +<<<<<<< HEAD private Message message; private MessageDetails messageDetails; @@ -34,6 +38,10 @@ public class IMAPMessagePlace extends Pl } @Prefix("message") +======= + + @Prefix("IMAPMessage") +>>>>>>> public static class Tokenizer implements PlaceTokenizer<IMAPMessagePlace> { @Override @@ -43,7 +51,11 @@ public class IMAPMessagePlace extends Pl @Override public String getToken(IMAPMessagePlace place) { +<<<<<<< HEAD return String.valueOf(place.getMessage().getUid()); +======= + return "IMAPMessage"; +>>>>>>> } } @@ -51,6 +63,7 @@ public class IMAPMessagePlace extends Pl return this.getClass().getName()+"->[IMAPMessage]"; } +<<<<<<< HEAD public IMAPMessagePlace with(User user, IMAPFolderProxy folder, Message message, MessageDetails messageDetails){ this.message = message; this.messageDetails = messageDetails; @@ -59,4 +72,6 @@ public class IMAPMessagePlace extends Pl return this; } +======= +>>>>>>> } Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/place/MailInboxPlace.java URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/place/MailInboxPlace.java?rev=1522145&r1=1522144&r2=1522145&view=diff ============================================================================== --- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/place/MailInboxPlace.java (original) +++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/place/MailInboxPlace.java Thu Sep 12 02:49:20 2013 @@ -2,13 +2,25 @@ package org.apache.hupa.client.place; import org.apache.hupa.shared.data.User; +import com.google.gwt.place.shared.Place; import com.google.gwt.place.shared.PlaceTokenizer; import com.google.gwt.place.shared.Prefix; -public class MailInboxPlace extends MailPlace { +public class MailInboxPlace extends Place { private static final String PREFIX = "inbox"; private User user; + private String mailId; + + public MailInboxPlace(){ + this.mailId = ""; + } + public MailInboxPlace(String token){ + this.mailId = token; + } + public String getMailId(){ + return mailId; + } /** * equality test based on Class type, to let different instance of this @@ -46,12 +58,12 @@ public class MailInboxPlace extends Mail @Override public MailInboxPlace getPlace(String token) { - return new MailInboxPlace(); + return new MailInboxPlace(token); } @Override public String getToken(MailInboxPlace place) { - return PREFIX; + return place.getMailId(); } } } Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/place/MessageSendPlace.java URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/place/MessageSendPlace.java?rev=1522145&r1=1522144&r2=1522145&view=diff ============================================================================== --- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/place/MessageSendPlace.java (original) +++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/place/MessageSendPlace.java Thu Sep 12 02:49:20 2013 @@ -1,4 +1,5 @@ <<<<<<< HEAD +<<<<<<< HEAD /**************************************************************** * Licensed to the Apache Software Foundation (ASF) under one * * or more contributor license agreements. See the NOTICE file * @@ -40,11 +41,16 @@ import org.apache.hupa.shared.data.User; import org.apache.hupa.shared.proxy.IMAPFolderProxy; >>>>>>> 1. improve the inbox folder place. +======= +package org.apache.hupa.client.place; + +>>>>>>> import com.google.gwt.place.shared.Place; import com.google.gwt.place.shared.PlaceTokenizer; import com.google.gwt.place.shared.Prefix; <<<<<<< HEAD +<<<<<<< HEAD public class MessageSendPlace extends AbstractPlace { @@ -168,4 +174,26 @@ public class MessageSendPlace extends Pl >>>>>>> 1. improve the inbox folder place. +======= +public class MessageSendPlace extends Place { + + @Prefix("MessageSend") + public static class Tokenizer implements PlaceTokenizer<MessageSendPlace> { + + @Override + public MessageSendPlace getPlace(String token) { + return new MessageSendPlace(); + } + + @Override + public String getToken(MessageSendPlace place) { + return "MessageSend"; + } + } + + public String toString(){ + return this.getClass().getName()+"->[MessageSend]"; + } + +>>>>>>> } Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/IMAPMessageListView.java URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/IMAPMessageListView.java?rev=1522145&r1=1522144&r2=1522145&view=diff ============================================================================== --- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/IMAPMessageListView.java (original) +++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/IMAPMessageListView.java Thu Sep 12 02:49:20 2013 @@ -772,9 +772,13 @@ import com.google.gwt.gen2.table.event.c import com.google.gwt.gen2.table.event.client.RowCountChangeHandler; import com.google.gwt.i18n.client.DateTimeFormat; <<<<<<< HEAD +<<<<<<< HEAD import com.google.gwt.user.client.ui.Anchor; ======= >>>>>>> Change to new mvp framework - first step +======= +import com.google.gwt.user.client.ui.Anchor; +>>>>>>> import com.google.gwt.user.client.ui.Composite; import com.google.gwt.user.client.ui.HTML; import com.google.gwt.user.client.ui.HasValue; @@ -814,6 +818,7 @@ public class IMAPMessageListView extends private ListBox pageBox = new ListBox(); <<<<<<< HEAD +<<<<<<< HEAD private Anchor allLink; private Anchor noneLink; private Anchor refreshLink; @@ -822,6 +827,11 @@ public class IMAPMessageListView extends private Hyperlink noneLink; private Hyperlink refreshLink; >>>>>>> Change to new mvp framework - first step +======= + private Anchor allLink; + private Anchor noneLink; + private Anchor refreshLink; +>>>>>>> private MultiWordSuggestOracle oracle = new MultiWordSuggestOracle(" ,@"); private SuggestBox searchBox = new SuggestBox(oracle); private Button searchButton; @@ -838,6 +848,7 @@ public class IMAPMessageListView extends markSeenButton = new EnableButton(constants.markSeen()); markUnSeenButton = new EnableButton(constants.markUnseen()); <<<<<<< HEAD +<<<<<<< HEAD allLink = new Anchor(constants.all()); noneLink = new Anchor(constants.none()); refreshLink = new Anchor(constants.refresh()); @@ -846,6 +857,11 @@ public class IMAPMessageListView extends noneLink = new Hyperlink(constants.none(),""); refreshLink = new Hyperlink(constants.refresh(),""); >>>>>>> Change to new mvp framework - first step +======= + allLink = new Anchor(constants.all()); + noneLink = new Anchor(constants.none()); + refreshLink = new Anchor(constants.refresh()); +>>>>>>> searchButton = new Button(constants.searchButton()); loading = new Loading(constants.loading()); this.cTableModel = new CachedTableModel<Message>(mTableModel); Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/WestView.java URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/WestView.java?rev=1522145&r1=1522144&r2=1522145&view=diff ============================================================================== --- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/WestView.java (original) +++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/WestView.java Thu Sep 12 02:49:20 2013 @@ -179,6 +179,7 @@ public class WestView extends Composite this.bus = bus; loader = new Loading(constants.loading()); <<<<<<< HEAD +<<<<<<< HEAD newFolderButton = new EnableHyperlink(constants.newFolder(), null); renameFolderButton = new EnableHyperlink(constants.renameFolder(), null); deleteFolderButton = new EnableHyperlink(constants.deleteFolder(), null); @@ -187,6 +188,11 @@ public class WestView extends Composite renameFolderButton = new EnableHyperlink(constants.renameFolder(), ""); deleteFolderButton = new EnableHyperlink(constants.deleteFolder(), ""); >>>>>>> Change to new mvp framework - first step +======= + newFolderButton = new EnableHyperlink(constants.newFolder(), null); + renameFolderButton = new EnableHyperlink(constants.renameFolder(), null); + deleteFolderButton = new EnableHyperlink(constants.deleteFolder(), null); +>>>>>>> dockPanel = new DockPanel(); --------------------------------------------------------------------- To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org