Esempio n. 1
0
def _dispatchEvent(sender, evt, useCap):

    if evt is None:
        evt = wnd().event
    else:
        try:
            sender = get_main_frame().gobject_wrap(sender)  # webkit HACK!
            evt = get_main_frame().gobject_wrap(evt)  # webkit HACK!
        except:
            pass
    listener = None
    curElem = sender

    #print "_dispatchEvent", sender, evt, evt.type
    cap = getCaptureElement()
    listener = get_listener(cap)
    if cap and (listener is not None):
        #print "capture _dispatchEvent", cap, listener
        dispatchEvent(evt, cap, listener)
        evt.stopPropagation()
        return

    while curElem and (get_listener(curElem) is None):
        #print "no parent listener", curElem, getParent(curElem)
        curElem = getParent(curElem)
    if curElem and getNodeType(curElem) != 1:
        curElem = None

    listener = get_listener(curElem)
    if listener is not None:
        dispatchEvent(evt, curElem, listener)
Esempio n. 2
0
def _dispatchEvent(sender, evt, useCap):

    if evt is None:
        evt = wnd().event
    else:
        try:
            sender = get_main_frame().gobject_wrap(sender) # webkit HACK!
            evt = get_main_frame().gobject_wrap(evt) # webkit HACK!
        except:
            pass
    listener = None
    curElem = sender

    #print "_dispatchEvent", sender, evt, evt.type
    cap = getCaptureElement()
    listener = get_listener(cap)
    if cap and (listener is not None):
        #print "capture _dispatchEvent", cap, listener
        dispatchEvent(evt, cap, listener)
        evt.stopPropagation()
        return

    while curElem and (get_listener(curElem) is None):
        #print "no parent listener", curElem, getParent(curElem)
        curElem = getParent(curElem)
    if curElem and getNodeType(curElem) != 1:
        curElem = None

    listener = get_listener(curElem)
    if listener is not None:
        dispatchEvent(evt, curElem, listener)
Esempio n. 3
0
    def _onsubmit(self, form, event, something):
        print form, event, something
        try:
            event = get_main_frame().gobject_wrap(event)  # webkit HACK!
            form = get_main_frame().gobject_wrap(form)  # webkit HACK!
        except:
            pass

        if self.iframe:
            self.__formAction = form.action
        return self._listener.onFormSubmit()
Esempio n. 4
0
    def _onsubmit(self, form, event, something):
        print form, event, something
        try:
            event = get_main_frame().gobject_wrap(event) # webkit HACK!
            form = get_main_frame().gobject_wrap(form) # webkit HACK!
        except:
            pass

        if self.iframe is not None:
            self.__formAction = form.action
        return self._listener.onFormSubmit()
Esempio n. 5
0
def init():
    print "init", get_main_frame(), pyjd.is_desktop
    if get_main_frame() is None:
        if pyjd.is_desktop:
            pyjd.add_setup_callback(init)
#            pyjd.add_pre_run_callback(_first_notify)
        return

    global historyToken
    historyToken = ''
    hash = wnd().location.hash

    if hash and len(hash) > 0:
        historyToken = hash[1:]
def init():
    print "init", get_main_frame(), pyjd.is_desktop
    if get_main_frame() is None:
        if pyjd.is_desktop:
            pyjd.add_setup_callback(init)
#            pyjd.add_pre_run_callback(_first_notify)
        return

    global historyToken
    historyToken = ''
    hash = wnd().location.hash

    if hash and len(hash) > 0:
        historyToken = hash[1:]
Esempio n. 7
0
 def onReadyStateChange(self, xmlHttp, event, ignorearg):
     try:
         xmlHttp = get_main_frame().gobject_wrap(xmlHttp) # HACK!
     except:
         pass # hula / XUL
     print xmlHttp.readyState
     if xmlHttp.readyState != 4:
         return
     # TODO - delete xmlHttp.onreadystatechange
     localHandler = handlers.get(xmlHttp)
     del handlers[xmlHttp]
     responseText = xmlHttp.responseText
     print "headers", xmlHttp.getAllResponseHeaders()
     status = xmlHttp.status
     handler = None
     xmlHttp = None
     print "status", status
     print "local handler", localHandler
     # XXX HACK! webkit wrapper returns 0 not 200!
     if status == 0:
         print "HACK ALERT! webkit wrapper returns 0 not 200!"
     if status == 200 or status == 0:
         localHandler.onCompletion(responseText)
     else :
         localHandler.onError(responseText, status)
Esempio n. 8
0
def browser_event_cb(view, event, from_window):

    global sCaptureElem
    #print "sCaptureElem", sCaptureElem
    if event is None:
        event = wnd().event
    else:
        try:
            event = get_main_frame().gobject_wrap(event)  # webkit HACK!
        except:
            pass

    #print "browser_event_cb", event
    et = eventGetType(event)
    #print "browser_event_cb", event, et
    if et == "resize":
        onResize()
        return
    if et == 'mouseout':
        #print "mouse out", event
        _dispatchCapturedMouseoutEvent(event)
    if (et == 'keyup' or et == 'keydown' or et == 'keypress'
            or et == 'change'):
        return _dispatchCapturedEvent(event)
    else:
        return _dispatchCapturedMouseEvent(event)
Esempio n. 9
0
def browser_event_cb(view, event, from_window):

    global sCaptureElem
    #print "sCaptureElem", sCaptureElem
    if event is None:
        event = wnd().event
    else:
        try:
            event = get_main_frame().gobject_wrap(event) # webkit HACK!
        except:
            pass

    #print "browser_event_cb", event
    et = eventGetType(event)
    #print "browser_event_cb", event, et
    if et == "resize":
        onResize()
        return
    if et == 'mouseout':
        #print "mouse out", event
        _dispatchCapturedMouseoutEvent(event)
    if (et == 'keyup' or et == 'keydown' or
          et == 'keypress' or et == 'change'):
        return _dispatchCapturedEvent(event)
    else:
        return _dispatchCapturedMouseEvent(event)
Esempio n. 10
0
    def asyncGetImpl(self, user, pwd, url, handler):
        mf = get_main_frame()
        url = self._convertUrlToAbsolute(url)
        xmlHttp = self.doCreateXmlHTTPRequest()
        print dir(xmlHttp)
        print user, pwd, url, handler
        #try :

        if mf.platform == 'webkit':
            xmlHttp.open("GET", url, True, user, pwd)
        else:
            xmlHttp.open("GET", url)
        xmlHttp.setRequestHeader("Content-Type", "text/plain charset=utf-8")
        # TODO: xmlHttp.onreadystatechange = self.onReadyStateChange

        if mf.platform == 'webkit' or mf.platform == 'mshtml':
            mf._addXMLHttpRequestEventListener(xmlHttp, "onreadystatechange",
                                         self.onReadyStateChange)
        else:
            mf._addXMLHttpRequestEventListener(xmlHttp, "load",
                                         self.onLoad)
        handlers[xmlHttp] = handler
        xmlHttp.send('')

        return True
    def __gwt_handler(self, view, evt, from_window):
        try:
            evt = get_main_frame().gobject_wrap(evt) # webkit HACK!
        except:
            pass

        listener = DOM.get_listener(self.elem)
        if listener is not None:
            listener.onBrowserEvent(evt);
Esempio n. 12
0
    def __gwt_handler(self, view, evt, from_window):
        try:
            evt = get_main_frame().gobject_wrap(evt)  # webkit HACK!
        except:
            pass

        listener = DOM.get_listener(self.elem)
        if listener is not None:
            listener.onBrowserEvent(evt)
Esempio n. 13
0
    def hookEvents(self, iframe, form, listener):
        # TODO: might have to fix this, use DOM.set_listener()
        self._listener = listener
        if iframe is not None:
            wf = mf = get_main_frame()
            self._onload_listener = mf.addEventListener(iframe, "load",
                                                        self._onload)

        self._onsubmit_listener = mf.addEventListener(form, "onsubmit",
                                                    self._onsubmit)
Esempio n. 14
0
    def hookEvents(self, iframe, form, listener):
        # TODO: might have to fix this, use DOM.set_listener()
        self._listener = listener
        if iframe:
            wf = mf = get_main_frame()
            self._onload_listener = mf.addEventListener(
                iframe, "load", self._onload)

        self._onsubmit_listener = mf.addEventListener(form, "onsubmit",
                                                      self._onsubmit)
Esempio n. 15
0
def sinkEvents(element, bits):
    """
    Set which events should be captured on a given element and passed to the
    registered listener.  To set the listener, use setEventListener().

    @param bits: A combination of bits; see ui.Event for bit values
    """
    mask = getEventsSunk(element) ^ bits
    eventbitsmap[element] = bits
    if not mask:
        return

    bits = mask

    if not bits:
        return
    #cb = lambda x,y,z: _dispatchEvent(y)
    cb = _dispatchEvent
    mf = get_main_frame()
    if (bits & 0x00001):
        mf.addEventListener(element, "click", cb)
    if (bits & 0x00002):
        mf.addEventListener(element, "dblclick", cb)
    if (bits & 0x00004):
        mf.addEventListener(element, "mousedown", cb)
    if (bits & 0x00008):
        mf.addEventListener(element, "mouseup", cb)
    if (bits & 0x00010):
        mf.addEventListener(element, "mouseover", cb)
    if (bits & 0x00020):
        mf.addEventListener(element, "mouseout", cb)
    if (bits & 0x00040):
        mf.addEventListener(element, "mousemove", cb)
    if (bits & 0x00080):
        mf.addEventListener(element, "keydown", cb)
    if (bits & 0x00100):
        mf.addEventListener(element, "keypress", cb)
    if (bits & 0x00200):
        mf.addEventListener(element, "keyup", cb)
    if (bits & 0x00400):
        mf.addEventListener(element, "change", cb)
    if (bits & 0x00800):
        mf.addEventListener(element, "focus", cb)
    if (bits & 0x01000):
        mf.addEventListener(element, "blur", cb)
    if (bits & 0x02000):
        mf.addEventListener(element, "losecapture", cb)
    if (bits & 0x04000):
        mf.addEventListener(element, "scroll", cb)
    if (bits & 0x08000):
        mf.addEventListener(element, "load", cb)
    if (bits & 0x10000):
        mf.addEventListener(element, "error", cb)
    if (bits & 0x20000):
        mf.addEventListener(element, "contextmenu", cb)
Esempio n. 16
0
def init():
    mf = get_main_frame()
    mf._addWindowEventListener("click", browser_event_cb)
    mf._addWindowEventListener("change", browser_event_cb)
    mf._addWindowEventListener("mouseout", browser_event_cb)
    mf._addWindowEventListener("mousedown", browser_event_cb)
    mf._addWindowEventListener("mouseup", browser_event_cb)
    mf._addWindowEventListener("resize", browser_event_cb)
    mf._addWindowEventListener("keyup", browser_event_cb)
    mf._addWindowEventListener("keydown", browser_event_cb)
    mf._addWindowEventListener("keypress", browser_event_cb)
    mf._addWindowEventListener("mousewheel", browser_event_cb)
Esempio n. 17
0
def init():
    mf = get_main_frame()
    mf._addWindowEventListener("click", browser_event_cb)
    mf._addWindowEventListener("change", browser_event_cb)
    mf._addWindowEventListener("mouseout", browser_event_cb)
    mf._addWindowEventListener("mousedown", browser_event_cb)
    mf._addWindowEventListener("mouseup", browser_event_cb)
    mf._addWindowEventListener("resize", browser_event_cb)
    mf._addWindowEventListener("keyup", browser_event_cb)
    mf._addWindowEventListener("keydown", browser_event_cb)
    mf._addWindowEventListener("keypress", browser_event_cb)
    mf._addWindowEventListener("mousewheel", browser_event_cb)
Esempio n. 18
0
def getModuleBaseURL():
    import os.path

    # get original app base
    s = get_main_frame().getUri()

    # pull out the directory part
    s = os.path.dirname(s)

    if len(s) > 0:
        return s + "/"
    return ""
    def hookEvents(self):
        elem = self.elem;
        win = elem.contentWindow;

        mf = get_main_frame()
        mf._addWindowEventListener('keydown', self.__gwt_handler, win)
        mf._addWindowEventListener('keyup', self.__gwt_handler, win)
        mf._addWindowEventListener('keypress', self.__gwt_handler, win)
        mf._addWindowEventListener('mousedown', self.__gwt_handler, win)
        mf._addWindowEventListener('mouseup', self.__gwt_handler, win)
        mf._addWindowEventListener('mousemove', self.__gwt_handler, win)
        mf._addWindowEventListener('mouseover', self.__gwt_handler, win)
        mf._addWindowEventListener('mouseout', self.__gwt_handler, win)
        mf._addWindowEventListener('click', self.__gwt_handler, win)

        mf._addWindowEventListener('focus', self.__gwt_focus_handler, win)
        mf._addWindowEventListener('blur', self.__gwt_blur_handler, win)
Esempio n. 20
0
    def hookEvents(self):
        elem = self.elem
        win = elem.contentWindow

        mf = get_main_frame()
        mf._addWindowEventListener('keydown', self.__gwt_handler, win)
        mf._addWindowEventListener('keyup', self.__gwt_handler, win)
        mf._addWindowEventListener('keypress', self.__gwt_handler, win)
        mf._addWindowEventListener('mousedown', self.__gwt_handler, win)
        mf._addWindowEventListener('mouseup', self.__gwt_handler, win)
        mf._addWindowEventListener('mousemove', self.__gwt_handler, win)
        mf._addWindowEventListener('mouseover', self.__gwt_handler, win)
        mf._addWindowEventListener('mouseout', self.__gwt_handler, win)
        mf._addWindowEventListener('click', self.__gwt_handler, win)

        mf._addWindowEventListener('focus', self.__gwt_focus_handler, win)
        mf._addWindowEventListener('blur', self.__gwt_blur_handler, win)
Esempio n. 21
0
def browser_event_cb(view, event, from_window):

    try:
        event = get_main_frame().gobject_wrap(event) # webkit HACK!
    except:
        pass
    #print "browser_event_cb", event
    et = eventGetType(event)
    #print "browser_event_cb", event, et
    if et == "resize":
        onResize()
        return
    elif et == 'mouseout':
        #print "mouse out", event
        return _dispatchCapturedMouseoutEvent(event)
    elif et == 'keyup' or et == 'keydown' or et == 'keypress' or et == 'change':
        return _dispatchCapturedEvent(event)
    else:
        return _dispatchCapturedMouseEvent(event)
Esempio n. 22
0
    def asyncPostImpl(self, user, pwd, url, postData, handler, 
                            return_xml, content_type):
        mf = get_main_frame()
        xmlHttp = self.doCreateXmlHTTPRequest()
        url = self._convertUrlToAbsolute(url)
        print "xmlHttp", user, pwd, url, postData, handler, dir(xmlHttp)
        #try :
        if mf.platform == 'webkit' or mf.platform == 'mshtml':
            xmlHttp.open("POST", url, True, '', '')
        else:
            # EEK!  xmlhttprequest.open in xpcom is a miserable bastard.
            #xmlHttp.open("POST", url, True, '', '')
            print url, xmlHttp.open("POST", url)
        xmlHttp.setRequestHeader("Content-Type", content_type)
        xmlHttp.setRequestHeader("Content-Length", str(len(postData)))
        #for c in Cookies.get_crumbs():
        #    xmlHttp.setRequestHeader("Set-Cookie", c)
        #    print "setting cookie", c

        if mf.platform == 'webkit' or mf.platform == 'mshtml':
            mf._addXMLHttpRequestEventListener(xmlHttp, "onreadystatechange",
                                         self.onReadyStateChange)
        else:
            mf._addXMLHttpRequestEventListener(xmlHttp, "load",
                                         self.onLoad)
        handlers[xmlHttp] = handler
        xmlHttp.send(postData)
            
        return True
    
        #except:
            #del xmlHttp.onreadystatechange
        handler = None
        xmlHttp = None
        localHandler.onError(str(e))
        return False
Esempio n. 23
0
def getModuleBaseURL():

    # get original app base
    s = get_main_frame().getUri()
    #s = doc().location.href

    # Pull off any hash.
    i = s.find('#')
    if i != -1:
        s = s[:i]

    # Pull off any query string.
    i = s.find('?')
    if i != -1:
        s = s[:i]

    # Rip off everything after the last slash.
    i = s.rfind('/')
    if i != -1:
        s = s[:i]

    if len(s) > 0:
        return s + "/"
    return ""
Esempio n. 24
0
def getModuleBaseURL():
    
    # get original app base
    s = get_main_frame().getUri()
    #s = doc().location.href
    
    # Pull off any hash.
    i = s.find('#')
    if i != -1:
        s = s[:i]
    
    # Pull off any query string.
    i = s.find('?')
    if i != -1:
        s = s[:i]
    
    # Rip off everything after the last slash.
    i = s.rfind('/')
    if i != -1:
        s = s[:i]

    if len(s) > 0:
        return s + "/"
    return ""
Esempio n. 25
0
def sinkEvents(element, bits):
    """
    Set which events should be captured on a given element and passed to the
    registered listener.  To set the listener, use setEventListener().

    @param bits: A combination of bits; see ui.Event for bit values
    """
    mask = getEventsSunk(element) ^ bits
    eventbitsmap[element] = bits
    if not mask:
        return

    bits = mask

    if not bits:
        return
    mf = get_main_frame()
    if hasattr(mf, "_addEventListener"):
        aev = mf._addEventListener
    else:
        aev = mf.addEventListener
    #cb = lambda x,y,z: _dispatchEvent(y)
    cb = _dispatchEvent

    # mozilla stupidly has DOMMouseScroll...
    sinkEventsMozilla(element, bits)

    bit = 1
    while bits:
        if bit > bits:
            raise RuntimeError("sinkEvents: bit outruns bits")
        if (bits & bit):
            for event_name in Event.eventbits[bit][1]:
                aev(element, event_name, cb)
            bits ^= bit
        bit <<= 1
Esempio n. 26
0
def sinkEvents(element, bits):
    """
    Set which events should be captured on a given element and passed to the
    registered listener.  To set the listener, use setEventListener().

    @param bits: A combination of bits; see ui.Event for bit values
    """
    mask = getEventsSunk(element) ^ bits
    eventbitsmap[element] = bits
    if not mask:
        return

    bits = mask

    if not bits:
        return
    mf = get_main_frame()
    if hasattr(mf, "_addEventListener"):
        aev = mf._addEventListener
    else:
        aev = mf.addEventListener
    #cb = lambda x,y,z: _dispatchEvent(y)
    cb = _dispatchEvent

    # mozilla stupidly has DOMMouseScroll...
    sinkEventsMozilla(element, bits)

    bit = 1
    while bits:
        if bit > bits:
            raise RuntimeError("sinkEvents: bit outruns bits")
        if (bits & bit):
            for event_name in Event.eventbits[bit][1]:
                aev(element, event_name, cb)
            bits ^= bit
        bit <<= 1
Esempio n. 27
0
 def __clearTimeout(self, tid):
     return get_main_frame().window.clearTimeout(tid)
Esempio n. 28
0
 def doCreateXmlHTTPRequest(self):
     return get_main_frame().getXmlHttpRequest()
Esempio n. 29
0
File: Timer.py Progetto: Afey/pyjs
 def __setInterval(self, periodMillis):
     return get_main_frame().window.setInterval(self.__fire, periodMillis)
Esempio n. 30
0
def setBooleanAttribute(elem, attr, value):
    mf = get_main_frame()
    setattr(elem, mf.mash_attrib(attr), value)
Esempio n. 31
0
def getBooleanAttribute(elem, attr):
    mf = get_main_frame()
    return bool(getattr(elem, mf.mash_attrib(attr)))
Esempio n. 32
0
def getBooleanAttribute(elem, attr):
    mf = get_main_frame()
    return bool(getattr(elem, mf.mash_attrib(attr)))
Esempio n. 33
0
def getElemAttribute(elem, attr):
    mf = get_main_frame()
    if not elem.hasAttribute(attr):
        return str(getattr(elem, mf.mash_attrib(attr)))
    return str(elem.getAttribute(attr))
Esempio n. 34
0
 def __clearInterval(self, tid):
     return get_main_frame().window.clearInterval(tid)
Esempio n. 35
0
def getAttribute(elem, attr):
    mf = get_main_frame()
    return str(getattr(elem, attr))
Esempio n. 36
0
File: Timer.py Progetto: Afey/pyjs
 def __setTimeout(self, delayMillis):
     return get_main_frame().window.setTimeout(self.__fire, delayMillis)
Esempio n. 37
0
File: Timer.py Progetto: Afey/pyjs
 def __clearTimeout(self,tid):
     return get_main_frame().window.clearTimeout(tid)
Esempio n. 38
0
 def __setTimeout(self, delayMillis):
     return get_main_frame().window.setTimeout(self.__fire, delayMillis)
Esempio n. 39
0
def getElemAttribute(elem, attr):
    mf = get_main_frame()
    if not elem.hasAttribute(attr):
        return str(getattr(elem, mf.mash_attrib(attr)))
    return str(elem.getAttribute(attr))
Esempio n. 40
0
 def __setInterval(self, periodMillis):
     return get_main_frame().window.setInterval(self.__fire, periodMillis)
Esempio n. 41
0
def alert(txt):
    get_main_frame()._alert(txt)
Esempio n. 42
0
def setBooleanAttribute(elem, attr, value):
    mf = get_main_frame()
    setattr(elem, mf.mash_attrib(attr), value)
Esempio n. 43
0
def setIntStyleAttribute(elem, attr, value):
    mf = get_main_frame()
    if hasattr(elem.style, 'setProperty'):
        elem.style.setProperty(mf.mash_attrib(attr), str(value), "")
    else:
        elem.style.setAttribute(mf.mash_attrib(attr), str(value), "")
Esempio n. 44
0
def setIntStyleAttribute(elem, attr, value):
    mf = get_main_frame()
    if hasattr(elem.style, 'setProperty'):
        elem.style.setProperty(mf.mash_attrib(attr), str(value), "")
    else:
        elem.style.setAttribute(mf.mash_attrib(attr), str(value), "")
def alert(txt):
    get_main_frame()._alert(txt)
Esempio n. 46
0
    def asyncImpl(self, method, user, pwd, url, postData, handler,
                  returnxml=False, content_type=None, headers=None):
        if headers is None:
            headers = {}
        if user and pwd and not "Authorization" in headers:
            import base64
            headers["Authorization"] = 'Basic %s' % (base64.b64encode('%s:%s' % (user, pwd)))

        if postData is not None and not "Content-Length" in headers:
            headers["Content-Length"] = str(len(postData))
        if content_type is not None:
            headers["Content-Type"] = content_type
        if not "Content-Type" in headers:
            if returnxml:
                headers["Content-Type"] = "application/xml; charset=utf-8"
            else:
                headers["Content-Type"] = "text/plain; charset=utf-8"

        #for c in Cookies.get_crumbs():
        #    xmlHttp.setRequestHeader("Set-Cookie", c)
        #    print "setting cookie", c

        mf = get_main_frame()
        xmlHttp = self.doCreateXmlHTTPRequest()
        url = self._convertUrlToAbsolute(url)
        print "xmlHttp", method, user, pwd, url, postData, handler, dir(xmlHttp)
        #try :
        if mf.platform == 'webkit' or mf.platform == 'mshtml':
            xmlHttp.open(method, url, True, '', '')
        else:
            # EEK!  xmlhttprequest.open in xpcom is a miserable bastard.
            #xmlHttp.open("POST", url, True, '', '')
            print url, xmlHttp.open(method, url)
        for h in headers:
            if isinstance(headers[h], str):
                xmlHttp.setRequestHeader(h, headers[h])
            else:
                hval = ';'.join([str(i) for i in headers[h]])
                xmlHttp.setRequestHeader(h, hval)
        #if not "Set-Cookie" in headers:
        #    headers["Set-Cookie"] = []
        #for c in Cookies.get_crumbs():
        #    headers["Set-Cookie"].append(c)
        #    print "setting cookie", c

        if mf.platform == 'webkit' or mf.platform == 'mshtml':
            mf._addXMLHttpRequestEventListener(xmlHttp, "onreadystatechange",
                                         self.onReadyStateChange)
        else:
            mf._addXMLHttpRequestEventListener(xmlHttp, "load",
                                         self.onLoad)
        handlers[xmlHttp] = handler
        xmlHttp.send(postData)

        return True

        #except:
            #del xmlHttp.onreadystatechange
        handler = None
        xmlHttp = None
        localHandler.onError(str(e))
        return False
Esempio n. 47
0
def getIntAttribute(elem, attr):
    mf = get_main_frame()
    return int(getattr(elem, attr))
Esempio n. 48
0
File: Timer.py Progetto: Afey/pyjs
 def __clearInterval(self, tid):
     return get_main_frame().window.clearInterval(tid)