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 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") ComplexPanel.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 insertRow(self, beforeRow): if beforeRow != self.getRowCount(): self.checkRowBounds(beforeRow) tr = DOM.createTR() DOM.insertChild(self.bodyElem, tr, beforeRow) return beforeRow
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 __init__(self, text, disclosurePanel): Widget.__init__(self) self.disclosurePanel = disclosurePanel self.imageBase = pygwt.getModuleBaseURL() self.root = DOM.createTable() self.tbody = DOM.createTBody() self.tr = DOM.createTR() self.imageTD = DOM.createTD() self.labelTD = DOM.createTD() self.imgElem = DOM.createImg() self.updateState() self.setElement(self.root) DOM.appendChild(self.root, self.tbody) DOM.appendChild(self.tbody, self.tr) DOM.appendChild(self.tr, self.imageTD) DOM.appendChild(self.tr, self.labelTD) DOM.appendChild(self.imageTD, self.imgElem) self.setText(text) disclosurePanel.addEventHandler(self) self.updateState()
def _checkVerticalContainer(self): """ use this to delay effect of self.vertical being set. self.setVertical can now be used, rather than self.vertical force-set in constructor """ if DOM.getChildCount(self.body) == 0: DOM.appendChild(self.body, DOM.createTR())
def __init__(self, vertical=False, **kwargs): if not kwargs.has_key('StyleName'): kwargs['StyleName']="gwt-MenuBar" self.body = None self.items = [] self.parentMenu = None self.popup = None self.selectedItem = None self.shownChildMenu = None self.vertical = False self.autoOpen = False if kwargs.has_key('Element'): table = kwargs.pop('Element') fc = DOM.getFirstChild(table) if fc: self.body = fc else: self.body = DOM.createTBody() DOM.appendChild(table, self.body) else: table = DOM.createTable() self.body = DOM.createTBody() DOM.appendChild(table, self.body) if not vertical: tr = DOM.createTR() DOM.appendChild(self.body, tr) self.vertical = vertical outer = DOM.createDiv() DOM.appendChild(outer, table) self.setElement(outer) Widget.__init__(self, **kwargs)
def draw(self): DOM.setAttribute(self.getElement(), 'border', 0) DOM.setAttribute(self.getElement(), 'cellPadding', 0) DOM.setAttribute(self.getElement(), 'cellSpacing', 0) body = Element(Element=DOM.createTBody()) self.row = Element(Element=DOM.createTR(), StyleName='code_row') body.append(self.row) self.append(body)
def addItem(self, item, asHTML=None, popup=None): if not hasattr(item, "setSubMenu"): item = MenuItem(item, asHTML, popup) if self.vertical: tr = DOM.createTR() DOM.appendChild(self.body, tr) else: self._checkVerticalContainer() if len(self.items) == self.itemsPerRow: DOM.appendChild(self.body, DOM.createTR()) count = DOM.getChildCount(self.body) tr = DOM.getChild(self.body, count - 1) DOM.appendChild(tr, item.getElement()) item.setParentMenu(self) item.setSelectionStyle(False) self.items.append(item) return item
def addItem(self, item, asHTML=None, popup=None): if not hasattr(item, "setSubMenu"): item = MenuItem(item, asHTML, popup) if self.vertical: tr = DOM.createTR() DOM.appendChild(self.body, tr) else: self._checkVerticalContainer() if len(self.items) == self.itemsPerRow: DOM.appendChild(self.body, DOM.createTR()) count = DOM.getChildCount(self.body) tr = DOM.getChild(self.body, count-1) DOM.appendChild(tr, item.getElement()) item.setParentMenu(self) item.setSelectionStyle(False) self.items.append(item) return item
def insertItem(self, item, index): if self.vertical: tr = DOM.createTR() DOM.insertChild(self.body, tr, index) else: self._checkVerticalContainer() tr = DOM.getChild(self.body, 0) DOM.insertChild(tr, item.getElement(), index) item.setParentMenu(self) item.setSelectionStyle(False) self.items.insert(index, item)
def __init__(self, **kwargs): if not kwargs.has_key('Spacing'): kwargs['Spacing'] = 0 if not kwargs.has_key('Padding'): kwargs['Padding'] = 0 self.horzAlign = HasHorizontalAlignment.ALIGN_LEFT self.vertAlign = HasVerticalAlignment.ALIGN_TOP CellPanel.__init__(self, **kwargs) self.tableRow = DOM.createTR() DOM.appendChild(self.getBody(), self.tableRow)
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 addArgument(s, arg): mode = 'input' if s.mode == INPUT else 'output' row = Element(Element=DOM.createTR(), StyleName='simple_hardware_pin') td = Element(Element=DOM.createTD(), StyleName='simple_hardware_pin_left') row.append(td) td = Element(Element=DOM.createTD(), StyleName='simple_hardware_pin_label simple_' + mode + '_pin') DOM.setInnerText(td.getElement(), arg.label) row.append(td) td = Element(Element=DOM.createTD(), StyleName='dropdown_holder simple_' + mode + '_pin') td.add(arg) row.append(td) s.bodyArguments.append(row)
def addItem(self, item, asHTML=None, popup=None): if not hasattr(item, "setSubMenu"): item = MenuItem(item, asHTML, popup) if self.vertical: tr = DOM.createTR() DOM.appendChild(self.body, tr) else: tr = DOM.getChild(self.body, 0) DOM.appendChild(tr, item.getElement()) item.setParentMenu(self) item.setSelectionStyle(False) self.items.append(item) return item
def createTR(self, styleName) : """ Create a new row with a specific style name. The row will contain three cells (Left, Center, and Right), each prefixed with the specified style name. This method allows Widgets to reuse the code on a DOM level, without creating a DecoratorPanel Widget. @param styleName the style name @return the new row {@link Element} """ trElem = DOM.createTR() self.setStyleName(trElem, styleName) DOM.appendChild(trElem, self.createTD(styleName + "Left")) DOM.appendChild(trElem, self.createTD(styleName + "Center")) DOM.appendChild(trElem, self.createTD(styleName + "Right")) return trElem
def createTR(self, styleName): """ Create a new row with a specific style name. The row will contain three cells (Left, Center, and Right), each prefixed with the specified style name. This method allows Widgets to reuse the code on a DOM level, without creating a DecoratorPanel Widget. @param styleName: the style name @return the new row {@link Element} """ trElem = DOM.createTR() self.setStyleName(trElem, styleName) DOM.appendChild(trElem, self.createTD(styleName + "Left")) DOM.appendChild(trElem, self.createTD(styleName + "Center")) DOM.appendChild(trElem, self.createTD(styleName + "Right")) return trElem
def __init__(self, text, images=False): Widget.__init__(self) self.setImageBase(images) self.root = DOM.createTable() self.tbody = DOM.createTBody() self.tr = DOM.createTR() self.imageTD = DOM.createTD() self.labelTD = DOM.createTD() self.imgElem = DOM.createImg() self.setElement(self.root) DOM.appendChild(self.root, self.tbody) DOM.appendChild(self.tbody, self.tr) DOM.appendChild(self.tr, self.imageTD) DOM.appendChild(self.tr, self.labelTD) DOM.appendChild(self.imageTD, self.imgElem) self.setText(text)
def __init__(self, text): Widget.__init__(self) self.imageBase = pygwt.getModuleBaseURL() self.root = DOM.createTable() self.tbody = DOM.createTBody() self.tr = DOM.createTR() self.imageTD = DOM.createTD() self.labelTD = DOM.createTD() self.imgElem = DOM.createImg() self.setElement(self.root) DOM.appendChild(self.root, self.tbody) DOM.appendChild(self.tbody, self.tr) DOM.appendChild(self.tr, self.imageTD) DOM.appendChild(self.tr, self.labelTD) DOM.appendChild(self.imageTD, self.imgElem) self.setText(text)
def __init__(self, text, images=True): Widget.__init__(self) self.setImageBase(images) self.root = DOM.createTable() self.tbody = DOM.createTBody() self.tr = DOM.createTR() self.imageTD = DOM.createTD() self.labelTD = DOM.createTD() self.imgElem = DOM.createImg() self.setElement(self.root) DOM.appendChild(self.root, self.tbody) DOM.appendChild(self.tbody, self.tr) DOM.appendChild(self.tr, self.imageTD) DOM.appendChild(self.tr, self.labelTD) DOM.appendChild(self.imageTD, self.imgElem) self.setText(text)
def drawComponentBlock(s): s.addStyleName('hardware_block block simple_hardware_block') table = Element(Element=DOM.createTable()) body = Element(Element=DOM.createTBody()) row = Element(Element=DOM.createTR(), StyleName='simple_hardware_row') td = Element(Element=DOM.createTD(), StyleName='simple_hardware_icon ' + s.name) row.append(td) s.td = Element(Element=DOM.createTD(), StyleName='simple_hardware_name') DOM.setInnerHTML(s.td.getElement(), s.text) row.append(s.td) body.append(row) table.append(body) s.append(table) tableArguments = Element(Element=DOM.createTable(), StyleName='simple_hardware_pins') s.bodyArguments = Element(Element=DOM.createTBody()) tableArguments.append(s.bodyArguments) s.append(tableArguments)
def __init__(self, **kwargs): CellPanel.__init__(self, **kwargs) self.tableRow = DOM.createTR() DOM.appendChild(self.getBody(), self.tableRow)
def __init__(self, html=None, **ka): self.children = [] self.attached = False self.contentPanel = None self.itemTable = None self.contentElem = None self.imgElem = None self.childSpanElem = None self.open = False self.parent = None self.selected = False self.tree = None self.userObject = None element = ka.pop('Element', None) or DOM.createDiv() self.setElement(element) self.itemTable = DOM.createTable() self.contentElem = DOM.createSpan() self.childSpanElem = DOM.createSpan() self.imgElem = DOM.createImg() tbody = DOM.createTBody() tr = DOM.createTR() tdImg = DOM.createTD() tdContent = DOM.createTD() DOM.appendChild(self.itemTable, tbody) DOM.appendChild(tbody, tr) DOM.appendChild(tr, tdImg) DOM.appendChild(tr, tdContent) DOM.setStyleAttribute(tdImg, "verticalAlign", "middle") DOM.setStyleAttribute(tdContent, "verticalAlign", "middle") DOM.setStyleAttribute(self.getElement(), "cursor", "pointer") DOM.appendChild(self.getElement(), self.itemTable) DOM.appendChild(self.getElement(), self.childSpanElem) DOM.appendChild(tdImg, self.imgElem) DOM.appendChild(tdContent, self.contentElem) # XXX - can't set pos relative on a div node, # or white_space on an HTML Table.. try: DOM.setAttribute(self.getElement(), "position", "relative") except: pass DOM.setStyleAttribute(self.contentElem, "display", "inline") DOM.setStyleAttribute(self.getElement(), "whiteSpace", "nowrap") try: DOM.setAttribute(self.itemTable, "whiteSpace", "nowrap") except: pass DOM.setStyleAttribute(self.childSpanElem, "whiteSpace", "nowrap") self.setStyleName(self.contentElem, "gwt-TreeItem", True) #if not ka.has_key('StyleName'): ka['StyleName']="gwt-TreeItem" if html is not None: try: # messy. pyjd can do unicode, pyjs can't if isinstance(html, unicode): ka['HTML'] = html elif isinstance(html, basestring): ka['HTML'] = html else: ka['Widget'] = html except: if isinstance(html, basestring): ka['HTML'] = html else: ka['Widget'] = html UIObject.__init__(self, **ka)
def __init__(self, html=None, **ka): self.children = [] self.attached = False self.contentPanel = None self.itemTable = None self.contentElem = None self.imgElem = None self.childSpanElem = None self.open = False self.parent = None self.selected = False self.tree = None self.userObject = None element = ka.pop('Element', None) or DOM.createDiv() self.setElement(element) self.itemTable = DOM.createTable() self.contentElem = DOM.createSpan() self.childSpanElem = DOM.createSpan() self.imgElem = self.createImage() tbody = DOM.createTBody() tr = DOM.createTR() tdImg = DOM.createTD() tdContent = DOM.createTD() DOM.appendChild(self.itemTable, tbody) DOM.appendChild(tbody, tr) DOM.appendChild(tr, tdImg) DOM.appendChild(tr, tdContent) DOM.setStyleAttribute(tdImg, "verticalAlign", "middle") DOM.setStyleAttribute(tdContent, "verticalAlign", "middle") DOM.setStyleAttribute(self.getElement(), "cursor", "pointer") DOM.appendChild(self.getElement(), self.itemTable) DOM.appendChild(self.getElement(), self.childSpanElem) DOM.appendChild(tdImg, self.imgElem) DOM.appendChild(tdContent, self.contentElem) self.setStyleName(tdImg, "gwt-TreeItemTdImg", True) self.setStyleName(tdContent, "gwt-TreeItemTdContent", True) # XXX - can't set pos relative on a div node, # or white_space on an HTML Table.. try: DOM.setAttribute(self.getElement(), "position", "relative") except: pass DOM.setStyleAttribute(self.contentElem, "display", "inline") DOM.setStyleAttribute(self.getElement(), "whiteSpace", "nowrap") try: DOM.setAttribute(self.itemTable, "whiteSpace", "nowrap") except: pass DOM.setStyleAttribute(self.childSpanElem, "whiteSpace", "nowrap") self.setStyleName(self.contentElem, "gwt-TreeItem", True) #if not ka.has_key('StyleName'): ka['StyleName']="gwt-TreeItem" if html is not None: try: # messy. pyjd can do unicode, pyjs can't if isinstance(html, unicode): ka['HTML'] = html elif isinstance(html, basestring): ka['HTML'] = html else: ka['Widget'] = html except: if isinstance(html, basestring): ka['HTML'] = html else: ka['Widget'] = html UIObject.__init__(self, **ka)
def realizeTable(self, beingAdded): bodyElement = self.getBody() while DOM.getChildCount(bodyElement) > 0: DOM.removeChild(bodyElement, DOM.getChild(bodyElement, 0)) rowCount = 1 colCount = 1 for child in self.dock_children: dir = child.getLayoutData().direction if dir == self.NORTH or dir == self.SOUTH: rowCount += 1 elif dir == self.EAST or dir == self.WEST: colCount += 1 rows = [] for i in range(rowCount): rows.append(DockPanelTmpRow()) rows[i].tr = DOM.createTR() DOM.appendChild(bodyElement, rows[i].tr) westCol = 0 eastCol = colCount - 1 northRow = 0 southRow = rowCount - 1 centerTd = None for child in self.dock_children: layout = child.getLayoutData() td = DOM.createTD() layout.td = td DOM.setAttribute(layout.td, "align", layout.hAlign) DOM.setStyleAttribute(layout.td, "verticalAlign", layout.vAlign) DOM.setAttribute(layout.td, "width", layout.width) DOM.setAttribute(layout.td, "height", layout.height) if layout.direction == self.NORTH: DOM.insertChild(rows[northRow].tr, td, rows[northRow].center) self.appendAndMaybeAdopt(td, child.getElement(), beingAdded) DOM.setIntAttribute(td, "colSpan", eastCol - westCol + 1) northRow += 1 elif layout.direction == self.SOUTH: DOM.insertChild(rows[southRow].tr, td, rows[southRow].center) self.appendAndMaybeAdopt(td, child.getElement(), beingAdded) DOM.setIntAttribute(td, "colSpan", eastCol - westCol + 1) southRow -= 1 elif layout.direction == self.WEST: row = rows[northRow] DOM.insertChild(row.tr, td, row.center) row.center += 1 self.appendAndMaybeAdopt(td, child.getElement(), beingAdded) DOM.setIntAttribute(td, "rowSpan", southRow - northRow + 1) westCol += 1 elif layout.direction == self.EAST: row = rows[northRow] DOM.insertChild(row.tr, td, row.center) self.appendAndMaybeAdopt(td, child.getElement(), beingAdded) DOM.setIntAttribute(td, "rowSpan", southRow - northRow + 1) eastCol -= 1 elif layout.direction == self.CENTER: centerTd = td if self.center is not None: row = rows[northRow] DOM.insertChild(row.tr, centerTd, row.center) self.appendAndMaybeAdopt(centerTd, self.center.getElement(), beingAdded)