Orun
====
Orun (Object RUNtime) is a small/lightweight library that provides a fast
to build Python RIA, the client communicates with the server through ajax.
Typical usage often looks like this::
#!/usr/bin/env python
# Cherrypy + ExtJS example
from orun.extjs import js, Ext, cp
def ok_click(id_, *args, **kwargs):
js.cli << Ext.getCmp(id_).setText('Clicked')
js.cli << js.client.alert('Server side message')
def button_click(id_, *args, **kwargs):
js.write("""
Ext.getCmp("%s").setText('Clicked');
alert('Server side callback message');
""" % id_)
class MyApplication(cp.ExtApplication):
def main(self, *args, **kwargs):
wnd = Ext.create('widget.window', {'title': 'My Window', 'width': 300, 'height': 250,
'items': [{'xtype': 'button', 'text': 'Click Here', 'handler': button_click}],
'buttons': [
{'text': 'OK', 'handler': js.FuncWithParams(ok_click, {'arg1': 1, 'arg2': 'val2', 'arg3': js.cli.this.id})},
{'text': 'Close', 'handler': js.function('this.up(\'window\').close()')}]})
wnd.show()
wnd.setHeight(200)
cp.THEME = 'classic'
app = MyApplication('Orun (ExtJS Application)')
app.run()
The example above, runs cherrypy application on 8080 http port, and exposes
extjs method.