Статьи

London Wicket Meetup: Wicket 1.5, WiQuery, Brix и другие.


21 ноября в лондонском книжном магазине Foyles состоялась встреча лондонских калиток.
На месте встречи выступили некоторые известные спикеры, связанные с Wicket, и провели беседы о Brix, Wicket 1.5, WiQuery и о том, как родить ребенка можно сравнить с написанием книги.

Это резюме того дня. Вы должны были быть там …

Следите за информацией на этой странице, когда запланировано следующее мероприятие London Wicket.

обзор

Нажмите на элемент, чтобы перейти вниз (ту же страницу) к заметкам из этой презентации.

(К сожалению, Аластер Мо не смог, так как был болен. Надеюсь, вам скоро станет лучше!)

Джемал Байрамоглу из jWeekend выступил с вступительной речью на лондонской калитке.

Cemal дает вступительную речь

Джемаль Байрамоглу: Введение

Как обычно, лондонская Wicket Meetup любезно организована Джемалем Байрамоглу из jWeekend . Спасибо, Джемаль!

Джереми Томерсон показывает код на лондонской калитке.

Джереми Томерсон показывает код

Джереми Томерсон (США): Пользовательская интеграция JavaScript с Wicket + Auto Resolvers

Джереми Томерсон начал свое выступление с примера того, как выполнить проверку на стороне клиента в Wicket. Он продемонстрировал абстрактное поведение проверки, которое проверяло ввод формы с помощью jQuery.

Замечательно то, что, добавляя только одно поведение к компоненту, добавлялась проверка как на стороне сервера, так и на стороне клиента. Это упрощает синхронизацию проверки на стороне клиента и на сервере.

Поведение Javascript добавляется, позволяя поведению реализовать iHeaderContributor и добавляя сценарий в вызов метода onRenderHead.

Авто разрешение компонента

Следующая часть презентации Джереми была о AutoComponentResolver. AutoComponentResolver позволяет связывать компоненты напрямую в HTML, без явного добавления компонента в Java. Его демонстрация показала, как использовать AutoComponentResolver.

Матей Кнопп отметил, что на самом деле не рекомендуется использовать автоматическое разрешение компонентов, поскольку он имеет ограниченное применение. Основное назначение автоматического распознавания компонентов — для простых компонентов, которые не имеют длительного срока службы на странице. Например, тег <wicket: message> обрабатывается автоматическим разрешением компонента и заменяется меткой с ResourceModel. Более сложные варианты использования не поддерживаются и не рекомендуются.

Компоненты, добавленные с помощью автоматического разрешения, не сериализуются и не сохраняются в сеансе и теряют все состояние.

Лайонел Арманет показывает нам совершенство WiQuery на лондонской калитке.

Лайонел Арманет показывает нам доброту WiQuery, которую он и его коллеги-французы создали.

Lionel Armanet (FR): анонс WiQuery 1.0: введение и демонстрация

Презентация Lionel Armanet была впечатляющей демонстрацией того, на что способен WiQuery . WiQuery интегрирует jQuery с Wicket с помощью хитрых трюков, облегчающих разработку. WickeXt был объединен с jQuery4Wicket и изменил название на WiQuery. На прошлой неделе вышла версия 1.0, и библиотека доступна под лицензией MIT.

Логическое обоснование WiQuery заключается в том, что для создания многофункциональных интернет-приложений вам нужны богатые варианты поведения и компоненты. jQuery простой, ненавязчивый и мощный, в нем множество плагинов, а в jQuery UI есть интересные компоненты. Итак, давайте возьмем jQuery, интегрируем его с Wicket и получим лучшее из обоих миров!

WiQuery имеет стандартные компоненты и поведения, такие как поведение изменения размера, перетаскивание, компонент выбора даты и так далее. Просто добавляя компоненты Java, WiQuery генерирует для вас Javascript и импортирует необходимые библиотеки.

Настройка WiQuery

Есть два способа настройки wiquery:

С помощью WiQueryCoreInstantiationListener:

addComponentInstantiationListener(new WiQueryInstantiationListener)

Или путем расширения абстрактного класса WiQueryWebApplication.

демонстрация

После теории Лайонел продемонстрировал впечатляющую демонстрацию с панелью задач Scrum. На панели задач было три столбца (новый, выполняется, выполнен), из которых можно было перетаскивать элементы задачи. Двойной щелчок по элементу показывает детали для этой задачи.

Действие двойного щелчка легко добавляется с помощью:

add(new WiQueryAjaxEventBehavior(MouseEvent.DBLCLICK){
....
});

С помощью интерфейса IThemableApplication вы можете сделать свое приложение тематическим, как темы, которые есть в jQuery UI.

Матей Нопп рассказал о Brix и Wicket 1.5 на лондонской встрече Wicket

Матей Нопп рассказал о Brix и Wicket 1.5.

Матей Кнопп (SK): BRIX CMS + Wicket 1.5 Разработки Вопросы и ответы

Матей Кнопп показал, что такое система управления контентом Brix . Brix основан на Wicket и является компонентной системой управления контентом, основанной на JCR для хранения.

Brix предназначен для интеграции с веб-приложениями Wicket и выглядит очень интересно. Основными строительными блоками в Brix являются Tiles, Pages и Templates.

В Brix Tiles похожи на фабрику для встраивания компонентов Wicket. Таким образом, любой компонент Wicket может быть добавлен на страницу, что практически невозможно в «обычных» системах CMS. Более подробную информацию о Brix можно найти на веб-сайте Brix.

Калитка 1,5

Матей также рассказал о некоторых новых разработках, которые возможно появятся в Wicket 1.5:

  • Новый RequestCycle
  • Новый RequestMapper
  • Новая реализация Ajax

Новый RequestCycle и RequestMapper

Одна из областей, где можно внести улучшения — это RequestCycle. RequestCycle в Wicket 1.4.x является большим и сложным, и его трудно перешагнуть при отладке. Матей работал над улучшенным RequestCycle.

Матей рассказал о недостатках кода Wicket 1.4 для обработки запросов и сопоставления запросов с URL-адресами:

  • Сложная, огромная кодовая база
  • Множество абстракций, большинство из них на неправильном уровне
  • Сложная иерархия классов, трудно найти правильную точку расширения

Он предложил новый RequestMapper, который обрабатывает отображение запросов по-другому.

Интерфейс RequestMapper

RequestMapper получит следующий интерфейс.

public interface RequestMapper {
int getCompatibilityScore(Request request);
RequestHandler mapRequest(Request request);
Url mapHandler(RequestHandler requestHandler);
}

С помощью интерфейса RequestMapper вы можете реализовать собственное поведение сопоставления запросов для различных URL-адресов.
Там может быть иерархия RequestMappers. Когда существует более одного RequestMapper, оценка совместимости может использоваться для выбора того, какой RequestMapper будет использоваться.

Расчет показателя совместимости RequestMapper

Оценка совместимости рассчитывается путем подсчета количества сегментов URL, соответствующих точке монтирования.
Например, наличие приложения, в котором два RequestMappers определены с этими URL-адресами:

  1. / Монтаж / страниц
  2. / Монтажа / страница / что / / разные

Когда есть новый Запрос на «/ mount / page / that / is /», второй RequestMapper получает более высокий балл совместимости (4), чем RequestMapper, сопоставляя только первые две части URL («/ mount / page /»). ).

Новая реализация AJAX

Около года назад Матей создал новую реализацию Ajax для Wicket. Новая реализация Ajax намного лучше, чем сейчас в Wicket 1.4. Это быстрее, проще в использовании и будет основано на стандартной библиотеке. Есть только одна проблема: новая реализация Ajax, созданная Matej, использует YUI. Кажется, что мир предпочитает jQuery, а не YUI. Матей сказал, что переписать его на jQuery будет много работы.

В центре внимания новой реализации Ajax — удаление кода несоответствия браузера. Пользовательский сценарий Wicket Javascript будет заменен на более стандартный Javascript (например, библиотеки YUI или jQuery).

По словам Матея, API для работы с Javascript будет другим и намного чище. Кроме того, сгенерированный Javascript лучше: код не помещается непосредственно в элемент управления UI, а отдельно. Это похоже на то, как работает WiQuery. Это означает, что обработчики Javascript намного короче, поэтому страница загружается быстрее.

В управлении исходным кодом есть экспериментальная ветка, поэтому, если вы хотите попробовать ее или конвертировать в jQuery, вы можете проверить ее.

Проблемы с реализацией Wicket 1.5

Есть некоторые проблемы с реализацией Wicket 1.5. Матей коснулся нескольких и дал некоторое представление о том, что нужно сделать. Большой вопрос: как это построить, не ломая ничего? Как мы можем уничтожить вселенную?

Одним из моментов было использование глобального состояния во время 1.4 Wicket RequestCycle. Это затрудняет реализацию нового RequestCycle в ядре, потому что большая часть кода и модульных тестов полагаются на это глобальное состояние.

Еще одной проблемой является поддержание WicketTester в работоспособном состоянии. Новый RequestCycle ломает WicketTester, что проблематично, потому что многие люди используют WicketTester. Исправить WicketTester не очень просто, потому что это большой класс с большим количеством функций. Он может имитировать множество действий, таких как загрузка файла и отправка формы.

Свен Майер призвал нас не воздерживаться от написания собственного Javascript на лондонской калитке.

Свен Майер призвал нас не воздерживаться от написания собственного Javascript.

Свен Мейер (DE):

Свен Майер показал нам свою реализацию  TreeModel . Он утверждал, что TreeModel Swing не подходит для реализации дерева в Wicket: «Древовидная модель ужасна, и есть много методов, которые вам не нужны в Wicket».

Его реализация позволяет иерархическую разметку в дереве. Это облегчает использование и расширение. Он использует простые и известные шаблоны. Частичного обновления еще нет.

В Google Code находится проект  Wicket Tree .

Перетащите

Свен также создал функцию перетаскивания Wicket, которая также размещена в Google Code .

Этот проект позволяет перетаскивать между любым компонентом Wicket. Он поддерживает обычные метафоры рабочего стола с операциями «MOVE», «COPY» и «LINK» и является полностью настраиваемым.

Заключительные замечания Свена звучали так: «Не беспокойтесь о разработке собственного Javascript. С Wicket это действительно легко! »

Мартейн Дашорст сравнил ребенка с написанием книги на лондонской калитке

Мартейн Дашорст сравнил ребенка с написанием книги.

Мартейн Дашорст (Нидерланды):

Презентация Мартина называлась «Написание книг против создания детей» и была веселой историей с хорошими слайдами. Мы были проинформированы обо всех мрачных деталях написания книги (поиск издателя, написание, редактирование, проверка и т. Д.) И узнали кое-что о рождении ребенка!

Калитка Q & A

Не было много вопросов о Wicket, что является доказательством дружелюбия разработчика к Wicket. ;-)

Вы были там?

Если вы были на лондонской встрече калитки (докладчик или участник) или планируете поехать туда в следующий раз, пожалуйста, оставьте комментарий ниже!

Если вы отправите мне ссылки на презентации, я добавлю их в статью.