Package org.appfuse.webapp.client.ui.users.editProfile

Source Code of org.appfuse.webapp.client.ui.users.editProfile.EditProfileActivity

/**
*
*/
package org.appfuse.webapp.client.ui.users.editProfile;

import org.appfuse.webapp.client.application.Application;
import org.appfuse.webapp.client.application.base.activity.AbstractProxyEditActivity;
import org.appfuse.webapp.client.proxies.RoleProxy;
import org.appfuse.webapp.client.proxies.UserProxy;
import org.appfuse.webapp.client.requests.UserRequest;
import org.appfuse.webapp.client.ui.home.HomePlace;
import org.appfuse.webapp.client.ui.users.editUser.EditUserView;
import org.appfuse.webapp.client.ui.users.updatePassword.UpdatePasswordPlace;

import com.github.gwtbootstrap.client.ui.constants.AlertType;
import com.google.gwt.event.shared.EventBus;
import com.google.gwt.place.shared.Place;
import com.google.gwt.user.client.ui.AcceptsOneWidget;
import com.google.inject.Inject;
import com.google.web.bindery.requestfactory.shared.Request;
import com.google.web.bindery.requestfactory.shared.RequestContext;

/**
* @author ivangsa
*
*/
public class EditProfileActivity extends AbstractProxyEditActivity<UserProxy> implements EditUserView.Delegate {

    private final EditProfileView editProfileView;

    @Inject
    public EditProfileActivity(final Application application, final EditProfileView editUserView) {
        super(application, editUserView);
        editProfileView = editUserView;
        setTitle(i18n.userProfile_title());
        setDeleteConfirmation(i18n.delete_confirm(i18n.userList_user()));
    }


    @Override
    public String getSavedMessage() {
        return application.getI18n().user_saved();
    }

    @Override
    public String getDeletedMessage() {
        return application.getI18n().user_deleted(entityProxy.getUsername());
    }

    @Override
    public void start(final AcceptsOneWidget display, final EventBus eventBus) {
        final boolean isFullyAuthenticated = application.isUserInRole(RoleProxy.FULLY_AUTHENTICATED);
        if (!isFullyAuthenticated) {
            shell.addMessage(i18n.userProfile_cookieLogin(), AlertType.WARNING);
        }

        if (editProfileView != null) {
            editProfileView.setAvailableRoles(application.getLookupConstants().getAvailableRoles());
            editProfileView.setCountries(application.getLookupConstants().getCountries());
        }

        super.start(display, eventBus);
    }


    @Override
    protected String getEntityId() {
        //return a not null entityId so super does not try to create a new profile
        return "x";
    }

    @Override
    protected RequestContext createProxyRequest() {
        return requests.userRequest();
    }

    @Override
    protected Request<UserProxy> loadProxyRequest(final RequestContext requestContext, final String proxyId) {
        return ((UserRequest) requestContext).editProfile();
    }


    @Override
    protected RequestContext saveOrUpdateRequest(final RequestContext requestContext, final UserProxy proxy) {
        ((UserRequest) requestContext).editProfile(proxy);
        return requestContext;
    }

    @Override
    protected RequestContext deleteRequest(final RequestContext requestContext, final UserProxy proxy) {
        throw new UnsupportedOperationException();
    }

    @Override
    protected Place previousPlace() {
        return new HomePlace();
    }

    @Override
    protected Place nextPlace(final boolean saved) {
        return new EditProfilePlace();
    }

    @Override public void updatePasswordClicked() {
        placeController.goTo(new UpdatePasswordPlace(entityProxy.getUsername()));
    }

}
TOP

Related Classes of org.appfuse.webapp.client.ui.users.editProfile.EditProfileActivity

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.