def __init__(self, **kwargs): if not kwargs.has_key('CellFormatter'): kwargs['CellFormatter'] = CellFormatter(self) if not kwargs.has_key('RowFormatter'): kwargs['RowFormatter'] = RowFormatter(self) self.tableListeners = [] self.dbltableListeners = [] self.widgetMap = {} if kwargs.has_key('Element'): self.tableElem = kwargs.pop('Element') fc = DOM.getFirstChild(self.tableElem) if fc: self.bodyElem = fc else: self.bodyElem = DOM.createTBody() DOM.appendChild(self.tableElem, self.bodyElem) else: self.tableElem = DOM.createTable() self.bodyElem = DOM.createTBody() DOM.appendChild(self.tableElem, self.bodyElem) self.setElement(self.tableElem) self.sinkEvents(Event.ONCLICK | Event.ONDBLCLICK) Panel.__init__(self, **kwargs)
def __init__(self, vertical=False, **kwargs): self.setVertical(kwargs.pop('Vertical', vertical)) if 'StyleName' not in kwargs or kwargs['StyleName'] == 'gwt-MenuBar': kwargs['StyleName'] = self.getDefaultStyleName() self.body = None self.items = [] self.parentMenu = None self.popup = None self.selectedItem = None self.shownChildMenu = None self.autoOpen = False self.itemsPerRow = None 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() DOM.setAttribute(table, "cellPadding", "0") DOM.setAttribute(table, "cellSpacing", "0") self.body = DOM.createTBody() DOM.appendChild(table, self.body) outer = DOM.createDiv() DOM.appendChild(outer, table) self.setElement(outer) Widget.__init__(self, **kwargs)
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 computeKey(self, row, column): element = self.cellFormatter.getRawElement(row, column) child = DOM.getFirstChild(element) if child is None: return None return self.computeKeyForElement(child)
def __init__(self, **kwargs): self.body = None self.visibleStack = -1 self.indices = {} 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) self.setElement(table) if not kwargs.has_key('Spacing'): kwargs['Spacing'] = 0 if not kwargs.has_key('Padding'): kwargs['Padding'] = 0 if not kwargs.has_key('StyleName'): kwargs['StyleName'] = "gwt-StackPanel" DOM.sinkEvents(table, Event.ONCLICK) ComplexPanel.__init__(self, **kwargs)
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 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) ComplexPanel.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 __init__(self, vertical=False, **kwargs): self.setVertical(kwargs.pop('Vertical', vertical)) if 'StyleName' not in kwargs or kwargs['StyleName'] == 'gwt-MenuBar': kwargs['StyleName'] = self.getDefaultStyleName() self.body = None self.items = [] self.parentMenu = None self.popup = None self.selectedItem = None self.shownChildMenu = None 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) outer = DOM.createDiv() DOM.appendChild(outer, table) self.setElement(outer) Widget.__init__(self, **kwargs)
def __init__(self, img, **kwargs): self.mouseListeners = [] if not kwargs.has_key('StyleName'): kwargs['StyleName'] = 'gwt-HyperlinkImage' Hyperlink.__init__(self, **kwargs) DOM.appendChild(DOM.getFirstChild(self.getElement()), img.getElement()) img.unsinkEvents(Event.ONCLICK | Event.MOUSEEVENTS) self.sinkEvents(Event.ONCLICK | Event.MOUSEEVENTS)
def __init__(self, name, **kwargs): if kwargs.has_key('Element'): div = kwargs.pop('Element') else: div = DOM.createDiv() DOM.setInnerHTML(div, "<iframe name='" + name + "'>") iframe = DOM.getFirstChild(div) Frame.__init__(self, None, iframe, **kwargs)
def getCellElement(self, row, cell): """ Get a specific Element from the panel. @param row: the row index @param cell: the cell index @return the Element at the given row and cell """ tr = DOM.getChild(self.tbody, row) td = DOM.getChild(tr, cell) return DOM.getFirstChild(td)
def getCellElement(self, row, cell) : """ Get a specific Element from the panel. @param row the row index @param cell the cell index @return the Element at the given row and cell """ tr = DOM.getChild(self.tbody, row) td = DOM.getChild(tr, cell) return DOM.getFirstChild(td)
def setStackVisible(self, index, visible): tr = DOM.getChild(self.body, (index * 2)) if tr is None: return td = DOM.getFirstChild(tr) self.setStyleName(td, "gwt-StackPanelItem-selected", visible) tr = DOM.getChild(self.body, (index * 2) + 1) self.setVisible(tr, visible) self.getWidget(index).setVisible(visible)
def internalClearCell(self, td): maybeChild = DOM.getFirstChild(td) widget = None if maybeChild is not None: widget = self.getWidget(maybeChild) if widget is not None: self.removeWidget(widget) return True DOM.setInnerHTML(td, "") return False
def __init__(self, rowStyles=None, containerIndex=1, **kwargs): """ Creates a new panel using the specified style names to apply to each row. Each row will contain three cells (Left, Center, and Right). The Center cell in the containerIndex row will contain the {@link Widget}. @param rowStyles: an array of style names to apply to each row @param containerIndex the index of the container row """ if rowStyles is None: rowStyles = self.DEFAULT_ROW_STYLENAMES if kwargs.has_key('Element'): self.table = kwargs.pop('Element') fc = DOM.getFirstChild(self.table) if fc: self.tbody = fc else: self.tbody = DOM.createTBody() DOM.appendChild(self.table, self.tbody) else: # Add a tbody self.table = DOM.createTable() self.tbody = DOM.createTBody() DOM.appendChild(self.table, self.tbody) DOM.setAttribute(self.table, "cellSpacing", "0") DOM.setAttribute(self.table, "cellPadding", "0") if not kwargs.has_key('StyleName'): kwargs['StyleName'] = self.DEFAULT_STYLENAME SimplePanel.__init__(self, self.table, **kwargs) # Add each row for i in range(len(rowStyles)): row = self.createTR(rowStyles[i]) DOM.appendChild(self.tbody, row) if i == containerIndex: self.containerElem = DOM.getFirstChild(DOM.getChild(row, 1))
def __init__(self, rowStyles=None, containerIndex=1, **kwargs): """ Creates a new panel using the specified style names to apply to each row. Each row will contain three cells (Left, Center, and Right). The Center cell in the containerIndex row will contain the {@link Widget}. @param rowStyles an array of style names to apply to each row @param containerIndex the index of the container row """ if rowStyles is None: rowStyles = self.DEFAULT_ROW_STYLENAMES if kwargs.has_key('Element'): self.table = kwargs.pop('Element') fc = DOM.getFirstChild(self.table) if fc: self.tbody = fc else: self.tbody = DOM.createTBody() DOM.appendChild(self.table, self.tbody) else: # Add a tbody self.table = DOM.createTable() self.tbody = DOM.createTBody() DOM.appendChild(self.table, self.tbody) DOM.setAttribute(self.table, "cellSpacing", "0") DOM.setAttribute(self.table, "cellPadding", "0") if not kwargs.has_key('StyleName'): kwargs['StyleName']=self.DEFAULT_STYLENAME SimplePanel.__init__(self, self.table, **kwargs) # Add each row for i in range(len(rowStyles)): row = self.createTR(rowStyles[i]) DOM.appendChild(self.tbody, row) if i == containerIndex: self.containerElem = DOM.getFirstChild(DOM.getChild(row, 1))
def getAdjacentTextElement(current, topMostNode, forward=None, traversingUp=False): if forward is None: forward = topMostNode topMostNode = None res = None #print "getAdjacentTextElement", current, topMostNode, forward, traversingUp # If traversingUp, then the children have already been processed if not traversingUp: if DOM.getChildCount(current) > 0: if forward: node = DOM.getFirstChild(current) else: node = DOM.getLastChild(current) if DOM.getNodeType(node) == DOM.TEXT_NODE: res = node else: # Depth first traversal, the recursive call deals with # siblings res = getAdjacentTextElement(node, topMostNode, forward, False) if res is None: if forward: node = current.nextSibling else: node = current.previousSibling # Traverse siblings if node is not None: if DOM.getNodeType(node) == DOM.TEXT_NODE: res = node else: #print node, DOM.getNodeType(node), node.innerHTML # Depth first traversal, the recursive call deals with # siblings res = getAdjacentTextElement(node, topMostNode, forward, False) # Go up and over if still not found if (res is None) and (not DOM.compare(current, topMostNode)): node = current.parentNode # Stop at document (technically could stop at "html" tag) if (node is not None) and \ (DOM.getNodeType(node) != DOM.DOCUMENT_NODE): res = getAdjacentTextElement(node, topMostNode, forward, True) return res
def getElementById(element, id): try: element_id = DOM.getAttribute(element, "id") except: element_id = None if element_id is not None and element_id == id: return element child = DOM.getFirstChild(element) while child is not None: ret = getElementById(child, id) if ret is not None: return ret child = DOM.getNextSibling(child) return None
def getElementsByTagName(element, tagname): try: element_tagname = element.nodeName # DOM.getAttribute(element, "nodeName") element_tagname = str(element_tagname).lower() except: element_tagname = None if element_tagname is not None and element_tagname == tagname: return [element] res = [] child = DOM.getFirstChild(element) while child is not None: for el in getElementsByTagName(child, tagname): res.append(el) child = DOM.getNextSibling(child) return res
def getElementsByTagName(element, tagname): try: element_tagname = element.nodeName element_tagname = str(element_tagname).lower() except: element_tagname = None if element_tagname is not None and element_tagname == tagname: return [element] res = [] child = DOM.getFirstChild(element) while child is not None: for el in getElementsByTagName(child, tagname): res.append(el) child = DOM.getNextSibling(child) return res
def __init__(self, **kwargs): kwargs['Spacing'] = kwargs.get('Spacing', 0) kwargs['Padding'] = kwargs.get('Padding', 0) kwargs['HorizontalAlignment'] = kwargs.get( 'HorizontalAlignment', HasHorizontalAlignment.ALIGN_LEFT) kwargs['VerticalAlignment'] = kwargs.get( 'VerticalAlignment', HasVerticalAlignment.ALIGN_TOP) element = kwargs.pop('Element', None) or DOM.createTable() fc = DOM.getFirstChild(element) if fc: self.body = fc else: self.body = DOM.createTBody() self.table = element self.setElement(self.table) DOM.appendChild(self.table, self.body) ComplexPanel.__init__(self, **kwargs)
def __init__(self, **kwargs): kwargs['Spacing'] = kwargs.get('Spacing', 0) kwargs['Padding'] = kwargs.get('Padding', 0) kwargs['HorizontalAlignment'] = kwargs.get('HorizontalAlignment', HasHorizontalAlignment.ALIGN_LEFT) kwargs['VerticalAlignment'] = kwargs.get('VerticalAlignment', HasVerticalAlignment.ALIGN_TOP) element = kwargs.pop('Element', None) or DOM.createTable() fc = DOM.getFirstChild(element) if fc: self.body = fc else: self.body = DOM.createTBody() self.table = element self.setElement(self.table) DOM.appendChild(self.table, self.body) ComplexPanel.__init__(self, **kwargs)
def __init__(self): self._dragging = False Canvas.__init__(self, Width=WIDTH, Height=HEIGHT) canvasElement = self.getElement() #Register for canvas mouse events self._proc = Processing(DOM.getFirstChild(canvasElement)) self._proc.setup = (lambda: self.setup_proc()) self._proc.draw = None self._proc.init() DOM.sinkEvents(canvasElement, Event.MOUSEEVENTS) DOM.setEventListener(canvasElement, self) self._currentPointList = [] self._x = None self._y = None self._callback_Redraw = None self._callback_AddStroke = None self._callback_DeleteStroke = None
def __init__(self, target=None, **kwargs): global FormPanel_formId if hasattr(target, "getName"): target = target.getName() if kwargs.has_key('Element'): element = kwargs.pop('Element') else: element = DOM.createForm() self.formHandlers = [] self.iframe = None self.__formAction = None FormPanel_formId += 1 formName = "FormPanel_" + str(FormPanel_formId) DOM.setAttribute(element, "target", formName) DOM.setInnerHTML(element, """<iframe name='%s' src="javascript:''">"""\ % formName) self.iframe = DOM.getFirstChild(element) DOM.setIntStyleAttribute(self.iframe, "width", 0) DOM.setIntStyleAttribute(self.iframe, "height", 0) DOM.setIntStyleAttribute(self.iframe, "border", 0) if target is not None: kwargs['Target'] = target SimplePanel.__init__(self, element, **kwargs) try: self.sinkEvents(Event.ONLOAD) except: # MSHTML doesn't have form.onload, # it has onreadystatechange. pass
def __init__(self, target = None, **kwargs): global FormPanel_formId if hasattr(target, "getName"): target = target.getName() if kwargs.has_key('Element'): element = kwargs.pop('Element') else: element = DOM.createForm() self.formHandlers = [] self.iframe = None self.__formAction = None FormPanel_formId += 1 formName = "FormPanel_" + str(FormPanel_formId) DOM.setAttribute(element, "target", formName) DOM.setInnerHTML(element, """<iframe name='%s' src="javascript:''">"""\ % formName) self.iframe = DOM.getFirstChild(element) DOM.setIntStyleAttribute(self.iframe, "width", 0) DOM.setIntStyleAttribute(self.iframe, "height", 0) DOM.setIntStyleAttribute(self.iframe, "border", 0) if target is not None: kwargs['Target'] = target SimplePanel.__init__(self, element, **kwargs) try: self.sinkEvents(Event.ONLOAD) except: # MSHTML doesn't have form.onload, # it has onreadystatechange. pass
def __init__(self, name, **kwargs): div = kwargs.pop('Element', None) or DOM.createDiv() DOM.setInnerHTML(div, "<iframe name='" + name + "'>") iframe = DOM.getFirstChild(div) Frame.__init__(self, None, iframe, **kwargs)