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

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

Это 2-ой пост из серии о базовых компонентах Extension Library. Всего планирую рассмотреть нижеследующий список компонентов:


1. Application Layout
2. Navigator
3. Data View
4. Form Table (+Form Layout Column, Form Layout Row)
5. Dialog (+ Dialog Content, Dialog Button Bar)
6. Tooltip Dialog
--- Дополнительно ---
7. Widget Container
8. Bread Crumbs

Navigator
Компонент для формирования и отображения пунктов меню. Исходный добавляемый компонент по сути является контейнером для пунктов меню.

Опции:
1. Некоторые опции компонента
- expandable - флаг, что вложенные элементы могут разворачиваться\сворачиваться
- expandEffect - эффект разворачивания\сворачивания
- expandLevel - уровень, до которого развернуто меню. 0 - полностью свернуто
- keepState - сохранять состояние свернутости\развернутости
- treeNodes - пожалуй одна из основных опций - дерево элементы меню.
- так же доступно применение стилей и стилевых классов, как для практически всех XPage-компонентов

2. Типы элементов:
Их набор достаточно разнообразен. От простых пунктов, ссылающихся на страницу или хранящих ссылку для выполнения при нажатии до контейнеров (содержащих другие типы элементов) и динамически формируемых.
Для формирования большинства навигаторов, скорее всего вы будете использовать такие типы как:
- Basic Node: может содержать ссылку или сохранять в спец. переменной - context.submittedValue - свое значение, которое может отличаться от отображаемого названия, разумеется.
- PageNode: тут все просто - переход на указанную страницу XPage
- Separator: разделитель
- Container: контейнер для других элементов, в том числе этого же типа.

Набор элементов может быть сформирован динамически, скажем по представлению (View or Folder Entries), отобразить список представлений и/или папок (View or Folder List), на основе каких-либо данных (Repeat) или обратившись к Java-классу (Managed Bean Node, класс должен реализовывать интерфейс ITreeNode)

P.S. В дополнение можно посмотреть эпизод из видео-блога NotesIn9 от David Leedy, в котором рассказывается о том, как можно использовать Navigator в рамках одной страницы (XPage) для создания эффекта переключения между страницами, там самым сократив их количество.

P.P.S. Обновил демо. Про навигатор не много, но может чем-то поможет.

Комментарии

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

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

И снова про тараканов, которые иногда возникают в голове. Как-то раз, засыпая, я задумался на курьезными задачками из своей сферы деятельности (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 сообщениях?