Thursday, July 29, 2010

Protected Page + PopupPanel

I'm trying to have a popup login box show up instead of the real page
when the user is not yet logged in. The relevant code is below.

What happens, however, is that the popup panel shows up briefly and is
then overwritten with the DockLayoutPanel, even though I did not yet
add it to the RootPanel! In fact, I clear the RootPanel explicitely.

I am at a loss as to why this is happening. I'd love to hear your
suggestions and ideas. (Everything works as expected when the user is
logged in.)

(I'm using GWT 2.1.0.M2 and GWT-Platform 0.3.)

public class OtherView extends ViewImpl implements OtherPage.View {
  public interface UiBinder extends
com.google.gwt.uibinder.client.UiBinder<DockLayoutPanel, OtherView> {
  }

 private static final UiBinder UI = GWT.create(UiBinder.class);
 private final LoginBox        loginBox;
 private final DockLayoutPanel panel;
 private final User            user;
 @UiField
 HorizontalPanel               centre;

 @Inject
 public OtherView(final EventBus eventBus, final User user) {
   this.user = user;
   panel = UI.createAndBindUi(this);
   loginBox = new LoginBox(eventBus, user); // HTMLPanel
   refresh();
 }

 @Override
 public Widget asWidget() {
   return panel;
 }

 @Override
 public void refresh() {
   RootPanel.get().clear();
   if (!user.isAuthenticated()) {
     final PopupPanel popupPanel = new PopupPanel();
     popupPanel.setWidget(loginBox);
     popupPanel.setSize("361px", "119px");
     popupPanel.setPopupPosition(456, 358);
     popupPanel.show();
   } else {
     final Label loggedIn = new Label("Hi '" + user.getUserName() + "'!");
     centre.add(loggedIn);
     RootPanel.get().add(panel);
   }
 }
}

--
You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group.
To post to this group, send email to google-web-toolkit@googlegroups.com.
To unsubscribe from this group, send email to google-web-toolkit+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.

No comments:

Post a Comment