def multicolumn(self, list, cols=4): """Format a list of items into a multi-column list.""" result = Grid() result.setWidth("100%") rows = (len(list)+cols-1)/cols result.resize(rows, cols) for col in range(cols): for i in range(rows*col, rows*col+rows): if i < len(list): result.setHTML(0, i, list[i] + "<br />\n") return result
def multicolumn(self, items, cols=4): """Format a list of items into a multi-column list.""" result = Grid() result.setWidth("100%") rows = (len(items)+cols-1)/cols result.resize(rows, cols) i = 0 for col in range(cols): for row in range(rows): if items and i < len(items): result.setHTML(row, col, items[i] + "<br />\n") i += 1 return result
def __init__(self): Sink.__init__(self) inner = Grid(10, 5) outer = FlexTable() outer.setWidget(0, 0, Image(self.baseURL() + "rembrandt/LaMarcheNocturne.jpg")) outer.getFlexCellFormatter().setColSpan(0, 0, 2) outer.getFlexCellFormatter().setHorizontalAlignment(0, 0, HasHorizontalAlignment.ALIGN_CENTER) outer.setHTML(1, 0, "Look to the right...<br>That's a nested table component ->") outer.setWidget(1, 1, inner) outer.getCellFormatter().setColSpan(1, 1, 2) for i in range(10): for j in range(5): inner.setText(i, j, "%d" % i + ",%d" % j) inner.setWidth("100%") outer.setWidth("100%") inner.setBorderWidth(1) outer.setBorderWidth(1) self.initWidget(outer)