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

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


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


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


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


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

Обратите внимание на то что необходимо подгрузить расширения для используемых модулей.


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


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



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


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


Примечание: в новой версии http-интерфейса для связи браузера и alterator используется протокол XML-RPC.


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



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