You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by do...@apache.org on 2013/08/21 16:08:29 UTC

svn commit: r1516164 [4/20] - in /james/hupa/trunk: ./ client/ client/src/main/java/com/ client/src/main/java/com/google/ client/src/main/java/com/google/web/ client/src/main/java/com/google/web/bindery/ client/src/main/java/com/google/web/bindery/requ...

Added: 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=1516164&view=auto
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/WestActivity.java (added)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/WestActivity.java Wed Aug 21 14:08:19 2013
@@ -0,0 +1,244 @@
+/****************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ ****************************************************************/
+
+package org.apache.hupa.client.activity;
+
+import org.apache.hupa.client.activity.MessageSendActivity.Type;
+import org.apache.hupa.client.place.FolderPlace;
+import org.apache.hupa.client.place.MessageSendPlace;
+import org.apache.hupa.client.rf.GetMessageDetailsRequest;
+import org.apache.hupa.client.ui.WidgetDisplayable;
+import org.apache.hupa.client.widgets.IMAPTreeItem;
+import org.apache.hupa.shared.data.ImapFolderImpl;
+import org.apache.hupa.shared.data.MessageImpl.IMAPFlag;
+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.User;
+import org.apache.hupa.shared.events.BackEvent;
+import org.apache.hupa.shared.events.BackEventHandler;
+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.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.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.widgets.ui.HasEditable;
+
+import com.google.gwt.event.shared.EventBus;
+import com.google.gwt.place.shared.Place;
+import com.google.gwt.user.client.Window;
+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 WestActivity extends AppBaseActivity {
+
+	@Override
+	public void start(AcceptsOneWidget container, EventBus eventBus) {
+		bind();
+		container.setWidget(display.asWidget());
+	}
+
+	public void setCurrentPlace(Place place) {
+		this.currentPlace = place;
+	}
+
+	public WestActivity with(FolderPlace place) {
+		this.currentPlace = place;
+//		this.user = place.getUser();
+		this.folder = new ImapFolderImpl(user.getSettings().getInboxFolderName());
+		return this;
+	}
+
+	private void cloneFolder(ImapFolder desc, ImapFolder src) {
+	    desc.setChildren(src.getChildren());
+		desc.setDelimiter(src.getDelimiter());
+		desc.setFullName(src.getFullName());
+		desc.setMessageCount(src.getMessageCount());
+		desc.setName(src.getName());
+		desc.setSubscribed(src.getSubscribed());
+		desc.setUnseenMessageCount(src.getUnseenMessageCount());
+    }
+
+	private void bind() {
+		eventBus.addHandler(LoadMessagesEvent.TYPE, new LoadMessagesEventHandler() {
+			public void onLoadMessagesEvent(LoadMessagesEvent loadMessagesEvent) {
+				showMessageTable(loadMessagesEvent.getUser(), loadMessagesEvent.getFolder(),
+				        loadMessagesEvent.getSearchValue());
+			}
+		});
+		eventBus.addHandler(ExpandMessageEvent.TYPE, new ExpandMessageEventHandler() {
+			public void onExpandMessage(ExpandMessageEvent event) {
+//				final boolean decreaseUnseen;
+				final Message message = event.getMessage();
+				// check if the message was already seen in the past
+				if (event.getMessage().getFlags().contains(IMAPFlag.SEEN) == false) {
+//					decreaseUnseen = true;//TODO 1209
+				} else {
+//					decreaseUnseen = false;
+				}
+
+				GetMessageDetailsRequest req = rf.messageDetailsRequest();
+				GetMessageDetailsAction action = req.create(GetMessageDetailsAction.class);
+				final ImapFolder f = req.create(ImapFolder.class);
+//				event.getFolder().setFolderTo(f);
+				cloneFolder(f, event.getFolder());
+				action.setFolder(f);
+				action.setUid(message.getUid());
+				req.get(action).fire(new Receiver<GetMessageDetailsResult>() {
+					@Override
+					public void onSuccess(GetMessageDetailsResult response) {
+						/*
+						 * TODO if (decreaseUnseen) { eventBus.fireEvent(new
+						 * DecreaseUnseenEvent(user, folder)); }
+						 */
+//						placeController.goTo(messagePlaceProvider.get().with(user, f, message,
+//						        response.getMessageDetails()));
+					}
+				});
+			}
+		});
+		eventBus.addHandler(NewMessageEvent.TYPE, new NewMessageEventHandler() {
+			public void onNewMessageEvent(NewMessageEvent event) {
+				showNewMessage();
+			}
+		});
+		eventBus.addHandler(SentMessageEvent.TYPE, new SentMessageEventHandler() {
+			public void onSentMessageEvent(SentMessageEvent ev) {
+				showMessageTable(user, folder, searchValue);
+			}
+		});
+		eventBus.addHandler(ForwardMessageEvent.TYPE, new ForwardMessageEventHandler() {
+			public void onForwardMessageEvent(ForwardMessageEvent event) {
+				showForwardMessage(event);
+			}
+		});
+		eventBus.addHandler(ReplyMessageEvent.TYPE, new ReplyMessageEventHandler() {
+			public void onReplyMessageEvent(ReplyMessageEvent event) {
+				showReplyMessage(event);
+			}
+		});
+		eventBus.addHandler(FolderSelectionEvent.TYPE, new FolderSelectionEventHandler() {
+			public void onFolderSelectionEvent(FolderSelectionEvent event) {
+				user = event.getUser();
+				folder = event.getFolder();
+				showMessageTable(user, event.getFolder(), searchValue);
+			}
+		});
+		eventBus.addHandler(BackEvent.TYPE, new BackEventHandler() {
+			public void onBackEvent(BackEvent event) {
+				showMessageTable(user, folder, searchValue);
+			}
+		});
+		eventBus.addHandler(ExpandMessageEvent.TYPE, new ExpandMessageEventHandler() {
+			public void onExpandMessage(ExpandMessageEvent event) {
+				if (editableTreeItem != null && editableTreeItem.isEdit()) {
+					editableTreeItem.cancelEdit();
+				}
+			}
+		});
+		eventBus.addHandler(NewMessageEvent.TYPE, new NewMessageEventHandler() {
+			public void onNewMessageEvent(NewMessageEvent event) {
+				if (editableTreeItem != null && editableTreeItem.isEdit()) {
+					editableTreeItem.cancelEdit();
+				}
+			}
+		});
+		eventBus.addHandler(LoginEvent.TYPE, new LoginEventHandler() {
+			public void onLogin(LoginEvent event) {
+				user = event.getUser();
+				searchValue = null;
+			}
+		});
+		exportJSMethods(this);
+	}
+
+	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 {
+	                                                               westactivity.@org.apache.hupa.client.activity.WestActivity::openLink(Ljava/lang/String;) (url);
+	                                                               } catch(e) {}
+	                                                               return false;
+	                                                               };
+	                                                               $wnd.mailTo = function(mail) {
+	                                                               try {
+	                                                               westactivity.@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;
+
+		// FIXME goto?
+//		placeController.goTo(new MailFolderPlace().with(user, folder, searchValue));
+	}
+
+	private void showNewMessage() {
+		pc.goTo(this.messageSendPlaceProvider.get().with(user, null, null, null, Type.NEW));
+	}
+
+	private void showForwardMessage(ForwardMessageEvent event) {
+		pc.goTo(this.messageSendPlaceProvider.get().with(event.getUser(), event.getFolder(),
+		        event.getMessage(), event.getMessageDetails(), Type.FORWARD));
+	}
+
+	private void showReplyMessage(ReplyMessageEvent event) {
+		pc.goTo(this.messageSendPlaceProvider.get().with(event.getUser(), event.getFolder(),
+		        event.getMessage(), event.getMessageDetails(), event.getReplyAll() ? Type.REPLY_ALL : Type.REPLY));
+	}
+
+	@Inject private Displayable display;
+	@Inject private Provider<MessageSendPlace> messageSendPlaceProvider;
+//	@Inject private Provider<IMAPMessagePlace> messagePlaceProvider;
+	private User user;
+	private ImapFolder folder;
+	private IMAPTreeItem tItem;
+	private HasEditable editableTreeItem;
+	private String searchValue;
+	private Place currentPlace;
+
+	public interface Displayable extends WidgetDisplayable {
+	}
+
+}

Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/bundles/HupaImageBundle.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/bundles/HupaImageBundle.java?rev=1516164&r1=1516163&r2=1516164&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/bundles/HupaImageBundle.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/bundles/HupaImageBundle.java Wed Aug 21 14:08:19 2013
@@ -32,4 +32,6 @@ public interface HupaImageBundle extends
     
     @Source("email.png")
     ImageResource moveMailIcon();
+    
+    
 }

Added: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/bundles/images/addcontact.png
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/bundles/images/addcontact.png?rev=1516164&view=auto
==============================================================================
Files james/hupa/trunk/client/src/main/java/org/apache/hupa/client/bundles/images/addcontact.png (added) and james/hupa/trunk/client/src/main/java/org/apache/hupa/client/bundles/images/addcontact.png Wed Aug 21 14:08:19 2013 differ

Added: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/bundles/images/ajaxloader.gif
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/bundles/images/ajaxloader.gif?rev=1516164&view=auto
==============================================================================
Files james/hupa/trunk/client/src/main/java/org/apache/hupa/client/bundles/images/ajaxloader.gif (added) and james/hupa/trunk/client/src/main/java/org/apache/hupa/client/bundles/images/ajaxloader.gif Wed Aug 21 14:08:19 2013 differ

Added: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/bundles/images/buttons.gif
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/bundles/images/buttons.gif?rev=1516164&view=auto
==============================================================================
Files james/hupa/trunk/client/src/main/java/org/apache/hupa/client/bundles/images/buttons.gif (added) and james/hupa/trunk/client/src/main/java/org/apache/hupa/client/bundles/images/buttons.gif Wed Aug 21 14:08:19 2013 differ

Added: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/bundles/images/buttons.png
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/bundles/images/buttons.png?rev=1516164&view=auto
==============================================================================
Files james/hupa/trunk/client/src/main/java/org/apache/hupa/client/bundles/images/buttons.png (added) and james/hupa/trunk/client/src/main/java/org/apache/hupa/client/bundles/images/buttons.png Wed Aug 21 14:08:19 2013 differ

Added: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/bundles/images/contactpic.png
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/bundles/images/contactpic.png?rev=1516164&view=auto
==============================================================================
Files james/hupa/trunk/client/src/main/java/org/apache/hupa/client/bundles/images/contactpic.png (added) and james/hupa/trunk/client/src/main/java/org/apache/hupa/client/bundles/images/contactpic.png Wed Aug 21 14:08:19 2013 differ

Added: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/bundles/images/favicon.ico
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/bundles/images/favicon.ico?rev=1516164&view=auto
==============================================================================
Files james/hupa/trunk/client/src/main/java/org/apache/hupa/client/bundles/images/favicon.ico (added) and james/hupa/trunk/client/src/main/java/org/apache/hupa/client/bundles/images/favicon.ico Wed Aug 21 14:08:19 2013 differ

Added: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/bundles/images/filetypes.png
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/bundles/images/filetypes.png?rev=1516164&view=auto
==============================================================================
Files james/hupa/trunk/client/src/main/java/org/apache/hupa/client/bundles/images/filetypes.png (added) and james/hupa/trunk/client/src/main/java/org/apache/hupa/client/bundles/images/filetypes.png Wed Aug 21 14:08:19 2013 differ

Added: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/bundles/images/googiespell/change_lang.gif
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/bundles/images/googiespell/change_lang.gif?rev=1516164&view=auto
==============================================================================
Files james/hupa/trunk/client/src/main/java/org/apache/hupa/client/bundles/images/googiespell/change_lang.gif (added) and james/hupa/trunk/client/src/main/java/org/apache/hupa/client/bundles/images/googiespell/change_lang.gif Wed Aug 21 14:08:19 2013 differ

Added: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/bundles/images/googiespell/indicator.gif
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/bundles/images/googiespell/indicator.gif?rev=1516164&view=auto
==============================================================================
Files james/hupa/trunk/client/src/main/java/org/apache/hupa/client/bundles/images/googiespell/indicator.gif (added) and james/hupa/trunk/client/src/main/java/org/apache/hupa/client/bundles/images/googiespell/indicator.gif Wed Aug 21 14:08:19 2013 differ

Added: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/bundles/images/googiespell/ok.gif
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/bundles/images/googiespell/ok.gif?rev=1516164&view=auto
==============================================================================
Files james/hupa/trunk/client/src/main/java/org/apache/hupa/client/bundles/images/googiespell/ok.gif (added) and james/hupa/trunk/client/src/main/java/org/apache/hupa/client/bundles/images/googiespell/ok.gif Wed Aug 21 14:08:19 2013 differ

Added: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/bundles/images/googiespell/spellc.gif
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/bundles/images/googiespell/spellc.gif?rev=1516164&view=auto
==============================================================================
Files james/hupa/trunk/client/src/main/java/org/apache/hupa/client/bundles/images/googiespell/spellc.gif (added) and james/hupa/trunk/client/src/main/java/org/apache/hupa/client/bundles/images/googiespell/spellc.gif Wed Aug 21 14:08:19 2013 differ

Added: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/bundles/images/linen.jpg
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/bundles/images/linen.jpg?rev=1516164&view=auto
==============================================================================
Files james/hupa/trunk/client/src/main/java/org/apache/hupa/client/bundles/images/linen.jpg (added) and james/hupa/trunk/client/src/main/java/org/apache/hupa/client/bundles/images/linen.jpg Wed Aug 21 14:08:19 2013 differ

Added: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/bundles/images/linen_header.jpg
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/bundles/images/linen_header.jpg?rev=1516164&view=auto
==============================================================================
Files james/hupa/trunk/client/src/main/java/org/apache/hupa/client/bundles/images/linen_header.jpg (added) and james/hupa/trunk/client/src/main/java/org/apache/hupa/client/bundles/images/linen_header.jpg Wed Aug 21 14:08:19 2013 differ

Added: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/bundles/images/linen_login.jpg
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/bundles/images/linen_login.jpg?rev=1516164&view=auto
==============================================================================
Files james/hupa/trunk/client/src/main/java/org/apache/hupa/client/bundles/images/linen_login.jpg (added) and james/hupa/trunk/client/src/main/java/org/apache/hupa/client/bundles/images/linen_login.jpg Wed Aug 21 14:08:19 2013 differ

Added: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/bundles/images/listicons.png
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/bundles/images/listicons.png?rev=1516164&view=auto
==============================================================================
Files james/hupa/trunk/client/src/main/java/org/apache/hupa/client/bundles/images/listicons.png (added) and james/hupa/trunk/client/src/main/java/org/apache/hupa/client/bundles/images/listicons.png Wed Aug 21 14:08:19 2013 differ

Added: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/bundles/images/login_shadow.png
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/bundles/images/login_shadow.png?rev=1516164&view=auto
==============================================================================
Files james/hupa/trunk/client/src/main/java/org/apache/hupa/client/bundles/images/login_shadow.png (added) and james/hupa/trunk/client/src/main/java/org/apache/hupa/client/bundles/images/login_shadow.png Wed Aug 21 14:08:19 2013 differ

Added: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/bundles/images/messages.png
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/bundles/images/messages.png?rev=1516164&view=auto
==============================================================================
Files james/hupa/trunk/client/src/main/java/org/apache/hupa/client/bundles/images/messages.png (added) and james/hupa/trunk/client/src/main/java/org/apache/hupa/client/bundles/images/messages.png Wed Aug 21 14:08:19 2013 differ

Added: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/bundles/images/overflowshadow.png
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/bundles/images/overflowshadow.png?rev=1516164&view=auto
==============================================================================
Files james/hupa/trunk/client/src/main/java/org/apache/hupa/client/bundles/images/overflowshadow.png (added) and james/hupa/trunk/client/src/main/java/org/apache/hupa/client/bundles/images/overflowshadow.png Wed Aug 21 14:08:19 2013 differ

Added: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/bundles/images/quota.png
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/bundles/images/quota.png?rev=1516164&view=auto
==============================================================================
Files james/hupa/trunk/client/src/main/java/org/apache/hupa/client/bundles/images/quota.png (added) and james/hupa/trunk/client/src/main/java/org/apache/hupa/client/bundles/images/quota.png Wed Aug 21 14:08:19 2013 differ

Added: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/bundles/images/roundcube_logo.png
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/bundles/images/roundcube_logo.png?rev=1516164&view=auto
==============================================================================
Files james/hupa/trunk/client/src/main/java/org/apache/hupa/client/bundles/images/roundcube_logo.png (added) and james/hupa/trunk/client/src/main/java/org/apache/hupa/client/bundles/images/roundcube_logo.png Wed Aug 21 14:08:19 2013 differ

Added: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/bundles/images/selector.png
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/bundles/images/selector.png?rev=1516164&view=auto
==============================================================================
Files james/hupa/trunk/client/src/main/java/org/apache/hupa/client/bundles/images/selector.png (added) and james/hupa/trunk/client/src/main/java/org/apache/hupa/client/bundles/images/selector.png Wed Aug 21 14:08:19 2013 differ

Added: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/bundles/images/splitter.png
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/bundles/images/splitter.png?rev=1516164&view=auto
==============================================================================
Files james/hupa/trunk/client/src/main/java/org/apache/hupa/client/bundles/images/splitter.png (added) and james/hupa/trunk/client/src/main/java/org/apache/hupa/client/bundles/images/splitter.png Wed Aug 21 14:08:19 2013 differ

Added: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/bundles/images/watermark.jpg
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/bundles/images/watermark.jpg?rev=1516164&view=auto
==============================================================================
Files james/hupa/trunk/client/src/main/java/org/apache/hupa/client/bundles/images/watermark.jpg (added) and james/hupa/trunk/client/src/main/java/org/apache/hupa/client/bundles/images/watermark.jpg Wed Aug 21 14:08:19 2013 differ

Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/dnd/PagingScrollTableRowDragController.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/dnd/PagingScrollTableRowDragController.java?rev=1516164&r1=1516163&r2=1516164&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/dnd/PagingScrollTableRowDragController.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/dnd/PagingScrollTableRowDragController.java Wed Aug 21 14:08:19 2013
@@ -22,7 +22,6 @@ package org.apache.hupa.client.dnd;
 import org.apache.hupa.client.HupaMessages;
 import org.apache.hupa.client.bundles.HupaImageBundle;
 import org.apache.hupa.widgets.ui.RndPanel;
-import org.cobogw.gwt.user.client.ui.RoundedPanel;
 
 import com.allen_sauer.gwt.dnd.client.DragContext;
 import com.allen_sauer.gwt.dnd.client.PickupDragController;
@@ -44,7 +43,7 @@ public class PagingScrollTableRowDragCon
     private HupaMessages messages = GWT.create(HupaMessages.class);
     private HupaImageBundle bundle =GWT.create(HupaImageBundle.class);
     private FixedWidthGrid draggableTable;
-    @SuppressWarnings("unchecked")
+    @SuppressWarnings("rawtypes")
     private PagingScrollTable parentTable;
     private int dragRow;
     private RowDragProxy proxyWidget;
@@ -90,7 +89,7 @@ public class PagingScrollTableRowDragCon
     }
 
     
-    @SuppressWarnings("unchecked")
+    @SuppressWarnings("rawtypes")
     protected Widget newDragProxy(DragContext context) {
         
         draggableTable = (FixedWidthGrid) context.draggable.getParent();

Copied: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/evo/ActivityManagerInitializer.java (from r1375909, james/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/exception/InvalidSessionException.java)
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/evo/ActivityManagerInitializer.java?p2=james/hupa/trunk/client/src/main/java/org/apache/hupa/client/evo/ActivityManagerInitializer.java&p1=james/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/exception/InvalidSessionException.java&r1=1375909&r2=1516164&rev=1516164&view=diff
==============================================================================
--- james/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/exception/InvalidSessionException.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/evo/ActivityManagerInitializer.java Wed Aug 21 14:08:19 2013
@@ -1,37 +1,36 @@
-/****************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one   *
- * or more contributor license agreements.  See the NOTICE file *
- * distributed with this work for additional information        *
- * regarding copyright ownership.  The ASF licenses this file   *
- * to you under the Apache License, Version 2.0 (the            *
- * "License"); you may not use this file except in compliance   *
- * with the License.  You may obtain a copy of the License at   *
- *                                                              *
- *   http://www.apache.org/licenses/LICENSE-2.0                 *
- *                                                              *
- * Unless required by applicable law or agreed to in writing,   *
- * software distributed under the License is distributed on an  *
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
- * KIND, either express or implied.  See the License for the    *
- * specific language governing permissions and limitations      *
- * under the License.                                           *
- ****************************************************************/
-
-package org.apache.hupa.shared.exception;
-
-import net.customware.gwt.dispatch.shared.ActionException;
-
-/**
- *
- */
-public class InvalidSessionException extends ActionException{
-
-    /**
-     * 
-     */
-    private static final long serialVersionUID = 995112620968798947L;
-
-    public InvalidSessionException(String msg) {
-        super(msg);
-    }
-}
+/****************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ ****************************************************************/
+
+package org.apache.hupa.client.evo;
+
+import org.apache.hupa.client.ui.AppLayout;
+
+import com.google.inject.Inject;
+
+/**
+ * This class is responsible for ActivityManager instantiations through GIN, it
+ * also associate every ActivityManager with the corresponding display region
+ */
+public class ActivityManagerInitializer {
+
+	@Inject
+	public ActivityManagerInitializer(AppLayout appPanelView) {
+	}
+
+}

Added: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/evo/AppController.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/evo/AppController.java?rev=1516164&view=auto
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/evo/AppController.java (added)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/evo/AppController.java Wed Aug 21 14:08:19 2013
@@ -0,0 +1,97 @@
+/****************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ ****************************************************************/
+
+package org.apache.hupa.client.evo;
+
+import org.apache.hupa.client.place.DefaultPlace;
+import org.apache.hupa.client.place.FolderPlace;
+import org.apache.hupa.client.rf.CheckSessionRequest;
+import org.apache.hupa.client.rf.HupaRequestFactory;
+import org.apache.hupa.client.ui.AppLayout;
+
+import com.google.gwt.event.shared.EventBus;
+import com.google.gwt.place.shared.Place;
+import com.google.gwt.place.shared.PlaceChangeEvent;
+import com.google.gwt.place.shared.PlaceController;
+import com.google.gwt.place.shared.PlaceHistoryHandler;
+import com.google.gwt.user.client.ui.RootLayoutPanel;
+import com.google.inject.Inject;
+import com.google.web.bindery.requestfactory.shared.Receiver;
+
+public class AppController {
+
+	@Inject private PlaceHistoryHandler placeHistoryHandler;
+	@Inject private AppLayout appPanelView;
+	@Inject private PlaceController placeController;
+	@Inject private HupaRequestFactory requestFactory;
+	private Place currentPlace;
+
+	@Inject
+	public AppController(EventBus eventBus, ActivityManagerInitializer initializeActivityManagerByGin) {
+		eventBus.addHandler(PlaceChangeEvent.TYPE, new PlaceLayoutHandler());
+	}
+
+	public void start() {
+		RootLayoutPanel.get().add(appPanelView.getAppLayoutPanel());
+		placeHistoryHandler.handleCurrentHistory();
+	}
+
+	private final class PlaceLayoutHandler implements PlaceChangeEvent.Handler {
+		@Override
+		public void onPlaceChange(PlaceChangeEvent event) {
+			if (placeChange(event)) {
+				checkSession();
+			}
+			refreshActivities(event);
+		}
+
+		private void refreshActivities(PlaceChangeEvent event) {
+			Place newPlace = event.getNewPlace();
+			if (newPlace != currentPlace) {
+				if (isAuth(newPlace, currentPlace)) {
+					appPanelView.setDefaultLayout();
+				} else if (newPlace instanceof DefaultPlace) {
+					appPanelView.setLoginLayout();
+				}
+				currentPlace = newPlace;
+			}
+		}
+
+		private void checkSession() {
+			CheckSessionRequest checkSession = requestFactory.sessionRequest();
+			checkSession.isValid().fire(new Receiver<Boolean>() {
+				@Override
+				public void onSuccess(Boolean sessionValid) {
+					if (!sessionValid) {
+//						AppController.this.placeController.goTo(new DefaultPlace());
+					}
+				}
+			});
+		}
+
+		private boolean placeChange(PlaceChangeEvent event) {
+			return currentPlace != null && !(currentPlace instanceof DefaultPlace) && event.getNewPlace() != currentPlace;
+		}
+
+		private boolean isAuth(Place newPlace, Place currentPlace) {
+			return (newPlace instanceof FolderPlace) && !(currentPlace instanceof FolderPlace);
+		}
+	}
+
+}

Copied: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/evo/HupaEvo.java (from r1375909, james/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/rpc/DeleteMessageResult.java)
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/evo/HupaEvo.java?p2=james/hupa/trunk/client/src/main/java/org/apache/hupa/client/evo/HupaEvo.java&p1=james/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/rpc/DeleteMessageResult.java&r1=1375909&r2=1516164&rev=1516164&view=diff
==============================================================================
--- james/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/rpc/DeleteMessageResult.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/evo/HupaEvo.java Wed Aug 21 14:08:19 2013
@@ -17,48 +17,35 @@
  * under the License.                                           *
  ****************************************************************/
 
-package org.apache.hupa.shared.rpc;
+package org.apache.hupa.client.evo;
 
-import java.io.Serializable;
+import com.google.gwt.core.client.EntryPoint;
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.core.client.GWT.UncaughtExceptionHandler;
+import com.google.gwt.user.client.DOM;
+import com.google.gwt.user.client.ui.RootPanel;
+
+public class HupaEvo implements EntryPoint {
+	@Override
+	public void onModuleLoad() {
+		handleExceptionsAsync();
+		replaceLoading();
+//	    AppController appController = null;//injector.getAppController();
+//	    appController.start();
+	}
+	
+	private void handleExceptionsAsync(){
+		GWT.setUncaughtExceptionHandler(new UncaughtExceptionHandler() {
+            public void onUncaughtException(Throwable e) {
+                e.printStackTrace();
+            }
+        });
+	}
+
+	private void replaceLoading() {
+		DOM.removeChild(RootPanel.getBodyElement(), DOM.getElementById("loading"));
+	}
 
-import net.customware.gwt.dispatch.shared.Result;
-
-import org.apache.hupa.shared.data.IMAPFolder;
-import org.apache.hupa.shared.data.User;
-
-public class DeleteMessageResult implements Result, Serializable {
-
-    /**
-     * 
-     */
-    private static final long serialVersionUID = -5149203502019947912L;
-    private User user;
-    private IMAPFolder folder;
-    private int deleteCount;
-
-
-    
-    @SuppressWarnings("unused")
-    private DeleteMessageResult() {
-        
-    }
-    
-    public DeleteMessageResult(User user,IMAPFolder folder, int deleteCount) {
-        this.user = user;
-        this.folder = folder;
-        this.deleteCount = deleteCount;
-    }
-    
-    public int getCount() {
-        return deleteCount;
-    }
-    
-    public User getUser() {
-        return user;
-    }
-    
-    public IMAPFolder getFolder() {
-        return folder;
-    }
+//	private final AppGinjector injector = GWT.create(AppGinjector.class);
 
 }

Added: 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=1516164&view=auto
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ioc/AppGinModule.java (added)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ioc/AppGinModule.java Wed Aug 21 14:08:19 2013
@@ -0,0 +1,393 @@
+/****************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ ****************************************************************/
+
+package org.apache.hupa.client.ioc;
+
+import java.util.logging.Logger;
+
+import org.apache.hupa.client.HupaController;
+import org.apache.hupa.client.activity.ComposeActivity;
+import org.apache.hupa.client.activity.ComposeToolBarActivity;
+import org.apache.hupa.client.activity.ContactPropertiesActivity;
+import org.apache.hupa.client.activity.ContactsListActivity;
+import org.apache.hupa.client.activity.FolderListActivity;
+<<<<<<< HEAD
+import org.apache.hupa.client.activity.IMAPMessageListActivity;
+=======
+>>>>>>> 7635f4a0e76a4bbbeb6a4029aff92087f00eb09f
+import org.apache.hupa.client.activity.LabelListActivity;
+import org.apache.hupa.client.activity.LabelPropertiesActivity;
+import org.apache.hupa.client.activity.LoginActivity;
+import org.apache.hupa.client.activity.LogoActivity;
+import org.apache.hupa.client.activity.MessageContentActivity;
+import org.apache.hupa.client.activity.MessageListActivity;
+import org.apache.hupa.client.activity.MessageListFooterActivity;
+<<<<<<< HEAD
+import org.apache.hupa.client.activity.MessageSendActivity;
+import org.apache.hupa.client.activity.NavigationActivity;
+import org.apache.hupa.client.activity.NotificationActivity;
+import org.apache.hupa.client.activity.SearchBoxActivity;
+import org.apache.hupa.client.activity.StatusActivity;
+import org.apache.hupa.client.activity.ToolBarActivity;
+import org.apache.hupa.client.activity.TopActivity;
+import org.apache.hupa.client.activity.TopBarActivity;
+import org.apache.hupa.client.activity.WestActivity;
+=======
+import org.apache.hupa.client.activity.NavigationActivity;
+import org.apache.hupa.client.activity.NotificationActivity;
+import org.apache.hupa.client.activity.SearchBoxActivity;
+import org.apache.hupa.client.activity.SettingNavActivity;
+import org.apache.hupa.client.activity.StatusActivity;
+import org.apache.hupa.client.activity.ToolBarActivity;
+import org.apache.hupa.client.activity.TopBarActivity;
+>>>>>>> 7635f4a0e76a4bbbeb6a4029aff92087f00eb09f
+import org.apache.hupa.client.mapper.AppPlaceHistoryMapper;
+import org.apache.hupa.client.mapper.CachingTopBarActivityMapper;
+import org.apache.hupa.client.mapper.ComposeActivityMapper;
+import org.apache.hupa.client.mapper.ComposeToolBarActivityMapper;
+import org.apache.hupa.client.mapper.ContactPropertiesActivityMapper;
+import org.apache.hupa.client.mapper.ContactsListActivityMapper;
+import org.apache.hupa.client.mapper.FolderListActivityMapper;
+import org.apache.hupa.client.mapper.LabelListActivityMapper;
+import org.apache.hupa.client.mapper.LabelPropertiesActivityMapper;
+import org.apache.hupa.client.mapper.LoginActivityMapper;
+import org.apache.hupa.client.mapper.LogoActivityMapper;
+import org.apache.hupa.client.mapper.MessageContentActivityMapper;
+import org.apache.hupa.client.mapper.MessageListActivityMapper;
+import org.apache.hupa.client.mapper.MessageListFooterActivityMapper;
+import org.apache.hupa.client.mapper.NavigationActivityMapper;
+import org.apache.hupa.client.mapper.NotificationActivityMapper;
+import org.apache.hupa.client.mapper.SearchBoxActivityMapper;
+<<<<<<< HEAD
+=======
+import org.apache.hupa.client.mapper.SettingNavActivityMapper;
+>>>>>>> 7635f4a0e76a4bbbeb6a4029aff92087f00eb09f
+import org.apache.hupa.client.mapper.StatusActivityMapper;
+import org.apache.hupa.client.mapper.ToolBarActivityMapper;
+import org.apache.hupa.client.place.DefaultPlace;
+import org.apache.hupa.client.rf.HupaRequestFactory;
+import org.apache.hupa.client.ui.ComposeToolBarView;
+import org.apache.hupa.client.ui.ComposeView;
+import org.apache.hupa.client.ui.ContactPropertiesView;
+import org.apache.hupa.client.ui.ContactsListView;
+import org.apache.hupa.client.ui.FolderListView;
+<<<<<<< HEAD
+import org.apache.hupa.client.ui.FoldersTreeViewModel;
+import org.apache.hupa.client.ui.HupaLayout;
+import org.apache.hupa.client.ui.HupaLayoutable;
+import org.apache.hupa.client.ui.IMAPMessageListView;
+=======
+import org.apache.hupa.client.ui.HupaLayout;
+import org.apache.hupa.client.ui.HupaLayoutable;
+>>>>>>> 7635f4a0e76a4bbbeb6a4029aff92087f00eb09f
+import org.apache.hupa.client.ui.LabelListView;
+import org.apache.hupa.client.ui.LabelPropertiesView;
+import org.apache.hupa.client.ui.LoginLayout;
+import org.apache.hupa.client.ui.LoginLayoutable;
+import org.apache.hupa.client.ui.LoginView;
+import org.apache.hupa.client.ui.LogoView;
+import org.apache.hupa.client.ui.MessageContentView;
+import org.apache.hupa.client.ui.MessageListFooterView;
+import org.apache.hupa.client.ui.MessageListView;
+<<<<<<< HEAD
+import org.apache.hupa.client.ui.MessageSendView;
+=======
+>>>>>>> 7635f4a0e76a4bbbeb6a4029aff92087f00eb09f
+import org.apache.hupa.client.ui.MessagesCellTable;
+import org.apache.hupa.client.ui.NavigationView;
+import org.apache.hupa.client.ui.NotificationView;
+import org.apache.hupa.client.ui.SearchBoxView;
+<<<<<<< HEAD
+import org.apache.hupa.client.ui.StatusView;
+import org.apache.hupa.client.ui.ToolBarView;
+import org.apache.hupa.client.ui.TopBarView;
+import org.apache.hupa.client.ui.TopView;
+import org.apache.hupa.client.ui.WestView;
+=======
+import org.apache.hupa.client.ui.SettingNavView;
+import org.apache.hupa.client.ui.StatusView;
+import org.apache.hupa.client.ui.ToolBarView;
+import org.apache.hupa.client.ui.TopBarView;
+>>>>>>> 7635f4a0e76a4bbbeb6a4029aff92087f00eb09f
+
+import com.google.gwt.activity.shared.ActivityManager;
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.event.shared.EventBus;
+import com.google.gwt.event.shared.SimpleEventBus;
+import com.google.gwt.inject.client.AbstractGinModule;
+import com.google.gwt.place.shared.PlaceController;
+import com.google.gwt.place.shared.PlaceHistoryHandler;
+import com.google.gwt.place.shared.PlaceHistoryMapper;
+import com.google.gwt.user.cellview.client.CellTree;
+import com.google.inject.Provides;
+import com.google.inject.Singleton;
+import com.google.inject.name.Named;
+
+@SuppressWarnings("deprecation")
+public class AppGinModule extends AbstractGinModule {
+	public static Logger logger = Logger.getLogger(AppGinModule.class.getName());
+
+	@Override
+	protected void configure() {
+		// Views
+		bind(HupaLayoutable.class).to(HupaLayout.class).in(Singleton.class);
+		bind(LoginLayoutable.class).to(LoginLayout.class).in(Singleton.class);
+
+		// Activities
+		bind(LoginActivity.Displayable.class).to(LoginView.class);
+		bind(TopBarActivity.Displayable.class).to(TopBarView.class).in(Singleton.class);
+		bind(LogoActivity.Displayable.class).to(LogoView.class).in(Singleton.class);
+		bind(NotificationActivity.Displayable.class).to(NotificationView.class).in(Singleton.class);
+		bind(NavigationActivity.Displayable.class).to(NavigationView.class);
+		bind(ToolBarActivity.Displayable.class).to(ToolBarView.class).in(Singleton.class);
+		// bind(FolderListActivity.Displayable.class).to(FolderListView.class);
+		bind(MessageListActivity.Displayable.class).to(MessageListView.class).in(Singleton.class);
+		bind(MessageListFooterActivity.Displayable.class).to(MessageListFooterView.class);
+		bind(MessageContentActivity.Displayable.class).to(MessageContentView.class);
+		bind(StatusActivity.Displayable.class).to(StatusView.class);
+		bind(ComposeToolBarActivity.Displayable.class).to(ComposeToolBarView.class);
+		bind(ComposeActivity.Displayable.class).to(ComposeView.class);
+		bind(SearchBoxActivity.Displayable.class).to(SearchBoxView.class);
+		
+		bind(LabelListActivity.Displayable.class).to(LabelListView.class).in(Singleton.class);
+<<<<<<< HEAD
+=======
+		bind(SettingNavActivity.Displayable.class).to(SettingNavView.class).in(Singleton.class);
+>>>>>>> 7635f4a0e76a4bbbeb6a4029aff92087f00eb09f
+		bind(LabelPropertiesActivity.Displayable.class).to(LabelPropertiesView.class).in(Singleton.class);
+		bind(ContactsListActivity.Displayable.class).to(ContactsListView.class).in(Singleton.class);
+		bind(ContactPropertiesActivity.Displayable.class).to(ContactPropertiesView.class).in(Singleton.class);
+
+		bind(LoginActivity.class).in(Singleton.class);
+		bind(TopBarActivity.class).in(Singleton.class);
+		bind(LogoActivity.class).in(Singleton.class);
+		bind(NotificationActivity.class).in(Singleton.class);
+		bind(NavigationActivity.class).in(Singleton.class);
+		bind(ToolBarActivity.class).in(Singleton.class);
+		bind(FolderListActivity.class).in(Singleton.class);
+		bind(MessageListActivity.class).in(Singleton.class);
+		bind(ComposeToolBarActivity.class).in(Singleton.class);
+		bind(ComposeActivity.class).in(Singleton.class);
+		bind(SearchBoxActivity.class).in(Singleton.class);
+		
+		bind(LabelListActivity.class).in(Singleton.class);
+<<<<<<< HEAD
+=======
+		bind(SettingNavActivity.class).in(Singleton.class);
+>>>>>>> 7635f4a0e76a4bbbeb6a4029aff92087f00eb09f
+		bind(LabelPropertiesActivity.class).in(Singleton.class);
+		bind(ContactsListActivity.class).in(Singleton.class);
+		bind(ContactPropertiesActivity.class).in(Singleton.class);
+		
+
+<<<<<<< HEAD
+		bind(TopActivity.Displayable.class).to(TopView.class).in(Singleton.class);
+		bind(FolderListActivity.Displayable.class).to(FolderListView.class).in(Singleton.class);
+		bind(WestActivity.Displayable.class).to(WestView.class).in(Singleton.class);
+		bind(IMAPMessageListActivity.Displayable.class).to(IMAPMessageListView.class);
+		bind(MessageSendActivity.Displayable.class).to(MessageSendView.class);
+
+		bind(TopActivity.class).in(Singleton.class);
+		bind(WestActivity.class).in(Singleton.class);
+		bind(IMAPMessageListActivity.class).in(Singleton.class);
+		bind(MessageSendActivity.class).in(Singleton.class);
+
+		bind(MessagesCellTable.class).in(Singleton.class);
+		bind(FoldersTreeViewModel.class).in(Singleton.class);
+=======
+		bind(FolderListActivity.Displayable.class).to(FolderListView.class).in(Singleton.class);
+
+		bind(MessagesCellTable.class).in(Singleton.class);
+>>>>>>> 7635f4a0e76a4bbbeb6a4029aff92087f00eb09f
+		bind(CellTree.Resources.class).to(CellTree.BasicResources.class);
+		// Places
+		bind(PlaceHistoryMapper.class).to(AppPlaceHistoryMapper.class).in(Singleton.class);
+
+		bind(EventBus.class).to(SimpleEventBus.class).in(Singleton.class);
+
+		bind(HupaController.class).in(Singleton.class);
+	}
+
+
+	
+	@Provides
+	@Singleton
+	@Named("ContactsListRegion")
+	public ActivityManager getContactsListActivityMapper(ContactsListActivityMapper activityMapper, EventBus eventBus) {
+		return new ActivityManager(activityMapper, eventBus);
+	}
+	
+	@Provides
+	@Singleton
+	@Named("ContactPropertiesRegion")
+	public ActivityManager getContactPropertiesActivityMapper(ContactPropertiesActivityMapper activityMapper, EventBus eventBus) {
+		return new ActivityManager(activityMapper, eventBus);
+	}
+	
+	@Provides
+	@Singleton
+	@Named("LabelListRegion")
+	public ActivityManager getLabelListActivityMapper(LabelListActivityMapper activityMapper, EventBus eventBus) {
+		return new ActivityManager(activityMapper, eventBus);
+	}
+	
+	@Provides
+	@Singleton
+	@Named("LabelPropertiesRegion")
+	public ActivityManager getLabelPropertiesActivityMapper(LabelPropertiesActivityMapper activityMapper, EventBus eventBus) {
+		return new ActivityManager(activityMapper, eventBus);
+	}
+<<<<<<< HEAD
+	
+=======
+
+	
+	@Provides
+	@Singleton
+	@Named("SettingNavRegion")
+	public ActivityManager getSettingNavActivityMapper(SettingNavActivityMapper activityMapper, EventBus eventBus) {
+		return new ActivityManager(activityMapper, eventBus);
+	}
+>>>>>>> 7635f4a0e76a4bbbeb6a4029aff92087f00eb09f
+	
+	@Provides
+	@Singleton
+	@Named("LoginPage")
+	public ActivityManager getLoginActivityMapper(LoginActivityMapper activityMapper, EventBus eventBus) {
+		return new ActivityManager(activityMapper, eventBus);
+	}
+
+	@Provides
+	@Singleton
+	@Named("TopBarRegion")
+	public ActivityManager getTopBarActivityMapper(CachingTopBarActivityMapper activityMapper, EventBus eventBus) {
+		return new ActivityManager(activityMapper, eventBus);
+	}
+
+	@Provides
+	@Singleton
+	@Named("LogoRegion")
+	public ActivityManager getLogoActivityMapper(LogoActivityMapper activityMapper, EventBus eventBus) {
+		return new ActivityManager(activityMapper, eventBus);
+	}
+
+	@Provides
+	@Singleton
+	@Named("NotificationRegion")
+	public ActivityManager getNotificationActivityMapper(NotificationActivityMapper activityMapper, EventBus eventBus) {
+		return new ActivityManager(activityMapper, eventBus);
+	}
+	@Provides
+	@Singleton
+	@Named("NavigationRegion")
+	public ActivityManager getNavigationActivityMapper(NavigationActivityMapper activityMapper, EventBus eventBus) {
+		return new ActivityManager(activityMapper, eventBus);
+	}
+
+	@Provides
+	@Singleton
+	@Named("ToolBarRegion")
+	public ActivityManager getToolBarActivityMapper(ToolBarActivityMapper activityMapper, EventBus eventBus) {
+		return new ActivityManager(activityMapper, eventBus);
+	}
+
+	@Provides
+	@Singleton
+	@Named("FolderListRegion")
+	public ActivityManager getFolderListActivityMapper(FolderListActivityMapper activityMapper, EventBus eventBus) {
+		return new ActivityManager(activityMapper, eventBus);
+	}
+
+	@Provides
+	@Singleton
+	@Named("MessageListRegion")
+	public ActivityManager getMessageListActivityMapper(MessageListActivityMapper activityMapper, EventBus eventBus) {
+		return new ActivityManager(activityMapper, eventBus);
+	}
+
+	@Provides
+	@Singleton
+	@Named("MessageListFooterRegion")
+	public ActivityManager getMessageListFooterActivityMapper(MessageListFooterActivityMapper activityMapper,
+			EventBus eventBus) {
+		return new ActivityManager(activityMapper, eventBus);
+	}
+
+	@Provides
+	@Singleton
+	@Named("MessageContentRegion")
+	public ActivityManager getMessageContentActivityMapper(MessageContentActivityMapper activityMapper,
+			EventBus eventBus) {
+		return new ActivityManager(activityMapper, eventBus);
+	}
+
+	@Provides
+	@Singleton
+	@Named("StatusRegion")
+	public ActivityManager getStatusActivityMapper(StatusActivityMapper activityMapper, EventBus eventBus) {
+		return new ActivityManager(activityMapper, eventBus);
+	}
+
+	@Provides
+	@Singleton
+	@Named("ComposeRegion")
+	public ActivityManager getComposeActivityMapper(ComposeActivityMapper activityMapper, EventBus eventBus) {
+		return new ActivityManager(activityMapper, eventBus);
+	}
+
+	@Provides
+	@Singleton
+	@Named("ComposeToolBarRegion")
+	public ActivityManager getComposeToolBarActivityMapper(ComposeToolBarActivityMapper activityMapper,
+			EventBus eventBus) {
+		return new ActivityManager(activityMapper, eventBus);
+	}
+
+	@Provides
+	@Singleton
+	@Named("SearchBoxRegion")
+	public ActivityManager getSearchBoxActivityMapper(SearchBoxActivityMapper activityMapper,
+			EventBus eventBus) {
+		return new ActivityManager(activityMapper, eventBus);
+	}
+
+	@Provides
+	@Singleton
+	public PlaceController getPlaceController(EventBus eventBus) {
+		return new PlaceController(eventBus);
+	}
+
+	@Provides
+	@Singleton
+	public PlaceHistoryHandler getHistoryHandler(PlaceController placeController, PlaceHistoryMapper historyMapper,
+			EventBus eventBus) {
+		PlaceHistoryHandler historyHandler = new PlaceHistoryHandler(historyMapper);
+		historyHandler.register(placeController, eventBus, new DefaultPlace("@"));
+		return historyHandler;
+	}
+
+	@Provides
+	@Singleton
+	HupaRequestFactory getRequestFactory(EventBus eventBus) {
+		HupaRequestFactory rf = GWT.create(HupaRequestFactory.class);
+		rf.initialize(eventBus);
+		return rf;
+	}
+
+}

Copied: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ioc/AppGinjector.java (from r1375909, james/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/exception/InvalidSessionException.java)
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ioc/AppGinjector.java?p2=james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ioc/AppGinjector.java&p1=james/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/exception/InvalidSessionException.java&r1=1375909&r2=1516164&rev=1516164&view=diff
==============================================================================
--- james/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/exception/InvalidSessionException.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ioc/AppGinjector.java Wed Aug 21 14:08:19 2013
@@ -1,37 +1,36 @@
-/****************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one   *
- * or more contributor license agreements.  See the NOTICE file *
- * distributed with this work for additional information        *
- * regarding copyright ownership.  The ASF licenses this file   *
- * to you under the Apache License, Version 2.0 (the            *
- * "License"); you may not use this file except in compliance   *
- * with the License.  You may obtain a copy of the License at   *
- *                                                              *
- *   http://www.apache.org/licenses/LICENSE-2.0                 *
- *                                                              *
- * Unless required by applicable law or agreed to in writing,   *
- * software distributed under the License is distributed on an  *
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
- * KIND, either express or implied.  See the License for the    *
- * specific language governing permissions and limitations      *
- * under the License.                                           *
- ****************************************************************/
-
-package org.apache.hupa.shared.exception;
-
-import net.customware.gwt.dispatch.shared.ActionException;
-
-/**
- *
- */
-public class InvalidSessionException extends ActionException{
-
-    /**
-     * 
-     */
-    private static final long serialVersionUID = 995112620968798947L;
-
-    public InvalidSessionException(String msg) {
-        super(msg);
-    }
-}
+/****************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ ****************************************************************/
+
+package org.apache.hupa.client.ioc;
+
+import org.apache.hupa.client.HupaController;
+
+import com.google.gwt.inject.client.GinModules;
+import com.google.gwt.inject.client.Ginjector;
+
+/**
+ * This is the application ginjector.
+ * It defines the method our EntryPoint will use to initialize GIN dependecy graph
+ * and the GIN module where binding is defined
+ */
+@GinModules(AppGinModule.class)
+public interface AppGinjector extends Ginjector {
+//  AppController getAppController();
+  HupaController getHupaController();
+}

Added: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mapper/ActivityAsyncProxy.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mapper/ActivityAsyncProxy.java?rev=1516164&view=auto
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mapper/ActivityAsyncProxy.java (added)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mapper/ActivityAsyncProxy.java Wed Aug 21 14:08:19 2013
@@ -0,0 +1,122 @@
+/*
+ *    Copyright 2012 Thomas Broyer <t....@ltgt.net>
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.hupa.client.mapper;
+
+import com.google.gwt.activity.shared.Activity;
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.core.client.RunAsyncCallback;
+import com.google.gwt.event.shared.EventBus;
+import com.google.gwt.user.client.ui.AcceptsOneWidget;
+
+/**
+ * Makes it easy to put any {@link Activity} behind a split-point.
+ * <p>
+ * For simple activities, that could be done using an
+ * {@link com.google.gwt.user.client.AsyncProxy AsyncProxy}, but it's not
+ * possible for activities created through factories or via dependency
+ * injection.
+ * <p>
+ * As a bonus, the {@link Activity} won't be instantiated at all in case the
+ * {@link ActivityAsyncProxy} is {@link #onCancel cancelled} before the
+ * {@link GWT.runAsync async call} returns.
+ */
+public abstract class ActivityAsyncProxy implements Activity {
+
+	private boolean hasAsyncBeenIssued;
+	private boolean hasAsyncBeenCancelled;
+	private boolean hasAsyncFailed;
+	private AcceptsOneWidget display;
+	private EventBus eventBus;
+	private Activity instance;
+
+	@Override
+	public String mayStop() {
+		checkHasAsyncFailed();
+		assert this.instance != null;
+		return this.instance.mayStop();
+	}
+
+	@Override
+	public void onCancel() {
+		if (this.instance != null) {
+			this.instance.onCancel();
+		}
+		checkHasAsyncFailed();
+		this.hasAsyncBeenCancelled = true;
+	}
+
+	@Override
+	public void onStop() {
+		checkHasAsyncFailed();
+		assert this.instance != null;
+		this.instance.onStop();
+	}
+
+	@Override
+	public void start(AcceptsOneWidget panel, EventBus eventBus) {
+		if (this.instance != null) {
+			this.instance.start(panel, eventBus);
+			return;
+		}
+		checkHasAsyncFailed();
+		assert !this.hasAsyncBeenIssued || this.hasAsyncBeenCancelled;
+		this.display = panel;
+		this.eventBus = eventBus;
+		this.hasAsyncBeenCancelled = false;
+		if (!this.hasAsyncBeenIssued) {
+			this.hasAsyncBeenIssued = true;
+			doAsync(new RunAsyncCallback() {
+
+				@Override
+				public void onSuccess() {
+					if (!ActivityAsyncProxy.this.hasAsyncBeenCancelled) {
+						assert ActivityAsyncProxy.this.instance == null;
+						ActivityAsyncProxy.this.instance = createInstance();
+						ActivityAsyncProxy.this.instance.start(
+								ActivityAsyncProxy.this.display,
+								ActivityAsyncProxy.this.eventBus);
+					}
+				}
+
+				@Override
+				public void onFailure(Throwable reason) {
+					ActivityAsyncProxy.this.hasAsyncFailed = true;
+					if (GWT.getUncaughtExceptionHandler() != null) {
+						GWT.getUncaughtExceptionHandler().onUncaughtException(
+								reason);
+					}
+				}
+			});
+		}
+	}
+
+	/**
+	 * Implementors should simply call {@link GWT#runAsync} here, and nothing
+	 * else.
+	 * <p>
+	 * This is required to have a different split-point generated for each
+	 * {@link ActivityAsyncProxy} sub-class.
+	 */
+	protected abstract void doAsync(RunAsyncCallback callback);
+
+	protected abstract Activity createInstance();
+
+	private void checkHasAsyncFailed() {
+		if (this.hasAsyncFailed) {
+			throw new IllegalStateException("runAsync load previously failed");
+		}
+	}
+}

Added: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mapper/ActivityManagerInitializer.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mapper/ActivityManagerInitializer.java?rev=1516164&view=auto
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mapper/ActivityManagerInitializer.java (added)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mapper/ActivityManagerInitializer.java Wed Aug 21 14:08:19 2013
@@ -0,0 +1,84 @@
+/****************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ ****************************************************************/
+
+package org.apache.hupa.client.mapper;
+
+import org.apache.hupa.client.ui.HupaLayoutable;
+import org.apache.hupa.client.ui.LoginLayoutable;
+
+import com.google.gwt.activity.shared.ActivityManager;
+import com.google.inject.Inject;
+import com.google.inject.name.Named;
+
+/**
+ * This class is responsible for ActivityManager instantiations through GIN, it
+ * also associate every ActivityManager with the corresponding display region
+ */
+public class ActivityManagerInitializer {
+
+	@Inject
+	public ActivityManagerInitializer(LoginLayoutable loginLayout, HupaLayoutable hupaLayout,
+
+	@Named("ContactsListRegion") ActivityManager contactsListActivityManager,
+			@Named("ContactPropertiesRegion") ActivityManager contactPropertiesActivityManager,
+			@Named("LabelListRegion") ActivityManager labelListActivityManager,
+<<<<<<< HEAD
+=======
+			@Named("SettingNavRegion") ActivityManager settingNavActivityManager,
+>>>>>>> 7635f4a0e76a4bbbeb6a4029aff92087f00eb09f
+			@Named("LabelPropertiesRegion") ActivityManager labelPropertiesActivityManager,
+			@Named("LoginPage") ActivityManager loginActivityManager,
+			@Named("TopBarRegion") ActivityManager topBarActivityManager,
+			@Named("LogoRegion") ActivityManager logoActivityManager,
+			@Named("NotificationRegion") ActivityManager notificationActivityManager,
+			@Named("NavigationRegion") ActivityManager navigationActivityManager,
+			@Named("ToolBarRegion") ActivityManager toolBarActivityManager,
+			@Named("FolderListRegion") ActivityManager folderListActivityManager,
+			@Named("MessageListRegion") ActivityManager messageListActivityManager,
+			@Named("MessageListFooterRegion") ActivityManager messageListFooterActivityManager,
+			@Named("MessageContentRegion") ActivityManager messageContentActivityManager,
+			@Named("StatusRegion") ActivityManager statusActivityManager,
+			@Named("ComposeToolBarRegion") ActivityManager composeToolBarActivityManager,
+			@Named("SearchBoxRegion") ActivityManager searchBoxActivityManager,
+			@Named("ComposeRegion") ActivityManager composeActivityManager) {
+		contactsListActivityManager.setDisplay(hupaLayout.getContactsListView());
+		contactPropertiesActivityManager.setDisplay(hupaLayout.getContactPropertiesView());
+		labelPropertiesActivityManager.setDisplay(hupaLayout.getLabelPropertiesView());
+		labelListActivityManager.setDisplay(hupaLayout.getLabelListView());
+<<<<<<< HEAD
+=======
+		settingNavActivityManager.setDisplay(hupaLayout.getSettingNavView());
+>>>>>>> 7635f4a0e76a4bbbeb6a4029aff92087f00eb09f
+		loginActivityManager.setDisplay(loginLayout.getLoginView());
+		topBarActivityManager.setDisplay(hupaLayout.getTopBarView());
+		logoActivityManager.setDisplay(hupaLayout.getLogoView());
+		notificationActivityManager.setDisplay(hupaLayout.getNotificationView());
+		navigationActivityManager.setDisplay(hupaLayout.getNavigationView());
+		toolBarActivityManager.setDisplay(hupaLayout.getToolBarView());
+		folderListActivityManager.setDisplay(hupaLayout.getFolderListView());
+		messageListActivityManager.setDisplay(hupaLayout.getMessageListView());
+		messageListFooterActivityManager.setDisplay(hupaLayout.getMessageListFooterView());
+		messageContentActivityManager.setDisplay(hupaLayout.getMessageContentView());
+		statusActivityManager.setDisplay(hupaLayout.getStatusView());
+		composeToolBarActivityManager.setDisplay(hupaLayout.getComposeToolBarView());
+		searchBoxActivityManager.setDisplay(hupaLayout.getSearchBoxView());
+		composeActivityManager.setDisplay(hupaLayout.getComposeView());
+	}
+
+}

Copied: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mapper/AppPlaceHistoryMapper.java (from r1375909, james/hupa/trunk/client/src/main/java/org/apache/hupa/client/gin/HupaGinjector.java)
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mapper/AppPlaceHistoryMapper.java?p2=james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mapper/AppPlaceHistoryMapper.java&p1=james/hupa/trunk/client/src/main/java/org/apache/hupa/client/gin/HupaGinjector.java&r1=1375909&r2=1516164&rev=1516164&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/gin/HupaGinjector.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mapper/AppPlaceHistoryMapper.java Wed Aug 21 14:08:19 2013
@@ -1,37 +1,51 @@
-/****************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one   *
- * or more contributor license agreements.  See the NOTICE file *
- * distributed with this work for additional information        *
- * regarding copyright ownership.  The ASF licenses this file   *
- * to you under the Apache License, Version 2.0 (the            *
- * "License"); you may not use this file except in compliance   *
- * with the License.  You may obtain a copy of the License at   *
- *                                                              *
- *   http://www.apache.org/licenses/LICENSE-2.0                 *
- *                                                              *
- * Unless required by applicable law or agreed to in writing,   *
- * software distributed under the License is distributed on an  *
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
- * KIND, either express or implied.  See the License for the    *
- * specific language governing permissions and limitations      *
- * under the License.                                           *
- ****************************************************************/
-package org.apache.hupa.client.gin;
-
-import net.customware.gwt.dispatch.client.gin.StandardDispatchModule;
-import net.customware.gwt.presenter.client.EventBus;
-import net.customware.gwt.presenter.client.place.PlaceManager;
-
-import org.apache.hupa.client.mvp.AppPresenter;
-import org.apache.hupa.client.rf.HupaRequestFactory;
-
-import com.google.gwt.inject.client.GinModules;
-import com.google.gwt.inject.client.Ginjector;
-
-@GinModules({/*StandardDispatchModule.class,*/ HupaClientModule.class})
-public interface HupaGinjector extends Ginjector {
-    AppPresenter getAppPresenter();
-    PlaceManager getPlaceManager();
-    EventBus getEventBus();
-    HupaRequestFactory getRequestFactory();
-}
+/****************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ ****************************************************************/
+
+package org.apache.hupa.client.mapper;
+
+import org.apache.hupa.client.place.ComposePlace;
+import org.apache.hupa.client.place.ContactPlace;
+import org.apache.hupa.client.place.DefaultPlace;
+<<<<<<< HEAD
+import org.apache.hupa.client.place.MessagePlace;
+import org.apache.hupa.client.place.FolderPlace;
+import org.apache.hupa.client.place.MessageSendPlace;
+=======
+import org.apache.hupa.client.place.FolderPlace;
+import org.apache.hupa.client.place.MessagePlace;
+>>>>>>> 7635f4a0e76a4bbbeb6a4029aff92087f00eb09f
+import org.apache.hupa.client.place.SettingPlace;
+
+import com.google.gwt.place.shared.PlaceHistoryMapper;
+import com.google.gwt.place.shared.WithTokenizers;
+
+@WithTokenizers({
+    DefaultPlace.Tokenizer.class,
+    FolderPlace.Tokenizer.class,
+<<<<<<< HEAD
+    MessageSendPlace.Tokenizer.class,
+=======
+>>>>>>> 7635f4a0e76a4bbbeb6a4029aff92087f00eb09f
+    MessagePlace.Tokenizer.class,
+    ComposePlace.Tokenizer.class,
+    SettingPlace.Tokenizer.class,
+    ContactPlace.Tokenizer.class
+})
+public interface AppPlaceHistoryMapper extends PlaceHistoryMapper {
+}

Copied: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mapper/CachingMessageListActivityMapper.java (from r1375909, james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/place/LoginPresenterPlace.java)
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mapper/CachingMessageListActivityMapper.java?p2=james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mapper/CachingMessageListActivityMapper.java&p1=james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/place/LoginPresenterPlace.java&r1=1375909&r2=1516164&rev=1516164&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/place/LoginPresenterPlace.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mapper/CachingMessageListActivityMapper.java Wed Aug 21 14:08:19 2013
@@ -17,34 +17,40 @@
  * under the License.                                           *
  ****************************************************************/
 
-package org.apache.hupa.client.mvp.place;
+package org.apache.hupa.client.mapper;
 
-import org.apache.hupa.client.mvp.LoginPresenter;
+import org.apache.hupa.client.place.FolderPlace;
+import org.apache.hupa.client.place.MessagePlace;
 
+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;
-import com.google.inject.Provider;
 
-import net.customware.gwt.presenter.client.gin.ProvidedPresenterPlace;
-import net.customware.gwt.presenter.client.place.PlaceRequest;
+public class CachingMessageListActivityMapper implements ActivityMapper {
 
-public class LoginPresenterPlace extends ProvidedPresenterPlace<LoginPresenter>{
+	private ActivityMapper filteredActivityMapper;
 
-    @Inject
-    public LoginPresenterPlace(Provider<LoginPresenter> presenter) {
-        super(presenter);
-    }
-
-    @Override
-    public String getName() {
-        return "Login";
-    }
-
-    @Override
-    protected void preparePresenter(PlaceRequest request, LoginPresenter presenter) {
-        String user = request.getParameter("user", null);
-        if (user != null) {
-            presenter.getDisplay().getUserNameValue().setValue(user);
-        }
-    }
+	@Inject
+	public CachingMessageListActivityMapper(MessageListActivityMapper messageListActivityMapper) {
+
+		FilteredActivityMapper.Filter filter = new FilteredActivityMapper.Filter() {
+			@Override
+			public Place filter(Place place) {
+				return place instanceof MessagePlace ? new FolderPlace(((MessagePlace) place).getTokenWrapper()
+						.getFolder()) : place;
+			}
+		};
+
+		filteredActivityMapper = new FilteredActivityMapper(filter,
+				new CachingActivityMapper(messageListActivityMapper));
+	}
+
+	@Override
+	public Activity getActivity(Place place) {
+		return filteredActivityMapper.getActivity(place);
+	}
 
 }

Copied: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mapper/CachingToolBarActivityMapper.java (from r1375909, james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/place/LoginPresenterPlace.java)
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mapper/CachingToolBarActivityMapper.java?p2=james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mapper/CachingToolBarActivityMapper.java&p1=james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/place/LoginPresenterPlace.java&r1=1375909&r2=1516164&rev=1516164&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/place/LoginPresenterPlace.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mapper/CachingToolBarActivityMapper.java Wed Aug 21 14:08:19 2013
@@ -17,34 +17,38 @@
  * under the License.                                           *
  ****************************************************************/
 
-package org.apache.hupa.client.mvp.place;
+package org.apache.hupa.client.mapper;
 
-import org.apache.hupa.client.mvp.LoginPresenter;
+import org.apache.hupa.client.place.MessagePlace;
 
+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;
-import com.google.inject.Provider;
 
-import net.customware.gwt.presenter.client.gin.ProvidedPresenterPlace;
-import net.customware.gwt.presenter.client.place.PlaceRequest;
+public class CachingToolBarActivityMapper implements ActivityMapper {
 
-public class LoginPresenterPlace extends ProvidedPresenterPlace<LoginPresenter>{
+	private ActivityMapper filteredActivityMapper;
 
-    @Inject
-    public LoginPresenterPlace(Provider<LoginPresenter> presenter) {
-        super(presenter);
-    }
-
-    @Override
-    public String getName() {
-        return "Login";
-    }
-
-    @Override
-    protected void preparePresenter(PlaceRequest request, LoginPresenter presenter) {
-        String user = request.getParameter("user", null);
-        if (user != null) {
-            presenter.getDisplay().getUserNameValue().setValue(user);
-        }
-    }
+	@Inject
+	public CachingToolBarActivityMapper(ToolBarActivityMapper toolBarActivityMapper) {
+
+		FilteredActivityMapper.Filter filter = new FilteredActivityMapper.Filter() {
+			@Override
+			public Place filter(Place place) {
+				return place instanceof MessagePlace ? Place.NOWHERE : place;
+			}
+		};
+
+		CachingActivityMapper cachingActivityMapper = new CachingActivityMapper(toolBarActivityMapper);
+		filteredActivityMapper = new FilteredActivityMapper(filter, cachingActivityMapper);
+	}
+
+	@Override
+	public Activity getActivity(Place place) {
+		return filteredActivityMapper.getActivity(place);
+	}
 
 }

Copied: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mapper/CachingTopActivityMapper.java (from r1375909, james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/place/LoginPresenterPlace.java)
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mapper/CachingTopActivityMapper.java?p2=james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mapper/CachingTopActivityMapper.java&p1=james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/place/LoginPresenterPlace.java&r1=1375909&r2=1516164&rev=1516164&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/place/LoginPresenterPlace.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mapper/CachingTopActivityMapper.java Wed Aug 21 14:08:19 2013
@@ -17,34 +17,36 @@
  * under the License.                                           *
  ****************************************************************/
 
-package org.apache.hupa.client.mvp.place;
-
-import org.apache.hupa.client.mvp.LoginPresenter;
+package org.apache.hupa.client.mapper;
 
+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;
-import com.google.inject.Provider;
 
-import net.customware.gwt.presenter.client.gin.ProvidedPresenterPlace;
-import net.customware.gwt.presenter.client.place.PlaceRequest;
+public class CachingTopActivityMapper implements ActivityMapper {
+
+	private ActivityMapper filteredActivityMapper;
 
-public class LoginPresenterPlace extends ProvidedPresenterPlace<LoginPresenter>{
+	@Inject
+	public CachingTopActivityMapper(TopActivityMapper topActivityMapper) {
 
-    @Inject
-    public LoginPresenterPlace(Provider<LoginPresenter> presenter) {
-        super(presenter);
-    }
-
-    @Override
-    public String getName() {
-        return "Login";
-    }
-
-    @Override
-    protected void preparePresenter(PlaceRequest request, LoginPresenter presenter) {
-        String user = request.getParameter("user", null);
-        if (user != null) {
-            presenter.getDisplay().getUserNameValue().setValue(user);
-        }
-    }
+		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);
+	}
 
 }

Copied: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mapper/CachingTopBarActivityMapper.java (from r1375909, james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/place/LoginPresenterPlace.java)
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mapper/CachingTopBarActivityMapper.java?p2=james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mapper/CachingTopBarActivityMapper.java&p1=james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/place/LoginPresenterPlace.java&r1=1375909&r2=1516164&rev=1516164&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/place/LoginPresenterPlace.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mapper/CachingTopBarActivityMapper.java Wed Aug 21 14:08:19 2013
@@ -17,34 +17,36 @@
  * under the License.                                           *
  ****************************************************************/
 
-package org.apache.hupa.client.mvp.place;
-
-import org.apache.hupa.client.mvp.LoginPresenter;
+package org.apache.hupa.client.mapper;
 
+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;
-import com.google.inject.Provider;
 
-import net.customware.gwt.presenter.client.gin.ProvidedPresenterPlace;
-import net.customware.gwt.presenter.client.place.PlaceRequest;
+public class CachingTopBarActivityMapper implements ActivityMapper {
+
+	private ActivityMapper filteredActivityMapper;
 
-public class LoginPresenterPlace extends ProvidedPresenterPlace<LoginPresenter>{
+	@Inject
+	public CachingTopBarActivityMapper(TopBarActivityMapper topBarActivityMapper) {
 
-    @Inject
-    public LoginPresenterPlace(Provider<LoginPresenter> presenter) {
-        super(presenter);
-    }
-
-    @Override
-    public String getName() {
-        return "Login";
-    }
-
-    @Override
-    protected void preparePresenter(PlaceRequest request, LoginPresenter presenter) {
-        String user = request.getParameter("user", null);
-        if (user != null) {
-            presenter.getDisplay().getUserNameValue().setValue(user);
-        }
-    }
+		FilteredActivityMapper.Filter filter = new FilteredActivityMapper.Filter() {
+			@Override
+			public Place filter(Place place) {
+				return place;
+			}
+		};
+
+		CachingActivityMapper cachingActivityMapper = new CachingActivityMapper(topBarActivityMapper);
+		filteredActivityMapper = new FilteredActivityMapper(filter, cachingActivityMapper);
+	}
+
+	@Override
+	public Activity getActivity(Place place) {
+		return filteredActivityMapper.getActivity(place);
+	}
 
 }

Copied: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mapper/CachingWestActivityMapper.java (from r1375909, james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/place/LoginPresenterPlace.java)
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mapper/CachingWestActivityMapper.java?p2=james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mapper/CachingWestActivityMapper.java&p1=james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/place/LoginPresenterPlace.java&r1=1375909&r2=1516164&rev=1516164&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/place/LoginPresenterPlace.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mapper/CachingWestActivityMapper.java Wed Aug 21 14:08:19 2013
@@ -17,34 +17,40 @@
  * under the License.                                           *
  ****************************************************************/
 
-package org.apache.hupa.client.mvp.place;
+package org.apache.hupa.client.mapper;
 
-import org.apache.hupa.client.mvp.LoginPresenter;
+import org.apache.hupa.client.place.DefaultPlace;
+import org.apache.hupa.client.place.FolderPlace;
 
+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;
-import com.google.inject.Provider;
 
-import net.customware.gwt.presenter.client.gin.ProvidedPresenterPlace;
-import net.customware.gwt.presenter.client.place.PlaceRequest;
+public class CachingWestActivityMapper implements ActivityMapper {
 
-public class LoginPresenterPlace extends ProvidedPresenterPlace<LoginPresenter>{
+	private ActivityMapper filteredActivityMapper;
 
-    @Inject
-    public LoginPresenterPlace(Provider<LoginPresenter> presenter) {
-        super(presenter);
-    }
-
-    @Override
-    public String getName() {
-        return "Login";
-    }
-
-    @Override
-    protected void preparePresenter(PlaceRequest request, LoginPresenter presenter) {
-        String user = request.getParameter("user", null);
-        if (user != null) {
-            presenter.getDisplay().getUserNameValue().setValue(user);
-        }
-    }
+	@Inject
+	public CachingWestActivityMapper(WestActivityMapper westActivityMapper) {
+
+		FilteredActivityMapper.Filter filter = new FilteredActivityMapper.Filter() {
+			@Override
+			public Place filter(Place place) {
+				return (place instanceof DefaultPlace || place instanceof FolderPlace) ? place
+						: new FolderPlace("");
+			}
+		};
+
+		CachingActivityMapper cachingActivityMapper = new CachingActivityMapper(westActivityMapper);
+		filteredActivityMapper = new FilteredActivityMapper(filter, cachingActivityMapper);
+	}
+
+	@Override
+	public Activity getActivity(Place place) {
+		return filteredActivityMapper.getActivity(place);
+	}
 
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org