示例#1
0
文件: Form.py 项目: Afey/pyjs
 def save(self, data=None):
     self.clear_errors()
     if data is None:
         data = self.getValue()
     self.data = data
     writebr(repr(self.data))
     self.svc(data, {'save': None}, self.saver)
示例#2
0
    def formsetup(self, data=None):

        if data is None:
            data = {}
        self.data = data
        writebr(repr(self.data))
        self.svc(data, {'describe': None}, self.describer)
 def onHistoryChanged(self, token):
     log.writebr("onHistoryChanged: %s" % token)
     info = self.Algorithm_list.find(token)
     if info is not None:
         self.show(info, False)
     else:
         self.showInfo()
示例#4
0
 def onHistoryChanged(self, token):
     log.writebr("onHistoryChanged: %s" % token)
     info = self.sink_list.find(token)
     if info:
         self.show(info, False)
     else:
         self.showInfo()
 def onHistoryChanged(self, token):
     log.writebr("onHistoryChanged: %s" % token)
     info = self.Algorithm_list.find(token)
     if info is not None:
         self.show(info, False)
     else:
         self.showInfo()
示例#6
0
 def save(self, data=None):
     self.clear_errors()
     if data is None:
         data = self.getValue()
     self.data = data
     writebr(repr(self.data))
     self.svc(data, {'save': None}, self.saver)
示例#7
0
    def formsetup(self, data=None):

        if data is None:
            data = {}
        self.data = data
        writebr(repr(self.data))
        self.svc(data, {'describe': None}, self.describer)
示例#8
0
 def onHistoryChanged(self, token):
     log.writebr("onHistoryChanged: %s" % token)
     info = self.sink_list.find(token)
     if info:
         self.show(info, False)
     else:
         self.showInfo()
示例#9
0
 def fireEvent(self, movieName, eventName, arguments):
     """
     @param args: Arguments given by Flowplayer
     
     Fire event
     """
     #log.writebr('FireEvent: %s/%s/%s' % (movieName, eventName, str(arguments)))
     if eventName == 'testFireEvent':
         log.writebr('fireEvent works')
         return
     if eventName == 'onLoad' and arguments[0] == 'player':
         self.loadApi()
     for listener in self.listeners:
         if eventName == 'onLoad':
             if arguments[0] == 'player':
                 if hasattr(listener, 'onLoadPlayer'):
                     eventMethod = getattr(listener, 'onLoadPlayer')
                     DeferredHandler.add(eventMethod)
             else:
                 if arguments[0] == 'play':
                     name = 'screen'
                 else:
                     name = arguments[0]
                 if self.plugins.has_key(name):
                     self.plugins[name].loaded = True
                 if hasattr(listener, 'onLoadPlugin'):
                     eventMethod = getattr(listener, 'onLoadPlugin')
                     DeferredHandler.add(eventMethod, arguments)
         elif eventName == 'onPluginEvent':
             plugin_name = arguments[0]
             plugin_eventName = arguments[1]
             if self.plugins.has_key(plugin_name):
                 self.plugins[plugin_name].fireEvent(plugin_eventName)
         elif eventName == 'onClipAdd':
             arguments[0] = self.playlist[int(arguments[1])]
             if hasattr(listener, eventName):
                 eventMethod = getattr(listener, eventName)
                 DeferredHandler.add(eventMethod, arguments)
         else:
             if eventName in self.clip_events:
                 clip_index = int(arguments[0])
                 clip = self.getClip(clip_index)
                 if clip_index == 0 and eventName == 'onBegin':
                     if hasattr(listener, 'onFirstPlaylistItem'):
                         eventMethod = getattr(listener,
                                               'onFirstPlaylistItem')
                         DeferredHandler.add(eventMethod, [])
                 elif clip_index == len(
                         self.playlist) - 1 and eventName == 'onBegin':
                     if hasattr(listener, 'onLastPlaylistItem'):
                         eventMethod = getattr(listener,
                                               'onLastPlaylistItem')
                         DeferredHandler.add(eventMethod, [])
                 clip.fireEvent(eventName, arguments[2:])
             else:
                 #log.writebr('[FP Event] %s / %s' % (eventName, arguments))
                 if hasattr(listener, eventName):
                     eventMethod = getattr(listener, eventName)
                     DeferredHandler.add(eventMethod, arguments)
示例#10
0
 def add_from_string(self, xmldoc):
     x = xmldoc.firstChild.firstChild
     while x:
         log.writebr(x.nodeName)
         if x.nodeName == 'object':
             log.writebr("creating object")
             obj = self.create_object_from_xml_node(x)
             self.objects.append(obj)
         x = x.nextSibling
示例#11
0
def main():
    global examplevar
    # Note that the javascript example var is globally
    # defined, but not accessible from the global
    # scope. You'll have to swich to a local scope
    # and define the javascript names global
    log.writebr(examplevar)
    examplevar = 'Altered'
    log.writebr( get_examplevar() )
示例#12
0
 def add_from_string(self, xmldoc):
     x = xmldoc.firstChild.firstChild
     while x:
         log.writebr(x.nodeName)
         if x.nodeName == 'object':
             log.writebr("creating object")
             obj = self.create_object_from_xml_node(x)
             self.objects.append(obj)
         x = x.nextSibling
示例#13
0
 def fireEvent(self, movieName, eventName, arguments):
     """
     @param args: Arguments given by Flowplayer
     
     Fire event
     """
     #log.writebr('FireEvent: %s/%s/%s' % (movieName, eventName, str(arguments)))
     if eventName == 'testFireEvent':
         log.writebr('fireEvent works')
         return
     if eventName == 'onLoad' and arguments[0] == 'player':
             self.loadApi()
     for listener in self.listeners:
         if eventName == 'onLoad':
             if arguments[0] == 'player':
                 if hasattr(listener, 'onLoadPlayer'):
                     eventMethod = getattr(listener, 'onLoadPlayer')
                     DeferredHandler.add(eventMethod)
             else:
                 if arguments[0] == 'play':
                     name = 'screen'
                 else:
                     name = arguments[0]
                 if self.plugins.has_key(name):
                     self.plugins[name].loaded = True
                 if hasattr(listener, 'onLoadPlugin'):
                     eventMethod = getattr(listener, 'onLoadPlugin')
                     DeferredHandler.add(eventMethod, arguments)
         elif eventName == 'onPluginEvent':
             plugin_name = arguments[0]
             plugin_eventName = arguments[1]
             if self.plugins.has_key(plugin_name):
                 self.plugins[plugin_name].fireEvent(plugin_eventName)
         elif eventName == 'onClipAdd':
             arguments[0] = self.playlist[int(arguments[1])]
             if hasattr(listener, eventName):
                 eventMethod = getattr(listener, eventName)
                 DeferredHandler.add(eventMethod, arguments)
         else:
             if eventName in self.clip_events:
                 clip_index = int(arguments[0])
                 clip = self.getClip(clip_index)
                 if clip_index == 0 and eventName == 'onBegin':
                     if hasattr(listener, 'onFirstPlaylistItem'):
                         eventMethod = getattr(listener, 'onFirstPlaylistItem')
                         DeferredHandler.add(eventMethod, [])
                 elif clip_index == len(self.playlist)-1 and eventName == 'onBegin':
                     if hasattr(listener, 'onLastPlaylistItem'):
                         eventMethod = getattr(listener, 'onLastPlaylistItem')
                         DeferredHandler.add(eventMethod, [])
                 clip.fireEvent(eventName, arguments[2:])
             else:
                 #log.writebr('[FP Event] %s / %s' % (eventName, arguments))
                 if hasattr(listener, eventName):
                     eventMethod = getattr(listener, eventName)
                     DeferredHandler.add(eventMethod, arguments)
示例#14
0
 def onSave(self):
     """
     Handle the save click and pass it onto the listeners.
     """
     log.writebr("onSave() in %s", Window.getLocation().getHref())
     for listener in self.saveListeners:
         if hasattr(listener, "onSave"):
             listener.onSave(self)
         else:
             listener(self)
     return False
示例#15
0
 def onSave(self):
     """
     Handle the save click and pass it onto the listeners.
     """
     log.writebr("onSave() in %s", Window.getLocation().getHref())
     for listener in self.saveListeners:
         if hasattr(listener, "onSave"):
             listener.onSave(self)
         else:
             listener(self)
     return False
示例#16
0
def find_props(node):
    res = {}
    if not node:
        return {}
    props = node.getElementsByTagName("property")
    for i in range(props.length):
        n = props.item(n)
        name = n.attributes.getNamedItem('name').nodeValue
        log.write("find_props ")
        log.write(name)
        log.write(" ")
        log.write(n.textContent)
        log.writebr("")
        res[name] = n.textContent
    return res
示例#17
0
def find_props(node):
    res = {}
    if not node:
        return {}
    props = node.getElementsByTagName("property")
    for i in range(props.length):
        n = props.item(n)
        name = n.attributes.getNamedItem('name').nodeValue
        log.write("find_props ")
        log.write(name)
        log.write(" ")
        log.write(n.textContent)
        log.writebr("")
        res[name] = n.textContent
    return res
示例#18
0
文件: Form.py 项目: Afey/pyjs
    def onRemoteResponse(self,  response, request_info):

        method = request_info.method

        writebr(method)
        writebr(repr(response))
        writebr("%d" % len(response))
        writebr("%s" % repr(response.keys()))

        self.sink.do_get(response)
示例#19
0
    def onRemoteResponse(self, response, request_info):

        method = request_info.method

        writebr(method)
        writebr(repr(response))
        writebr("%d" % len(response))
        writebr("%s" % repr(response.keys()))

        self.sink.do_describe(response)
示例#20
0
    def do_describe(self, fields):

        self.fields = fields.keys()
        for idx, fname in enumerate(self.fields):
            field = fields[fname]
            if self.data and self.data.has_key(fname):
                field['initial'] = self.data[fname]
            writebr("%s %s %d" % (fname, field['label'], idx))
            field_type = field['type']
            widget_kls = widget_factory.get(field_type, CharField)
            fv = {}
            for (k, v) in field.items():
                fv[str(k)] = v
            w = widget_kls(**fv)
            self.add_widget(field['label'], w)

        for l in self.describe_listeners:
            l.onDescribeDone(self)
示例#21
0
    def do_describe(self, fields):

        self.fields = fields.keys()
        for idx, fname in enumerate(self.fields):
            field = fields[fname]
            if self.data and self.data.has_key(fname):
                field['initial'] = self.data[fname]
            writebr("%s %s %d" % (fname, field['label'], idx))
            field_type = field['type']
            widget_kls = widget_factory.get(field_type, CharField)
            fv = {}
            for (k, v) in field.items():
                fv[str(k)] = v
            w = widget_kls(**fv)
            self.add_widget(field['label'], w)

        for l in self.describe_listeners:
            l.onDescribeDone(self)
示例#22
0
 def callFlash(self, functionName, arguments=[]):
     """
     @param functionName: Methodname of ExternalInterface
     @param arguments: List with arguments of ExternalInterfaces method
     
     @return: return value of ExternalInterfaces method
     """
     movieElement = self.getMovieElement()
     if not movieElement:
         return None
     try:
         returnString = movieElement.CallFunction('<invoke name="%s" returntype="javascript">%s</invoke>' % (functionName, 
                                                                                                             self.flashArgumentsToXML(arguments, 0)))
         returnValue = ''
         if returnString:
             if returnString != 'undefined':
                 returnValue = eval(returnString)
     except:
         log.writebr('Call to '+functionName+' failed')
     return returnValue
    def show(self, info, affectHistory):
        if info == self.curInfo: return
        self.curInfo = info

        log.writebr("showing " + info.getName())
        if self.curAlgorithm is not None:
            log.writebr("removing " + str(self.curAlgorithm))
            self.curAlgorithm.onHide()
            self.AlgorithmContainer.remove(self.curAlgorithm)

        self.curAlgorithm = info.getInstance()
        self.Algorithm_list.setAlgorithmSelection(info.getName())
        self.description.setHTML(info.getDescription())

        if (affectHistory):
            History.newItem(info.getName())

        self.AlgorithmContainer.add(self.curAlgorithm, DockPanel.CENTER)
        self.AlgorithmContainer.setCellWidth(self.curAlgorithm, "100%")
        self.AlgorithmContainer.setCellHeight(self.curAlgorithm, "100%")
        self.AlgorithmContainer.setCellVerticalAlignment(self.curAlgorithm, HasAlignment.ALIGN_TOP)
        self.curAlgorithm.onShow()
示例#24
0
    def __init__(self, svc, **kwargs):

        self.describe_listeners = []
        if kwargs.has_key('listener'):
            listener = kwargs.pop('listener')
            self.addDescribeListener(listener)

        if kwargs.has_key('data'):
            data = kwargs.pop('data')
        else:
            data = None
        writebr(repr(data))

        FormPanel.__init__(self, **kwargs)
        self.svc = svc
        self.grid = Grid()
        self.grid.resize(0, 3)
        self.add(self.grid)
        self.describer = FormDescribeGrid(self)
        self.saver = FormSaveGrid(self)
        self.getter = FormGetGrid(self)
        self.formsetup(data)
示例#25
0
    def __init__(self, svc, **kwargs):

        self.describe_listeners = []
        if kwargs.has_key('listener'):
            listener = kwargs.pop('listener')
            self.addDescribeListener(listener)

        if kwargs.has_key('data'):
            data = kwargs.pop('data')
        else:
            data = None
        writebr(repr(data))

        FormPanel.__init__(self, **kwargs)
        self.svc = svc
        self.grid = Grid()
        self.grid.resize(0, 3)
        self.add(self.grid)
        self.describer = FormDescribeGrid(self)
        self.saver = FormSaveGrid(self)
        self.getter = FormGetGrid(self)
        self.formsetup(data)
    def show(self, info, affectHistory):
        if info == self.curInfo: return
        self.curInfo = info

        log.writebr("showing " + info.getName())
        if self.curAlgorithm is not None:
            log.writebr("removing " + str(self.curAlgorithm))
            self.curAlgorithm.onHide()
            self.AlgorithmContainer.remove(self.curAlgorithm)

        self.curAlgorithm = info.getInstance()
        self.Algorithm_list.setAlgorithmSelection(info.getName())
        self.description.setHTML(info.getDescription())

        if (affectHistory):
            History.newItem(info.getName())

        self.AlgorithmContainer.add(self.curAlgorithm, DockPanel.CENTER)
        self.AlgorithmContainer.setCellWidth(self.curAlgorithm, "100%")
        self.AlgorithmContainer.setCellHeight(self.curAlgorithm, "100%")
        self.AlgorithmContainer.setCellVerticalAlignment(
            self.curAlgorithm, HasAlignment.ALIGN_TOP)
        self.curAlgorithm.onShow()
示例#27
0
    def onRemoteResponse(self, response, request_info):

        method = request_info.method

        writebr(repr(response))
        writebr("%d" % len(response))
        writebr("%s" % repr(response.keys()))

        self.sink.save_respond(response)
示例#28
0
 def create_object_from_xml_node(self, node):
     klsname = node.attributes.getNamedItem('class').nodeValue
     # XXX shadowing builtin id
     id = node.attributes.getNamedItem('id').nodeValue
     log.writebr("%s %s" % (klsname, id))
     obj = gtkmap[klsname]()
     props = node.getElementsByTagName("property")
     log.writebr("%s %d" % (klsname, props.length))
     for i in range(props.length):
         prop = props.item(i)
         name = prop.attributes.getNamedItem('name').nodeValue
         value = prop.textContent
         try:
             setattr(obj, name, value)
         # XXX missing exception class, should probably be AttributeError
         except:
             if value and value.isdigit():
                 setattr(obj, name, int(value))
             else:
                 print "setattr failed", klsname, name, value
     childnodes = node.getElementsByTagName("child")
     log.writebr("%s children %d" % (klsname, childnodes.length))
     for i in range(childnodes.length):
         childnode = childnodes.item(i)
         childobj = childnode.getElementsByTagName("object")
         if childobj is None:
             continue
         if childobj.length == 0:
             continue
         childobj = childobj.item(0)
         child = self.create_object_from_xml_node(childobj)
         #obj.add_child(gtk.Builder(), child, klsname)
         obj.add(child)
         packing = childnode.getElementsByTagName("packing")
         if packing is None:
             continue
         if packing.length == 0:
             continue
         packing = packing.item(0)
         props = find_props(packing)
         for prop, value in props.items():
             if value.isdigit():
                 value = int(value)
             obj.child_set_property(child, prop, value)
     return obj
示例#29
0
 def create_object_from_xml_node(self, node):
     klsname = node.attributes.getNamedItem('class').nodeValue
     # XXX shadowing builtin id
     id = node.attributes.getNamedItem('id').nodeValue
     log.writebr("%s %s" % (klsname, id))
     obj = gtkmap[klsname]()
     props = node.getElementsByTagName("property")
     log.writebr("%s %d" % (klsname, props.length))
     for i in range(props.length):
         prop = props.item(i)
         name = prop.attributes.getNamedItem('name').nodeValue
         value = prop.textContent
         try:
             setattr(obj, name, value)
         # XXX missing exception class, should probably be AttributeError
         except:
             if value and value.isdigit():
                 setattr(obj, name, int(value))
             else:
                 print "setattr failed", klsname, name, value
     childnodes = node.getElementsByTagName("child")
     log.writebr("%s children %d" % (klsname, childnodes.length))
     for i in range(childnodes.length):
         childnode = childnodes.item(i)
         childobj = childnode.getElementsByTagName("object")
         if childobj is None:
             continue
         if childobj.length == 0:
             continue
         childobj = childobj.item(0)
         child = self.create_object_from_xml_node(childobj)
         #obj.add_child(gtk.Builder(), child, klsname)
         obj.add(child)
         packing = childnode.getElementsByTagName("packing")
         if packing is None:
             continue
         if packing.length == 0:
             continue
         packing = packing.item(0)
         props = find_props(packing)
         for prop, value in props.items():
             if value.isdigit():
                 value = int(value)
             obj.child_set_property(child, prop, value)
     return obj
示例#30
0
    def onClick(self, sender):
        if sender == self.fetch:
            key = self.search.getText()
            if not key:
                log.writebr("Please enter id")
                return
            key = int(key)
            log.writebr("id %d" % key)
            #self.wanted.getItem(key, self)
            self.form.get(id=key)

        if sender == self.submit:
            v = self.form.getValue()
            log.writebr("onClick %s" % repr(v))
            if v.get('id', None):
                self.form.update(v)
            else:
                self.form.save(v)
示例#31
0
    def onClick(self, sender):
        if sender == self.fetch:
            key = self.search.getText()
            if not key:
                log.writebr("Please enter id")
                return
            key = int(key)
            log.writebr("id %d" % key)
            #self.wanted.getItem(key, self)
            self.form.get(id=key)

        if sender == self.submit:
            v = self.form.getValue()
            log.writebr("onClick %s" % repr(v))
            if v.get('id', None):
                self.form.update(v)
            else:
                self.form.save(v)
示例#32
0
文件: Form.py 项目: Afey/pyjs
 def get(self, **kwargs):
     writebr(repr(kwargs))
     self.svc({}, {'get': kwargs}, self.getter)
示例#33
0
文件: Wiki.py 项目: jaredly/pyjamas
 def onRemoteError(self, code, message, request_info):
     log.writebr('remote error! ' + message)
     log.writebr('remote error! ' + request_info)
示例#34
0
 def onSaveDone(self, form, response):
     log.writebr("onSave %s" % repr(response))
示例#35
0
文件: fp.py 项目: pombredanne/pyjamas
 def onError(self, args):
     """
     This is a Player Event
     Fired on an error
     """
     log.writebr('Error: %s' % str(args))
示例#36
0
 def uploadError(self, file, errorCode, message):
     log.writebr('uploadError: %s, %s' % (errorCode, message))
示例#37
0
 def uploadError(self, file, errorCode, message):
     log.writebr('uploadError: %s, %s' % (errorCode, message))
示例#38
0
 def onClick(self, sender):
     log.writebr('Text'+str(sender))
示例#39
0
 def onErrors(self, form, response):
     log.writebr("onErrors %s" % repr(response))
示例#40
0
 def getValue(self):
     writebr('GETTING VALUE< self.text: %s' % self.getText())
     return int(self.getText())
示例#41
0
 def onSaveDone(self, form, response):
     log.writebr("onSave %s" % repr(response))
示例#42
0
 def onRetrieveDone(self, form):
     log.writebr("onRetrieveDone: %s" % repr(form))
示例#43
0
 def onClick(self, button):
     log.writebr(button.getHTML())
示例#44
0
 def onRetrieveDone(self, form):
     log.writebr("onRetrieveDone: %s" % repr(form))
示例#45
0
 def fileQueueError(self, file, errorCode, message):
     log.writebr('fileQueueError: %s, %s' % (errorCode, message))
示例#46
0
文件: Form.py 项目: Afey/pyjs
 def getValue(self):
     writebr('GETTING VALUE< self.text: %s' % self.getText())
     return int(self.getText())
示例#47
0
 def onClick(self, sender):
     msg = "you clicked on baby katie's " + sender.areaname
     self.msgarea2.setText(msg)
     log.writebr(msg)
示例#48
0
文件: fp.py 项目: anandology/pyjamas
 def onError(self, args):
     """
     This is a Player Event
     Fired on an error
     """
     log.writebr('Error: %s' % str(args))
示例#49
0
 def onRemoteError(self, code, message, request_info):
     writebr("Server Error or Invalid Response: ERROR %d" % code + " - " +
             message + ' - Remote method : ' + request_info.method)
示例#50
0
 def fileQueueError(self, file, errorCode, message):
     log.writebr('fileQueueError: %s, %s' % (errorCode, message))
示例#51
0
 def onRemoteError(self, code, message, request_info):
     log.writebr('remote error! ' + str(message))
     log.writebr('remote error! ' + str(request_info))
示例#52
0
 def get(self, **kwargs):
     writebr(repr(kwargs))
     self.svc({}, {'get': kwargs}, self.getter)
示例#53
0
 def onClick(self, sender):
     msg = "you clicked on baby katie's " + sender.areaname
     self.msgarea2.setText(msg)
     log.writebr(msg)
示例#54
0
 def onClick(self, sender):
     log.writebr('Text' + str(sender))
示例#55
0
文件: Form.py 项目: Afey/pyjs
 def onRemoteError(self, code, message, request_info):
     writebr("Server Error or Invalid Response: ERROR %d" % code + " - " + message + ' - Remote method : ' + request_info.method)
示例#56
0
 def _mouseActionMessage(self, name, action, x=None, y=None):
     #msg =  "%s %s (%d,%d)" % (name, action, x, y)  # throws JS errors
     msg = name + ' ' + action + ' (' + str(x) + ', ' + str(y) + ')'
     self.msgarea1.setText(msg)
     log.writebr(msg)
示例#57
0
# WARNING: the use of javascript pretty much trashes all chance of using
# pyjamas-desktop.  give serious consideration to doing something OTHER
# than including random bits of javascript off the internet in a pyjamas
# application.  the larger the random bit of javascript, the more chance
# there is that it will interact in some horrendous way with the pyjamas
# infrastructure.
#
# if you ABSOLUTELY MUST use javascript, here's how to do it.
#

from pyjamas import log

# this simply tells the compiler that the two names are to be dropped
# into the javascript global namespace
from __javascript__ import examplevar, get_examplevar

# the default behaviour of jsimport is to include the javascript file
# "inline" - unmodified - direct into the compiler output
from __pyjamas__ import jsimport

jsimport("example.js")

log.writebr(examplevar)
examplevar = 'Altered'
log.writebr( get_examplevar() )

示例#58
0
 def _mouseActionMessage(self, name, action, x=None, y=None):
     #msg =  "%s %s (%d,%d)" % (name, action, x, y)  # throws JS errors
     msg = name + ' ' + action + ' (' + str(x) + ', ' + str(y) + ')'
     self.msgarea1.setText(msg)
     log.writebr(msg)
示例#59
0
 def onErrors(self, form, response):
     log.writebr("onErrors %s" % repr(response))