package de.tud.kom.socom.web.client.login.deprecated; import com.google.gwt.core.client.GWT; import com.google.gwt.event.dom.client.ClickEvent; import com.google.gwt.event.dom.client.ClickHandler; import com.google.gwt.event.dom.client.KeyCodes; import com.google.gwt.event.dom.client.KeyPressEvent; import com.google.gwt.event.dom.client.KeyPressHandler; import com.google.gwt.user.client.Cookies; import com.google.gwt.user.client.Window; import com.google.gwt.user.client.rpc.AsyncCallback; import com.google.gwt.user.client.ui.Button; import com.google.gwt.user.client.ui.HorizontalPanel; import com.google.gwt.user.client.ui.InlineHTML; import com.google.gwt.user.client.ui.Label; import com.google.gwt.user.client.ui.LongBox; import com.google.gwt.user.client.ui.TextBox; import com.google.gwt.user.client.ui.VerticalPanel; import de.tud.kom.socom.web.client.SoComWebEntryPoint; import de.tud.kom.socom.web.client.services.core.SocomWebCoreService; import de.tud.kom.socom.web.client.services.core.SocomWebCoreServiceAsync; import de.tud.kom.socom.web.client.sharedinformation.StaticFacebookInformation; public class LoginPanel extends VerticalPanel { private LongBox uidBox; private TextBox passwordBox; private Button loginButton, loginFBButton, logoutButton; private SoComWebEntryPoint entryPoint; public LoginPanel(SoComWebEntryPoint entryPoint) { super(); this.entryPoint = entryPoint; // if (this.entryPoint.isLoggedIn()) { // buildLogoutArea(); // } else { // buildLoginArea(); // } } private void buildLogoutArea() { // socomService.getUserName(entryPoint.getUserId(), new AsyncCallback<String>() { // // @Override // public void onFailure(Throwable caught) { // Window.alert("Error building Logout-Panel: " + caught.getMessage()); // } // // @Override // public void onSuccess(String result) { // add(new InlineHTML("Logged in as: " + result)); // add(logoutButton = new Button("Logout")); // initLogoutListeners(); // } // }); } private void initLogoutListeners() { // logoutButton.addClickHandler(new ClickHandler() { // // @Override // public void onClick(ClickEvent event) { // socomService.logout(new AsyncCallback<Boolean>() { // // @Override // public void onFailure(Throwable caught) { // Window.alert("Error logging out: " + caught.getMessage()); // } // // @Override // public void onSuccess(Boolean result) { // entryPoint.setUserID(-1); // entryPoint.setUserIsAdmin(false); // Cookies.removeCookie("uid"); // Cookies.removeCookie("secret"); // Window.Location.reload(); // } // }); // } // }); } private void buildLoginArea() { HorizontalPanel manualLoginUid = new HorizontalPanel(); add(manualLoginUid); Label lblUserId = new Label("User ID"); manualLoginUid.add(lblUserId); uidBox = new LongBox(); manualLoginUid.add(uidBox); HorizontalPanel manualLoginPassword = new HorizontalPanel(); add(manualLoginPassword); Label lblSecret = new Label("Password"); manualLoginPassword.add(lblSecret); passwordBox = new TextBox(); manualLoginPassword.add(passwordBox); loginButton = new Button("Login"); add(loginButton); loginFBButton = new Button("Login with Facebook"); add(loginFBButton); initLoginListeners(); } private void initLoginListeners() { StartLoginEventHandler loginEventHandler = new StartLoginEventHandler(); loginButton.addClickHandler(loginEventHandler); loginButton.addKeyPressHandler(loginEventHandler); uidBox.addKeyPressHandler(new KeyPressHandler() { @Override public void onKeyPress(KeyPressEvent event) { int keyCode = event.getCharCode(); if (keyCode == 0) { // Probably Firefox keyCode = event.getNativeEvent().getKeyCode(); } if (keyCode == KeyCodes.KEY_ENTER) { passwordBox.setFocus(true); } } }); passwordBox.addKeyPressHandler(loginEventHandler); loginFBButton.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { String leftMargin = String.valueOf(getLeftMargin()); String topMargin = String.valueOf(getTopMargin()); // Window.open(StaticFacebookInformation.FACEBOOK_URL, "Facebook Login to Socom", "width=1200,height=600,resizable=yes,scrollbars=no,popup,top=" + topMargin // + ",left=" + leftMargin); } private native int getTopMargin() /*-{ return (screen.height - 600) / 2; }-*/; private native int getLeftMargin() /*-{ return (screen.width - 1200) / 2; }-*/; }); } private class StartLoginEventHandler implements ClickHandler, KeyPressHandler { @Override public void onKeyPress(KeyPressEvent event) { int keyCode = event.getCharCode(); if (keyCode == 0) { // Probably Firefox keyCode = event.getNativeEvent().getKeyCode(); } if (keyCode == KeyCodes.KEY_ENTER) { initLogin(); } } @Override public void onClick(ClickEvent event) { initLogin(); } private void initLogin() { // if (uidBox.getText().length() == 0 || passwordBox.getText().length() <= 3) { // Window.alert("Invalid input."); // return; // } // final String uid = uidBox.getText(); // final String password = passwordBox.getText(); // // socomService.getSHA(password, new AsyncCallback<String>() { // // @Override // public void onFailure(Throwable caught) { // Window.alert("Error hashing Password (" + caught.getMessage() + ")"); // } // // @Override // public void onSuccess(final String hashSecret) { // socomService.login(Long.parseLong(uid), hashSecret, new AsyncCallback<boolean[]>() { // // @Override // public void onFailure(Throwable caught) { // Window.alert("Failure during login:\n" + caught.toString() + "\n" + caught.getMessage()); // } // // @Override // public void onSuccess(boolean[] result) { // // if (!result[0]) { // Window.alert("Error logging in"); // return; // } // // Cookies.setCookie("uid", uid); // Cookies.setCookie("secret", hashSecret); // Window.Location.reload(); // } // }); // } // }); } } }