package it.agilis.mens.azzeroCO2.client.mvc.controllers; import com.extjs.gxt.ui.client.event.EventType; import com.extjs.gxt.ui.client.mvc.AppEvent; import com.extjs.gxt.ui.client.mvc.Dispatcher; import com.extjs.gxt.ui.client.widget.Info; import com.google.gwt.user.client.rpc.AsyncCallback; import it.agilis.mens.azzeroCO2.client.MyInfo; import it.agilis.mens.azzeroCO2.client.mvc.events.AzzeroCO2Events; import it.agilis.mens.azzeroCO2.client.mvc.events.LoginEvents; import it.agilis.mens.azzeroCO2.client.mvc.views.LoginView; import it.agilis.mens.azzeroCO2.shared.model.registrazione.UserInfoModel; /** * Created by IntelliJ IDEA. * User: giovannilt * Date: 3/17/11 * Time: 11:29 PM * To change this template use File | Settings | File Templates. */ public class LoginController extends BaseController { private LoginView loginView = new LoginView(this); public LoginController() { // registra su quali eventi si deve mettere in ascolto registerEventTypes(LoginEvents.DoLogin); registerEventTypes(LoginEvents.ShowForm); registerEventTypes(LoginEvents.HideForm); registerEventTypes(LoginEvents.LogOut); } public void handleEvent(AppEvent event) { EventType type = event.getType(); if (type == LoginEvents.ShowForm) { forwardToView(loginView, event); } else if (type == LoginEvents.DoLogin) { AsyncCallback<UserInfoModel> aCallback = new AsyncCallback<UserInfoModel>() { public void onFailure(Throwable caught) { Info.display("Error", "Errore impossibile connettersi al server"); } @Override public void onSuccess(UserInfoModel result) { if (result != null) { // MyInfo.show("Benvenuto " + result.getNome()); if (loginView != null) { loginView.hide(); } Dispatcher.forwardEvent(LoginEvents.ShowLogOut); AppEvent event = new AppEvent(AzzeroCO2Events.LoggedIn); event.setData(result); Dispatcher.forwardEvent(event); } else { MyInfo.show("Errore", "Username o Password errati.", 7000); } } }; getHustonService().getUserInfo(event.<String>getData("userName"), event.<String>getData("password"), aCallback); } else if (type == LoginEvents.LogOut) { AsyncCallback aCallback = new AsyncCallback() { public void onFailure(Throwable caught) { MyInfo.show("Error", "Errore impossibile connettersi al server", 7000); } @Override public void onSuccess(Object result) { // MyInfo.show("LOGOUT", "LOGOUT"); } }; getHustonService().disconnectUser(aCallback); } else { forwardToView(loginView, event); } } }