Package org.damour.base.client.ui.admin

Source Code of org.damour.base.client.ui.admin.EditAccountPanel

package org.damour.base.client.ui.admin;

import java.util.Date;

import org.damour.base.client.objects.User;
import org.damour.base.client.service.BaseServiceCache;
import org.damour.base.client.ui.IGenericCallback;
import org.damour.base.client.ui.buttons.Button;
import org.damour.base.client.ui.datepicker.MyDatePicker;
import org.damour.base.client.ui.dialogs.MessageDialogBox;

import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.i18n.client.DateTimeFormat;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.ui.CheckBox;
import com.google.gwt.user.client.ui.FlexTable;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.PasswordTextBox;
import com.google.gwt.user.client.ui.TextBox;
import com.google.gwt.user.datepicker.client.DateBox;
import com.google.gwt.user.datepicker.client.DateBox.DefaultFormat;

public class EditAccountPanel extends FlexTable {

  public EditAccountPanel(final IGenericCallback<User> callback, final User user) {

    final TextBox usernameTextBox = new TextBox();
    final PasswordTextBox passwordTextBox = new PasswordTextBox();
    final TextBox passwordHintTextBox = new TextBox();
    final TextBox firstnameTextBox = new TextBox();
    final TextBox lastnameTextBox = new TextBox();
    final TextBox emailTextBox = new TextBox();
    Date birthday = new Date(user.getBirthday());
    DefaultFormat format = new DefaultFormat(DateTimeFormat.getMediumDateFormat());
    final DateBox birthdayPicker = new DateBox(new MyDatePicker(), birthday, format);
    final CheckBox validatedCheckBox = new CheckBox("Validated");
    final CheckBox administratorCheckBox = new CheckBox("Administrator");

    usernameTextBox.setText(user.getUsername());
    passwordHintTextBox.setText(user.getPasswordHint());
    firstnameTextBox.setText(user.getFirstname());
    lastnameTextBox.setText(user.getLastname());
    emailTextBox.setText(user.getEmail());
    validatedCheckBox.setValue(user.isValidated());
    administratorCheckBox.setValue(user.isAdministrator());
    birthdayPicker.setValue(birthday);

    Button applyButton = new Button("Apply");
    applyButton.addClickHandler(new ClickHandler() {
      public void onClick(ClickEvent event) {
        user.setUsername(usernameTextBox.getText());
        user.setPasswordHint(passwordHintTextBox.getText());
        user.setFirstname(firstnameTextBox.getText());
        user.setLastname(lastnameTextBox.getText());
        user.setEmail(emailTextBox.getText());
        user.setBirthday(birthdayPicker.getValue().getTime());
        user.setAdministrator(administratorCheckBox.getValue());
        user.setValidated(validatedCheckBox.getValue());
        final AsyncCallback<User> loginCallback = new AsyncCallback<User>() {
          public void onFailure(Throwable caught) {
            MessageDialogBox dialog = new MessageDialogBox("Error", "Could not edit account.", true, true, true);
            dialog.center();
          }

          public void onSuccess(User user) {
            if (user == null) {
              MessageDialogBox dialog = new MessageDialogBox("Error", "Could not edit account.", true, true, true);
              dialog.center();
            } else {
              MessageDialogBox dialog = new MessageDialogBox("Success", "Account modified.", true, true, true);
              dialog.center();
              callback.invoke(user);
            }
          };
        };

        BaseServiceCache.getService().createOrEditAccount(user, passwordTextBox.getText(), null, loginCallback);
      }
    });
    applyButton.setTitle("Apply Changes");

    // build ui
    int row = 0;
    setWidget(row, 0, new Label("Username"));
    setWidget(row, 1, usernameTextBox);
    setWidget(++row, 0, new Label("Password"));
    setWidget(row, 1, passwordTextBox);
    setWidget(++row, 0, new Label("Password Hint"));
    setWidget(row, 1, passwordHintTextBox);
    setWidget(++row, 0, new Label("Firstname"));
    setWidget(row, 1, firstnameTextBox);
    setWidget(++row, 0, new Label("Lastname"));
    setWidget(row, 1, lastnameTextBox);
    setWidget(++row, 0, new Label("Email"));
    setWidget(row, 1, emailTextBox);
    setWidget(++row, 0, new Label("Birthday"));
    setWidget(row, 1, birthdayPicker);
    setWidget(++row, 0, new Label());
    setWidget(row, 1, validatedCheckBox);
    setWidget(++row, 0, new Label());
    setWidget(row, 1, administratorCheckBox);

    setWidget(++row, 0, new Label(""));
    setWidget(row, 1, applyButton);
  }

}
TOP

Related Classes of org.damour.base.client.ui.admin.EditAccountPanel

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.