[Oracle ADF] Iterator
1
2
| String myIteratorName = "myIteratorName";
String myAttributeName = "myAttributeName";
|
1
| ADFUtils.findIterator(myIteratorName).executeQuery();
|
1
| ViewObject vo = ADFUtils.findIterator(myIteratorName).getViewObject();
|
1
| Object myValue = ADFUtils.findIterator(myIteratorName).getCurrentRow().getAttribute(myAttributeName);
|
Еще 1 вариант получить текущую строку (если нужно будет, например пройтись по VO для каких-нибудь целей)
1
2
3
4
5
6
| MyVOViewImpl myVo =
(MyVOViewImpl) ADFUtils.findIterator("OrderSheduleDeliveriesView1Iterator").getViewObject();
MyVOViewRowImpl currRow = myVo.getCurrentRow();
RowSetIterator rs = myVo.createRowSetIterator(null);
|
В MyVOViewImpl к VO добавляем:
1
2
3
4
| @Override
public MyVOViewRowImpl getCurrentRow() {
return (MyVOViewRowImpl) super.getCurrentRow();
}
|
Утановить программно итератор по ключу:
1
2
| DCIteratorBinding myBindings = ADFUtils.findIterator("OrderSheduleDeliveriesView1Iterator");
myBindings.setCurrentRowWithKeyValue("4444");
|
https://docs.oracle.com/middleware/1213/adf/api-reference-model/oracle/adf/model/binding/DCIteratorBinding.html
Создать SOC с локалями:
1
2
3
4
5
6
| <af:selectOneChoice value="#{bindings.Language.inputValue}"
label="#{usersBundle['users.user.language']}"
id="soc3"
required="true">
<f:selectItems value="#{pageFlowScope.MyBean.supportedLocales}" id="si6"/>
</af:selectOneChoice>
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| public List<SelectItem> getSupportedLocales() {
Iterator<Locale> iteratorSupportedLocales = FacesContext.getCurrentInstance()
.getApplication()
.getSupportedLocales();
supportedLocales = new ArrayList<SelectItem>();
SelectItem itemLocale = null;
while (iteratorSupportedLocales.hasNext()) {
Locale locale = iteratorSupportedLocales.next();
itemLocale = new SelectItem(locale.getLanguage(), locale.getDisplayName(), locale.getDisplayName());
supportedLocales.add(itemLocale);
}
return supportedLocales;
}
|