class ProfilePicsPanel(Composite): """ Display Profile Pics in a panel. CSS Configuration. <ul> <li>.gwittit-ProfilePicsPanel <li>.gwittit-ProfilePicsPanel-pics </ul> """ @java.init def __init__(self, *a, **kw): self.outer = VerticalPanel() self.pics = FlowPanel() self.seeAllLink = Anchor(u"See All") self.PAGE_SIZE = 10 self.uids = None @__init__.register @java.typed(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) @java.private def renderProfilePics(self): i = 0 while i < PAGE_SIZE and i < self.uids.size(): i+= 1 uid = self.uids.get(i) profilePic = FbProfilePic(uid, Size.square) profilePic.setWidth(u"35px") profilePic.setHeight(u"35px") self.pics.add(profilePic)
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() outer = VerticalPanel() outer.add(self.getLoader()) flow = FlowPanel() flow.setWidth(u"500px") flow.getElement().setId(u"friendsget") class _anonymous(AsyncCallback): @java.typed(Throwable) def onFailure(self, caught): self.handleFailure(caught) @java.typed(List) def onSuccess(self, result): outer.remove(self.getLoader()) p = ProfilePicsPanel(result) outer.add(p) self.apiClient.friendsGet(_anonymous()) # Call facebook self.initWidget(outer)