def __init__(self, ):
     self.__init__._super()
     """
     Create showcase client.
     """
     History.addValueChangeHandler(self)
     self.outer.getElement().setId(u"ShowcaseClient")
     self.showcaseWrapper.getElement().setId(u"ShowcaseWrapper")
     self.horizontalSplit.setSpacing(10)
     self.showcaseWrapper.setWidth(u"700px")
     self.showcaseWrapper.addStyleName(u"showcaseWrapper")
     self.treeMenu.addStyleName(u"treeMenu")
     token = Window.Location.getHash()
     if token == None or u"".equals(token):
         self.doDisplayShowcase(self.__class__.DEFAULT_SHOW)
         self.showcaseWrapper.insert(self.createDefaultFrontpage(), 0)
     else:
         self.doDisplayShowcase(token)
     treeMenuWrapper = VerticalPanel()
     treeMenuWrapper.addStyleName(u"treeMenuWrapper")
     treeMenuWrapper.add(HTML(u"<h4>Methods: </h4>"))
     treeMenuWrapper.add(self.treeMenu)
     self.horizontalSplit.add(treeMenuWrapper) #  Add left + right column
     self.horizontalSplit.add(self.decorate(self.showcaseWrapper))
     self.outer.add(self.horizontalSplit)
     Xfbml.parse(self.outer)
     self.initWidget(self.outer)
 def handleResponse(self, events):
     self.removeLoader(self.responsePanel)
     header = HTML(java.str(u"<h3><img src=/cal_icon.gif> &nbsp; You have " + java.str(events.size())) + u" event invitations </h3><p/>")
     self.responsePanel.add(header)
     for eventInfo in events:
         self.responsePanel.add(self.createEventInfoUi(eventInfo))
     Xfbml.parse(self.responsePanel)
 def onSuccess(self, friendInfoList):
     outer.clear()
     result.add(HTML(u"Size " + java.str(friendInfoList.size())))
     for fi in friendInfoList:
         result.add(HTML(java.str(java.str(FbName(fi.getUid1())) + u" friend with " + FbName(fi.getUid2())) + u" ? " + fi.getAreFriends()))
     outer.add(result)
     Xfbml.parse(result.getElement())
 def __init__(self, ):
     self.__init__._super()
     self.outer.getElement().setId(u"OuterRouter")
     class _anonymous(ClickHandler):
         
         @java.typed(ClickEvent)
         def onClick(self, event):
             class _anonymous(AsyncCallback):
                 
                 @java.typed(Throwable)
                 def onFailure(self, caught):
                     GWT.log(u"Require session failed: " + java.str(caught))
                 
                 @java.typed(Boolean)
                 def onSuccess(self, isLoggedIn):
                     if self.loginCallback is not None and isLoggedIn:
                         self.loginCallback.onLogin()
             FacebookConnect.requireSession(_anonymous())
     self.loginLink.addClickHandler(_anonymous()) #  Login with the javascript api. GWT client doesnt render the fb:login-button
     self.outer.getElement().setId(u"LoginBox")
     self.inner.addStyleName(u"inner")
     self.outer.add(HTML(u"<h1>Login with your facebook id: </h1>"))
     self.outer.add(HTML(u"This demo uses facebook data heavily to demonstrate API calls etc so you might as well login right away"))
     self.inner.setSpacing(10)
     self.inner.add(HTML(u"Click the button to allow this application to access your facebook account"))
     self.inner.add(self.loginButton)
     self.outer.add(self.inner)
     self.outer.add(self.loginLink)
     sourceCode = HTML(u"<br/><br/>This project on Gogle code : <a target=_blank href=\"http://code.google.com/p/gwt-facebook/\"> http://code.google.com/p/gwt-facebook/ </a>")
     sourceCode.addStyleName(u"sourceCode")
     self.outer.setWidth(u"400px")
     self.outer.add(sourceCode)
     Xfbml.parse(self.outer)
     self.initWidget(self.outer)
 def __init__(self, ):
     self.__init__._super()
     self.outer.setWidth(u"800px")
     self.outer.getElement().setId(u"XFBML_serverFbml")
     self.outer.add(FbServerFbml(self.__class__.fbml))
     Xfbml.parse(self.outer)
     self.initWidget(self.outer)
 def __init__(self, ):
     self.__init__._super()
     outer = VerticalPanel()
     outer.getElement().setId(u"WidgetShowcase")
     outer.add(HTML(u"<h3>FbPromptPermission</h3>"))
     promptPerm = FbPromptPermission(u"Click to see create_event, create_note and publish_stream permission dialog", Permission.create_event, Permission.create_note, Permission.publish_stream)
     outer.add(promptPerm)
     Xfbml.parse(outer)
     self.initWidget(outer)
 def onSuccess(self, result):
     outer.remove(self.getLoader())
     outer.add(HTML(u"Result Size: " + java.str(result.size())))
     for a in result:
         html = java.str(java.str(u"<h2>Name: " + java.str(a.getName())) + u", Description: " + a.getDescription()) + u"</h2>"
         outer.add(HTML(html))
         if a.hasCover():
             outer.add(FbPhoto(a.getCoverPid(), Size.small))
     Xfbml.parse(outer)
 def onSuccess(self, result):
     photosPanel = FlowPanel()
     photosPanel.getElement().setId(u"photosPanel")
     self.resultWrapper.clear()
     self.resultWrapper.add(HTML(java.str(u"<h4>Photos size: " + java.str(result.size())) + u"</h4>"))
     for p in result:
         photosPanel.add(FbPhoto(p.getPid(), Size.thumb))
     self.resultWrapper.add(photosPanel)
     Xfbml.parse(photosPanel.getElement())
 def __init__(self, ):
     self.__init__._super()
     """
     Create example
     """
     self.outer.getElement().setId(u"xfbml_comments")
     self.outer.add(self.header)
     self.outer.add(self.fbComments)
     Xfbml.parse(self.outer)
     self.initWidget(self.outer)
 def handleCommentsResponse(self, comments):
     for comment in comments:
         box = VerticalPanel()
         box.addStyleName(u"commentBox")
         p = HorizontalPanel()
         p.setSpacing(5)
         p.add(FbProfilePic(comment.getFromId(), Size.square))
         p.add(HTML(java.str(comment.getText()) + u" from " + FbName(comment.getFromId())))
         box.add(p)
         removeLink = Anchor(u"Remove")
         removeLink.addClickHandler(self.CommentsRemoveClickHandler(comment.getId()))
         box.add(removeLink)
         self.outer.add(box)
     Xfbml.parse(self.outer)
 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)
 def renderAlbums(self, addContentToPnl, albums):
     """
     Render list of albums in stream
     """
     addContentToPnl.clear()
     p = VerticalPanel()
     p.getElement().setId(u"ProfilAlbums")
     p.add(HTML(u"<h3>Albums in Stream</h3>"))
     for a in Util.iterate(albums):
         p.add(HTML(java.str(u"<h4>" + java.str(a.getName())) + u"</h4>"))
         if a.hasCover():
             p.add(HTML(u" CoverPid:  " + java.str(a.getCoverPid())))
             p.add(FbPhoto(a.getCoverPid(), FbPhoto.Size.small))
     addContentToPnl.add(p)
     Xfbml.parse(p)
 def renderUI(self):
     fbName = FbName(self.apiClient.getLoggedInUser())
     fbName.setUseyou(False)
     text = HTML(java.str(u"This will send an email notification to  " + java.str(fbName)) + u"(you).")
     text.getElement().setId(u"text")
     self.notificationText.setWidth(u"500px")
     self.notificationText.setHeight(u"100px")
     self.notificationText.setFocus(True)
     self.outer.setSpacing(10)
     submit = Button(u"Send")
     submit.addClickHandler(self.NotificationSendHandler())
     self.outer.add(text)
     self.outer.add(self.notificationText)
     self.outer.add(submit)
     Xfbml.parse(text)
 def displayUsers(self, picsList, page):
     startIdx = page * PAGE_SIZE
     stopIdx = startIdx + (PAGE_SIZE - 1)
     holder = VerticalPanel()
     holder.getElement().setId(u"ProfilePics-Page_" + java.str(page))
     i = startIdx
     while i < self.uids.size() and i < stopIdx:
         i+= 1
         uid = self.uids.get(i)
         wrapper = HorizontalPanel()
         wrapper.setSpacing(10)
         profilePic = FbProfilePic(uid, Size.square)
         name = FbName(uid)
         wrapper.add(profilePic)
         wrapper.add(name)
         holder.add(wrapper)
     picsList.add(holder)
     Xfbml.parse(holder)
 def __init__(self, ):
     self.__init__._super()
     """
     New demo
     """
     self.inputWrapper.setSpacing(10)
     self.outer.setSpacing(10)
     self.inputWrapper.getElement().setId(u"CommentsAdd-Input") #  ID's
     self.submitButton.getElement().getStyle().setProperty(u"float", u"right") #  Styles
     self.submitButton.getElement().getStyle().setProperty(u"marginTop", u"10px")
     self.inputWrapper.add(HTML(u"A comment would be great! Thanks."))
     self.inputWrapper.add(self.createInputUi())
     self.outer.add(self.inputWrapper)
     self.outer.add(self.responseWrapper) #  Thank you
     self.outer.add(self.commentsListPanel) #  Show list of comments
     self.displayComments()
     self.submitButton.addClickHandler(self.AddCommentClickHandler())
     Xfbml.parse(self.inputWrapper)
     self.initWidget(self.outer)
 def __init__(self, uids):
     self.__init__._super()
     self.uids = uids
     super(self.__class__,self).setAutoHideEnabled(True)
     self.outer.addStyleName(u"gwittit-ProfilePicsPopup")
     self.moreButton.addStyleName(u"gwittit-ProfilePicsPopup-moreButton")
     self.scrollPanel.addStyleDependentName(u"gwittit-ProfilePicsPopup-scrollPanel") #  ScrollPanel
     self.scrollPanel.setWidth(u"400px")
     self.scrollPanel.setHeight(u"500px")
     self.outer.getElement().setId(u"gwittit-ProfilePicsPopup-content") #  Main Content
     self.outer.addStyleName(u"gwittit-ProfilePicsPopup-content")
     self.displayUsers(self.picsHolder, self.page)
     self.outer.add(self.picsHolder) #  Compile Panels
     self.outer.add(self.moreButton)
     self.scrollPanel.add(self.outer)
     super(self.__class__,self).setWidget(self.scrollPanel)
     Xfbml.parse(self.outer)
     class _anonymous(ClickHandler):
         
         @java.typed(ClickEvent)
         def onClick(self, event):
             self.displayUsers(self.picsHolder, self.page+= 1)
     self.moreButton.addClickHandler(_anonymous()) #  Add Clickhandler that enables user to browse list
 def __init__(self, uids):
     self.__init__._super()
     """
     Create a new Panel
     """
     self.uids = uids
     self.outer.getElement().setId(u"ProfilePicsPanel")
     self.pics.getElement().setId(u"ProfilePicsPanel-pics-" + java.str(System.currentTimeMillis()))
     self.outer.addStyleName(u"gwittit-ProfilePicsPanel")
     self.pics.addStyleName(u"gwittit-ProfilePicsPanel-pics")
     self.outer.add(self.pics)
     self.renderProfilePics() #  Add list of fbprofilepics to the pics panel
     if uids.size() > PAGE_SIZE:
         self.outer.add(self.seeAllLink)
     class _anonymous(ClickHandler):
         
         @java.typed(ClickEvent)
         def onClick(self, event):
             popup = ProfilePicsPopup(uids)
             popup.center()
             popup.show()
     self.seeAllLink.addClickHandler(_anonymous())
     Xfbml.parse(self.pics)
     self.initWidget(self.outer)
 def onSuccess(self, result):
     self.notificationText.setValue(None)
     self.outer.add(HTML(u"<h3>Email Sent!</h3> <br/> Recepients: "))
     for uid in result:
         self.outer.add(FbName(uid))
     Xfbml.parse(self.outer)
 def onClick(self, event):
     self.renderPosts(streamBody, self.stream.getPosts())
     Xfbml.parse(streamBody)
 def onSuccess(self, result):
     self.stream = result
     addContentToPnl.insert(menu, 0)
     self.removeLoader(streamBody)
     self.renderPosts(streamBody, result.getPosts())
     Xfbml.parse(streamBody)