class Application(WebSocketHandler): def connectionMade(self): self.js = JavaScriptCode(self.transport.write) self._title = "" self.document = Document(self) self.begin() @property def title(self): return self._title @title.setter def title(self, value): self._title = value self.js.document.title = value @property def background(self): return self.document.background @background.setter def background(self, value): self.document.background = value def new_box(self, id, **kwargs): box = Box(self, id, **kwargs) self.document.append_child(box) return box def new_image(self, id, path, **kwargs): image = Image(self, id, path, **kwargs) self.document.append_child(image) return image def new_button(self, id, text, **kwargs): button = Button(self, id, text, **kwargs) self.document.append_child(button) return button def frameReceived(self, message): words = message.split(" ") method_name = words[0] parameters = words[1:] if len(words) > 1 else [] method = self.js._events.get(method_name, None) if callable(method): method(*parameters) def put(self, parent, widget): if parent is self.document: self.js.document.write(repr(widget.element)) else: parent.js.innerHTML = expr("%s.innerHTML + '%s'" % (parent.id_, repr(widget.element))) widget.on_put()
def connectionMade(self): self.js = JavaScriptCode(self.transport.write) self._title = "" self.document = Document(self) self.begin()