You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@labs.apache.org by no...@apache.org on 2009/07/07 16:43:05 UTC
svn commit: r791847 - in /labs/hupa/src/main/java/org/apache/hupa: client/
client/events/ client/gin/ client/mvp/ client/rpc/ server/ server/gin/
Author: norman
Date: Tue Jul 7 14:43:04 2009
New Revision: 791847
URL: http://svn.apache.org/viewvc?rev=791847&view=rev
Log:
More MVP refactoring
Added:
labs/hupa/src/main/java/org/apache/hupa/client/events/LogoutEvent.java
labs/hupa/src/main/java/org/apache/hupa/client/events/LogoutEventHandler.java
labs/hupa/src/main/java/org/apache/hupa/client/mvp/MainPresenter.java
labs/hupa/src/main/java/org/apache/hupa/client/mvp/MainView.java
labs/hupa/src/main/java/org/apache/hupa/client/rpc/LogoutUser.java
labs/hupa/src/main/java/org/apache/hupa/client/rpc/LogoutUserResult.java
labs/hupa/src/main/java/org/apache/hupa/server/LogoutUserHandler.java
Modified:
labs/hupa/src/main/java/org/apache/hupa/client/Hupa.java
labs/hupa/src/main/java/org/apache/hupa/client/gin/MyClientModule.java
labs/hupa/src/main/java/org/apache/hupa/client/gin/MyGinjector.java
labs/hupa/src/main/java/org/apache/hupa/client/mvp/AppPresenter.java
labs/hupa/src/main/java/org/apache/hupa/client/mvp/AppView.java
labs/hupa/src/main/java/org/apache/hupa/client/mvp/LoginPresenter.java
labs/hupa/src/main/java/org/apache/hupa/server/gin/ServerModul.java
Modified: labs/hupa/src/main/java/org/apache/hupa/client/Hupa.java
URL: http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/client/Hupa.java?rev=791847&r1=791846&r2=791847&view=diff
==============================================================================
--- labs/hupa/src/main/java/org/apache/hupa/client/Hupa.java (original)
+++ labs/hupa/src/main/java/org/apache/hupa/client/Hupa.java Tue Jul 7 14:43:04 2009
@@ -20,6 +20,8 @@
package org.apache.hupa.client;
import org.apache.hupa.client.gin.MyGinjector;
+import org.apache.hupa.client.mvp.AppPresenter;
+import org.apache.hupa.client.mvp.AppView;
import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.core.client.GWT;
@@ -29,7 +31,10 @@
private final MyGinjector injector = GWT.create(MyGinjector.class);
public void onModuleLoad() {
- RootPanel.get().add(injector.getAppView());
+ AppView aView = injector.getAppView();
+ AppPresenter aPres = injector.getAppPresenter();
+ aPres.bind(aView);
+ RootPanel.get().add(aView);
}
}
Added: labs/hupa/src/main/java/org/apache/hupa/client/events/LogoutEvent.java
URL: http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/client/events/LogoutEvent.java?rev=791847&view=auto
==============================================================================
--- labs/hupa/src/main/java/org/apache/hupa/client/events/LogoutEvent.java (added)
+++ labs/hupa/src/main/java/org/apache/hupa/client/events/LogoutEvent.java Tue Jul 7 14:43:04 2009
@@ -0,0 +1,28 @@
+package org.apache.hupa.client.events;
+
+import org.apache.hupa.client.data.IMAPUser;
+
+import com.google.gwt.event.shared.GwtEvent;
+
+public class LogoutEvent extends GwtEvent<LogoutEventHandler>{
+ public static Type<LogoutEventHandler> TYPE = new Type<LogoutEventHandler>();
+ private IMAPUser user;
+ public LogoutEvent(IMAPUser user) {
+ this.user = user;
+ }
+
+ @Override
+ protected void dispatch(LogoutEventHandler handler) {
+ handler.onLogout(this);
+ }
+
+ @Override
+ public com.google.gwt.event.shared.GwtEvent.Type<LogoutEventHandler> getAssociatedType() {
+ return TYPE;
+ }
+
+ public IMAPUser getUser() {
+ return user;
+ }
+
+}
Added: labs/hupa/src/main/java/org/apache/hupa/client/events/LogoutEventHandler.java
URL: http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/client/events/LogoutEventHandler.java?rev=791847&view=auto
==============================================================================
--- labs/hupa/src/main/java/org/apache/hupa/client/events/LogoutEventHandler.java (added)
+++ labs/hupa/src/main/java/org/apache/hupa/client/events/LogoutEventHandler.java Tue Jul 7 14:43:04 2009
@@ -0,0 +1,8 @@
+package org.apache.hupa.client.events;
+
+import com.google.gwt.event.shared.EventHandler;
+
+public interface LogoutEventHandler extends EventHandler{
+
+ public void onLogout(LogoutEvent logoutEvent);
+}
Modified: labs/hupa/src/main/java/org/apache/hupa/client/gin/MyClientModule.java
URL: http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/client/gin/MyClientModule.java?rev=791847&r1=791846&r2=791847&view=diff
==============================================================================
--- labs/hupa/src/main/java/org/apache/hupa/client/gin/MyClientModule.java (original)
+++ labs/hupa/src/main/java/org/apache/hupa/client/gin/MyClientModule.java Tue Jul 7 14:43:04 2009
@@ -20,11 +20,12 @@
package org.apache.hupa.client.gin;
import org.apache.hupa.client.events.EventBus;
+import org.apache.hupa.client.mvp.AppPresenter;
import org.apache.hupa.client.mvp.AppView;
-import org.apache.hupa.client.mvp.FolderPresenter;
-import org.apache.hupa.client.mvp.FolderView;
import org.apache.hupa.client.mvp.LoginPresenter;
import org.apache.hupa.client.mvp.LoginView;
+import org.apache.hupa.client.mvp.MainPresenter;
+import org.apache.hupa.client.mvp.MainView;
import com.google.gwt.inject.client.AbstractGinModule;
import com.google.inject.Singleton;
@@ -36,9 +37,10 @@
bind(EventBus.class).in(Singleton.class);
bind(LoginView.class).in(Singleton.class);
bind(LoginPresenter.class).in(Singleton.class);
- bind(FolderView.class).in(Singleton.class);
- bind(FolderPresenter.class).in(Singleton.class);
bind(AppView.class).in(Singleton.class);
+ bind(AppPresenter.class).in(Singleton.class);
+ bind(MainView.class).in(Singleton.class);
+ bind(MainPresenter.class).in(Singleton.class);
}
}
Modified: labs/hupa/src/main/java/org/apache/hupa/client/gin/MyGinjector.java
URL: http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/client/gin/MyGinjector.java?rev=791847&r1=791846&r2=791847&view=diff
==============================================================================
--- labs/hupa/src/main/java/org/apache/hupa/client/gin/MyGinjector.java (original)
+++ labs/hupa/src/main/java/org/apache/hupa/client/gin/MyGinjector.java Tue Jul 7 14:43:04 2009
@@ -20,6 +20,7 @@
import net.customware.gwt.dispatch.client.gin.ClientDispatchModule;
+import org.apache.hupa.client.mvp.AppPresenter;
import org.apache.hupa.client.mvp.AppView;
import com.google.gwt.inject.client.GinModules;
@@ -28,4 +29,5 @@
@GinModules({ClientDispatchModule.class,MyClientModule.class})
public interface MyGinjector extends Ginjector {
public AppView getAppView();
+ public AppPresenter getAppPresenter();
}
Modified: labs/hupa/src/main/java/org/apache/hupa/client/mvp/AppPresenter.java
URL: http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/client/mvp/AppPresenter.java?rev=791847&r1=791846&r2=791847&view=diff
==============================================================================
--- labs/hupa/src/main/java/org/apache/hupa/client/mvp/AppPresenter.java (original)
+++ labs/hupa/src/main/java/org/apache/hupa/client/mvp/AppPresenter.java Tue Jul 7 14:43:04 2009
@@ -1,8 +1,44 @@
package org.apache.hupa.client.mvp;
+import net.customware.gwt.dispatch.client.DispatchAsync;
+
+import org.apache.hupa.client.events.EventBus;
+import org.apache.hupa.client.events.LoginEvent;
+import org.apache.hupa.client.events.LoginEventHandler;
+import org.apache.hupa.client.events.LogoutEvent;
+import org.apache.hupa.client.events.LogoutEventHandler;
+
+import com.google.inject.Inject;
+
public class AppPresenter {
public interface Display {
public void showLogin();
+ public void showMain();
+ }
+
+ private Display display;
+
+ @Inject
+ public AppPresenter(EventBus bus) {
+ bus.addHandler(LoginEvent.TYPE, new LoginEventHandler() {
+
+ public void onLogin(LoginEvent event) {
+ display.showMain();
+ }
+
+ });
+ bus.addHandler(LogoutEvent.TYPE, new LogoutEventHandler() {
+
+ public void onLogout(LogoutEvent event) {
+ display.showLogin();
+ }
+
+ });
+ }
+
+ public void bind(Display display) {
+ this.display = display;
+ display.showLogin();
}
}
Modified: labs/hupa/src/main/java/org/apache/hupa/client/mvp/AppView.java
URL: http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/client/mvp/AppView.java?rev=791847&r1=791846&r2=791847&view=diff
==============================================================================
--- labs/hupa/src/main/java/org/apache/hupa/client/mvp/AppView.java (original)
+++ labs/hupa/src/main/java/org/apache/hupa/client/mvp/AppView.java Tue Jul 7 14:43:04 2009
@@ -9,16 +9,22 @@
private StackPanel panel = new StackPanel();
@Inject
- public AppView(LoginView view,LoginPresenter pres) {
+ public AppView(LoginView view,LoginPresenter pres, MainView mainView,MainPresenter mainpPres) {
pres.bind(view);
+ mainpPres.bind(mainView);
+
panel.setWidth("100%");
panel.setHeight("100%");
panel.add(view);
- showLogin();
+ panel.add(mainView);
initWidget(panel);
}
public void showLogin() {
panel.showStack(0);
}
+
+ public void showMain() {
+ panel.showStack(1);
+ }
}
Modified: labs/hupa/src/main/java/org/apache/hupa/client/mvp/LoginPresenter.java
URL: http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/client/mvp/LoginPresenter.java?rev=791847&r1=791846&r2=791847&view=diff
==============================================================================
--- labs/hupa/src/main/java/org/apache/hupa/client/mvp/LoginPresenter.java (original)
+++ labs/hupa/src/main/java/org/apache/hupa/client/mvp/LoginPresenter.java Tue Jul 7 14:43:04 2009
@@ -77,6 +77,7 @@
public void onSuccess(LoginUserResult result) {
bus.fireEvent(new LoginEvent(result.getUser()));
+ doReset();
}
});
Added: labs/hupa/src/main/java/org/apache/hupa/client/mvp/MainPresenter.java
URL: http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/client/mvp/MainPresenter.java?rev=791847&view=auto
==============================================================================
--- labs/hupa/src/main/java/org/apache/hupa/client/mvp/MainPresenter.java (added)
+++ labs/hupa/src/main/java/org/apache/hupa/client/mvp/MainPresenter.java Tue Jul 7 14:43:04 2009
@@ -0,0 +1,152 @@
+package org.apache.hupa.client.mvp;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.List;
+
+import org.apache.hupa.client.data.IMAPFolder;
+import org.apache.hupa.client.data.IMAPUser;
+import org.apache.hupa.client.events.EventBus;
+import org.apache.hupa.client.events.LoginEvent;
+import org.apache.hupa.client.events.LoginEventHandler;
+import org.apache.hupa.client.events.LogoutEvent;
+import org.apache.hupa.client.events.LogoutEventHandler;
+import org.apache.hupa.client.rpc.FetchFolders;
+import org.apache.hupa.client.rpc.FetchFoldersResult;
+import org.apache.hupa.client.rpc.LogoutUser;
+import org.apache.hupa.client.rpc.LogoutUserResult;
+import org.apache.hupa.client.widgets.IMAPTreeItem;
+
+import net.customware.gwt.dispatch.client.DispatchAsync;
+
+import com.google.gwt.event.dom.client.ClickEvent;
+import com.google.gwt.event.dom.client.ClickHandler;
+import com.google.gwt.event.dom.client.HasClickHandlers;
+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.user.client.rpc.AsyncCallback;
+import com.google.gwt.user.client.ui.TreeItem;
+import com.google.inject.Inject;
+
+public class MainPresenter {
+
+
+ public interface Display {
+ public HasClickHandlers getLogoutClick();
+ public HasSelectionHandlers<TreeItem> getTree();
+ public void bindTreeItems(List<IMAPTreeItem> treeList);
+ }
+
+ private DispatchAsync dispatcher;
+ private EventBus bus;
+ private Display display;
+ private IMAPUser user;
+
+ @Inject
+ public MainPresenter(DispatchAsync dispatcher, EventBus bus) {
+ this.bus = bus;
+ this.dispatcher = dispatcher;
+ bindHandler();
+ }
+
+ private void bindHandler() {
+ bus.addHandler(LoginEvent.TYPE, new LoginEventHandler() {
+
+ public void onLogin(LoginEvent event) {
+ user = event.getUser();
+ loadTreeItems();
+ }
+
+ });
+ bus.addHandler(LogoutEvent.TYPE, new LogoutEventHandler() {
+
+ public void onLogout(LogoutEvent logoutEvent) {
+ display.bindTreeItems(new ArrayList<IMAPTreeItem>());
+ }
+
+ });
+ }
+ protected void loadTreeItems() {
+ dispatcher.execute(new FetchFolders(user), new AsyncCallback<FetchFoldersResult>() {
+
+ public void onFailure(Throwable caught) {
+ System.err.println("T="+ caught);
+ }
+
+ public void onSuccess(FetchFoldersResult result) {
+ display.bindTreeItems(createTreeNodes(result.getFolders()));
+ }
+
+ });
+ }
+
+ /**
+ * Create recursive the TreeNodes with all childs
+ *
+ * @param list
+ * @return
+ */
+ private List<IMAPTreeItem> createTreeNodes(List<IMAPFolder> list) {
+ List<IMAPTreeItem> tList = new ArrayList<IMAPTreeItem>();
+
+ for (int i = 0; i < list.size(); i++) {
+ IMAPFolder iFolder = list.get(i);
+ IMAPTreeItem record = new IMAPTreeItem(iFolder.getName() + " ("
+ + iFolder.getUnseeMessageCount() + ")");
+
+ record.setUserObject(iFolder);
+
+ List<IMAPFolder> childFolders = iFolder.getChildIMAPFolders();
+ if (childFolders != null && childFolders.isEmpty() == false) {
+ List<IMAPTreeItem> items = createTreeNodes(childFolders);
+ for (int a = 0; a < items.size(); a++) {
+ record.addItem(items.get(a));
+ }
+ }
+
+ tList.add(record);
+ }
+
+ // Sort tree
+ Collections.sort(tList, new Comparator<TreeItem>() {
+
+ public int compare(TreeItem o1, TreeItem o2) {
+ return o1.getText().compareTo(o2.getText());
+ }
+
+ });
+ return tList;
+ }
+ public void bind(Display display) {
+ this.display = display;
+ display.getLogoutClick().addClickHandler(new ClickHandler() {
+
+ public void onClick(ClickEvent event) {
+ dispatcher.execute(new LogoutUser(user), new AsyncCallback<LogoutUserResult>() {
+
+ public void onFailure(Throwable caught) {
+ // TODO Auto-generated method stub
+
+ }
+
+ public void onSuccess(LogoutUserResult result) {
+ bus.fireEvent(new LogoutEvent(result.getUser()));
+ }
+
+ });
+ }
+
+ });
+
+ display.getTree().addSelectionHandler(new SelectionHandler<TreeItem>() {
+
+ public void onSelection(SelectionEvent<TreeItem> event) {
+ TreeItem item = event.getSelectedItem();
+ IMAPFolder folder = (IMAPFolder) item.getUserObject();
+ }
+
+ });
+ }
+}
Added: labs/hupa/src/main/java/org/apache/hupa/client/mvp/MainView.java
URL: http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/client/mvp/MainView.java?rev=791847&view=auto
==============================================================================
--- labs/hupa/src/main/java/org/apache/hupa/client/mvp/MainView.java (added)
+++ labs/hupa/src/main/java/org/apache/hupa/client/mvp/MainView.java Tue Jul 7 14:43:04 2009
@@ -0,0 +1,152 @@
+package org.apache.hupa.client.mvp;
+
+import java.util.List;
+
+import org.apache.hupa.client.HupaConstants;
+import org.apache.hupa.client.bundles.IMAPTreeImages;
+import org.apache.hupa.client.widgets.IMAPTreeItem;
+import org.cobogw.gwt.user.client.ui.Button;
+import org.cobogw.gwt.user.client.ui.RoundedPanel;
+
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.event.dom.client.ClickEvent;
+import com.google.gwt.event.dom.client.ClickHandler;
+import com.google.gwt.event.dom.client.HasClickHandlers;
+import com.google.gwt.event.dom.client.KeyCodes;
+import com.google.gwt.event.dom.client.KeyUpEvent;
+import com.google.gwt.event.dom.client.KeyUpHandler;
+import com.google.gwt.event.logical.shared.HasSelectionHandlers;
+import com.google.gwt.user.client.ui.Composite;
+import com.google.gwt.user.client.ui.DockPanel;
+import com.google.gwt.user.client.ui.HorizontalPanel;
+import com.google.gwt.user.client.ui.Label;
+import com.google.gwt.user.client.ui.MultiWordSuggestOracle;
+import com.google.gwt.user.client.ui.SuggestBox;
+import com.google.gwt.user.client.ui.Tree;
+import com.google.gwt.user.client.ui.TreeItem;
+import com.google.gwt.user.client.ui.VerticalPanel;
+
+public class MainView extends Composite implements MainPresenter.Display{
+
+ private DockPanel dockPanel;
+ private VerticalPanel north;
+ private HupaConstants constants = GWT.create(HupaConstants.class);
+ private RoundedPanel west;
+ private IMAPTreeImages tImages = GWT.create(IMAPTreeImages.class);
+ private Tree folderTree = new Tree(tImages,true);
+
+ private MultiWordSuggestOracle oracle = new MultiWordSuggestOracle(" ,@");
+ private SuggestBox searchBox = new SuggestBox(oracle);
+ private Button searchButton = new Button(constants.searchButton());
+ private Button logoutButton = new Button(constants.logoutButton());
+
+ public MainView() {
+ dockPanel = new DockPanel();
+
+ dockPanel.setSpacing(10);
+ dockPanel.setWidth("100%");
+
+ createNorth();
+ createWest();
+ //createCenter();
+
+ dockPanel.add(north, DockPanel.NORTH);
+ dockPanel.add(west, DockPanel.WEST);
+ //dockPanel.add(center, DockPanel.CENTER);
+ dockPanel.setCellHorizontalAlignment(north, DockPanel.ALIGN_RIGHT);
+ //dockPanel.setCellHorizontalAlignment(center, DockPanel.ALIGN_LEFT);
+
+ initWidget(dockPanel);
+ }
+
+ private void createWest() {
+
+
+ west = new RoundedPanel(RoundedPanel.ALL);
+ west.add(folderTree);
+ west.setWidth("30%");
+ folderTree.setAnimationEnabled(true);
+
+ }
+ private void createNorth() {
+ north = new VerticalPanel();
+ north.setWidth("100%");
+ HorizontalPanel northTop = new HorizontalPanel();
+ northTop.setSpacing(5);
+ northTop.setStyleName("hupa-Northpanel");
+ northTop.setHorizontalAlignment(HorizontalPanel.ALIGN_LEFT);
+
+ northTop.setWidth("100%");
+ northTop.add(new Label(constants.productName()));
+
+
+ logoutButton.addClickHandler(new ClickHandler() {
+
+ public void onClick(ClickEvent event) {
+
+ }
+
+ });
+ northTop.add(logoutButton);
+ northTop.setCellHorizontalAlignment(logoutButton,
+ VerticalPanel.ALIGN_RIGHT);
+ north.add(northTop);
+
+ HorizontalPanel hPanel = new HorizontalPanel();
+ hPanel.setSpacing(5);
+ hPanel.setVerticalAlignment(HorizontalPanel.ALIGN_MIDDLE);
+
+ searchBox.setWidth("150px");
+ searchBox.setLimit(20);
+ searchBox.addKeyUpHandler(new KeyUpHandler() {
+
+ public void onKeyUp(KeyUpEvent event) {
+ if (event.getNativeKeyCode() == KeyCodes.KEY_ENTER) {
+ searchButton.click();
+ }
+ }
+
+ });
+ hPanel.add(searchBox);
+
+
+ searchButton.addClickHandler(new ClickHandler() {
+
+ public void onClick(ClickEvent event) {
+ String searchValue = null;
+ if (searchBox.getValue().trim().length() >0) {
+ searchValue = searchBox.getValue().trim();
+ }
+
+ /*
+ controller.call(new Event<MessageListModelData, HupaAction>(
+ HupaAction.FETCH_MESSAGES,
+ new MessageListModelData(user, folder,
+ 0, rowsPerPage,searchValue), masker));
+ //searchBox.setValue("");
+ */
+ }
+
+ });
+ hPanel.add(searchButton);
+
+ north.add(hPanel);
+
+ }
+
+ public HasClickHandlers getLogoutClick() {
+ return logoutButton;
+ }
+ public HasSelectionHandlers<TreeItem> getTree() {
+ return folderTree;
+ }
+
+ public void bindTreeItems(List<IMAPTreeItem> treeList) {
+ folderTree.clear();
+
+ for (int i = 0; i < treeList.size(); i++) {
+ folderTree.addItem(treeList.get(i));
+
+ }
+ }
+}
Added: labs/hupa/src/main/java/org/apache/hupa/client/rpc/LogoutUser.java
URL: http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/client/rpc/LogoutUser.java?rev=791847&view=auto
==============================================================================
--- labs/hupa/src/main/java/org/apache/hupa/client/rpc/LogoutUser.java (added)
+++ labs/hupa/src/main/java/org/apache/hupa/client/rpc/LogoutUser.java Tue Jul 7 14:43:04 2009
@@ -0,0 +1,27 @@
+package org.apache.hupa.client.rpc;
+
+import org.apache.hupa.client.data.IMAPUser;
+
+import net.customware.gwt.dispatch.shared.Action;
+
+public class LogoutUser implements Action<LogoutUserResult>{
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 2255166545722718094L;
+ private IMAPUser user;
+
+ @SuppressWarnings("unused")
+ private LogoutUser() {
+
+ }
+
+ public LogoutUser(IMAPUser user) {
+ this.user = user;
+ }
+
+ public IMAPUser getUser() {
+ return user;
+ }
+}
Added: labs/hupa/src/main/java/org/apache/hupa/client/rpc/LogoutUserResult.java
URL: http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/client/rpc/LogoutUserResult.java?rev=791847&view=auto
==============================================================================
--- labs/hupa/src/main/java/org/apache/hupa/client/rpc/LogoutUserResult.java (added)
+++ labs/hupa/src/main/java/org/apache/hupa/client/rpc/LogoutUserResult.java Tue Jul 7 14:43:04 2009
@@ -0,0 +1,26 @@
+package org.apache.hupa.client.rpc;
+
+import org.apache.hupa.client.data.IMAPUser;
+
+import net.customware.gwt.dispatch.shared.Result;
+
+public class LogoutUserResult implements Result {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = -1788523843461596092L;
+ private IMAPUser user;
+
+ public LogoutUserResult(IMAPUser user) {
+ this.user = user;
+ }
+
+ @SuppressWarnings("unused")
+ private LogoutUserResult() {
+ }
+
+ public IMAPUser getUser() {
+ return user;
+ }
+}
Added: labs/hupa/src/main/java/org/apache/hupa/server/LogoutUserHandler.java
URL: http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/server/LogoutUserHandler.java?rev=791847&view=auto
==============================================================================
--- labs/hupa/src/main/java/org/apache/hupa/server/LogoutUserHandler.java (added)
+++ labs/hupa/src/main/java/org/apache/hupa/server/LogoutUserHandler.java Tue Jul 7 14:43:04 2009
@@ -0,0 +1,29 @@
+package org.apache.hupa.server;
+
+import net.customware.gwt.dispatch.server.ExecutionContext;
+import net.customware.gwt.dispatch.shared.ActionException;
+
+import org.apache.hupa.client.data.IMAPUser;
+import org.apache.hupa.client.rpc.LogoutUser;
+import org.apache.hupa.client.rpc.LogoutUserResult;
+
+public class LogoutUserHandler extends AbstractIMAPActionHandler<LogoutUser, LogoutUserResult> {
+
+ public LogoutUserResult execute(LogoutUser action, ExecutionContext arg1)
+ throws ActionException {
+ IMAPUser user = action.getUser();
+ user.setAuthenticated(false);
+ return new LogoutUserResult(user);
+ }
+
+ public Class<LogoutUser> getActionType() {
+ return LogoutUser.class;
+ }
+
+ public void rollback(LogoutUser arg0, LogoutUserResult arg1,
+ ExecutionContext arg2) throws ActionException {
+ // TODO Auto-generated method stub
+
+ }
+
+}
Modified: labs/hupa/src/main/java/org/apache/hupa/server/gin/ServerModul.java
URL: http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/server/gin/ServerModul.java?rev=791847&r1=791846&r2=791847&view=diff
==============================================================================
--- labs/hupa/src/main/java/org/apache/hupa/server/gin/ServerModul.java (original)
+++ labs/hupa/src/main/java/org/apache/hupa/server/gin/ServerModul.java Tue Jul 7 14:43:04 2009
@@ -23,6 +23,7 @@
import org.apache.hupa.server.FetchFoldersHandler;
import org.apache.hupa.server.LoginUserHandler;
+import org.apache.hupa.server.LogoutUserHandler;
/**
* Module which binds the handlers
@@ -36,5 +37,6 @@
protected void configureHandlers() {
bindHandler(LoginUserHandler.class);
bindHandler(FetchFoldersHandler.class);
+ bindHandler(LogoutUserHandler.class);
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@labs.apache.org
For additional commands, e-mail: commits-help@labs.apache.org