def __init__(self, ):
     self.__init__._super()
     self.outer.addStyleName(u"gwittit-Stream_publishAttachment")
     self.publishButton.addClickHandler(self.PublishHandler())
     self.images[0] = Image(java.str(self.baseUrl) + u"/imgsamples/please.jpg")
     self.images[1] = Image(java.str(self.baseUrl) + u"/imgsamples/with.jpg")
     self.images[2] = Image(java.str(self.baseUrl) + u"/imgsamples/ahard.jpg")
     self.images[3] = Image(java.str(self.baseUrl) + u"/imgsamples/forsale.jpg")
     self.images[4] = Image(java.str(self.baseUrl) + u"/imgsamples/help.jpg")
     self.images[5] = Image(java.str(self.baseUrl) + u"/imgsamples/rubber.jpg")
     self.images[6] = Image(java.str(self.baseUrl) + u"/imgsamples/revolver.jpg")
     self.images[7] = Image(java.str(self.baseUrl) + u"/imgsamples/sgt_pepper.jpg")
     self.images[8] = Image(java.str(self.baseUrl) + u"/imgsamples/white.jpg")
     self.images[9] = Image(java.str(self.baseUrl) + u"/imgsamples/submarine.jpg")
     self.images[10] = Image(java.str(self.baseUrl) + u"/imgsamples/abbey.jpg")
     self.images[11] = Image(java.str(self.baseUrl) + u"/imgsamples/letitbe.jpg")
     grid = Grid(2, 6)
     grid.addStyleName(u"grid")
     numRows = grid.getRowCount()
     numColumns = grid.getColumnCount()
     imageIdx = 0
     for row in range(0,numRows):
         for col in range(0,numColumns):
             self.images[imageIdx].setWidth(u"60px")
             self.images[imageIdx].addClickHandler(self.SelectFavoriteHandler(imageIdx))
             grid.setWidget(row, col, self.images[imageIdx])
             imageIdx += 1
     self.outer.add(self.header)
     self.outer.add(grid)
     self.outer.add(self.createFavoriteWidget())
     self.initWidget(self.outer)
class DynaTableWidget(Composite):

    def __init__(self, provider, columns, columnStyles, rowCount):
        Composite.__init__(self)
    
        self.acceptor = RowDataAcceptorImpl(self)
        self.outer = DockPanel()
        self.startRow = 0
        self.grid = Grid()
        self.navbar = NavBar(self)
        
        self.provider = provider
        self.initWidget(self.outer)
        self.grid.setStyleName("table")
        self.outer.add(self.navbar, DockPanel.NORTH)
        self.outer.add(self.grid, DockPanel.CENTER)
        self.initTable(columns, columnStyles, rowCount)
        self.setStyleName("DynaTable-DynaTableWidget")
        
    def initTable(self, columns, columnStyles, rowCount):
        self.grid.resize(rowCount + 1, len(columns))
        for i in range(len(columns)):
            self.grid.setText(0, i, columns[i])
            if columnStyles:
                self.grid.cellFormatter.setStyleName(0, i, columnStyles[i] + "header")

    def setStatusText(self, text):
        self.navbar.status.setText(text)
        
    def clearStatusText(self, text):
        self.navbar.status.setHTML(" ")
        
    def refresh(self):
        self.navbar.gotoFirst.setEnabled(False)
        self.navbar.gotoPrev.setEnabled(False)
        self.navbar.gotoNext.setEnabled(False)
        
        self.setStatusText("Please wait...")
        self.provider.updateRowData(self.startRow, self.grid.getRowCount() - 1, self.acceptor)
        
    def setRowCount(self, rows):
        self.grid.resizeRows(rows)
        
    def getDataRowCount(self):
        return self.grid.getRowCount() - 1