Hello,

I've tried a little trick today, because I still belive the browser 
downloads code he does not need before he actually needs it.

I placed this:
Window.Location.reload();
inside my *UserViewImpl, *so it would reload after the login.

The problem is that when the application starts with the *LoginViewImpl *the 
page refreshes every second. So I'm not even in the UserViewImpl, so I 
didn't log in, and the page gets the code from the UserViewImpl and starts 
refreshing.
The thing is I've used code splitting in my application like this:

*Login Button*

loginButton.setHTML(LoginFormConstants.LOGIN_BUTTON);
loginButton.addClickHandler(new ClickHandler() {

@Override
public void onClick(ClickEvent event) {
final String username = usernameBox.getText();
final String password = passwordBox.getText();

                                // Is this good code splitting ?
GWT.runAsync(new RunAsyncCallback() {

@Override
public void onSuccess() {
performUserConnection(username, password);
}

@Override
public void onFailure(Throwable reason) {
// TODO Auto-generated method stub
}
});
}
});

 and *performUserConnection()*

private static void performUserConnection(String username, String password) 
{
DBConnectionAsync rpcService = (DBConnectionAsync) 
GWT.create(DBConnection.class);
ServiceDefTarget target = (ServiceDefTarget) rpcService;
String moduleRelativeURL = GWT.getModuleBaseURL() + "DBConnectionImpl";
target.setServiceEntryPoint(moduleRelativeURL);

rpcService.authenticateUser(username, password, new AsyncCallback<User>() {

@Override
public void onSuccess(User user) {

if (user.getType().equals("User")) {
String username = user.getUsername();
presenter.goTo(new UserPlace(username));
} else if (user.getType().equals("Admin")) {
String username = user.getUsername();
presenter.goTo(new AdminPlace(username));
}
}

@Override
public void onFailure(Throwable caught) {
DialogBox dialogBox = createDialogBox();
dialogBox.setGlassEnabled(true);
dialogBox.setAnimationEnabled(true);
dialogBox.center();
dialogBox.show();
}
              });
      }

So the page should wait to see if connection was successful, and then 
download the code, right ? Why isn't this happening ?

Thanks in advance


marți, 31 mai 2016, 01:25:10 UTC+3, Olar Andrei a scris:
>
> My login based application, requires to always know the username of the 
> logged in user. (MVP) . So I'm getting the username from the url, but when 
> the page opens after the login succeeded, I can't get the username from the 
> url, because it does not appear to exists, but it is there. It only works 
> after a refresh. Then I'm able to get the username.
>
>
> The URL is in the form 
> *http://127.0.0.1:8888/AdministrareBloc.html#AdminPlace:admin 
> <http://127.0.0.1:8888/AdministrareBloc.html#AdminPlace:admin>*, where 
> I'm splitting the String to only get the admin part. 
>
>
> I thought this is because it downloads the code before verifying the user. 
> So I placed a split point in my code like this: (I don't know if I placed 
> it correctly)
>
>
> loginButton.addClickHandler(new ClickHandler() {
>
>         @Override
>         public void onClick(ClickEvent event) {
>             final String username = usernameBox.getText();
>             final String password = passwordBox.getText();
>             GWT.runAsync(new RunAsyncCallback() {
>
>                 @Override
>                 public void onSuccess() {
>                     performUserConnection(username, password);
>                 }
>
>                 @Override
>      
> *Introduceți aici codul...*           public void onFailure(Throwable reason) 
> {
>
>                     // TODO Auto-generated method stub
>                 }
>             });
>         }
>     });
>
> private static void performUserConnection(String username, String password) {
>     DBConnectionAsync rpcService = (DBConnectionAsync) 
> GWT.create(DBConnection.class);
>     ServiceDefTarget target = (ServiceDefTarget) rpcService;
>     String moduleRelativeURL = GWT.getModuleBaseURL() + "DBConnectionImpl";
>     target.setServiceEntryPoint(moduleRelativeURL);
>
>     rpcService.authenticateUser(username, password, new AsyncCallback<User>() 
> {
>
>         @Override
>         public void onSuccess(User user) {
>
>             if (user.getType().equals("User")) {
>                 String username = user.getUsername();
>                 presenter.goTo(new UserPlace(username));
>             } else if (user.getType().equals("Admin")) {
>                 String username = user.getUsername();
>                 presenter.goTo(new AdminPlace(username));
>             }
>         }
>
>     }}
>
>
> This is happening when the user clicks the login button. Is the split 
> point placed correclty, or not ? How can I get the username without needing 
> to refresh the page after a successful login ? 
>
> Thanks in advance
>

-- 
You received this message because you are subscribed to the Google Groups "GWT 
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/google-web-toolkit.
For more options, visit https://groups.google.com/d/optout.

Reply via email to