Автор: Дмитрий Шейко, 07 апреля 2005
3 [Нет больше данных, есть только XUL]
В настоящее время весьма популярен язык описания пользовательских интерфейсов XUL (XML User-interface Language). XUL является частью среды разработки кросс-платформенных интерфейсов, известной как XPFE. Это полнофункциональный язык разметки, на объекты приложений, такие как окна, метки и кнопки. Язык соответствует стандарту W3C XML 1.0. Приложения, написанные на XUL, также могут использовать HTML, CSS, DOM, Java-script. И главное, XUL пытается разделить представление данных и логику приложений. Делается это посредством следующих абстрактных слоев:
* Содержание (content): объявление окон и элементов пользовательского интерфейса ассоциированных с ними
* Оформление (skin): включение CSS и изображений, определение вида приложения
* Локализация (locale): текст, отображаемый в пределах приложения, распределен по специальным локальным файлам, что обеспечивает переносимость языка.
Теоретически XUL обеспечивает кросс- платформенные интерфейсы (по крайней мере на данный момент он доступен в операционных системах Windows, Unix, Mac). Впрочем, первое яркое впечатление от технологии сразу же омрачает ее жесткая привязка к ядру Mozilla (Gecko).
Кстати говоря, с названием технологии связан один курьезный случай. Так сложилось, что аббревиатура XUL происходит от имени персонажа Зуул из фильма [Охотники за приведениями]. Ключевой оказалась фраза из фильма [Нет больше Даны, есть только Зуул] трансформировавшаяся в слоган [Нет больше данных, есть только XUL]. Может быть, именно по этому сообщество XUL так усердно следит за корректностью произношения названия языка.
Пример простого интерфейса Drag & Drop на языке XUL
Источник: http://www.xulplanet.com/tutorials/xultu/dragex.html.
<table class=code cellpadding=5 align=center width=98% border=1 bordercolor=#3B3B3B><tr><td>
<window title="Widget Dragger" id="test-window"
orient="horizontal"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<script src="chrome://global/content/nsDragAndDrop.js"/>
<script src="chrome://global/content/nsTransferable.js"/>
<script src="dragboard.js"/>
<stack id="board"
style="width:300px; height: 300px; max-width: 300px; max-height: 300px"
ondragover="nsDragAndDrop.dragOver(event,boardObserver)"
ondragdrop="nsDragAndDrop.drop(event,boardObserver)">
</stack>
<vbox>
<button label="Button"
elem="button" ondraggesture="nsDragAndDrop.startDrag(event,listObserver)"/>
<button label="Check Box"
elem="checkbox" ondraggesture="nsDragAndDrop.startDrag(event,listObserver)"/>
<button label="Text Box"
elem="textbox" ondraggesture="nsDragAndDrop.startDrag(event,listObserver)"/>
</vbox>
</window>
</td></tr></table>
Пример интерфейса таблиц посредством XUL.
Источник: http://www.devx.com/webdev/Article/9312/0/page/3.
Пример интерфейса таблиц посредством XUL
Между XUL и Flex
В то время как XUL располагает такими преимуществами как взаимодействие с различными популярными объектно-ориентированными языками, полноценная поддержка XPath и CSS, Flex небезосновательно предвещает эпоху насыщенных веб-приложений (RIA). На этом фоне возникают гибридные технологии, такие как ZULU. Это еще один язык разметки кросс-платформенных пользовательских интерфейсов, совмещающий стандарт XUL и технологический возможности Flash MX.
Ссылки по теме:
* http://zulu.netspedition.com/zulu/main/overview.shtml
Ссылки по теме:
* http://www.mozilla.org/docs/web-developer/
* http://www.mozilla.org/xpfe/
* http://www.xulplanet.com
* http://www.sitepoint.com/print/1140
* http://xpoint.ru/forums/programming/XUL/faq.xhtml
К началу статьи