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()
示例#2
0
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) + ')')
示例#3
0
    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