Вход:  Пароль:  
FreeSource: Мусорка/AltLinux?/Sisyphus?/Alterator?/drivers ...
Free Source | Каталог | Изменения | НовыеКомментарии | Пользователи | Регистрация |
Это старая версия Мусорка/AltLinux/Sisyphus/Alterator/drivers за 2006-02-14 11:25:30..

Многоликие интерфейсы


Lookout, интерфейсный модуль на шине Woobus, работает с «виртуальными» виджетами. Когда в описании интерфейса вы спрашиваете или меняете те или иные аттрибуты у виджета, на самом деле вы работаете с простым контейнером свойств. Для того чтобы сделанные изменения отразились в реальных виджетах от alterator требуется проделать некоторую дополнительную работу.


Реальные же виджеты предоставляет браузер интерфейса. На данный момент поддерживаются да вида браузеров:


Браузер находится во главе шины Woobus. Возможно что lookout и браузер физически находятся на одной машине, а возможно и нет. Даже внешне обычное GUI приложение alterator может реально работать с какой-нибудь удалённой машиной.


Например, следующий layout показывает что qt-browser соединён с шиной ведущей через «транспортную развязку» в другую шину.


А вот традиционное подключение в рамках одной машины:


Http-браузер подключается через входящую транспортную точку server-socket, сам же реально существует в виде CGI-скрипта и набора функций на Javascript.



Браузер и lookout общаются между собой на достаточно простом языке. Сначала происходит открытие новой сессии (да lookout – это много сессионный модуль интерфейсов), возможно для этого потребуется некоторая авторизация. После открытия сессии браузер получает от lookout команды на создание/удаление/модификацию виджетов, а в ответ сообщает о тех или иных интерфейсных событиях (например о нажатии некоторой кнопки). Надо отметить, что оповещать он будет только о тех событиях, о которых его попросили. То есть если у некоторой кнопки не было зарегистрировано обработчика on-click, то браузер не будет дёргать лишний раз lookout на предмет этого бессмысленного события.


Протокол общения в некотором смысле «асинхронный». Чтобы каждая сторона не занималась написанием лишних парсеров в одну сторону идёт XML (ответы lookout), в другую – S-выражения (запросы браузера).


Несколько слов о Http-браузере. На данный момент это типичное AJAX приложение для Web-браузера. При необходимости производятся «скрытые» (xmlHttpRequest) запросы через cgi-шлюз (а потом и через локальный сокет, как вы видели в примере выше) к lookout и в зависимости от ответов производятся те или иные модификации в интерфейсе. Для изображения на web-странице интерфейсов используется Javascript библиотека qooxdoo.



 
Файлов нет. [Показать файлы/форму]
Один комментарий. [Показать комментарии/форму]