К основному контенту

Data View. Базовые компоненты Extension Library

Продолжаем рассматривать основные компоненты Extension Library. Это 3-ий выпуск и он будет посвящен такому компоненту, как Data View.

3. Data View
--- Дополнительно ---
8. Bread Crumbs

Data View
Основное назначение компонента - отображение коллекции данных (документов). Это прямой наследник стандартного компонента View Panel , но с бОльшими возможностями. Он используется как для стандартных браузеров, так и для отображения на мобильных устройствах.


Итоговый вид отображаемого будет похож на вот этот. отображение представления, построенное на основе этого компонента имеет некоторые вполне конкретные области:
- Основное содержание пункта, включающее: основной текст и дополнительные данные или действия
- Дополнительные детали (и возможность их сворачивания/разворачивания)
- Дополнительные данные (колонки), отличающиеся меньшим размером шрифта
- Отображение иконок

При добавлении компонента предлагается:
- выбрать тип источника данных
- указать базу (для Domino View), по-умолчанию текущая
- выбрать/указать название представления
- имя компонента для обращения к нему
Что очень удобно в XPages - буквально все параметры могут быть вычисляемые, а это значит, например источник данных, вплоть до базы данных может быть вычислен на лету и отображен.


В отличии от простого View Panel, который при добавлении предлагает выбрать колонки для отображения и собственно сразу готов в работе, Data View необходимо сконфигурировать, а именно:
1. Указать источник данных для основной колонки
Идем: AllProperties -> format -> summaryColumn -> "+", добавится основная колонка, в ее свойстве columnName необходимо указать программное название колонки в представлении.

Она указывается на последней вкладке свойств колонки.

Этого уже достаточно, чтобы компонент начал отображать данные.

2. Отображение названий колонок
Можно зайти в основные опции компонента и выставить галку "Show column titles" или AllProperties -> format -> columnTitles = true


Далее для указания названия конкретной колонки (в данном случае основной), нужно указать его в AllProperties -> format -> summaryColumn -> columnTitle

3. Отображение дополнительной детальной информации
Место для помещения деталей по каждому документ обозначено как "detail" на компоненте. Для деталей могут быть настроены следующие опции:
- Детали можно сворачивать/разворачивать: AllProperties -> format -> collapsibleDetail
- Разворачивать детали при открытии представления: AllProperties -> basic -> expandedDetail
- Загружать детали при открытии представления AllProperties -> basic -> detailsOnClient. Если false - при каждом разворачивании деталей будет обращение к серверу за данными. Соответственно: либо быстрее загружаем представление изначально, но потом подгружаем каждый раз, либо грузим все сразу.

4. Ответные документы
Если представление отображает иерархию документов, компонент все сделает сам. Единственное, для возможности сворачивать/разворачивать ответные документы, нужно поставить опцию: AllProperties -> format -> collapsibleRows

5. Прокрутка результатов выборки и количество отображаемых результатов
Отображение коллекции  данных на Web неразрывно связано с возможностью прокрутки результатов выборки. Для этого используется стандартный компонент Pager. Для Data View есть 6 мест, куда могут быть добавлены Pager - 3 наверху и 3 внизу.
Для управлением количества отображаемых результатов на одной странице используется свойство AllProperties -> data -> rows

6. Дополнительные колонки
Дополнительные колонки добавляются через AllProperties -> format -> extraColumns -> "+"
Для указания источника данных (колонки) используется свойство viewExtraColumn -> columnName. а для задания названия columnTitle.
Дополнительные колонки прижаты к правому краю представления и меньше по шрифту.

7. Страница для отображения содержимого документа
Основная колонка в исходном варианте - ссылка. Можно указать страницу, открываемую по-умолчанию для отображения содержимого документа. Указывает это в AllProperties -> basic -> pageName

Пример работы компонента можно посмотреть в Demo-приложении. Как любитель морской тематики позволил себе для демонстрации взять в качестве данных суда :)

Комментарии

Популярные сообщения из этого блога

Занимательные алгоритмы. Поиск цикла в односвязном списке

И снова про тараканов, которые иногда возникают в голове. Как-то раз, засыпая, я задумался на курьезными задачками из своей сферы деятельности (Lotus Notes), которые можно было бы задать на собеседовании, плавно перешел к воспоминаниям о своих первых собеседования, когда опыта работы еще не было. Опыт самих собеседований у меня не велик а места, где задавались действительно интересные задачи (а не задачки типа: написать сортировку массива любым известным способом) вообще равны одному - это ABBYY. Как минимум одна задачка в списке на знание и понимание классических алгоритмов, описанных в книге Дональда Кнута -  Искусство программирования .

Unit-testing object validation when validator has DI

Summary Unit test object validation when validator(s) has a dependency. For instance, we have some custom field and cross-field validators. Want to test their combination. Additionally some of validators have dependencies, injected through constructor or setters. You're not using property injection, right? Shortcut If you are just searching for an answer, here's the fast way: Declare CustomConstraintValidatorFactory that implements javax.validation.ConstraintValidatorFactory Override getInstance method and on facing your constraint validator class instantiate it Otherwise delegate validator construction to org.hibernate.validator.internal.engine.constraintvalidation.ConstraintValidatorFactoryImpl Build validator factory and provide it your CustomConstraintValidatorFactory Build validator, using that factory... Go to demo project on GitHub for details:  https://github.com/MrArtemAA/blog-demos/blob/master/test-validator-with-injection/src/test/java/ru/artemaa/d

Lotus Notes FAQ. 8/9 Eclipse. Как настроить уведомления о Sametime сообщениях

Н а написание данной "инструкцию" натолкнул мой коллега. Помню, первый раз сам долго искал, как отключить постоянно выпрыгивающие уведомления о новых сообщениях в Sametime. И так, речь идет о клиентах IBM Notes 8+ версии Standart (Eclipse based). Как настроить уведомления о Sametime сообщениях?