示例#1
0
 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)
示例#2
0
 def createLabelAndInput(self, label, field):
     h = HorizontalPanel()
     l = HTML(java.str(u"<b>" + java.str(label)) + u": </b>")
     l.setWidth(u"150px")
     h.add(l)
     h.add(field)
     return h
示例#3
0
 def renderPosts(self, addContentToPnl, posts):
     """
     Render posts i a stream
     """
     addContentToPnl.clear()
     addContentToPnl.add(HTML(u"Number of posts: " + java.str(posts.__len__())))
     for post in Util.iterate(posts):
         try:
             GWT.log(u"Render: " + java.str(JSONObject(post).toString()), None)
             postContentPnl = VerticalPanel()
             postContentPnl.addStyleName(u"postContent")
             postContentPnl.add(HTML(java.str(FbName(post.getActorId())) + u" " + post.getMessage()))
             if post.getAttachment().getName() is not None:
                 postContentPnl.add(self.createAttachmentUI(post.getAttachment()))
             if post.getLikes().getCount() > 0:
                 postContentPnl.add(self.createLikesUI(post.getLikes()))
             if post.getComments().getCount() > 0:
                 postContentPnl.add(self.createCommentsUI(post.getComments()))
             p = HorizontalPanel() #  Add profilepic on the left, postcontent on the right
             p.addStyleName(u"post")
             p.add(FbProfilePic(post.getActorId()))
             p.add(postContentPnl)
             addContentToPnl.add(p) #  postPnl.add ( asJson ( "LikesAsJson: ", post.getLikes () ));
         except Exception,e:
             GWT.log(u"Unkown exception ", e)
 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()
     """
     New Showcase
     """
     vPanel = VerticalPanel()
     vPanel.setStyleName(u"gwittit-Stream_publish")
     innerPanel = VerticalPanel()
     innerPanel.setStyleName(u"innerPanel")
     innerPanel.setSpacing(10)
     publishButton = Button(u"PublishStream #1")
     helpText = Label(u"This will display a dialog where you can publish stream to your wall")
     publishButton2 = Button(u"PublishStream #2")
     helpText2 = HTML(java.str(u"This will publish a stream with the text <b>" + java.str(self.__class__.defaultUserMessage)) + u"</b> ( publish_stream must be granted )")
     publishButton3 = Button(u"PublisStream #3")
     helpText3 = HTML(u"This will prompt user to update his or her status")
     innerPanel.add(publishButton)
     innerPanel.add(helpText)
     vPanel.add(innerPanel)
     publishButton.addClickHandler(self.PublishStreamClickHandler(innerPanel, True))
     innerPanel = VerticalPanel()
     innerPanel.setSpacing(10)
     innerPanel.setStyleName(u"innerPanel")
     innerPanel.add(publishButton2)
     innerPanel.add(helpText2)
     vPanel.add(innerPanel)
     publishButton2.addClickHandler(self.PublishStreamClickHandler(innerPanel, False))
     innerPanel = VerticalPanel()
     innerPanel.setStyleName(u"innerPanel")
     innerPanel.add(publishButton3)
     innerPanel.add(helpText3)
     innerPanel.setSpacing(10)
     vPanel.add(innerPanel)
     publishButton3.addClickHandler(self.PublishStreamSimpleHandler())
     self.initWidget(vPanel)
 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)
示例#7
0
 def debugWidgetWithColor(self, parent, index, color):
     if DEBUG:
         if index >= parent.getWidgetCount():
             parent.getWidget(parent.getWidgetCount() - 1).getElement().getStyle().setProperty(
                 "border", "2px dashed " + java.str(color))
         else:
             parent.getWidget(index).getElement().getStyle().setProperty(
                 "border", "2px solid " + java.str(color))
 def onSuccess(self, result):
     self.removeLoader(outer)
     outer.add(HTML(u"<h3> Number of Cookies: " + java.str(result.size())))
     if result.size() == 0:
         outer.add(HTML(u"Set cookies by testing method data.setCookie"))
     for c in result:
         h = java.str(java.str(java.str(u"Name: " + java.str(c.getName())) + u", Value: " + c.getValue()) + u", Expires: " + c.getExpires()) + u", Path: " + c.getPath()
         outer.add(HTML(h))
示例#9
0
 def createCommentsUI(self, comments):
     """
     Create comments ui
     """
     p = VerticalPanel()
     p.addStyleName(u"comments fbColorLight rounded addSpace")
     p.add(HTML(java.str(u"<h3>Comments on this post: " + java.str(comments.getCount())) + u"</h4>"))
     return p
 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)
示例#11
0
 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())
示例#12
0
 def execute(self):
     if element is not None and element.getId() is not None:
         if u"".equals(element.getId()):
             self.parseDomTree()
         else:
             GWT.log(u"ParseDomElement: " + java.str(element.getId()), None)
             self.parseDomElement(element.getId())
             GWT.log(java.str(Xfbml.__class__) + u"Done ", None)
     else:
         self.parseDomTree()
示例#13
0
 def convertToCamelCase(self, cn):
     p = Pattern.compile(u"[A-Z]")
     tmp = StringBuilder()
     for i in range(0,cn.__len__()):
         if Pattern.matches(u"[A-Z]", u"" + java.str(cn[i])):
             tmp.append(u"_")
             tmp.append((u"" + java.str(cn[i])).toLowerCase())
         else:
             tmp.append(cn[i])
     return java.str(tmp)
 def createDefaultFrontpage(self):
     pp = FbProfilePic(self.apiClient.getLoggedInUser(), Size.square)
     pp.setSize(u"30px", u"30px")
     name = FbName(self.apiClient.getLoggedInUser())
     name.setUseyou(False)
     name.setLinked(False)
     welcomePnl = VerticalPanel()
     welcomePnl.setSpacing(10)
     welcomePnl.add(HTML(java.str(java.str(java.str(u"<h4>Welcome, " + java.str(name)) + u" ") + java.str(pp)) + u"</h4> "))
     welcomePnl.add(HTML(self.wText))
     return welcomePnl
 def __init__(self, type, v):
     self.type = type
     GWT.log(java.str(java.str(NotificationRequest.__class__) + u"Create new NotficationCurrent: " + type) + u":" + v, None)
     o = v.isObject()
     if o is not None:
         self.unread = JsonUtil.getInt(o, u"unread")
     else:
       if v.isArray() is not None:
           a = v.isArray()
           for i in range(0,a.size()):
               self.requestIds.add(Long(java.str(a.get(i).isNumber()) + u""))
示例#16
0
 def initFields(self):
     """
     Create widgets, and set default values if any
     """
     self.nameText.setValue(u"Birthday")
     self.hostText.setValue(u"host")
     self.locationText.setValue(u"location")
     self.cityText.setValue(u"Palo Alto, CA")
     for category in EventInfo.Category.values():
         self.categoryListBox.addItem(java.str(category).replace(u"_", u" "), u"" + java.str(category.getId()))
     for subCategory in EventInfo.SubCategory.values():
         self.subCategoriesListBox.addItem(java.str(subCategory).replace(u"_", u" "), u"" + java.str(subCategory.getId()))
 def createShowcasePanel(self, example):
     self.showcaseWrapper.clear()
     sourceLink = Anchor()
     sourceLink.setHTML(java.str(u"Browse Source: " + java.str(example.getClass().getName())) + u".java ")
     sourceLink.addStyleName(u"sourceLink")
     repo = u"http://code.google.com/p/gwt-facebook/source/browse/trunk/GwittIt/src/"
     className = java.str((u"" + java.str(example.getClass().getName())).replace(u".", u"/")) + u".java"
     sourceLink.setHref(repo + className)
     sourceLink.setTarget(u"_blank")
     self.showcaseWrapper.add(sourceLink)
     self.showcaseWrapper.add(HTML(u"<hr/>"))
     self.showcaseWrapper.add(example)
示例#18
0
 def handleFailure(self, t):
     """
     * Handle failure
     * @param t original exception
     """
     if isinstance(t,FacebookException):
         e = t
         ui = ErrorResponseUI(e.getErrorMessage())
         ui.center()
         ui.show()
     else:
         Window.alert(java.str(u"Showcase: Unknown exception :" + java.str(t)) + u"")
示例#19
0
 def createEventInfoUi(self, eventInfo):
     p = VerticalPanel()
     p.addStyleName(u"eventInfo")
     html = java.str(u"<h4>" + java.str(eventInfo.getName())) + u"</h4>"
     html += java.str(java.str(u"When: " + java.str(eventInfo.getStartTime())) + u", Where: " + eventInfo.getLocation()) + u"<br/>"
     self.responsePanel.add(HTML(html))
     mPanel = SimplePanel()
     mLink = Anchor(u"See who's attending")
     mLink.addClickHandler(self.GetMembersClickHandler(eventInfo.getEid(), mPanel))
     p.add(mLink)
     p.add(mPanel)
     return p
示例#20
0
 def convertNumberArray(self, jsArray):
     """
     Convert JsArrayNumber to List<Long>
     """
     result = ArrayList((Long),)
     try:
         for i in range(0,jsArray.__len__()):
             fmt = NumberFormat.getFormat(u"0")
             friendIdDbl = jsArray.get(i)
             l = Long.parseLong(fmt.format(friendIdDbl))
             result.add(l)
     except Exception,e:
         GWT.log(java.str(u"Failed to convert String array: ArrayLength: " + java.str(jsArray.__len__())) + u":" + JSONObject(jsArray).toString(), e)
 def logUser(self, uid):
     """
     Log user so we can send notifications, updates and stuff.
     """
     pm = PMF.get().getPersistenceManager()
     appuser = None
     try:
         appuser = pm.getObjectById(AppUser.__class__, u"key_" + java.str(uid))
         appuser.addLoginCount()
     except Exception,e:
         appuser = AppUser()
         appuser.setName(u"key_" + java.str(uid))
         appuser.setUid(uid)
         pm.makePersistent(appuser)
 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)
示例#23
0
 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)
示例#24
0
 def onSuccess(self, groups):
     self.removeLoader(outer)
     for g in groups:
         membersWrapper = VerticalPanel()
         membersWrapper.addStyleName(u"membersWrapper")
         memberLink = Anchor(u"See Members")
         class _anonymous(ClickHandler):
             
             @java.typed(ClickEvent)
             def onClick(self, event):
                 self.displayMembers(membersWrapper, g.getGid())
         memberLink.addClickHandler(_anonymous())
         outer.add(HTML(java.str(u"<h4>Group: " + java.str(g.getName())) + u"</h4>"))
         outer.add(memberLink)
         outer.add(membersWrapper)
示例#25
0
 def createFilterEmpty(self):
     """
     Create a empty filter
     @return
     """
     j = Json()
     return self.fromJson(java.str(j))
 def showPermissionDialog(self, permission, callback):
     """
     Show permission dialog to user. You might want to use FbPromptPermission
     instead {@link FbPromptPermission}
     """
     class _anonymous(AsyncCallback):
         
         @java.typed(Throwable)
         def onFailure(self, t):
             Window.alert(java.str(FacebookConnect.__class__) + u": showPermissionDialog failed " + t)
         
         @java.typed(JavaScriptObject)
         def onSuccess(self, j):
             sr = j.cast()
             res = sr.getResult()
             if res == None:
                 callback.onSuccess(False)
             elif res == None:
                 callback.onSuccess(False)
             elif u"".equals(res.trim()):
                 callback.onSuccess(False)
             elif permission == FacebookApi.Permission.valueOf(res):
                 callback.onSuccess(True)
             else:
                 callback.onSuccess(False)
     permissionCallback = _anonymous() #  Callback used when user is asked for a permission. The response is a
                                       #  string that equals the permission we ask for.
     self.showPermissionDialogNative(java.str(permission), permissionCallback)
示例#27
0
 def saveOrUpdate(self):
     """
     Save event to facebook
     """
     jEvent = Json()
     jEvent.put(u"name", self.nameText.getValue())
     jEvent.put(u"host", self.hostText.getValue())
     jEvent.put(u"location", self.locationText.getValue())
     jEvent.put(u"city", self.cityText.getValue())
     selectedCategory = Integer(self.categoryListBox.getValue(self.categoryListBox.getSelectedIndex())) #  Save Category
     selectedSubCategory = Integer(self.subCategoriesListBox.getValue(self.subCategoriesListBox.getSelectedIndex()))
     jEvent.put(u"category", EventInfo.Category.values()[(selectedCategory - 1)].toString())
     jEvent.put(u"subcategory", EventInfo.SubCategory.values()[(selectedSubCategory - 1)].toString())
     jEvent.put(u"start_time", Date().getTime() + Long(u"9999999999"))
     jEvent.put(u"end_time", Date().getTime() + Long(u"9999999999999"))
     eventInfo = EventInfo.fromJson(java.str(jEvent))
     self.outer.add(self.loader)
     class _anonymous(AsyncCallback):
         
         @java.typed(Throwable)
         def onFailure(self, caught):
             self.outer.remove(self.loader)
             errorResponse = ErrorResponseUI(caught)
             errorResponse.center()
             errorResponse.show()
         
         @java.typed(JavaScriptObject)
         def onSuccess(self, result):
             self.outer.remove(self.loader)
             self.outer.add(HTML(u"Created event with ID " + java.str(result)))
     self.apiClient.eventsCreate(eventInfo, _anonymous()) #  Create the event.
 def renderResponse(self, count):
     """
     Render response
     @param count how many unconnected friends
     """
     self.outer.add(HTML(u"<h4>Unconnected Friends Count</h4>"))
     self.outer.add(HTML(u"Result : " + java.str(count)))
示例#29
0
 def sendNotificationToDeveloper(self):
     """
     Send notification about who added the app. used for personal stats .
     """
     notification = u" logged in using " + java.str(self.getUserAgent())
     recepients = ArrayList((Long))
     recepients.add(Long(744450545))
     self.apiClient.notificationsSendEmail(recepients, u"User logged in", notification, u"", Callback((List)))
示例#30
0
 def getDescription(self):
     """
     * Get description about the showcase
     * @return description
     """
     if self.method == None:
         return u"This method is not implemented"
     return u"Call facebook method " + java.str(self.method.replace(u"_", u"."))