class Notifications_send(Showcase): """ Showcase for <code>notifications.send</code> """ @java.init def __init__(self, *a, **kw): self.outer = VerticalPanel() self.notificationText = TextArea() def getNeedPermission(self): """ Get email permissions. """ return Permission.email def permissionGranted(self): self.renderUI() # Send notification @java.private @java.innerclass @java.implements(ClickHandler) class NotificationSendHandler(Object): @java.init def __init__(self, *a, **kw): pass @java.typed(ClickEvent) def onClick(self, event): self.sendToServer() # Notification sent @java.private @java.innerclass @java.implements(AsyncCallbackList) class NotificationSent(Object): @java.init def __init__(self, *a, **kw): pass @java.typed(Throwable) def onFailure(self, caught): self.handleFailure(caught) @java.typed(List) 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) @__init__.register @java.typed() def __init__(self,): self.__init__._super() """ Create showcase """ self.initWidget(self.outer) @java.private 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) # Send notiication. @java.private def sendToServer(self): toIds = ArrayList((Long)) toIds.add(self.apiClient.getLoggedInUser()) self.apiClient.notificationsSendEmail( toIds, u"Notification Send Email", self.notificationText.getValue(), None, self.NotificationSent() ) # toIds.add ( new Long ( FacebookConnect.getLoggedInUser () ) );
class Comments_add(Showcase): """ Showcase for method call <code>comments.add</code> @author olamar72 """ @java.init def __init__(self, *a, **kw): self.outer = VerticalPanel() self.inputWrapper = VerticalPanel() self.responseWrapper = SimplePanel() self.commentsListPanel = VerticalPanel() self.text = TextArea() self.submitButton = Button(u"Add Comment ") # Handle add comment @java.private @java.innerclass @java.implements(AsyncCallbackJavaScriptObject) class AddCommentCallback(Object): @java.init def __init__(self, *a, **kw): pass @java.typed(Throwable) def onFailure(self, caught): self.handleFailure(caught) @java.typed(JavaScriptObject) def onSuccess(self, result): self.removeLoader(self.outer) self.text.setValue(None) self.responseWrapper.add(HTML(u" Thanks :-)")) self.displayComments() # User adds comment @java.private @java.innerclass @java.implements(ClickHandler) class AddCommentClickHandler(Object): @java.init def __init__(self, *a, **kw): pass @java.typed(ClickEvent) def onClick(self, event): comment = Comment.createComment(u"comments_test", self.text.getValue()) self.apiClient.commentsAdd(comment, self.AddCommentCallback()) @__init__.register @java.typed() 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) @java.private def createInputUi(self): """ * Create input text area and submit button. """ vp = VerticalPanel() p = HorizontalPanel() p.setSpacing(10) p.add(FbProfilePic(self.apiClient.getLoggedInUser(), FbProfilePic.Size.square)) self.text.setHeight(u"100px") self.text.setWidth(u"400px") vp.add(self.text) vp.add(self.submitButton) p.add(vp) return p def displayComments(self): self.commentsListPanel.clear() comments = Comments_get() self.commentsListPanel.add(comments)