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)
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()
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 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)
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
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() )
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)
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
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
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)
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)
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)
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()
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()
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)
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
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)
def get(self, **kwargs): writebr(repr(kwargs)) self.svc({}, {'get': kwargs}, self.getter)
def onRemoteError(self, code, message, request_info): log.writebr('remote error! ' + message) log.writebr('remote error! ' + request_info)
def onSaveDone(self, form, response): log.writebr("onSave %s" % repr(response))
def onError(self, args): """ This is a Player Event Fired on an error """ log.writebr('Error: %s' % str(args))
def uploadError(self, file, errorCode, message): log.writebr('uploadError: %s, %s' % (errorCode, message))
def onClick(self, sender): log.writebr('Text'+str(sender))
def onErrors(self, form, response): log.writebr("onErrors %s" % repr(response))
def getValue(self): writebr('GETTING VALUE< self.text: %s' % self.getText()) return int(self.getText())
def onRetrieveDone(self, form): log.writebr("onRetrieveDone: %s" % repr(form))
def onClick(self, button): log.writebr(button.getHTML())
def fileQueueError(self, file, errorCode, message): log.writebr('fileQueueError: %s, %s' % (errorCode, message))
def onClick(self, sender): msg = "you clicked on baby katie's " + sender.areaname self.msgarea2.setText(msg) log.writebr(msg)
def onRemoteError(self, code, message, request_info): writebr("Server Error or Invalid Response: ERROR %d" % code + " - " + message + ' - Remote method : ' + request_info.method)
def onRemoteError(self, code, message, request_info): log.writebr('remote error! ' + str(message)) log.writebr('remote error! ' + str(request_info))
def onClick(self, sender): log.writebr('Text' + str(sender))
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)
# 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() )