// Path: src/main/java/com/nuvola/myproject/client/NameTokens.java
// public class NameTokens {
//     public static final String HOME = "/home";
//     public static final String LOGIN = "/login";
// 
//     public static String getHome() {
//         return HOME;
//     }
// 
//     public static String getLogin() {
//         return LOGIN;
//     }
// }
// 
// Path: src/main/java/com/nuvola/myproject/client/application/ApplicationPresenter.java
// @ProxyStandard
// @NameToken(NameTokens.HOME)
// interface MyProxy extends ProxyPlace<ApplicationPresenter> {
// }
// 
// Path: src/main/java/com/nuvola/myproject/client/application/ApplicationPresenter.java
// interface MyView extends View, HasUiHandlers<ApplicationUiHandlers> {
//     void displayUserName(String userName);
// }
// 
// Path: src/main/java/com/nuvola/myproject/client/security/CurrentUser.java
// public class CurrentUser {
//     private boolean loggedIn;
// 
//     public boolean isLoggedIn() {
//         return loggedIn;
//     }
// 
//     public void setLoggedIn(boolean loggedIn) {
//         this.loggedIn = loggedIn;
//     }
// }
// 
// Path: src/main/java/com/nuvola/myproject/client/services/UserService.java
// @Path(ROOT)
// public interface UserService {
//     @POST
//     @Path(LOGIN)
//     @Consumes(APPLICATION_FORM_URLENCODED)
//     RestAction<Void> login(@FormParam(USERNAME) String username, @FormParam(PASSWORD) String password);
// 
//     @DELETE
//     @Path(LOGIN)
//     RestAction<Void> logout();
// 
//     @GET
//     @Path(LOGIN)
//     RestAction<Boolean> isCurrentUserLoggedIn();
// 
//     @GET
//     RestAction<User> getCurrentUser();
// }
// 
// Path: src/main/java/com/nuvola/myproject/shared/model/User.java
// public class User {
//     private String login;
//     private String email;
//     private String firstName;
//     private String lastName;
//     private String password;
// 
//     public String getLogin() {
//         return login;
//     }
// 
//     public void setLogin(String login) {
//         this.login = login;
//     }
// 
//     public String getEmail() {
//         return email;
//     }
// 
//     public void setEmail(String email) {
//         this.email = email;
//     }
// 
//     public String getFirstName() {
//         return firstName;
//     }
// 
//     public void setFirstName(String firstName) {
//         this.firstName = firstName;
//     }
// 
//     public String getLastName() {
//         return lastName;
//     }
// 
//     public void setLastName(String lastName) {
//         this.lastName = lastName;
//     }
// 
//     public String getPassword() {
//         return password;
//     }
// 
//     public void setPassword(String password) {
//         this.password = password;
//     }
// }


import javax.inject.Inject;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.web.bindery.event.shared.EventBus;
import com.gwtplatform.dispatch.rest.client.RestDispatch;
import com.gwtplatform.mvp.client.HasUiHandlers;
import com.gwtplatform.mvp.client.Presenter;
import com.gwtplatform.mvp.client.View;
import com.gwtplatform.mvp.client.annotations.NameToken;
import com.gwtplatform.mvp.client.annotations.ProxyStandard;
import com.gwtplatform.mvp.client.proxy.PlaceManager;
import com.gwtplatform.mvp.client.proxy.ProxyPlace;
import com.gwtplatform.mvp.shared.proxy.PlaceRequest;
import com.nuvola.myproject.client.NameTokens;
import com.nuvola.myproject.client.application.ApplicationPresenter.MyProxy;
import com.nuvola.myproject.client.application.ApplicationPresenter.MyView;
import com.nuvola.myproject.client.security.CurrentUser;
import com.nuvola.myproject.client.services.UserService;
import com.nuvola.myproject.shared.model.User;
package com.nuvola.myproject.client.application;



public class ApplicationPresenter extends Presenter<MyView, MyProxy> implements ApplicationUiHandlers {
    @ProxyStandard
    @NameToken(NameTokens.HOME)
    interface MyProxy extends ProxyPlace<ApplicationPresenter> {
    }

    interface MyView extends View, HasUiHandlers<ApplicationUiHandlers> {
        void displayUserName(String userName);
    }

    private final RestDispatch dispatch;
// Path: src/main/java/com/nuvola/myproject/client/NameTokens.java
// public class NameTokens {
//     public static final String HOME = "/home";
//     public static final String LOGIN = "/login";
// 
//     public static String getHome() {
//         return HOME;
//     }
// 
//     public static String getLogin() {
//         return LOGIN;
//     }
// }
// 
// Path: src/main/java/com/nuvola/myproject/client/application/ApplicationPresenter.java
// @ProxyStandard
// @NameToken(NameTokens.HOME)
// interface MyProxy extends ProxyPlace<ApplicationPresenter> {
// }
// 
// Path: src/main/java/com/nuvola/myproject/client/application/ApplicationPresenter.java
// interface MyView extends View, HasUiHandlers<ApplicationUiHandlers> {
//     void displayUserName(String userName);
// }
// 
// Path: src/main/java/com/nuvola/myproject/client/security/CurrentUser.java
// public class CurrentUser {
//     private boolean loggedIn;
// 
//     public boolean isLoggedIn() {
//         return loggedIn;
//     }
// 
//     public void setLoggedIn(boolean loggedIn) {
//         this.loggedIn = loggedIn;
//     }
// }
// 
// Path: src/main/java/com/nuvola/myproject/client/services/UserService.java
// @Path(ROOT)
// public interface UserService {
//     @POST
//     @Path(LOGIN)
//     @Consumes(APPLICATION_FORM_URLENCODED)
//     RestAction<Void> login(@FormParam(USERNAME) String username, @FormParam(PASSWORD) String password);
// 
//     @DELETE
//     @Path(LOGIN)
//     RestAction<Void> logout();
// 
//     @GET
//     @Path(LOGIN)
//     RestAction<Boolean> isCurrentUserLoggedIn();
// 
//     @GET
//     RestAction<User> getCurrentUser();
// }
// 
// Path: src/main/java/com/nuvola/myproject/shared/model/User.java
// public class User {
//     private String login;
//     private String email;
//     private String firstName;
//     private String lastName;
//     private String password;
// 
//     public String getLogin() {
//         return login;
//     }
// 
//     public void setLogin(String login) {
//         this.login = login;
//     }
// 
//     public String getEmail() {
//         return email;
//     }
// 
//     public void setEmail(String email) {
//         this.email = email;
//     }
// 
//     public String getFirstName() {
//         return firstName;
//     }
// 
//     public void setFirstName(String firstName) {
//         this.firstName = firstName;
//     }
// 
//     public String getLastName() {
//         return lastName;
//     }
// 
//     public void setLastName(String lastName) {
//         this.lastName = lastName;
//     }
// 
//     public String getPassword() {
//         return password;
//     }
// 
//     public void setPassword(String password) {
//         this.password = password;
//     }
// }


// Path: src/main/java/com/nuvola/myproject/client/application/ApplicationPresenter.java
import javax.inject.Inject;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.web.bindery.event.shared.EventBus;
import com.gwtplatform.dispatch.rest.client.RestDispatch;
import com.gwtplatform.mvp.client.HasUiHandlers;
import com.gwtplatform.mvp.client.Presenter;
import com.gwtplatform.mvp.client.View;
import com.gwtplatform.mvp.client.annotations.NameToken;
import com.gwtplatform.mvp.client.annotations.ProxyStandard;
import com.gwtplatform.mvp.client.proxy.PlaceManager;
import com.gwtplatform.mvp.client.proxy.ProxyPlace;
import com.gwtplatform.mvp.shared.proxy.PlaceRequest;
import com.nuvola.myproject.client.NameTokens;
import com.nuvola.myproject.client.application.ApplicationPresenter.MyProxy;
import com.nuvola.myproject.client.application.ApplicationPresenter.MyView;
import com.nuvola.myproject.client.security.CurrentUser;
import com.nuvola.myproject.client.services.UserService;
import com.nuvola.myproject.shared.model.User;

package com.nuvola.myproject.client.application;



public class ApplicationPresenter extends Presenter<MyView, MyProxy> implements ApplicationUiHandlers {
    @ProxyStandard
    @NameToken(NameTokens.HOME)
    interface MyProxy extends ProxyPlace<ApplicationPresenter> {
    }

    interface MyView extends View, HasUiHandlers<ApplicationUiHandlers> {
        void displayUserName(String userName);
    }

    private final RestDispatch dispatch;
    private final UserService userService;