/**
*
*/
package org.appfuse.webapp.client.ui.users.updatePassword;
import org.appfuse.webapp.client.application.ApplicationResources;
import com.github.gwtbootstrap.client.ui.Button;
import com.github.gwtbootstrap.client.ui.Paragraph;
import com.github.gwtbootstrap.client.ui.PasswordTextBox;
import com.github.gwtbootstrap.client.ui.TextBox;
import com.google.gwt.core.client.GWT;
import com.google.gwt.editor.client.Editor;
import com.google.gwt.editor.client.EditorDriver;
import com.google.gwt.editor.client.SimpleBeanEditorDriver;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.uibinder.client.UiHandler;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.Widget;
/**
* @author ivangsa
*
*/
public class UpdatePasswordViewImpl extends Composite implements UpdatePasswordView, Editor<UpdatePasswordView.UserCredentials> {
interface Binder extends UiBinder<Widget, UpdatePasswordViewImpl> {
}
private static Binder uiBinder = GWT.create(Binder.class);
interface Driver extends SimpleBeanEditorDriver<UpdatePasswordView.UserCredentials, UpdatePasswordViewImpl> {
}
private final Driver driver = GWT.create(Driver.class);
ApplicationResources i18n = GWT.create(ApplicationResources.class);
private Delegate delegate;
@UiField
Paragraph subheading;
@UiField
TextBox username;
@UiField
TextBox token;
@UiField
PasswordTextBox currentPassword;
@UiField
PasswordTextBox password;
@UiField
Widget currentPasswordControlGroup;
@UiField
Button updatePasswordButton;
@UiField
Button cancelButton;
/**
*
*/
public UpdatePasswordViewImpl() {
super();
initWidget(uiBinder.createAndBindUi(this));
driver.initialize(this);
username.getElement().setAttribute("required", "required");
username.getElement().setAttribute("autofocus", "autofocus");
password.getElement().setAttribute("required", "required");
}
@Override
public void setDelegate(final Delegate delegate) {
driver.edit(new UserCredentials());
this.delegate = delegate;
}
@Override
public void setUserCredentials(final UserCredentials userCredentials) {
driver.edit(userCredentials);
final String token = userCredentials.getToken();
if (token == null || "".equals(token.trim())) {
currentPasswordControlGroup.setVisible(true);
subheading.setText(i18n.updatePassword_changePassword_message());
} else {
currentPasswordControlGroup.setVisible(false);
subheading.setText(i18n.updatePassword_passwordReset_message());
}
}
@UiHandler("updatePasswordButton")
void onUpdatePasswordClick(final ClickEvent event) {
delegate.onUpdatePasswordClick();
}
@UiHandler("cancelButton")
void onCancelClick(final ClickEvent event) {
delegate.onCancelClick();
}
@Override
public EditorDriver<UpdatePasswordView.UserCredentials> getEditorDriver() {
return driver;
}
@Override
public void setWaiting(final boolean wait) {
updatePasswordButton.setEnabled(!wait);
}
}