Ejemplo n.º 1
0
    def setSelectionStyle(self, item, selected):
        if item is not None:
            if selected:
                item.addStyleName("gwt-TabBarItem-selected")
                self.setStyleName(DOM.getParent(item.getElement()),
                                "gwt-TabBarItem-wrapper-selected", True)

            else:
                item.removeStyleName("gwt-TabBarItem-selected")
                self.setStyleName(DOM.getParent(item.getElement()),
                                "gwt-TabBarItem-wrapper-selected", False)
Ejemplo n.º 2
0
    def remove(self, widget):
        if isinstance(widget, int):
            widget = self.getWidget(widget)

        if widget.getParent() != self:
            return False

        td = DOM.getParent(widget.getElement())
        tr = DOM.getParent(td)
        DOM.removeChild(self.getBody(), tr)

        CellPanel.remove(self, widget)
        return True
Ejemplo n.º 3
0
    def getEventTargetCell(self, event):
        td = DOM.eventGetTarget(event)
        while td is not None:
            if DOM.getAttribute(td, "tagName").lower() == "td":
                tr = DOM.getParent(td)
                body = DOM.getParent(tr)
                if DOM.compare(body, self.bodyElem):
                    return td
            if DOM.compare(td, self.bodyElem):
                return None
            td = DOM.getParent(td)

        return None
Ejemplo n.º 4
0
    def getEventTargetCell(self, event):
        td = DOM.eventGetTarget(event)
        while td is not None:
            if DOM.getAttribute(td, "tagName").lower() == "td":
                tr = DOM.getParent(td)
                body = DOM.getParent(tr)
                if DOM.compare(body, self.bodyElem):
                    return td
            if DOM.compare(td, self.bodyElem):
                return None
            td = DOM.getParent(td)

        return None
Ejemplo n.º 5
0
    def remove(self, widget):
        if isinstance(widget, int):
            widget = self.getWidget(widget)

        if widget.getParent() != self:
            return False

        td = DOM.getParent(widget.getElement())
        tr = DOM.getParent(td)
        DOM.removeChild(self.getBody(), tr)

        CellPanel.remove(self, widget)
        return True
Ejemplo n.º 6
0
    def onBrowserEvent(self, event):
        if DOM.eventGetType(event) == "click":
            td = self.getEventTargetCell(event)
            if td is None:
                return

            tr = DOM.getParent(td)
            body = DOM.getParent(tr)
            row = DOM.getChildIndex(body, tr)
            column = DOM.getChildIndex(tr, td)

            for listener in self.tableListeners:
                if hasattr(listener, 'onCellClicked'):
                    listener.onCellClicked(self, row, column)
                else:
                    listener(self)
Ejemplo n.º 7
0
    def onBrowserEvent(self, event):
        if DOM.eventGetType(event) == "click":
            td = self.getEventTargetCell(event)
            if td is None:
                return

            tr = DOM.getParent(td)
            body = DOM.getParent(tr)
            row = DOM.getChildIndex(body, tr)
            column = DOM.getChildIndex(tr, td)

            for listener in self.tableListeners:
                if hasattr(listener, 'onCellClicked'):
                    listener.onCellClicked(self, row, column)
                else:
                    listener(self)
Ejemplo n.º 8
0
 def replaceLinks(self, tagname="a"):
     """ replaces <tag href="#pagename">sometext</tag> with:
         Hyperlink("sometext", "pagename")
     """
     tags = self.findTags(tagname)
     pageloc = Window.getLocation()
     pagehref = pageloc.getPageHref()
     for el in tags:
         href = el.href
         l = href.split("#")
         if len(l) != 2:
             continue
         if l[0] != pagehref:
             continue
         token = l[1]
         if not token:
             continue
         html = DOM.getInnerHTML(el)
         parent = DOM.getParent(el)
         index = DOM.getChildIndex(parent, el)
         hl = Hyperlink(TargetHistoryToken=token,
                        HTML=html,
                        Element=DOM.createSpan())
         DOM.insertChild(parent, hl.getElement(), index)
         self.children.insert(index, hl)
         parent.removeChild(el)
Ejemplo n.º 9
0
 def setCaption(self, caption):
     self.caption = caption
     if caption is not None and not caption == "":
         DOM.setInnerHTML(self.legend, caption)
         DOM.insertChild(self.getElement(), self.legend, 0)
     elif DOM.getParent(self.legend) is not None:
         DOM.removeChild(self.getElement(), self.legend)
Ejemplo n.º 10
0
def insertChildBefore(new_elem, elem):
    """
    Inserts an element "new_elem" before the element "elem".
    """
    parent = DOM.getParent(elem)
    id = DOM.getChildIndex(parent, elem)
    DOM.insertChild(parent, new_elem, id)
Ejemplo n.º 11
0
 def setCaption(self, caption):
     self.caption = caption
     if caption is not None and not caption == "":
         DOM.setInnerHTML(self.legend, caption)
         DOM.insertChild(self.getElement(), self.legend, 0)
     elif DOM.getParent(self.legend) is not None:
         DOM.removeChild(self.getElement(), self.legend)
Ejemplo n.º 12
0
    def replaceLinks(self, tagname="a", use_page_href=True, ajaxify=False):
        """ replaces <tag href="#pagename">sometext</tag> with:
            Hyperlink("sometext", "pagename").  Hyperlinks use
            the History module so the notification will come
            in on an onHistoryChanged.
        """
        self._clear_hyperlinks()
        tags = self.findTags(tagname)
        pageloc = Window.getLocation()
        pagehref = pageloc.getPageHref()
        for el in tags:
            href = el.href
            l = href.split("#")
            if len(l) != 2:
                continue
            if use_page_href and not l[0].startswith(pagehref):
                continue
            token = l[1]
            if not token:
                continue
            html = DOM.getInnerHTML(el)
            parent = DOM.getParent(el)
            index = DOM.getChildIndex(parent, el)
            if ajaxify:
                token = '!%s' % token
            hl = Hyperlink(TargetHistoryToken=token,
                           HTML=html,
                           Element=DOM.createSpan())
            DOM.insertChild(parent, hl.getElement(), index)
            parent.removeChild(el)

            self.children.insert(index, hl)
            hl.setParent(self)
            self.hyperlinks.append(hl)
Ejemplo n.º 13
0
 def _clear_hyperlinks(self):
     while self.hyperlinks:
         hl = self.hyperlinks.pop()
         el = hl.getElement()
         parent = DOM.getParent(el)
         if parent is not None:
             parent.removeChild(el)
         hl.setParent(None)
Ejemplo n.º 14
0
    def getDividerIndex(self, elem):
        while (elem is not None) and not DOM.compare(elem, self.getElement()):
            expando = self._getIndex(elem)
            if expando is not None:
                return int(expando)

            elem = DOM.getParent(elem)

        return -1
Ejemplo n.º 15
0
 def showHidePanelMonitor(self):
     if DOM.getStyleAttribute(
             DOM.getParent(self.center.getWidgetTd(self.serialMonitor)),
             'display') == 'none':
         DOM.setStyleAttribute(
             DOM.getParent(self.center.getWidgetTd(self.serialMonitor)),
             "display", "")
         self.showHideMonitor.setStyleName('collapse open_down')
         #JS("""addCodeBenderPlugin();@{{!addCodeBenderPlugin}}();""")
         DOM.setStyleAttribute(self.resizeMonitor.getElement(), "display",
                               "")
     else:
         DOM.setStyleAttribute(
             DOM.getParent(self.center.getWidgetTd(self.serialMonitor)),
             "display", "none")
         self.showHideMonitor.setStyleName('collapse close_up')
         DOM.setStyleAttribute(self.resizeMonitor.getElement(), "display",
                               "none")
Ejemplo n.º 16
0
 def disown(self, widget):
     if widget.getParent() != self:
         console.error("widget %o is not a child of this panel %o", widget, self)
     else:
         element = widget.getElement()
         widget.setParent(None)
         parentElement = DOM.getParent(element)
         if parentElement:
             DOM.removeChild(parentElement, element)
 def getTabHTML(self, index):
     widget = self.getTabWidget(index)
     if hasattr(widget, "getHTML"):
         return widget.getHTML()
     elif hasattr(widget, "getText"): # assume it's a Label if it has getText
         return widget.getText()
     else:
         fpe = DOM.getParent(self.focusablePanel.getElement())
         return DOM.getInnerHTML(fpe)
Ejemplo n.º 18
0
 def disown(self, widget):
     if widget.getParent() is not self:
         raise Exception("widget %s is not a child of this panel %s" % \
                          (str(widget), str(self)))
     element = widget.getElement()
     widget.setParent(None)
     parentElement = DOM.getParent(element)
     if parentElement is not None:
         DOM.removeChild(parentElement, element)
Ejemplo n.º 19
0
 def disown(self, widget):
     if widget.getParent() is not self:
         raise Exception("widget %s is not a child of this panel %s" % \
                          (str(widget), str(self)))
     element = widget.getElement()
     widget.setParent(None)
     parentElement = DOM.getParent(element)
     if parentElement is not None:
         DOM.removeChild(parentElement, element)
Ejemplo n.º 20
0
    def getDividerIndex(self, elem):
        while (elem is not None) and not DOM.compare(elem, self.getElement()):
            expando = self._getIndex(elem)
            if expando is not None:
                return int(expando)

            elem = DOM.getParent(elem)

        return -1
Ejemplo n.º 21
0
 def getTabHTML(self, index):
     widget = self.getTabWidget(index)
     if hasattr(widget, "getHTML"):
         return widget.getHTML()
     elif hasattr(widget,
                  "getText"):  # assume it's a Label if it has getText
         return widget.getText()
     else:
         fpe = DOM.getParent(self.focusablePanel.getElement())
         return DOM.getInnerHTML(fpe)
Ejemplo n.º 22
0
    def insertTabWidget(self, widget, beforeIndex):

        delWidget = ClickDelegatePanel(self, widget, self, self)
        delWidget.setStyleName(self.STYLENAME_DEFAULT)

        focusablePanel = delWidget.getFocusablePanel()
        self.panel.insert(delWidget, beforeIndex + 1)

        self.setStyleName(DOM.getParent(delWidget.getElement()),
                          self.STYLENAME_DEFAULT + "-wrapper", True)
Ejemplo n.º 23
0
 def disown(self, widget):
     if widget.getParent() != self:
         console.error("widget %o is not a child of this panel %o", widget,
                       self)
     else:
         element = widget.getElement()
         widget.setParent(None)
         parentElement = DOM.getParent(element)
         if parentElement:
             DOM.removeChild(parentElement, element)
Ejemplo n.º 24
0
    def insertTabWidget(self, widget, beforeIndex):

        delWidget = ClickDelegatePanel(self, widget, self, self)
        delWidget.setStyleName(self.STYLENAME_DEFAULT)

        focusablePanel = delWidget.getFocusablePanel()
        self.panel.insert(delWidget, self.panel.getElement(), beforeIndex + 1)

        parent = DOM.getParent(delWidget.getElement())
        #DOM.setStyleAttribute(parent, "flow", "left")
        #DOM.setStyleAttribute(parent, "display", "inline")
        self.setStyleName(parent, self.STYLENAME_DEFAULT + "-wrapper", True)
Ejemplo n.º 25
0
    def onBrowserEvent(self, event):
        DOM.eventPreventDefault(event)
        if not self.game.started:
            return
        td = self.getEventTargetCell(event)
        if not td:
            return
        tr = DOM.getParent(td)
        table = DOM.getParent(tr)
        row = DOM.getChildIndex(table, tr)
        column = DOM.getChildIndex(tr, td)
        target_cell = self.getCell(row, column)

        type = DOM.eventGetType(event)
        event_mapper = {'click': 'onClick',
                        'contextmenu': 'onRightClick',
                        'mousedown': 'onMouseDown',
                        'mouseup': 'onMouseUp',
                        'mouseout': 'onMouseLeave'}
        event_handler = event_mapper.get(type)
        if event_handler:
            getattr(self, event_handler)(target_cell)
Ejemplo n.º 26
0
 def onBrowserEvent(self, event):
     DOM.eventPreventDefault(event)
     if not self.game.started:
         return
     td = self.getEventTargetCell(event)
     if not td:
         return
     tr = DOM.getParent(td)
     table = DOM.getParent(tr)
     row = DOM.getChildIndex(table, tr)
     column = DOM.getChildIndex(tr, td)
     target_cell = self.getCell(row, column)
     
     type = DOM.eventGetType(event)
     event_mapper = {'click': 'onClick',
                     'contextmenu': 'onRightClick',
                     'mousedown': 'onMouseDown',
                     'mouseup': 'onMouseUp',
                     'mouseout': 'onMouseLeave'}
     event_handler = event_mapper.get(type)
     if event_handler:
         getattr(self, event_handler)(target_cell)
Ejemplo n.º 27
0
    def insertTabWidget(self, widget, beforeIndex):

        delWidget = ClickDelegatePanel(self, widget, self, self)
        delWidget.setStyleName(self.STYLENAME_DEFAULT)

        focusablePanel = delWidget.getFocusablePanel()
        self.panel.insert(delWidget, self.panel.getElement(), beforeIndex + 1)

        parent = DOM.getParent(delWidget.getElement())
        #DOM.setStyleAttribute(parent, "flow", "left")
        #DOM.setStyleAttribute(parent, "display", "inline")
        self.setStyleName(parent,
                          self.STYLENAME_DEFAULT + "-wrapper", True)
Ejemplo n.º 28
0
 def getTabHTML(self, index):
     if index >= self.getTabCount():
         return None
     delPanel = self.panel.getWidget(index + 1)
     focusablePanel = delPanel.getFocusablePanel()
     widget = focusablePanel.getWidget()
     if hasattr(widget, "getHTML"):
         return widget.getHTML()
     elif hasattr(widget, "getText"): # assume it's a Label if it has getText
         return widget.getText()
     else:
         fpe = DOM.getParent(self.focusablePanel.getElement())
         return DOM.getInnerHTML(fpe)
Ejemplo n.º 29
0
    def _onBrowserEvent(self, event, event_type):

        td = self.getEventTargetCell(event)
        if td is None:
            return
        tr = DOM.getParent(td)
        body = DOM.getParent(tr)
        row = DOM.getChildIndex(body, tr)
        column = DOM.getChildIndex(tr, td)

        if event_type == 'dblclick':
            lists = self.dbltableListeners
        else:
            lists = self.tableListeners

        for listener in lists:
            if event_type == 'click' and \
               hasattr(listener, 'onCellClicked'):
                listener.onCellClicked(self, row, column)
            elif event_type == 'dblclick' and \
               hasattr(listener, 'onCellDoubleClicked'):
                listener.onCellDoubleClicked(self, row, column)
            else:
                listener(self)
Ejemplo n.º 30
0
 def onDragStart(self, event):
     dt = event.dataTransfer
     target = DOM.eventGetTarget(event)
     target = Widget(Element=target)
     try:
         id = target.getID()
     except:
         id = ''
     if id == 'datadrag0':
         dt.setData('text/plain', 'Hello World!')
     elif id == 'datadrag1':
         logo = doc().getElementById('logo')
         logo_parent_element = DOM.getParent(logo)
         text = DOM.getInnerText(logo_parent_element)
         html = DOM.getInnerHTML(logo_parent_element)
         uri = DOM.getAttribute(logo, 'src')
         dt.setData('text/plain', text)
         dt.setData('text/html', html)
         dt.setData('text/uri-list', uri)
     elif id == 'datadrag2':
         dt.setData('x-star-trek/tribble', 'I am a tribble')
Ejemplo n.º 31
0
 def onDragStart(self, event):
     dt = event.dataTransfer
     target = DOM.eventGetTarget(event)
     target = Widget(Element=target)
     try:
         id = target.getID()
     except:
         id = ''
     if id == 'datadrag0':
         dt.setData('text/plain', 'Hello World!')
     elif id == 'datadrag1':
         logo = doc().getElementById('logo')
         logo_parent_element = DOM.getParent(logo)
         text = DOM.getInnerText(logo_parent_element)
         html = DOM.getInnerHTML(logo_parent_element)
         uri = DOM.getAttribute(logo, 'src')
         dt.setData('text/plain', text)
         dt.setData('text/html', html)
         dt.setData('text/uri-list', uri)
     elif id == 'datadrag2':
         dt.setData('x-star-trek/tribble', 'I am a tribble')
Ejemplo n.º 32
0
 def getCellHeight(self, widget):
     td = DOM.getParent(widget.getElement())
     return DOM.getAttribute(td, "height")
Ejemplo n.º 33
0
Archivo: CSS.py Proyecto: sofianhw/pyjs
 def remove(self):
     parent = DOM.getParent(self._e)
     DOM.removeChild(parent, self._e)
Ejemplo n.º 34
0
 def getCellWidth(self, widget):
     td = DOM.getParent(widget.getElement())
     return DOM.getAttribute(td, "width")
Ejemplo n.º 35
0
    def collectElementChain(self, chain, hRoot, hElem):
        if (hElem is None) or DOM.compare(hElem, hRoot):
            return

        self.collectElementChain(chain, hRoot, DOM.getParent(hElem))
        chain.append(hElem)
Ejemplo n.º 36
0
 def getCellHeight(self, widget):
     td = DOM.getParent(widget.getElement())
     return DOM.getAttribute(td, "height")
Ejemplo n.º 37
0
 def getWidgetTd(self, widget):
     if widget.getParent() != self:
         return None
     return DOM.getParent(widget.getElement())
Ejemplo n.º 38
0
 def setCellHeight(self, widget, height):
     td = DOM.getParent(widget.getElement())
     if height is None:
         DOM.removeAttribute(td, "height")
     else:
         DOM.setAttribute(td, "height", str(height))
Ejemplo n.º 39
0
 def getWidgetTd(self, widget):
     if widget.getParent() != self:
         return None
     return DOM.getParent(widget.getElement())
Ejemplo n.º 40
0
  <head>
    <title>Example 5</title>
  </head>
  <body>
        <p>Test 5: Processes server html and insert click listeners into links: 
        <span id='link1' class = 'wikilink'>link 1</span> and <span id='link2' class = 'wikilink'>link 2</span>.
        </p>
  </body>
</html>
"""
    html3 = HTMLPanel(serverXml)
    links = list()
    for elem in html3.findTags('span'):
        if DOM.getElemAttribute(elem, 'class') == 'wikilink':
            linkClass = DOM.getElemAttribute(elem, 'class')
        links.append(elem)
    if len(links) > 0:
        parent = DOM.getParent(links[0])
        for link in links:
            linkId = DOM.getElemAttribute(link, 'id')
            linkClass = DOM.getElemAttribute(link, 'class')
            linkInner = DOM.getInnerHTML(link)
            a3 = Hyperlink(text=linkInner, Element=DOM.createSpan())
            a3.addClickListener(onClick)
            a3.setID('param2')
            #todo: modify HTMLPanel to replace an element instead of add
            #html3.replace(a3, linkId)
            DOM.setInnerHTML(link, '')  # clear existing text
            html3.add(a3, linkId)
    RootPanel().add(html3)
    pyjd.run()
Ejemplo n.º 41
0
 def remove(self):
     parent = DOM.getParent(self._e)
     DOM.removeChild(parent, self._e) 
Ejemplo n.º 42
0
 def replaceElement(self, element, widget):
     """Replace an existing element with the given widget."""
     DOM.getParent(element).replaceChild(widget.getElement(), element)
     self.adopt(widget, None)
     self.children.append(widget)
Ejemplo n.º 43
0
 def setCellWidth(self, widget, width):
     td = DOM.getParent(widget.getElement())
     DOM.setAttribute(td, "width", width)
Ejemplo n.º 44
0
 def setCellHeight(self, widget, height):
     td = DOM.getParent(widget.getElement())
     if height is None:
         DOM.removeAttribute(td, "height")
     else:
         DOM.setAttribute(td, "height", str(height))
Ejemplo n.º 45
0
 def setCellWidth(self, widget, width):
     td = DOM.getParent(widget.getElement())
     if width is None:
         DOM.removeAttribute(td, "width")
     else:
         DOM.setAttribute(td, "width", str(width))
Ejemplo n.º 46
0
 def getCellWordWrap(self, widget):
     td = DOM.getParent(widget.getElement())
     return DOM.getStyleAttribute(td, "whiteSpace") == "nowrap"
Ejemplo n.º 47
0
    def collectElementChain(self, chain, hRoot, hElem):
        if (hElem is None) or DOM.compare(hElem, hRoot):
            return

        self.collectElementChain(chain, hRoot, DOM.getParent(hElem))
        chain.append(hElem)
Ejemplo n.º 48
0
 def getCellWidth(self, widget):
     td = DOM.getParent(widget.getElement())
     return DOM.getAttribute(td, "width")
Ejemplo n.º 49
0
Archivo: Anchor.py Proyecto: Afey/pyjs
  <head>
    <title>Example 5</title>
  </head>
  <body>
        <p>Test 5: Processes server html and insert click listeners into links: 
        <span id='link1' class = 'wikilink'>link 1</span> and <span id='link2' class = 'wikilink'>link 2</span>.
        </p>
  </body>
</html>
"""
    html3 = HTMLPanel(serverXml)
    links = list()
    for elem in html3.findTags('span'):
        if DOM.getElemAttribute(elem, 'class') == 'wikilink':
            linkClass = DOM.getElemAttribute(elem, 'class')
        links.append(elem)
    if len(links) > 0:
        parent = DOM.getParent(links[0])
        for link in links:
            linkId = DOM.getElemAttribute(link, 'id')
            linkClass = DOM.getElemAttribute(link, 'class')
            linkInner = DOM.getInnerHTML(link)
            a3 = Hyperlink(text = linkInner, Element = DOM.createSpan())
            a3.addClickListener(onClick)
            a3.setID('param2')
            #todo: modify HTMLPanel to replace an element instead of add
            #html3.replace(a3, linkId)
            DOM.setInnerHTML(link, '') # clear existing text
            html3.add(a3, linkId)
    RootPanel().add(html3) 
    pyjd.run()
Ejemplo n.º 50
0
def getPrevSibling(elem):
    parent = DOM.getParent(elem)
    elem_index = DOM.getChildIndex(parent, elem)
    children = list(DOM.iterChildren(parent))
    return children[elem_index - 1]
Ejemplo n.º 51
0
 def setCellHeight(self, widget, height):
     td = DOM.getParent(widget.getElement())
     DOM.setAttribute(td, "height", height)
Ejemplo n.º 52
0
 def setCellWidth(self, widget, width):
     td = DOM.getParent(widget.getElement())
     if width is None:
         DOM.removeAttribute(td, "width")
     else:
         DOM.setAttribute(td, "width", str(width))