В каталоге conf сервера приложений создаем файл hello.conf, в котором запишем следующий текст:
[common] debug=1 path=hello [database] [hosts] allow=127.0.0.1/32 reject= [info] name=Hello App version=0.1 author=Me release=2003
Таким образом мы определяем следующие параметры нашей системы:
Далее в файле impl/__init__.py дописываем следующие строки:
# Если даже загрузка системы прошла # неудачно, сервер не должен останавливаться. try: import hello except: pass
После этого в каталоге impl сервера необходимо создать каталог приложения hello и перейти в него. Дальнейшая работа будет производится в данном подкаталоге.
Создаются следующие файлы:
__init__.py: # Этот метод вызывается единовременно # после подключения клиентского приложения # к системе # в нем можно прочитать конфигурационный файл, # установить соединение с БД и прочее. # как минимум необходимо вернуть xml-пакет для клиента # в котором содержится стартовое окно приложения # загрузить сервисные модули работы с xml import service from service.widget import * def run(serv): # создаем окно с заголовком hello application # и именем hello. Окно размером 200х200 и # отцентрованное по вертикали и горизонтали # модальное без меню a=window(caption='Hello application',name='hello', x='center',y='center',width='200',height=200, modal=1,no_menu=1) # вертикальная "сетка", внутри которой будут # расположены виджеты h=a.addObj(hgrid(space=5,border=5)) # надпись h.addObj(label(value='Hello, world :)')) # ниже надписи - кнопка h.addObj(button(name='helloPress',value='Click me',signal=1)) # Вернуть клиенту xml-пакет return a.getDoc() hello.py # данный метод будет вызван # при закрытии окна hello def close(serv): pass # событие hello.helloPress(serv) # будет вызвано при нажатии на кнопку def helloPress(serv): # просто выведем сообщение клиенту service.message('information',"!","Вы нажали на кнопку :)").show(serv) return
Вот собственно и весь текст вашего первого приложения "под jazz". Далее можно запустить kernel.py, клиентское приложение и увидеть результат При режиме debug=1 сервер будет останавливаться с выводом сообщения о ошибке и причине ее возникновения.