com.chinarewards.gwt.license.client.core.presenter.DockPresenterImpl.java Source code

Java tutorial

Introduction

Here is the source code for com.chinarewards.gwt.license.client.core.presenter.DockPresenterImpl.java

Source

package com.chinarewards.gwt.license.client.core.presenter;

import java.util.ArrayList;
import java.util.List;

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

import com.chinarewards.gwt.license.client.LicenseGinjector;
import com.chinarewards.gwt.license.client.core.PluginManager;
import com.chinarewards.gwt.license.client.core.presenter.DockPresenter.DockDisplay;
import com.chinarewards.gwt.license.client.core.ui.MenuProcessor;
import com.chinarewards.gwt.license.client.login.event.LoginEvent;
import com.chinarewards.gwt.license.client.login.request.LastLoginRoleRequest;
import com.chinarewards.gwt.license.client.login.request.LastLoginRoleResponse;
import com.chinarewards.gwt.license.client.mvp.BasePresenter;
import com.chinarewards.gwt.license.client.mvp.EventBus;
import com.chinarewards.gwt.license.client.support.SessionManager;
import com.chinarewards.gwt.license.model.user.UserRoleVo;
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;

public class DockPresenterImpl extends BasePresenter<DockDisplay> implements DockPresenter {
    final PluginManager pluginManager;
    final SessionManager sessionManager;
    final LicenseGinjector licenseGinjector;
    final MenuProcessor menuProcessor;
    final DispatchAsync dispatchAsync;

    @Inject
    public DockPresenterImpl(EventBus eventBus, DockDisplay display, SessionManager sessionManager,
            PluginManager pluginManager, LicenseGinjector licenseGinjector, MenuProcessor menuProcessor,
            DispatchAsync dispatchAsync) {
        super(eventBus, display);
        this.sessionManager = sessionManager;
        this.pluginManager = pluginManager;
        this.licenseGinjector = licenseGinjector;
        this.menuProcessor = menuProcessor;
        this.dispatchAsync = dispatchAsync;
    }

    public void bind() {
        List<UserRoleVo> roleslt = new ArrayList<UserRoleVo>();
        UserRoleVo[] roles = sessionManager.getSession().getUserRoles();

        if (roles.length > 0) {
            for (UserRoleVo r : roles) {
                roleslt.add(r);
            }
            if (!roleslt.contains(UserRoleVo.CORP_ADMIN)) {
                display.disableManagementCenter();
            }
            if (!roleslt.contains(UserRoleVo.STAFF)) {
                display.disableStaffCenter();
            }
        }

        registerHandler(display.getlogBtn().addClickHandler(new ClickHandler() {
            @Override
            public void onClick(ClickEvent event) {
                eventBus.fireEvent(new LoginEvent(LoginEvent.LoginStatus.LOGOUT));
            }
        }));

        registerHandler(display.getBtnCollection().addClickHandler(new ClickHandler() {
            @Override
            public void onClick(ClickEvent event) {
                Window.alert("?");
            }
        }));

        registerHandler(display.getStaffCenter().addClickHandler(new ClickHandler() {
            @Override
            public void onClick(ClickEvent event) {
                dispatchAsync.execute(
                        new LastLoginRoleRequest(sessionManager.getSession().getToken(), UserRoleVo.STAFF),
                        new AsyncCallback<LastLoginRoleResponse>() {

                            @Override
                            public void onFailure(Throwable e) {
                                // Window.alert("?");
                            }

                            @Override
                            public void onSuccess(LastLoginRoleResponse resp) {
                                // ?
                                if ("success".equals(resp.getFal()))
                                    Window.Location.reload();
                                else
                                    Window.alert("?");

                            }
                        });

            }
        }));

    }

    public DockDisplay getDisplay() {
        return display;
    }

}