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)
Beispiel #2
0
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"&nbsp;"))
        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)