/** * */ 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())); } }