def __init__(self, ): self.__init__._super() outer = VerticalPanel() friendRequestWrapper = HorizontalPanel() friendRequestWrapper.getElement().setId(u"friendRequestWrapper") friendRequestWrapper.setSpacing(10) groupInvitesWrapper = VerticalPanel() groupInvitesWrapper.getElement().setId(u"groupInvitesWrapper") eventInvitesWrapper = VerticalPanel() eventInvitesWrapper.getElement().setId(u"eventInvitesWrapper") self.addLoader(outer) class _anonymous(AsyncCallback): @java.typed(Throwable) def onFailure(self, caught): self.handleFailure(caught) @java.typed(List) def onSuccess(self, result): self.removeLoader(outer) for nc in result: outer.add(HTML(java.str(u"<h3>" + java.str(nc.getType())) + u"</h3>")) if nc.getUnread() is not None: outer.add(HTML(u"Unread: " + java.str(nc.getUnread()))) # Friend requests. if nc.getTypeEnum() == NotificationType.friend_requests and nc.getRequestIds().size() > 0: outer.add(friendRequestWrapper) for uid in nc.getRequestIds(): friendRequestWrapper.add(FbProfilePic(uid)) Xfbml.parse(friendRequestWrapper) elif nc.getTypeEnum() == NotificationType.friend_requests and nc.getRequestIds().size() > 0: outer.add(friendRequestWrapper) for uid in nc.getRequestIds(): friendRequestWrapper.add(FbProfilePic(uid)) Xfbml.parse(friendRequestWrapper) elif nc.getTypeEnum() == NotificationType.group_invites: outer.add(groupInvitesWrapper) for gid in nc.getRequestIds(): groupInvitesWrapper.add(HTML(u"GroupInvite: " + java.str(gid))) groupInvitesWrapper.add(FbGroupLink(gid)) Xfbml.parse(groupInvitesWrapper) else: if nc.getTypeEnum() == NotificationType.event_invites: outer.add(eventInvitesWrapper) if nc.getRequestIds().size() > 0: for eid in nc.getRequestIds(): eventInvitesWrapper.add(FbEventLink(eid)) Xfbml.parse(eventInvitesWrapper) self.apiClient.notificationsGet(_anonymous()) # Get facebook data self.initWidget(outer)
class TopMenu(Composite): """ Top Menu """ @java.init def __init__(self, *a, **kw): self.outer = HorizontalPanel() self.loginInfo = HorizontalPanel() self.eventBus = None self.apiClient = ApiFactory.getInstance() @__init__.register @java.typed() def __init__(self, ): self.__init__._super() self.outer.getElement().setId(u"TopMenu") self.loginInfo.addStyleName(u"loginInfo") self.outer.add(HTML(u" ")) self.outer.add(self.loginInfo) self.initWidget(self.outer) def renderLoginInfo(self): self.loginInfo.clear() uid = self.apiClient.getLoggedInUser() fbName = FbName(uid, False) fbName.setUseyou(False) pic = FbProfilePic(uid, FbProfilePic.Size.square) pic.setSize(u"15px", u"15px") GWT.log(u"TopMenu: render " + java.str(fbName), None) self.loginInfo.add(fbName) tmp = SimplePanel() tmp.addStyleName(u"miniProfilePic") tmp.setWidget(pic) self.loginInfo.add(tmp) logout = Anchor(u"Logout") class _anonymous(ClickHandler): @java.typed(ClickEvent) def onClick(self, event): FacebookConnect.logoutAndRedirect(u"/") logout.addClickHandler(_anonymous()) self.loginInfo.add(logout)