<reponame>inpos/orun
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, params = {'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()

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, params = {'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()
Ext.getCmp("%s").setText('Clicked');     alert('Server side callback message');