Существует потребность предоставлять данные не только те что находятся в БД, а полученные из других источников, например Webservice, файл, из коллекций и др. В первой части покажу как сделать редактируемую форму от коллекции данных, во второй части от Programmatic ViewObject. Первую часть назовем - Programmatic POJO Collection Data
Основу примера будет составлять три класса
1. - фасад (DataControl)
2. - элементы коллекции (Items)
3. - сам элемент (Item)
Элемент коллекции
После чего имеем обычный Data Control. Добавим в него метод для получения количества элементов коллекции. И он станет доступен для binding - в формах.
Также будут доступны основные предопределенные операции.
Теперь можно сделать форму, наполнить ее через drag and drop формой ввода данных, навигацией, методом создания записи, и др.
Для доступа в бине к элементам коллекции можно поступать например так:
Вот что получилось
Источники:
Bean DataControl - Edit table records
http://deepakcs.blogspot.ru/2012/05/bean-datacontrol-edit-table-records.html
How-to build pagination into ADF POJO Data Control
http://www.oracle.com/technetwork/developer-tools/adf/learnmore/37-adf-pojo-pagination-169179.pdf
Исходный код
Основу примера будет составлять три класса
1. - фасад (DataControl)
2. - элементы коллекции (Items)
3. - сам элемент (Item)
Элемент коллекции
Список элементовpublic class Item { public Item() { super(); } private Integer IdItem; private String firstName; private String lastName; public void setIdItem(Integer IdItem) { this.IdItem = IdItem; }
public class Items { public Items() { super(); } private List<Item> items = null; public List<Item> getItems(){ if(items==null){ items = new ArrayList<Item>(); } return items; }
Фасад - DataControl
public class DataControl { public DataControl() { super(); } private Items items= null; public List<Item> getItems(){ if (items==null){ items = new Items(); } return items.getItems(); }
Теперь можно от фасада сделать Data Controls - "Create Data Control"
Также будут доступны основные предопределенные операции.
Теперь можно сделать форму, наполнить ее через drag and drop формой ввода данных, навигацией, методом создания записи, и др.
Для доступа в бине к элементам коллекции можно поступать например так:
public class MyBean { public MyBean() { super(); } public void testItem(ActionEvent actionEvent) { DCIteratorBinding itr = ADFUtils.findIterator("itemsIterator"); Row row = itr.getViewObject().getCurrentRow(); JSFUtils.addFacesInformationMessage(String.format("Id %s, firstName %s, lastName %s", row.getAttribute("idItem"), row.getAttribute("firstName"), row.getAttribute("lastName"))); }
Вот что получилось
Источники:
Bean DataControl - Edit table records
http://deepakcs.blogspot.ru/2012/05/bean-datacontrol-edit-table-records.html
How-to build pagination into ADF POJO Data Control
http://www.oracle.com/technetwork/developer-tools/adf/learnmore/37-adf-pojo-pagination-169179.pdf
Исходный код
Комментариев нет:
Отправить комментарий