package org.mbhcare.client;
import javax.jdo.PersistenceManagerFactory;
import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.core.client.GWT;
import org.mbhcare.client.LoginInfo;
import org.mbhcare.client.LoginService;
import org.mbhcare.client.LoginServiceAsync;
import org.mbhcare.client.NotLoggedInException;
import org.mbhcare.client.presenter.LoginPresenter;
import com.google.gwt.user.client.History;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.ui.RootPanel;
/**
* Entry point classes define <code>onModuleLoad()</code>.
*/
public class MBHCare implements EntryPoint {
private static LoginInfo loginInfo = null;
/**
* This is the entry point method.
*/
public void onModuleLoad() {
LoginServiceAsync loginService = GWT.create(LoginService.class);
loginService.login(GWT.getHostPageBaseURL(), new AsyncCallback<LoginInfo>() {
public void onFailure(Throwable error) {
handleError(error);
}
public void onSuccess(LoginInfo result) {
loginInfo = result;
if(loginInfo.isLoggedIn()) {
History.newItem("");
AppController appViewer = new AppController();
appViewer.go(RootPanel.get());
} else {
History.newItem(LoginPresenter.VIEW_LOGIN);
AppController appViewer = new AppController();
appViewer.go(RootPanel.get());
}
}
});
// AppController appViewer = new AppController();
// appViewer.go(RootPanel.get());
// FOR DEBUGING PURPOSES ONLY
//RootPanel.get().add(new Label(RootPanel.get().toString()));
}
public static LoginInfo getLoginInfo() {
return loginInfo;
}
private void handleError(Throwable error) {
Window.alert(error.getMessage());
if (error instanceof NotLoggedInException) {
Window.Location.replace(loginInfo.getLogoutUrl());
}
}
}