В каталоге 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 сервер будет останавливаться с выводом сообщения о ошибке и причине ее возникновения.