Example #1
0
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()
Example #2
0
 def connectionMade(self):
     self.js = JavaScriptCode(self.transport.write)
     self._title = ""
     self.document = Document(self)
     self.begin()