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 no...@apache.org on 2009/11/09 13:44:46 UTC
svn commit: r834037 - in
/james/hupa/trunk/client/src/main/java/org/apache/hupa/client: ./ gin/ mvp/
Author: norman
Date: Mon Nov 9 12:44:44 2009
New Revision: 834037
URL: http://svn.apache.org/viewvc?rev=834037&view=rev
Log:
Work in progress for using PageRequestEvent for navigating
Added:
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/HupaPlaceManager.java
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/IMAPMessageListPresenterPlace.java
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/IMAPMessagePresenterPlace.java
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/LoginPresenterPlace.java
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/MainPresenterPlace.java
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/MessageSendPresenterPlace.java
Modified:
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/HupaCallback.java
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/gin/HupaClientModule.java
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/AppPresenter.java
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/AppView.java
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/IMAPMessageListPresenter.java
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/IMAPMessagePresenter.java
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/LoginPresenter.java
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/MainPresenter.java
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/MainView.java
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/MessageTableModel.java
Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/HupaCallback.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/HupaCallback.java?rev=834037&r1=834036&r2=834037&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/HupaCallback.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/HupaCallback.java Mon Nov 9 12:44:44 2009
@@ -20,6 +20,7 @@
package org.apache.hupa.client;
import net.customware.gwt.dispatch.client.DispatchAsync;
+import net.customware.gwt.presenter.client.Display;
import net.customware.gwt.presenter.client.EventBus;
import org.apache.hupa.shared.events.LogoutEvent;
@@ -38,14 +39,14 @@
private EventBus eventBus = null;
private ServerStatusEvent available = new ServerStatusEvent(ServerStatus.Available);
private ServerStatusEvent unavailable = new ServerStatusEvent(ServerStatus.Unavailable);
- private HupaWidgetDisplay display = null;
+ private Display display = null;
@Inject
- public HupaCallback(DispatchAsync dispatcher, EventBus bus, HupaWidgetDisplay display) {
+ public HupaCallback(DispatchAsync dispatcher, EventBus bus, Display display) {
this(dispatcher, bus);
this.display = display;
- this.display.startProcessing();
+ //this.display.startProcessing();
}
@Inject
@@ -84,8 +85,8 @@
private void finish() {
callbackError(originalCaught);
- if (display != null)
- display.stopProcessing();
+ //if (display != null)
+ //display.stopProcessing();
}
});
}
@@ -99,8 +100,8 @@
// Execute the original method
callback(result);
// If display is being used, stop it
- if (display != null)
- display.stopProcessing();
+ //if (display != null)
+ //display.stopProcessing();
}
/**
Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/gin/HupaClientModule.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/gin/HupaClientModule.java?rev=834037&r1=834036&r2=834037&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/gin/HupaClientModule.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/gin/HupaClientModule.java Mon Nov 9 12:44:44 2009
@@ -28,9 +28,13 @@
import org.apache.hupa.client.dnd.PagingScrollTableRowDragController;
import org.apache.hupa.client.mvp.AppPresenter;
import org.apache.hupa.client.mvp.AppView;
+import org.apache.hupa.client.mvp.HupaPlaceManager;
import org.apache.hupa.client.mvp.IMAPMessageListPresenter;
+import org.apache.hupa.client.mvp.IMAPMessageListPresenterPlace;
import org.apache.hupa.client.mvp.IMAPMessageListView;
import org.apache.hupa.client.mvp.IMAPMessagePresenter;
+import org.apache.hupa.client.mvp.LoginPresenterPlace;
+import org.apache.hupa.client.mvp.MainPresenterPlace;
import org.apache.hupa.client.mvp.MessageSendPresenter;
import org.apache.hupa.client.mvp.MessageSendView;
import org.apache.hupa.client.mvp.IMAPMessageView;
@@ -47,7 +51,7 @@
@Override
protected void configure() {
bind(EventBus.class).to(DefaultEventBus.class).in(Singleton.class);
- bind(PlaceManager.class).in(Singleton.class);
+ bind(PlaceManager.class).to(HupaPlaceManager.class);
bindPresenter(LoginPresenter.class,LoginPresenter.Display.class, LoginView.class);
bindPresenter(IMAPMessageListPresenter.class,IMAPMessageListPresenter.Display.class,IMAPMessageListView.class);
bindPresenter(IMAPMessagePresenter.class,IMAPMessagePresenter.Display.class,IMAPMessageView.class);
@@ -57,6 +61,9 @@
bind(CachingDispatchAsync.class);
bind(PagingScrollTableRowDragController.class).in(Singleton.class);
bind(MessageTableModel.class).in(Singleton.class);
+ bind(LoginPresenterPlace.class).in(Singleton.class);
+ bind(MainPresenterPlace.class).in(Singleton.class);
+ bind(IMAPMessageListPresenterPlace.class).in(Singleton.class);
}
}
Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/AppPresenter.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/AppPresenter.java?rev=834037&r1=834036&r2=834037&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/AppPresenter.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/AppPresenter.java Mon Nov 9 12:44:44 2009
@@ -22,8 +22,10 @@
import net.customware.gwt.dispatch.client.DispatchAsync;
import net.customware.gwt.presenter.client.EventBus;
-import net.customware.gwt.presenter.client.widget.WidgetDisplay;
-import net.customware.gwt.presenter.client.widget.WidgetPresenter;
+import net.customware.gwt.presenter.client.place.PlaceRequest;
+import net.customware.gwt.presenter.client.place.PlaceRequestEvent;
+import net.customware.gwt.presenter.client.widget.WidgetContainerDisplay;
+import net.customware.gwt.presenter.client.widget.WidgetContainerPresenter;
import org.apache.hupa.client.HupaCallback;
import org.apache.hupa.shared.data.User;
@@ -53,23 +55,21 @@
import com.google.gwt.user.client.Window.ClosingHandler;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.ui.HasText;
-import com.google.gwt.user.client.ui.Widget;
import com.google.inject.Inject;
-public class AppPresenter extends WidgetPresenter<AppPresenter.Display>{
+public class AppPresenter extends WidgetContainerPresenter<AppPresenter.Display>{
private static final int NOOP_INTERVAL = 15000;
- public interface Display extends WidgetDisplay {
+ public interface Display extends WidgetContainerDisplay {
public HasClickHandlers getLogoutClick();
public void showTopNavigation(boolean show);
- public void setMain(Widget w);
public HasText getUserText();
public void setServerStatus(ServerStatus status);
}
- private LoginPresenter loginPresenter;
- private MainPresenter mainPresenter;
+ //private LoginPresenter loginPresenter;
+ //private MainPresenter mainPresenter;
private Timer noopTimer = new NoopTimer();
private DispatchAsync dispatcher;
@@ -78,29 +78,32 @@
@Inject
public AppPresenter(Display display, DispatchAsync dispatcher,final EventBus bus, LoginPresenter loginPresenter, MainPresenter mainPresenter) {
- super(display,bus);
- this.dispatcher = dispatcher;
- this.loginPresenter = loginPresenter;
- this.mainPresenter = mainPresenter;
+ super(display,bus, loginPresenter, mainPresenter);
+ this.dispatcher = dispatcher;
}
private void showMain(User user) {
- loginPresenter.unbind();
- mainPresenter.bind(user);
display.showTopNavigation(true);
- display.setMain(mainPresenter.getDisplay().asWidget());
+ PlaceRequest request = new PlaceRequest("Main");
+ request = request.with("user", user.getName());
+
+ eventBus.fireEvent(new PlaceRequestEvent(request));
}
- private void showLogin() {
- mainPresenter.unbind();
- loginPresenter.bind();
+ private void showLogin(String username) {
display.showTopNavigation(false);
- display.setMain(loginPresenter.getDisplay().asWidget());
+ PlaceRequest request = new PlaceRequest("Login");
+ if (username != null) {
+ request = request.with("user", username);
+ }
+
+ eventBus.fireEvent(new PlaceRequestEvent(request));
}
@Override
protected void onBind() {
+ super.onBind();
registerHandler(eventBus.addHandler(LoginEvent.TYPE, new LoginEventHandler() {
public void onLogin(LoginEvent event) {
@@ -115,7 +118,12 @@
registerHandler(eventBus.addHandler(LogoutEvent.TYPE, new LogoutEventHandler() {
public void onLogout(LogoutEvent event) {
- showLogin();
+ User u = event.getUser();
+ String username = null;
+ if (u != null) {
+ username = u.getName();
+ }
+ showLogin(username);
noopTimer.cancel();
}
@@ -161,12 +169,6 @@
}
- @Override
- protected void onUnbind() {
- loginPresenter.unbind();
- mainPresenter.unbind();
- }
-
private void doLogout() {
if (user != null) {
dispatcher.execute(new LogoutUser(), new HupaCallback<LogoutUserResult>(dispatcher, eventBus) {
@@ -182,7 +184,7 @@
public void onFailure(Throwable caught) {
serverStatus = ServerStatus.Unavailable;
display.setServerStatus(serverStatus);
- showLogin();
+ showLogin(null);
}
public void onSuccess(CheckSessionResult result) {
serverStatus = ServerStatus.Available;
@@ -190,7 +192,7 @@
if (result.isValid()) {
eventBus.fireEvent(new LoginEvent(result.getUser()));
} else {
- showLogin();
+ showLogin(null);
}
}
});
@@ -212,10 +214,5 @@
}
}
- @Override
- protected void onRevealDisplay() {
- // TODO Auto-generated method stub
-
- };
-
+
}
Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/AppView.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/AppView.java?rev=834037&r1=834036&r2=834037&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/AppView.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/AppView.java Mon Nov 9 12:44:44 2009
@@ -111,7 +111,6 @@
}
public void setMain(Widget w) {
- mainPanel.setWidget(w);
}
public Widget asWidget() {
@@ -161,8 +160,36 @@
return userName;
}
+ /*
+ * (non-Javadoc)
+ * @see org.apache.hupa.client.mvp.AppPresenter.Display#setServerStatus(org.apache.hupa.shared.events.ServerStatusEvent.ServerStatus)
+ */
public void setServerStatus(ServerStatus status) {
serverStatusPanel.setStatus(status);
}
+ /*
+ * (non-Javadoc)
+ * @see net.customware.gwt.presenter.client.widget.WidgetContainerDisplay#addWidget(com.google.gwt.user.client.ui.Widget)
+ */
+ public void addWidget(Widget widget) {
+ mainPanel.setWidget(widget);
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see net.customware.gwt.presenter.client.widget.WidgetContainerDisplay#removeWidget(com.google.gwt.user.client.ui.Widget)
+ */
+ public void removeWidget(Widget widget) {
+ mainPanel.remove(widget);
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see net.customware.gwt.presenter.client.widget.WidgetContainerDisplay#showWidget(com.google.gwt.user.client.ui.Widget)
+ */
+ public void showWidget(Widget widget) {
+ mainPanel.setWidget(widget);
+ }
+
}
Added: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/HupaPlaceManager.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/HupaPlaceManager.java?rev=834037&view=auto
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/HupaPlaceManager.java (added)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/HupaPlaceManager.java Mon Nov 9 12:44:44 2009
@@ -0,0 +1,34 @@
+/****************************************************************
+ * 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.mvp;
+
+import com.google.inject.Inject;
+
+import net.customware.gwt.presenter.client.EventBus;
+import net.customware.gwt.presenter.client.place.DefaultPlaceManager;
+
+public class HupaPlaceManager extends DefaultPlaceManager{
+
+ @Inject
+ public HupaPlaceManager(EventBus eventBus, LoginPresenterPlace loginPresenterPlace, MainPresenterPlace mainPresenterPlace,IMAPMessageListPresenterPlace messageListPresenterPlace, IMAPMessagePresenterPlace imapMessagePresenterPlace) {
+ super(eventBus, loginPresenterPlace, mainPresenterPlace, messageListPresenterPlace, imapMessagePresenterPlace );
+ }
+
+}
Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/IMAPMessageListPresenter.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/IMAPMessageListPresenter.java?rev=834037&r1=834036&r2=834037&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/IMAPMessageListPresenter.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/IMAPMessageListPresenter.java Mon Nov 9 12:44:44 2009
@@ -101,7 +101,6 @@
private String searchValue;
private DispatchAsync dispatcher;
private ShowMessageTableListener tableListener = new ShowMessageTableListener();
- private boolean isBound = false;
@Inject
public IMAPMessageListPresenter(IMAPMessageListPresenter.Display display,EventBus bus,DispatchAsync dispatcher) {
@@ -268,8 +267,8 @@
}));
+
display.addTableListener(tableListener);
- isBound = true;
}
@@ -289,18 +288,15 @@
});
}
- public void bind(User user, IMAPFolder folder) {
+ public void setUser(User user) {
this.user = user;
- this.folder = folder;
- display.setPostFetchMessageCount(user.getSettings().getPostFetchMessageCount());
- // workaround
- if (isBound == false) {
- bind();
- }
-
- //refreshDisplay();
}
+ public void setFolder(IMAPFolder folder) {
+ this.folder = folder;
+ }
+
+
/*
* (non-Javadoc)
@@ -311,7 +307,6 @@
for (int i = 0; i < regList.size(); i++) {
regList.get(i).removeHandler();
}
- isBound = false;
}
@@ -341,10 +336,12 @@
protected void onRevealDisplay() {
display.reset();
display.deselectAllMessages();
-
display.reloadData(user, folder, searchValue);
- display.redraw();
+ }
+
+ public void setSearchValue(String searchValue) {
+ this.searchValue = searchValue;
};
Added: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/IMAPMessageListPresenterPlace.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/IMAPMessageListPresenterPlace.java?rev=834037&view=auto
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/IMAPMessageListPresenterPlace.java (added)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/IMAPMessageListPresenterPlace.java Mon Nov 9 12:44:44 2009
@@ -0,0 +1,54 @@
+/****************************************************************
+ * 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.mvp;
+
+import org.apache.hupa.shared.data.IMAPFolder;
+import org.apache.hupa.shared.data.User;
+
+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 IMAPMessageListPresenterPlace extends ProvidedPresenterPlace<IMAPMessageListPresenter>{
+
+ @Inject
+ public IMAPMessageListPresenterPlace(Provider<IMAPMessageListPresenter> presenter) {
+ super(presenter);
+ }
+
+ @Override
+ public String getName() {
+ return "MessageList";
+ }
+
+ @Override
+ protected void preparePresenter(PlaceRequest request, IMAPMessageListPresenter presenter) {
+ String username = request.getParameter("user", "unknown");
+ String folder = request.getParameter("folder", "INBOX");
+ String searchValue = request.getParameter("search", null);
+ User user = new User();
+ user.setName(username);
+ presenter.setUser(user);
+ presenter.setFolder(new IMAPFolder(folder));
+ presenter.setSearchValue(searchValue);
+ }
+
+}
Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/IMAPMessagePresenter.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/IMAPMessagePresenter.java?rev=834037&r1=834036&r2=834037&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/IMAPMessagePresenter.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/IMAPMessagePresenter.java Mon Nov 9 12:44:44 2009
@@ -78,7 +78,6 @@
private CachingDispatchAsync dispatcher;
private IMAPFolder folder;
private User user;
- private boolean isBound = false;
@Inject
private IMAPMessagePresenter(IMAPMessagePresenter.Display display,EventBus bus, CachingDispatchAsync dispatcher) {
@@ -91,11 +90,7 @@
this.message = message;
this.messageDetails = messageDetails;
this.folder = folder;
- this.user = user;
- if (isBound == false) {
- bind();
- }
- updateDisplay();
+ this.user = user;
}
private void updateDisplay() {
@@ -168,19 +163,16 @@
}
}));
- isBound = true;
}
@Override
protected void onUnbind() {
- isBound = false;
}
@Override
protected void onRevealDisplay() {
- // TODO Auto-generated method stub
-
+ updateDisplay();
}
}
Added: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/IMAPMessagePresenterPlace.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/IMAPMessagePresenterPlace.java?rev=834037&view=auto
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/IMAPMessagePresenterPlace.java (added)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/IMAPMessagePresenterPlace.java Mon Nov 9 12:44:44 2009
@@ -0,0 +1,38 @@
+/****************************************************************
+ * 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.mvp;
+
+import com.google.inject.Inject;
+import com.google.inject.Provider;
+
+import net.customware.gwt.presenter.client.gin.ProvidedPresenterPlace;
+
+public class IMAPMessagePresenterPlace extends ProvidedPresenterPlace<IMAPMessagePresenter>{
+
+ @Inject
+ public IMAPMessagePresenterPlace(Provider<IMAPMessagePresenter> presenter) {
+ super(presenter);
+ }
+
+ @Override
+ public String getName() {
+ return "IMAPMessage";
+ }
+
+}
Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/LoginPresenter.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/LoginPresenter.java?rev=834037&r1=834036&r2=834037&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/LoginPresenter.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/LoginPresenter.java Mon Nov 9 12:44:44 2009
@@ -60,7 +60,6 @@
super(display,bus);
this.dispatcher = dispatcher;
}
-
/**
* Try to login the user
Added: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/LoginPresenterPlace.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/LoginPresenterPlace.java?rev=834037&view=auto
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/LoginPresenterPlace.java (added)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/LoginPresenterPlace.java Mon Nov 9 12:44:44 2009
@@ -0,0 +1,48 @@
+/****************************************************************
+ * 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.mvp;
+
+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 LoginPresenterPlace extends ProvidedPresenterPlace<LoginPresenter>{
+
+ @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);
+ }
+ }
+
+}
Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/MainPresenter.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/MainPresenter.java?rev=834037&r1=834036&r2=834037&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/MainPresenter.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/MainPresenter.java Mon Nov 9 12:44:44 2009
@@ -25,6 +25,10 @@
import java.util.List;
import net.customware.gwt.presenter.client.EventBus;
+import net.customware.gwt.presenter.client.place.PlaceRequest;
+import net.customware.gwt.presenter.client.place.PlaceRequestEvent;
+import net.customware.gwt.presenter.client.widget.WidgetContainerDisplay;
+import net.customware.gwt.presenter.client.widget.WidgetContainerPresenter;
import net.customware.gwt.presenter.client.widget.WidgetPresenter;
import org.apache.hupa.client.CachingDispatchAsync;
@@ -52,6 +56,8 @@
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;
@@ -80,23 +86,22 @@
import com.google.gwt.event.logical.shared.HasSelectionHandlers;
import com.google.gwt.event.logical.shared.SelectionEvent;
import com.google.gwt.event.logical.shared.SelectionHandler;
+import com.google.gwt.gen2.table.client.TableModelHelper.Request;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.ui.HasValue;
import com.google.gwt.user.client.ui.TreeItem;
import com.google.gwt.user.client.ui.Widget;
import com.google.inject.Inject;
-public class MainPresenter extends WidgetPresenter<MainPresenter.Display> {
+public class MainPresenter extends WidgetContainerPresenter<MainPresenter.Display> {
- public interface Display extends HupaWidgetDisplay {
+ public interface Display extends WidgetContainerDisplay {
public HasClickHandlers getSearchClick();
public HasValue<String> getSearchValue();
public void fillOracle(ArrayList<Message> messages);
- public void setCenter(Widget widget);
-
public HasSelectionHandlers<TreeItem> getTree();
public void bindTreeItems(List<IMAPTreeItem> treeList);
@@ -126,6 +131,8 @@
public void increaseUnseenMessageCount(IMAPFolder folder, int amount);
public void decreaseUnseenMessageCount(IMAPFolder folder, int amount);
+ public void startProcessing();
+ public void stopProcessing();
}
private CachingDispatchAsync cachingDispatcher;
@@ -141,7 +148,7 @@
@Inject
public MainPresenter(MainPresenter.Display display, EventBus bus, CachingDispatchAsync cachingDispatcher, IMAPMessageListPresenter messageListPresenter, IMAPMessagePresenter messagePresenter,
MessageSendPresenter sendPresenter) {
- super(display, bus);
+ super(display, bus, messageListPresenter, messagePresenter, sendPresenter);
this.cachingDispatcher = cachingDispatcher;
this.messageListPresenter = messageListPresenter;
this.messagePresenter = messagePresenter;
@@ -149,12 +156,15 @@
}
protected void loadTreeItems() {
+ display.startProcessing();
cachingDispatcher.execute(new FetchFolders(), new HupaCallback<FetchFoldersResult>(cachingDispatcher, eventBus, display) {
public void callback(FetchFoldersResult result) {
display.bindTreeItems(createTreeNodes(result.getFolders()));
// disable
display.getDeleteEnable().setEnabled(false);
display.getRenameEnable().setEnabled(false);
+ display.stopProcessing();
+
}
});
}
@@ -227,22 +237,20 @@
this.folder = folder;
this.searchValue = searchValue;
- messagePresenter.unbind();
- sendPresenter.unbind();
-
- messageListPresenter.bind(user, folder);
- if (refresh) {
- messageListPresenter.revealDisplay();
- }
- display.setCenter(messageListPresenter.getDisplay().asWidget());
+ PlaceRequest request = new PlaceRequest("MessageList").with("user", user.getName()).with("folder", folder.getFullName()).with("search", searchValue);
+
+ eventBus.fireEvent(new PlaceRequestEvent(request));
}
private void showMessage(User user, IMAPFolder folder, Message message, MessageDetails details) {
- sendPresenter.unbind();
- messageListPresenter.unbind();
+ //sendPresenter.unbind();
+ //messageListPresenter.unbind();
messagePresenter.bind(user, folder, message, details);
- display.setCenter(messagePresenter.getDisplay().asWidget());
+ PlaceRequest request = new PlaceRequest("IMAPMessage");
+ eventBus.fireEvent(new PlaceRequestEvent(request));
+
+ //display.setCenter(messagePresenter.getDisplay().asWidget());
}
private void showNewMessage() {
@@ -250,7 +258,7 @@
messageListPresenter.unbind();
sendPresenter.bind(user, Type.NEW);
- display.setCenter(sendPresenter.getDisplay().asWidget());
+ //display.setCenter(sendPresenter.getDisplay().asWidget());
}
private void showForwardMessage(ForwardMessageEvent event) {
@@ -258,7 +266,7 @@
messageListPresenter.unbind();
sendPresenter.bind(event.getUser(), event.getFolder(), event.getMessage(), event.getMessageDetails(), Type.FORWARD);
- display.setCenter(sendPresenter.getDisplay().asWidget());
+ //display.setCenter(sendPresenter.getDisplay().asWidget());
}
private void showReplyMessage(ReplyMessageEvent event) {
@@ -271,7 +279,7 @@
sendPresenter.bind(event.getUser(), event.getFolder(), event.getMessage(), event.getMessageDetails(), Type.REPLY);
}
- display.setCenter(sendPresenter.getDisplay().asWidget());
+ //display.setCenter(sendPresenter.getDisplay().asWidget());
}
private void reset() {
@@ -280,17 +288,9 @@
}
- public void bind(User user) {
- this.user = user;
- folder = new IMAPFolder(user.getSettings().getInboxFolderName());
-
- bind();
- revealDisplay();
- }
-
@Override
protected void onBind() {
-
+ super.onBind();
registerHandler(eventBus.addHandler(LoadMessagesEvent.TYPE, new LoadMessagesEventHandler() {
public void onLoadMessagesEvent(LoadMessagesEvent loadMessagesEvent) {
@@ -363,6 +363,8 @@
registerHandler(eventBus.addHandler(FolderSelectionEvent.TYPE, new FolderSelectionEventHandler() {
public void onFolderSelectionEvent(FolderSelectionEvent event) {
+ user = event.getUser();
+ folder = event.getFolder();
showMessageTable(user, event.getFolder(), searchValue, true);
}
@@ -517,15 +519,22 @@
}
}));
+
+ registerHandler(eventBus.addHandler(LoginEvent.TYPE, new LoginEventHandler() {
+
+ public void onLogin(LoginEvent event) {
+ user = event.getUser();
+ folder = new IMAPFolder(user.getSettings().getInboxFolderName());
+ }
+
+ }));
}
@Override
protected void onUnbind() {
- messagePresenter.unbind();
- sendPresenter.unbind();
- messageListPresenter.unbind();
+ super.onUnbind();
reset();
}
@@ -534,5 +543,7 @@
protected void onRevealDisplay() {
loadTreeItems();
showMessageTable(user, folder, null, true);
+
+ super.onRevealDisplay();
}
}
Added: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/MainPresenterPlace.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/MainPresenterPlace.java?rev=834037&view=auto
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/MainPresenterPlace.java (added)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/MainPresenterPlace.java Mon Nov 9 12:44:44 2009
@@ -0,0 +1,38 @@
+/****************************************************************
+ * 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.mvp;
+
+import com.google.inject.Inject;
+import com.google.inject.Provider;
+
+import net.customware.gwt.presenter.client.gin.ProvidedPresenterPlace;
+
+public class MainPresenterPlace extends ProvidedPresenterPlace<MainPresenter>{
+
+ @Inject
+ public MainPresenterPlace(Provider<MainPresenter> presenter) {
+ super(presenter);
+ }
+
+ @Override
+ public String getName() {
+ return "Main";
+ }
+
+}
Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/MainView.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/MainView.java?rev=834037&r1=834036&r2=834037&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/MainView.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/MainView.java Mon Nov 9 12:44:44 2009
@@ -139,13 +139,10 @@
RoundedPanel buttonPanel = new RoundedPanel(RoundedPanel.ALL, 1);
buttonPanel.setBorder();
buttonPanel.add(folderButtonBar);
-
folderPanel.add(buttonPanel);
folderPanel.add(folderTree);
-
panel.add(loader);
confirmFolderDeleteBox.setText(messages.confirmDeleteFolder());
-
bus.addHandler(LoginEvent.TYPE, new LoginEventHandler() {
public void onLogin(LoginEvent event) {
@@ -229,11 +226,6 @@
searchBox.setText("");
}
- public void setCenter(Widget widget) {
- centerWidget = widget;
- center.setWidget(centerWidget);
- }
-
/*
* (non-Javadoc)
*
@@ -584,4 +576,18 @@
}
}
}
+
+ public void addWidget(Widget widget) {
+ showWidget(widget);
+ }
+
+ public void removeWidget(Widget widget) {
+ centerWidget = null;
+ center.remove(widget);
+ }
+
+ public void showWidget(Widget widget) {
+ centerWidget = widget;
+ center.setWidget(centerWidget);
+ }
}
Added: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/MessageSendPresenterPlace.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/MessageSendPresenterPlace.java?rev=834037&view=auto
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/MessageSendPresenterPlace.java (added)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/MessageSendPresenterPlace.java Mon Nov 9 12:44:44 2009
@@ -0,0 +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.client.mvp;
+
+import com.google.inject.Provider;
+
+import net.customware.gwt.presenter.client.gin.ProvidedPresenterPlace;
+
+public class MessageSendPresenterPlace extends ProvidedPresenterPlace<MessageSendPresenter>{
+
+ public MessageSendPresenterPlace(Provider<MessageSendPresenter> presenter) {
+ super(presenter);
+ }
+
+ @Override
+ public String getName() {
+ return "MessageSend";
+ }
+
+}
Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/MessageTableModel.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/MessageTableModel.java?rev=834037&r1=834036&r2=834037&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/MessageTableModel.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/MessageTableModel.java Mon Nov 9 12:44:44 2009
@@ -83,7 +83,7 @@
public void onLogin(LoginEvent event) {
user = event.getUser();
- folder = null;
+ folder = new IMAPFolder(user.getSettings().getInboxFolderName());
searchValue = null;
}
});
@@ -126,7 +126,11 @@
TableModelHelper.Response<Message> response = new TableModelHelper.Response<Message>() {
@Override
public Iterator<Message> getRowValues() {
- return result.getMessages().iterator();
+ if (result != null && result.getMessages() != null) {
+ return result.getMessages().iterator();
+ } else {
+ return new ArrayList<Message>().iterator();
+ }
}
};
setRowCount(result.getRealCount());
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org