/pyjs/tests/test009.py

http://pyjamas.googlecode.com/ · Python · 58 lines · 36 code · 22 blank · 0 comment · 0 complexity · 4b023389d39c58e4b43632534ddc7ade MD5 · raw file

  1. import DOM
  2. class UIObject:
  3. def getElement(self):
  4. return self.element
  5. def setElement(self, element):
  6. self.element = element
  7. def setStyleName(self, style):
  8. DOM.setAttribute(self.element, "className", style)
  9. class Widget(UIObject):
  10. def setParent(self, parent):
  11. self.parent = parent
  12. class Panel(Widget):
  13. pass
  14. class ComplexPanel(Panel):
  15. def __init__(self):
  16. self.children = []
  17. def add(self, widget):
  18. self.children.append(widget)
  19. widget.setParent(self)
  20. return True
  21. class AbsolutePanel(ComplexPanel):
  22. def __init__(self):
  23. ComplexPanel.__init__(self)
  24. self.setElement(DOM.createDiv())
  25. DOM.setStyleAttribute(self.getElement(), "overflow", "hidden")
  26. def add(self, widget):
  27. ComplexPanel.add(self, widget)
  28. DOM.appendChild(self.getElement(), widget.getElement())
  29. return True
  30. class RootPanel(AbsolutePanel):
  31. def __init__(self):
  32. AbsolutePanel.__init__(self)
  33. element = self.getBodyElement()
  34. self.setElement(element)
  35. def getBodyElement(self):
  36. JS(""" return $doc.body;""")