[Oracle ADF] Bindings Layer - Bindings
BindingsUtils.java
https://bitbucket.org/oracle-adf/adf-utils/src/087f677cba287be7b1c3cebf038a20ed2cbff7e4/src/main/java/org/javadev/adf/utils/BindingsUtils.java
Получить программно bindings текущей страницы:
1
2
DCBindingContainer myBindingContainer = ADFUtils.getBindingContainer();
DCBindingContainer myDCBindingContainer = ADFUtils.getDCBindingContainer();
Еще вариант
1
2
3
4
5
6
7
import oracle.adf.model.BindingContext;
import oracle.binding.BindingContainer;
/**\***Generic Method to get BindingContainer of current page, fragment or region\*\*/
public BindingContainer getBindingsCont() {
return BindingContext.getCurrent().getCurrentBindingsEntry();
}
Получить программно bindings произвольной страницы (по PageDef):
Перехожу на страницу, bindings которой хочу получить.
Далее в Bindings добираюсь до DataBindings.cpx
Захожу в исходники DataBindings.cpx и ищу по названию траницы UsageId.
1
2
// -- findBindingContainer взято из ADFUtils - там приватный метод, я не стал менять оригинальные тексты.
BindingContainer bindings = BindingsUtils.findBindingContainer(ConstantsPegeDefs.MY\_\_PAGE_DEF);
Еще вариант
Получаю UsageId способом описанным выше.
1
BindingContainer myBindingContainer = BindingsUtils.getBindingsContainerByPageDef(pageUsageId);
Можно почитать:
http://www.awasthiashish.com/2014/08/access-bindingcontainer-page-bindings.html
Доступ к данным и методам.
FacesContext ctx = FacesContext.getCurrentInstance();
Application app = ctx.getApplication();
ValueBinding bind = app.createValueBinding("#{bindings.DepartmentName.inputValue}");
String departmentName = (String)bind.getValue(ctx);
Примеры реализации:
- action
- attributeValues
- button
- eventBinding
- graph
- list
- listOfValues
- methodAction
- navigationlist
- table
- tree
- treetable