package de.tud.kom.socom.web.client.administration;
import com.google.gwt.core.client.GWT;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.user.client.Timer;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.ListBox;
import com.google.gwt.user.client.ui.LongBox;
import com.google.gwt.user.client.ui.TextBox;
import com.google.gwt.user.client.ui.Widget;
import de.tud.kom.socom.web.client.sharedmodels.SimpleUser;
import com.google.gwt.uibinder.client.UiHandler;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.user.client.ui.Label;
public class UserPropertiesView extends Composite {
private static UserPropertiesViewUiBinder uiBinder = GWT.create(UserPropertiesViewUiBinder.class);
interface UserPropertiesViewUiBinder extends UiBinder<Widget, UserPropertiesView> {
}
@UiField Button saveButton;
@UiField Button closeButton;
@UiField ListBox deletedStates;
@UiField TextBox nameBox;
@UiField LongBox uidBox;
@UiField Label statusText;
private AdministrationPresenter presenter;
private SimpleUser user;
public UserPropertiesView(AdministrationPresenter presenter, SimpleUser user, String[] deletedStates) {
initWidget(uiBinder.createAndBindUi(this));
this.presenter = presenter;
this.user = user;
for(String del : deletedStates)
this.deletedStates.addItem(del);
init();
}
private void init() {
nameBox.setText(user.getName());
uidBox.setText(String.valueOf(user.getUid()));
deletedStates.setSelectedIndex(user.getDeleted());
statusText.getElement().getStyle().setColor("#980000");
if(user.isAdmin()) {
statusText.setText("Admin");
deletedStates.setEnabled(false);
saveButton.setEnabled(false);
}
}
@UiHandler("closeButton")
void onCloseButtonClick(ClickEvent event) {
presenter.hideDialog();
}
@UiHandler("saveButton")
void onSaveButtonClick(ClickEvent event) {
presenter.onSaveUserStateClicked(user, deletedStates.getSelectedIndex());
statusText.setText("Bitte warten...");
}
public void showSaveSuccess(boolean success) {
if(success) {
statusText.setText("Status gespeichert!");
Timer timer = new Timer() {
@Override
public void run() {
statusText.setText("");
}
};
timer.schedule(1200);
} else {
statusText.setText("Fehler."); // yeah
}
}
}