40 lines
1.3 KiB
Plaintext
40 lines
1.3 KiB
Plaintext
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.
|