Если интерфейс кажется уже стандартным, а его форму хочется все таки изменить и предать динамичности, то тут могут помочь af:forEach и af:iterator. Но хочется прояснить вопрос по каким коллекциям их можно строить и вообще какие есть?
Примеры подготовлены на Oracle XE схема HR
Прежде всего интересуют коллекции которое можно получить из bindings для ViewObject (VO)
Вот некоторые из них и информация какая коллекция подходит для компоненты.
attributeDefs - позволит просмотреть мета описание атрибутов, тип данных, имя, поле в БД и др. информацию доступную из AttributeDef
collectionModel, children, rangeSet - значения атрибутов.
Из этих трех коллекций хочется выделить rangeSet. Эта коллекция позволяет также пройти по значениям атрибутов, но при этом находясь на определенной позиции в наборе, получить еще коллекцию значений всех атрибутов в строке с помощью свойства attributeValues. Таким образом двигаясь по коллекции вниз, можно посмотреть остальные атрибуты в строке.
Вот этот пример:
Подготовить VO для работы с ним в операторах, можно добавив его как tree в bindings страницы pageDef. Это эквивалентно действию по размещению таблицы (table) на странице. Можно было бы добавить таблицу, а затем ее вырезать (cut), при этом сохранив binding.
Настроить те атрибуты к которым нужен будет доступ из итераторов.
С помощью af:iterator можно можно пройтись по отношению Master/Detail и отобразить его.
Надо подготовить ViewLink для отношения и далее в bindings подготовить tree.
Настроить атрибуты для Master и Detail. Далее используя два iterator -а показать отношение.
Вот примеры работы с коллекциями.
- Описание атрибутов (attributeDefs)
- Просмотр вниз по записям и вправо по атрибутам (rangeSet и attributeValues)
- Master/Detail (collectionModel)
- Пример использования для UI. Собственно это и есть, то с чего я начал, с не "обычного интерфейса". Выбрав сотрудника получаем по нему дополнительную информация. Без использования java кодирования, и всего один простой VO.
Источник
Oracle ADF Binding Properties
Исходники
Примеры подготовлены на Oracle XE схема HR
Прежде всего интересуют коллекции которое можно получить из bindings для ViewObject (VO)
Вот некоторые из них и информация какая коллекция подходит для компоненты.
forEach
|
iterator
|
|
rangeSet
|
Х
|
Х
|
collectionModel
|
Х
|
|
children
|
Х
|
Х
|
attributeDefs
|
Х
|
attributeDefs - позволит просмотреть мета описание атрибутов, тип данных, имя, поле в БД и др. информацию доступную из AttributeDef
collectionModel, children, rangeSet - значения атрибутов.
Из этих трех коллекций хочется выделить rangeSet. Эта коллекция позволяет также пройти по значениям атрибутов, но при этом находясь на определенной позиции в наборе, получить еще коллекцию значений всех атрибутов в строке с помощью свойства attributeValues. Таким образом двигаясь по коллекции вниз, можно посмотреть остальные атрибуты в строке.
Вот этот пример:
<af:forEach items="#{bindings.EMPLOYEES1.rangeSet}" var="var" begin="0" end="1"> <af:outputLabel value="#{var.FirstName}" id="ol6" inlineStyle="font-weight:bold;"/> <af:forEach items="#{var.attributeValues}" var="row"> <af:outputText value="#{row}" id="ot2" inlineStyle="padding:0px 10px 0px;"/> </af:forEach> </af:forEach>
Подготовить VO для работы с ним в операторах, можно добавив его как tree в bindings страницы pageDef. Это эквивалентно действию по размещению таблицы (table) на странице. Можно было бы добавить таблицу, а затем ее вырезать (cut), при этом сохранив binding.
Настроить те атрибуты к которым нужен будет доступ из итераторов.
С помощью af:iterator можно можно пройтись по отношению Master/Detail и отобразить его.
Надо подготовить ViewLink для отношения и далее в bindings подготовить tree.
Настроить атрибуты для Master и Detail. Далее используя два iterator -а показать отношение.
<af:iterator id="i3" value="#{bindings.DEPARTMENTS1.collectionModel}" var="dep"> <af:outputLabel value="#{dep.DepartmentName}" id="ol5"/> <af:iterator id="i4" value="#{dep.EMPLOYEES}" var="emp"> <af:outputText value="#{emp.FirstName}#{', '}#{emp.LastName}" id="ot1"/> </af:iterator> </af:iterator>
Первый итератор идет по Отделам, а второй по сотрудникам используя вот такое обращение <af:iterator id="i4" value="#{dep.EMPLOYEES}" var="emp">
Вот примеры работы с коллекциями.
- Описание атрибутов (attributeDefs)
- Просмотр вниз по записям и вправо по атрибутам (rangeSet и attributeValues)
- Master/Detail (collectionModel)
- Пример использования для UI. Собственно это и есть, то с чего я начал, с не "обычного интерфейса". Выбрав сотрудника получаем по нему дополнительную информация. Без использования java кодирования, и всего один простой VO.
Источник
Oracle ADF Binding Properties
Исходники
Комментариев нет:
Отправить комментарий