LXF70:OpenLaszlo
|
|
|
Содержание |
OpenLaszlo 3.0
Flash был любимым всеми патентованным форматом – теперь это любимый всеми открытый формат. Пол Хадсон взвешивает все за и против...
Формат Macromedia Flash очень удобен – он позволяет управлять точным расположением элементов на странице и работает на всех мыслимых платформах. Более того, он использует векторную графику, а значит, ваши анимационные ролики будут выглядеть привлекательно, не занимая при этом всю ширину канала.
Многие проекты занимались инженерным анализом Flash, но до сего момента в мире Open Source не было достойного аналога среды Flash MX 2004 Studio для Windows или Mac OS X. Не спешите радоваться: OpenLaszlo – это не студия для редактирования Flash. Это библиотека компонентов, позволяющих создавать Flash-интерфейсы, не подписывая набивших оскомину лицензионных соглашений.
На самом деле, Laszlo – это нечто большее. Для проектирования интерфейсов используется обычный XML, который затем превращается в полноценный Flash-ролик.
Полуфабрикаты Web
Каждый web-разработчик знает, что Flash легко использовать в случае, когда вам необходимо оживить несколько несложных фигур, однако, создание развитых интерфейсов превращается в кошмар. OpenLaszlo, напротив, предоставляет в ваше распоряжение целый ряд полнофункциональных компонентов GUI. Если вам нужно текстовое поле ввода, используйте XML-элемент <text>, самостоятельный диалог создается при помощи <window>, кнопка соответствует тэгу <button> и так далее – вы уже можете представить себе, как выглядит программирование в OpenLaszlo.
Каждый компонент обладает некоторым набором встроенных функций. Кнопки можно нажимать, в текстовые поля – вводить текст (при этом пароли появляются на экране в виде звездочек), а окна – перетаскивать. Вы можете изменять атрибуты тех или иных компонентов: ширину и высоту, OpenLaszlo 3.0 цвета, местоположение и даже действия. Код для действий пишется на языке JavaScript, а используемые при этом события знакомы каждому HTML-программисту: onClick(), onFocus(), onMouseOver() и так далее. Внутри XML-кода допускается использование простых переменных, например, конструкция width=”${immediateparent.width}” будет правильно транслирована и обработана во Flash-ролике.
От XML – к Flash
Этому магическому превращению мы обязаны Java. Когда пользователь запрашивает вашу страницу, XML-код анализируется и компилируется «движком» OpenLaszlo, который и превращает его во Flash-ролик. Стандартной реализацией этой идеи является сервлет-контейнер Apache Tomcat, но вы с тем же успехом можете сгенерировать Flash-ролики заранее и разместить их на статичном web-сервере Apache. Впрочем, в этом не так уж много смысла: с помощью компилятора Java можно создать оптимизированные статичные файлы, которые будут обслуживаться Tomcat как есть, без предварительно- го анализа соответствующего XML-кода. При этом скорость работы будет столь же высокой, однако, необходимость перемещать файлы на сторонний сервер отпадет.
Если вы все еще недостаточно впечатлены, сообщаем вам, что OpenLaszlo умеет работать с XML-RPC и SOAP. Первый из них позволяет делать удаленные вызовы процедур с других компьютеров по протоколу HTTP. Звучит запутанно, но на практике это не более чем способ передать функции параметры и получить от нее возвращаемое значение. SOAP – Simple Object Access Protocol (Простой протокол доступа к объектам) – предназначен для передачи сложных типов данных, то есть для связи ваших Flash-роликов с внешним миром. На самом деле, поддержка XML имеет более глубокие корни: OpenLaszlo может загрузить и проанализировать XML-документ из локального или удаленного источника, а также выполнить запрос XPath. Все эти операции доступны и в стандартном Flash-ролике, но, тем не менее, встречаются они нечасто и по очень простой причине – это не так-то легко сделать, если вы не используете OpenLaszlo.
Выбор компонентов, предоставляемых OpenLaszlo, весьма обширен. Наряду с привычными текстовыми полями, кнопками, флажками и списками, здесь встречаются составные объекты, такие как диалоги выбора даты, деревья, группы вкладок, меню и таблицы данных. Все они могут обмениваться данными с остальной частью Flash-ролика, а также, подобно HTML-форме, отсылать их по HTTP для удаленной обработки на сервере. Flash известен своими мультимедиа-возможностями, и здесь OpenLaszlo не отстает: вы можете включать в свой XML-код картинки, фильмы, MP3-композиции и даже другие Flash-ролики. Все они контролируются с помощью сценариев, написанных на языке JavaScript.
Задачи двойного назначения
Вы можете создавать собственные классы, добавляющие новую функциональность или особое поведение. OpenLaszlo позволяет использовать компонент как класс, а затем применить его в качестве шаблона в нескольких местах на одной и той же странице. Вы можете наследовать от данного класса (а также наследовать от наследника класса и так далее), создавая свои собственные библиотеки сложных объектов. В это трудно поверить – у бывалых программистов XML отнюдь не пользуется репутацией средства, подходящего для этих целей. Но OpenLaszlo добивается своего, несмотря на трудности, и результат выглядит впечатляюще.
Конечно, весь этот потенциал подразумевает, что овладеть синтаксисом OpenLaszlo будет не так-то просто. Здесь на помощь приходит обширная документация, освещающая всевозможные аспекты конфигурации системы и процесса разработки. Да, вы не ослышались: это хорошо задокументированный открытый проект, который будет содействовать вам в ходе инсталляции и обучения, предоставит в ваше распоряжение многочисленные примеры, справочники, руководство администратора и так далее. Секрет кроется в том, что OpenLaszlo был выпущен как Open Source не так давно – компания продолжает развивать продукт, но берет деньги за поддержку и услуги. Это было смелым решением и мы очень рады, что они на него пошли.
Сложность OpenLaszlo могла бы показаться сокрушительной, если бы не одно «но»: IBM создала расширение для Eclipse, упрощающее разработку с OpenLaszlo. Оно не только помогает следить за корректностью и форматированием XML-документа, но и включает визуальный дизайнер интерфейсов, позволяющий просто расположить элементы при помощи мыши, вместо того чтобы писать XML-код вручную. Если вы не знакомы с Eclipse, потребуется некоторое время, чтобы привыкнуть к этой среде, зато все, кто уже видел ее, будут чувствовать себя, как дома.
Добро пожаловать в Монго!
Попробовав OpenLaszlo, трудно остановиться. Вы можете потратить недели на создание сложного интерфейса к вашему web-сайту на Java, но зачем? OpenLaszlo предоставляет все возможности для реализации мощных кросс-платформенных GUI, выглядящих безупречно. Потребуется немало усилий и еще больше опыта, чтобы заставить Java выглядеть так же хорошо. Документация, предоставляемая проектом, находится выше всяких похвал. OpenLaszlo побеждает Java на ее собственном поле (по крайней мере, до тех пор, пока речь идет о web-браузерах). Это по-настоящему свободный продукт, лицензированный по IBM Common Public License (CPL: по сути, GPL c учетом патентов). OpenLaszlo – лакомый кусок для сообщества Open Source. Комбинируя его с Apache Tomcat и Eclipse, вы получите сногсшибательное трио. Если вы экспериментируете с web-интерфейсами (уже прочитали материал на странице 60?), мы настоятельно рекомендуем начать с OpenLaszlo. Обещаем, вы не будете разочарованы.