package de.tud.kom.socom.web.client.login;
import com.google.gwt.core.client.GWT;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.safehtml.shared.SafeHtmlUtils;
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.uibinder.client.UiTemplate;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.InlineLabel;
import com.google.gwt.user.client.ui.Widget;
import de.tud.kom.socom.web.client.htmlelements.ErrorListItemView;
public class LoginView extends Composite implements LoginPresenter.LoginViewInterface {
@UiTemplate("LoginView.ui.xml")
interface LoginViewUiBinder extends UiBinder<Widget, LoginView> {}
private static LoginViewUiBinder uiBinder = GWT.create(LoginViewUiBinder.class);
@UiField InlineLabel userNamePrefix;
@UiField InlineLabel userName;
@UiField Button buttonLogin;
@UiField Button buttonLogout;
//@UiField PasswordTextBox password;
//@UiField Button facebookButton; // provide a generic network independent solution (networkLoginButton + popup for selection of network to use)
private LoginPresenter presenter;
public LoginView(LoginPresenter presenter) {
this.presenter = presenter;
initWidget(uiBinder.createAndBindUi(this));
}
@UiHandler("buttonLogin")
void onLoginButtonClicked(ClickEvent event)
{
presenter.onLoginButtonClicked();
}
@UiHandler("buttonLogout")
void onLogoutButtonClicked(ClickEvent event)
{
presenter.onLogoutButtonClicked();
}
@Override
public void setLoginVisible() {
userNamePrefix.setVisible(false);
userName.setVisible(false);
buttonLogout.setVisible(false);
buttonLogin.setVisible(true);
}
@Override
public void setLogoutVisible(String username) {
buttonLogin.setVisible(false);
if (username != null)
{
userNamePrefix.setVisible(true);
userName.setText(SafeHtmlUtils.htmlEscapeAllowEntities(username));
userName.setVisible(true);
}
buttonLogout.setVisible(true);
}
@Override
public void showError(ErrorListItemView error) {
// TODO JK: add a Widget that will display errrors and handle them
}
@Override
public void hideErrors() {
// TODO JK: add a Widget that will display errrors and handle them
}
@Override
public void hideError(ErrorListItemView error) {
// TODO JK: add a Widget that will display errrors and handle them
}
}