All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.jresearch.commons.gwt.app.client.widget.ResetPasswordDialog Maven / Gradle / Ivy

package org.jresearch.commons.gwt.app.client.widget;

import java.util.List;

import org.fusesource.restygwt.client.Method;
import org.fusesource.restygwt.client.REST;
import org.jresearch.commons.gwt.app.client.mvc.event.SignUpEvent;
import org.jresearch.commons.gwt.app.client.resource.AppRs;
import org.jresearch.commons.gwt.client.mvc.AbstractMethodCallback;
import org.jresearch.commons.gwt.client.mvc.event.LoginEvent;
import org.jresearch.commons.gwt.flexess.shared.service.FlexessService.ResetStatus;

import com.google.common.collect.Lists;
import com.google.gwt.core.client.Scheduler;
import com.sencha.gxt.widget.core.client.Status;
import com.sencha.gxt.widget.core.client.button.ButtonBar;
import com.sencha.gxt.widget.core.client.form.FieldLabel;
import com.sencha.gxt.widget.core.client.form.TextField;

public class ResetPasswordDialog extends AbstractAuthDialog {

	private TextField email;
	private List fields;

	public ResetPasswordDialog() {
		super(AppRs.MSG.resetDialog());
	}

	@Override
	protected void createLinks(final ButtonBar linkBar) {
		linkBar.add(createEventLink(AppRs.MSG.existingUser(), new LoginEvent()));
		signUp = createEventLink(AppRs.MSG.register(), new SignUpEvent());
		linkBar.add(signUp);
		signUp.disable();
	}

	@Override
	protected List getFields() {
		if (fields == null) {
			fields = Lists.newArrayList();

			email = new TextField();
			fields.add(new FieldLabel(email, AppRs.MSG.emailField()));
		}

		return fields;
	}

	@Override
	protected String getActionName() {
		return AppRs.MSG.resetAction();
	}

	@Override
	protected void doAction(final Status status) {
		final String value = email.getValue();
		if (value != null) {
			REST.withCallback(new AbstractMethodCallback(bus) {
				@SuppressWarnings("incomplete-switch")
				@Override
				public void onSuccess(final Method method, final ResetStatus result) {
					switch (result) {
					case Done:
						ResetPasswordDialog.this.hide();
						if (command != null) {
							Scheduler.get().scheduleDeferred(command);
						}
						break;
					case Disable:
						status.clearStatus(AppRs.MSG.resetNotPossible());
						getButtonBar().enable();
						break;
					case NotFound:
						status.clearStatus(AppRs.MSG.emailNotFound());
						getButtonBar().enable();
						break;
					}
				}
			}).call(service).reset(value);
		}
	}

	@Override
	protected void resetFields() {
		email.reset();
	}

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy