def add(self, widget, stackText="", asHTML=False): widget.removeFromParent() index = self.getWidgetCount() tr = DOM.createTR() td = DOM.createTD() DOM.appendChild(self.body, tr) DOM.appendChild(tr, td) self.setStyleName(td, "gwt-StackPanelItem", True) self._setIndex(td, index) DOM.setAttribute(td, "height", "1px") tr = DOM.createTR() td = DOM.createTD() DOM.appendChild(self.body, tr) DOM.appendChild(tr, td) DOM.setAttribute(td, "height", "100%") DOM.setAttribute(td, "vAlign", "top") CellPanel.add(self, widget, td) self.setStackVisible(index, False) if self.visibleStack == -1: self.showStack(0) if stackText != "": self.setStackText(self.getWidgetCount() - 1, stackText, asHTML)
def remove(self, child, index=None): if index is None: if isinstance(child, int): index = child child = self.getWidget(child) else: index = self.getWidgetIndex(child) if child.getParent() != self: return False if self.visibleStack == index: self.visibleStack = -1 elif self.visibleStack > index: self.visibleStack -= 1 rowIndex = 2 * index tr = DOM.getChild(self.body, rowIndex) DOM.removeChild(self.body, tr) tr = DOM.getChild(self.body, rowIndex) DOM.removeChild(self.body, tr) CellPanel.remove(self, child) rows = self.getWidgetCount() * 2 #for (int i = rowIndex; i < rows; i = i + 2) { for i in range(rowIndex, rows, 2): childTR = DOM.getChild(self.body, i) td = DOM.getFirstChild(childTR) curIndex = self._getIndex(td) self._setIndex(td, index) index += 1 return True
def insert(self, widget, container, beforeIndex=None): """ has two modes of operation: widget, beforeIndex widget, container, beforeIndex. if beforeIndex argument is not given, the 1st mode is assumed. this technique is less costly than using *args. """ if widget.getParent() == self: return if beforeIndex is None: beforeIndex = container container = self.getBody() widget.removeFromParent() tr = DOM.createTR() td = DOM.createTD() DOM.insertChild(container, tr, beforeIndex) DOM.appendChild(tr, td) CellPanel.insert(self, widget, td, beforeIndex) self.setCellHorizontalAlignment(widget, self.horzAlign) self.setCellVerticalAlignment(widget, self.vertAlign)
def insert(self, widget, container, beforeIndex=None): """ has two modes of operation: widget, beforeIndex widget, container, beforeIndex. if beforeIndex argument is not given, the 1st mode is assumed. this technique is less costly than using *args. """ if widget.getParent() == self: return if beforeIndex is None: beforeIndex = container container = self.tableRow if widget.getParent() == self: return widget.removeFromParent() td = DOM.createTD() DOM.insertChild(container, td, beforeIndex) CellPanel.insert(self, widget, td, beforeIndex) self.setCellHorizontalAlignment(widget, self.horzAlign) self.setCellVerticalAlignment(widget, self.vertAlign)
def __init__(self, **kwargs): self.visibleStack = -1 self.indices = {} self.stackListeners = [] kwargs['StyleName'] = kwargs.get('StyleName', "gwt-StackPanel") CellPanel.__init__(self, **kwargs) DOM.sinkEvents(self.getElement(), Event.ONCLICK)
def insert(self, widget, beforeIndex): widget.removeFromParent() td = DOM.createTD() DOM.insertChild(self.tableRow, td, beforeIndex) CellPanel.insert(self, widget, td, beforeIndex) self.setCellHorizontalAlignment(widget, self.horzAlign) self.setCellVerticalAlignment(widget, self.vertAlign)
def remove(self, widget): if isinstance(widget, int): widget = self.getWidget(widget) if widget.getParent() != self: return False td = DOM.getParent(widget.getElement()) DOM.removeChild(self.tableRow, td) CellPanel.remove(self, widget) return True
def insert(self, widget, beforeIndex): widget.removeFromParent() tr = DOM.createTR() td = DOM.createTD() DOM.insertChild(self.getBody(), tr, beforeIndex) DOM.appendChild(tr, td) CellPanel.insert(self, widget, td, beforeIndex) self.setCellHorizontalAlignment(widget, self.horzAlign) self.setCellVerticalAlignment(widget, self.vertAlign)
def remove(self, widget): if widget == self.center: self.center = None ret = CellPanel.remove(self, widget) if ret: self.dock_children.remove(widget) self.realizeTable(None) return ret
def __init__(self, **kwargs): CellPanel.__init__(self, **kwargs) self.tableRow = DOM.createTR() DOM.appendChild(self.getBody(), self.tableRow)
def __init__(self, **kwargs): self.center = None self.dock_children = [] # cannot use self.children CellPanel.__init__(self, **kwargs)
def appendAndMaybeAdopt(self, parent, child, beingAdded): if beingAdded is not None: if DOM.compare(child, beingAdded.getElement()): CellPanel.add(self, beingAdded, parent) return DOM.appendChild(parent, child)
def _getElementProps(self): return CellPanel._getElementProps() + self.elem_props