com.agnie.useradmin.contextmgr.client.presenter.ContextUserPresenter.java Source code

Java tutorial

Introduction

Here is the source code for com.agnie.useradmin.contextmgr.client.presenter.ContextUserPresenter.java

Source

/*******************************************************************************
 * Copyright (c) 2014 Agnie Technologies.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the GNU Public License v3.0
 * which accompanies this distribution, and is available at
 * http://www.gnu.org/licenses/gpl.html
 * 
 * Contributors:
 *     Agnie Technologies - initial API and implementation
 ******************************************************************************/
package com.agnie.useradmin.contextmgr.client.presenter;

import java.util.List;

import com.agnie.gwt.common.client.mvp.Place;
import com.agnie.gwt.common.client.rpc.AsyncDP;
import com.agnie.gwt.common.client.widget.MessagePanel.MessageType;
import com.agnie.useradmin.common.client.helper.AbstractDataFetcher;
import com.agnie.useradmin.contextmgr.client.mvp.PlaceToken;
import com.agnie.useradmin.contextmgr.client.presenter.shared.ui.ListMenu;
import com.agnie.useradmin.contextmgr.client.ui.ContextUsersView;
import com.agnie.useradmin.persistance.client.enums.RequestStatus;
import com.agnie.useradmin.persistance.client.helper.Permissions;
import com.agnie.useradmin.persistance.client.service.I18;
import com.agnie.useradmin.persistance.shared.proxy.RolePx;
import com.agnie.useradmin.persistance.shared.proxy.UserApplicationCtxRegistrationPx;
import com.agnie.useradmin.persistance.shared.service.ContextManagerRequest;
import com.google.gwt.core.client.Scheduler;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.user.client.Command;
import com.google.gwt.user.client.ui.HTMLPanel;
import com.google.gwt.user.client.ui.RootPanel;
import com.google.gwt.view.client.Range;
import com.google.inject.Singleton;
import com.google.web.bindery.requestfactory.shared.Receiver;
import com.google.web.bindery.requestfactory.shared.ServerFailure;

@Singleton
public class ContextUserPresenter extends BasePresenter {

    ContextUsersView view;
    UserContextDataFetcher dataFetcher;

    @Override
    public boolean go() {
        if (checkPermission(Permissions.CONTEXT_USER_MANAGER)) {
            super.go();
            RootPanel contentPanel = clientFactory.getRootPanelFactory().getContentPanel();

            HTMLPanel centerPanel = viewFactory.getCenterContentPanel();

            view = viewFactory.getCTXUsersView();
            if (dataFetcher == null) {
                dataFetcher = new UserContextDataFetcher(view);
                AsyncDP<UserApplicationCtxRegistrationPx> userDp = new AsyncDP<UserApplicationCtxRegistrationPx>(
                        dataFetcher);
                view.setDataProvider(userDp);
            }
            view.initialize();

            getTotalUserCTXRoles();

            getTotalUserCTXAdminRoles();

            viewFactory.getMenu().getSearchBox().clearSearchImgClkHandlers();
            viewFactory.getMenu().getSearchBox().addSearchImgClickHandler(new ClickHandler() {

                @Override
                public void onClick(ClickEvent arg0) {
                    viewFactory.getCTXUsersView().refreshPage();
                }
            });

            centerPanel.add(view);
            contentPanel.add(centerPanel);
            viewFactory.getListMenu().selectTab(ListMenu.Tab.USERS.getIndex());
            return true;
        } else {
            Scheduler.get().scheduleDeferred(new Command() {
                public void execute() {
                    appController.getPlaceManager()
                            .changePlace(new Place<PlaceToken>(appController.getDefaultPlace()));
                }
            });
            return false;
        }
    }

    public class UserContextDataFetcher extends AbstractDataFetcher<UserApplicationCtxRegistrationPx> {
        ContextUsersView view;

        /**
         * @param view
         */
        public UserContextDataFetcher(ContextUsersView view) {
            super();
            this.view = view;
        }

        @Override
        public void fire(Range range, Receiver<List<UserApplicationCtxRegistrationPx>> reciever) {
            ContextManagerRequest cmr = clientFactory.getRequestFactory().contextManager();
            if ((viewFactory.getMenu().getSearchBox().getValue() != null)
                    && (!(viewFactory.getMenu().getSearchBox().getValue().isEmpty()))) {
                if (I18.messages.all().equals(view.getStatusFilter().getTitle())) {
                    cmr.getUsersByContext(getPaging(range, view, cmr), null,
                            viewFactory.getMenu().getSearchBox().getValue()).with("user").fire(reciever);
                } else {
                    cmr.getUsersByContext(getPaging(range, view, cmr), view.getStatusFilter().getReqStatus(),
                            viewFactory.getMenu().getSearchBox().getValue()).with("user").fire(reciever);
                }
            } else {
                if (I18.messages.all().equals(view.getStatusFilter().getTitle())) {
                    cmr.getUsersByContext(getPaging(range, view, cmr), null, null).with("user").fire(reciever);
                } else {
                    cmr.getUsersByContext(getPaging(range, view, cmr), view.getStatusFilter().getReqStatus(), null)
                            .with("user").fire(reciever);
                }
            }
        }
    }

    public void approveUserCTXReg(List<String> ids) {
        ContextManagerRequest cmr = clientFactory.getRequestFactory().contextManager();
        cmr.updateStatusByUserAppCtxRegId(ids, RequestStatus.ACTIVE).fire(new Receiver<List<String>>() {

            @Override
            public void onSuccess(List<String> arg0) {
                messagePanel.show(true);
                messagePanel.setType(MessageType.INFORMATION);
                messagePanel.setMessage(com.agnie.useradmin.contextmgr.client.I18.messages.approveActive());
                view.refreshPage();
            }

            @Override
            public void onFailure(ServerFailure failure) {
                messagePanel.show(true);
                messagePanel.setType(MessageType.ERROR);
                messagePanel.setMessage(com.agnie.useradmin.common.client.I18.messages.internal_server_error());
            }
        });
    }

    public void approveProvUserCTXReg(List<String> ids) {
        ContextManagerRequest cmr = clientFactory.getRequestFactory().contextManager();
        cmr.updateStatusByUserAppCtxRegId(ids, RequestStatus.PROVISIONAL).fire(new Receiver<List<String>>() {

            @Override
            public void onSuccess(List<String> arg0) {
                messagePanel.show(true);
                messagePanel.setType(MessageType.INFORMATION);
                messagePanel.setMessage(com.agnie.useradmin.contextmgr.client.I18.messages.approveProvReq());
                view.refreshPage();
            }

            @Override
            public void onFailure(ServerFailure failure) {
                messagePanel.show(true);
                messagePanel.setType(MessageType.ERROR);
                messagePanel.setMessage(com.agnie.useradmin.common.client.I18.messages.internal_server_error());
            }
        });
    }

    public void markDisabledByUserCTXRegId(List<String> ids) {
        ContextManagerRequest cmr = clientFactory.getRequestFactory().contextManager();
        cmr.markDisabledByUserAppCtxRegId(ids).fire(new Receiver<List<String>>() {

            @Override
            public void onSuccess(List<String> response) {
                // TODO Auto-generated method stub
                messagePanel.show(true);
                messagePanel.setType(MessageType.INFORMATION);
                messagePanel.setMessage(com.agnie.useradmin.contextmgr.client.I18.messages.userDisabled());
                view.refreshPage();
            }

            @Override
            public void onFailure(ServerFailure failure) {
                messagePanel.show(true);
                messagePanel.setType(MessageType.ERROR);
                messagePanel.setMessage(com.agnie.useradmin.common.client.I18.messages.internal_server_error());
            }
        });
    }

    public void getSelUserCTXRoles(final UserApplicationCtxRegistrationPx ucr) {
        ContextManagerRequest cmr = clientFactory.getRequestFactory().contextManager();
        cmr.getUserContextRoles(ucr).fire(new Receiver<List<RolePx>>() {

            @Override
            public void onSuccess(List<RolePx> response) {
                view.setSelRolesList(response);
            }

            @Override
            public void onFailure(ServerFailure failure) {
                messagePanel.show(true);
                messagePanel.setType(MessageType.ERROR);
                messagePanel.setMessage(com.agnie.useradmin.common.client.I18.messages.internal_server_error());
            }
        });
    }

    public void getTotalUserCTXRoles() {
        ContextManagerRequest cmr = clientFactory.getRequestFactory().contextManager();
        cmr.getContextRoles().fire(new Receiver<List<RolePx>>() {

            @Override
            public void onSuccess(List<RolePx> response) {
                view.setRolePxList(response);
            }

            @Override
            public void onFailure(ServerFailure failure) {
                messagePanel.show(true);
                messagePanel.setType(MessageType.ERROR);
                messagePanel.setMessage(com.agnie.useradmin.common.client.I18.messages.internal_server_error());
            }
        });
    }

    public void updateUserRoles(UserApplicationCtxRegistrationPx uar, List<RolePx> roles) {
        ContextManagerRequest cmr = clientFactory.getRequestFactory().contextManager();
        cmr.updateUserApplicationRoles(uar, roles).fire(new Receiver<UserApplicationCtxRegistrationPx>() {

            @Override
            public void onSuccess(UserApplicationCtxRegistrationPx response) {
                messagePanel.show(true);
                messagePanel.setType(MessageType.INFORMATION);
                messagePanel.setMessage(com.agnie.useradmin.contextmgr.client.I18.messages.userRoleUpdated());
                view.resetCTXUserView();
            }

            @Override
            public void onFailure(ServerFailure failure) {
                messagePanel.show(true);
                messagePanel.setType(MessageType.ERROR);
                messagePanel.setMessage(com.agnie.useradmin.common.client.I18.messages.internal_server_error());
                view.resetCTXUserView();
            }
        });
    }

    public void getTotalUserCTXAdminRoles() {
        ContextManagerRequest cmr = clientFactory.getRequestFactory().contextManager();
        cmr.getAdminRoles().fire(new Receiver<List<RolePx>>() {

            @Override
            public void onSuccess(List<RolePx> response) {
                view.setAdminRolePxList(response);
            }

            @Override
            public void onFailure(ServerFailure failure) {
                messagePanel.show(true);
                messagePanel.setType(MessageType.ERROR);
                messagePanel.setMessage(com.agnie.useradmin.common.client.I18.messages.internal_server_error());
            }
        });
    }

    public void getSelUserCTXAdminRoles(final UserApplicationCtxRegistrationPx ucr) {
        ContextManagerRequest cmr = clientFactory.getRequestFactory().contextManager();
        cmr.getUserContextAdminRoles(ucr).fire(new Receiver<List<RolePx>>() {

            @Override
            public void onSuccess(List<RolePx> response) {
                view.setSelAdminRolesList(response);
            }

            @Override
            public void onFailure(ServerFailure failure) {
                messagePanel.show(true);
                messagePanel.setType(MessageType.ERROR);
                messagePanel.setMessage(com.agnie.useradmin.common.client.I18.messages.internal_server_error());
            }
        });
    }

    public void updateUserAdminRoles(UserApplicationCtxRegistrationPx uar, List<RolePx> roles) {
        ContextManagerRequest cmr = clientFactory.getRequestFactory().contextManager();
        cmr.updateUserConextAdminRoles(uar, roles).fire(new Receiver<UserApplicationCtxRegistrationPx>() {

            @Override
            public void onSuccess(UserApplicationCtxRegistrationPx response) {
                messagePanel.show(true);
                messagePanel.setType(MessageType.INFORMATION);
                messagePanel.setMessage(com.agnie.useradmin.contextmgr.client.I18.messages.userAdminRoleUpdated());
                view.resetCTXUserView();
            }

            @Override
            public void onFailure(ServerFailure failure) {
                messagePanel.show(true);
                messagePanel.setType(MessageType.ERROR);
                messagePanel.setMessage(com.agnie.useradmin.common.client.I18.messages.internal_server_error());
                view.resetCTXUserView();
            }
        });
    }

    @Override
    public void postRender() {

    }

}