class NavBar(Composite): def __init__(self, owner): Composite.__init__(self) self.owner = owner self.bar = DockPanel() self.gotoFirst = Button("<<", self) self.gotoNext = Button(">", self) self.gotoPrev = Button("<", self) self.status = HTML() self.initWidget(self.bar) self.bar.setStyleName("navbar") self.status.setStyleName("status") buttons = HorizontalPanel() buttons.add(self.gotoFirst) buttons.add(self.gotoPrev) buttons.add(self.gotoNext) self.bar.add(buttons, DockPanel.EAST) self.bar.setCellHorizontalAlignment(buttons, HasAlignment.ALIGN_RIGHT) self.bar.add(self.status, DockPanel.CENTER) self.bar.setVerticalAlignment(HasAlignment.ALIGN_MIDDLE) self.bar.setCellHorizontalAlignment(self.status, HasAlignment.ALIGN_RIGHT) self.bar.setCellVerticalAlignment(self.status, HasAlignment.ALIGN_MIDDLE) self.bar.setCellWidth(self.status, "100%") self.gotoPrev.setEnabled(False) self.gotoFirst.setEnabled(False) def onClick(self, sender): if sender == self.gotoNext: self.owner.startRow += self.owner.getDataRowCount() self.owner.refresh() elif sender == self.gotoPrev: self.owner.startRow -= self.owner.getDataRowCount() if self.owner.startRow < 0: self.owner.startRow = 0 self.owner.refresh() elif sender == self.gotoFirst: self.owner.startRow = 0 self.owner.refresh()
class GridTest: def onModuleLoad(self): self.page=0 self.min_page=1 self.max_page=10 self.add=Button("Next >", self) self.sub=Button("< Prev", self) self.g=Grid() self.g.resize(5, 5) self.g.setHTML(0, 0, "<b>Grid Test</b>") self.g.setBorderWidth(2) self.g.setCellPadding(4) self.g.setCellSpacing(1) self.updatePageDisplay() RootPanel().add(self.sub) RootPanel().add(self.add) RootPanel().add(self.g) def onClick(self, sender, event): if sender==self.add: self.page+=1 elif sender==self.sub: self.page-=1 print "onClick", sender, self.page self.updatePageDisplay() def updatePageDisplay(self): if self.page<self.min_page: self.page=self.min_page elif self.page>self.max_page: self.page=self.max_page total_pages=(self.max_page-self.min_page) + 1 self.g.setHTML(0, 4, "<b>page " + str(self.page) + ' of ' + str(total_pages) + "</b>") if self.page>=self.max_page: self.add.setEnabled(False) else: self.add.setEnabled(True) if self.page<=self.min_page: self.sub.setEnabled(False) else: self.sub.setEnabled(True) for y in range(1, 5): for x in range(5): self.g.setText(y, x, str(self.page) + ' (' + str(y) + ',' + str(x) + ')')
def __init__(self): Sink.__init__(self) disabledButton = Button("Disabled Button") disabledCheck = CheckBox("Disabled Check") normalButton = Button("Normal Button") normalCheck = CheckBox("Normal Check") panel = VerticalPanel() radio0 = RadioButton("group0", "Choice 0") radio1 = RadioButton("group0", "Choice 1") radio2 = RadioButton("group0", "Choice 2 (Disabled)") radio3 = RadioButton("group0", "Choice 3") hp=HorizontalPanel() panel.add(hp) hp.setSpacing(8) hp.add(normalButton) hp.add(disabledButton) hp=HorizontalPanel() panel.add(hp) hp.setSpacing(8) hp.add(normalCheck) hp.add(disabledCheck) hp=HorizontalPanel() panel.add(hp) hp.setSpacing(8) hp.add(radio0) hp.add(radio1) hp.add(radio2) hp.add(radio3) disabledButton.setEnabled(False) disabledCheck.setEnabled(False) radio2.setEnabled(False) panel.setSpacing(8) self.initWidget(panel)
class Notes_create(Showcase): """ Showcase for method <code>notes.create</code> @author ola """ @java.init def __init__(self, *a, **kw): self.outer = VerticalPanel() self.permissionHolder = HorizontalPanel() self.saveButton = Button(u"Save Note ") @java.private @java.innerclass @java.implements(AsyncCallbackBoolean) class DeleteNoteCallback(Object): """ Delete note callback """ @java.init def __init__(self, *a, **kw): pass @java.typed(Throwable) def onFailure(self, caught): self.handleFailure(caught) @java.typed(Boolean) def onSuccess(self, result): self.outer.add(Label(u"Note deleted")) @java.private @java.innerclass @java.implements(ClickHandler) class DeleteNoteClickHandler(Object): """ Delete note """ @java.init def __init__(self, *a, **kw): self.noteId = None @__init__.register @java.typed(Long) def __init__(self, noteId): self.noteId = noteId @java.typed(ClickEvent) def onClick(self, event): self.deleteNote(self.noteId) @__init__.register @java.typed() def __init__(self, ): self.__init__._super() self.outer = VerticalPanel() self.saveButton.setEnabled(False) # Need this here so we can enable when user granted permission self.outer.add(HTML(u"<h3>Note: this method is marked as beta in the API and may not work </h3> ")) self.outer.add(self.permissionHolder) self.outer.add(self.createUserInputUI(self.saveButton)) self.initWidget(self.outer) # Get right permission to create a note, if we get the right @java.private @java.typed(Long) def deleteNote(self, noteId): self.apiClient.notesDelete(noteId, self.DeleteNoteCallback()) def permissionGranted(self): self.saveButton.setEnabled(True) def getNeedPermission(self): return Permission.create_note @java.private @java.typed(Button) def createUserInputUI(self, saveButton): """ Create user input UI @return user input ui """ p = VerticalPanel() title = TextBox() content = TextBox() p.setSpacing(10) p.add(self.createInput(u"Title", title)) p.add(self.createInput(u"Content", content)) p.add(saveButton) class _anonymous(ClickHandler): @java.typed(ClickEvent) def onClick(self, event): note = Note.createNote(title.getValue(), content.getValue()) class _anonymous(AsyncCallback): @java.typed(Throwable) def onFailure(self, caught): Notes_create.self###NOTIMPL QThis###.handleFailure(caught) @java.typed(Long) def onSuccess(self, noteId): p.add(HTML(u"Added note with id " + java.str(noteId))) deleteNoteLink = Anchor(u"Delete") deleteNoteLink.addClickHandler(self.DeleteNoteClickHandler(noteId)) p.add(deleteNoteLink) self.apiClient.notesCreate(note, _anonymous()) saveButton.addClickHandler(_anonymous()) # User clicks save, store it to facebook return p @java.private @java.typed(String, Widget) def createInput(self, lbl, w): h = HorizontalPanel() lblHtml = HTML(lbl) lblHtml.setWidth(u"150px") h.add(lblHtml) h.add(w) return h