com.chinarewards.gwt.license.client.user.presenter.UserSearchPresenterImpl.java Source code

Java tutorial

Introduction

Here is the source code for com.chinarewards.gwt.license.client.user.presenter.UserSearchPresenterImpl.java

Source

/**
 * 
 */
package com.chinarewards.gwt.license.client.user.presenter;

import java.util.HashMap;
import java.util.Map;

import net.customware.gwt.dispatch.client.DispatchAsync;

import com.chinarewards.gwt.license.client.mvp.BasePresenter;
import com.chinarewards.gwt.license.client.mvp.ErrorHandler;
import com.chinarewards.gwt.license.client.mvp.EventBus;
import com.chinarewards.gwt.license.client.support.SessionManager;
import com.chinarewards.gwt.license.client.user.DeleteUserRequest;
import com.chinarewards.gwt.license.client.user.DeleteUserResponse;
import com.chinarewards.gwt.license.client.user.dp.UserSearchAsyncDataProvider;
import com.chinarewards.gwt.license.client.user.model.UserSearchVo;
import com.chinarewards.gwt.license.client.user.model.UserVo;
import com.chinarewards.gwt.license.client.user.presenter.UserSearchPresenter.UserSearchDisplay;
import com.chinarewards.gwt.license.client.win.Win;
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.user.client.Window;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.inject.Inject;

/**
 * User search presenter impl.
 * 
 * @author yanxin
 * @since 0.0.1 2010-09-25
 */
public class UserSearchPresenterImpl extends BasePresenter<UserSearchDisplay> implements UserSearchPresenter {

    private final DispatchAsync dispatcher;
    private final ErrorHandler errorHandler;
    private final SessionManager sessionManager;
    private final Win win;

    @Inject
    public UserSearchPresenterImpl(EventBus eventBus, UserSearchDisplay display, DispatchAsync dispatchAsync,
            ErrorHandler errorHandler, SessionManager sessionManager, Win win) {
        super(eventBus, display);
        this.dispatcher = dispatchAsync;
        this.errorHandler = errorHandler;
        this.sessionManager = sessionManager;
        this.win = win;
    }

    @Override
    public void bind() {
        // doSearch();
        init();
        // search btn
        registerHandler(display.getSearchHandlers().addClickHandler(new ClickHandler() {
            @Override
            public void onClick(ClickEvent event) {
                GWT.log("running click handlers. search");
                doSearch();
            }
        }));
        // add btn

        // Active btn
        registerHandler(display.getActiveHandlers().addClickHandler(new ClickHandler() {
            @Override
            public void onClick(ClickEvent event) {
                GWT.log("running click handlers. Active");
                win.alert("-");
            }
        }));
        // LogOff btn
        registerHandler(display.getLogOffHandlers().addClickHandler(new ClickHandler() {
            @Override
            public void onClick(ClickEvent event) {
                GWT.log("running click handlers. LogOff");
                win.alert("-");
            }
        }));
        // LogOff btn
        registerHandler(display.getDeleteHandlers().addClickHandler(new ClickHandler() {
            @Override
            public void onClick(ClickEvent event) {
                GWT.log("running click handlers. delete");
                if (Window.confirm("??")) {
                    if (display.getSelectedUsers().size() < 1) {
                        win.alert(",???.");
                        return;
                    }
                    deleteUser(display.getSelectedUsers());
                }

            }
        }));
    }

    void init() {
        Map<String, String> map = new HashMap<String, String>();
        map.put("Active", "");
        map.put("Inactive", "");
        display.initUserStatus(map);
        doSearch();
    }

    private void doSearch() {
        UserSearchVo searchVo = new UserSearchVo();
        searchVo.setAccountName(display.getAccountName().getValue());
        searchVo.setEmail(display.getEmail().getValue());
        searchVo.setMobile(display.getMobile().getValue());
        searchVo.setStatus(display.getStatus());
        searchVo.setEnterpriseId(display.getEnterpriseId());
        UserSearchAsyncDataProvider listViewAdapter = new UserSearchAsyncDataProvider(searchVo, errorHandler,
                sessionManager, dispatcher, display);
        display.setListViewAdapter(listViewAdapter);
    }

    private void deleteUser(Map<String, UserVo> map) {
        dispatcher.execute(new DeleteUserRequest(map), new AsyncCallback<DeleteUserResponse>() {

            @Override
            public void onFailure(Throwable t) {
                win.alert(t.getMessage());
            }

            @Override
            public void onSuccess(DeleteUserResponse resp) {
                win.alert("??");
                doSearch();
            }
        });
    }
}