У меня есть поток задач с двумя видами: listOfClients
и newClient
. Показанный здесь:Очередь события перед визуализацией представления в потоке задач
listOfClients
вид имеет таблицу, которую я хочу, чтобы отсортировать перед визуализацией его. Для этого я хочу создать SortEvent с таблицей в качестве источника (как показано in the docs, section 29.4.4), но я не могу получить доступ к таблице перед визуализацией представления.
Я вызываю метод queueSortIdEvent
на странице управляемый bean-элемент, но findComponent
не может найти таблицу (возвращает null
). Пробовал также view-scoped, тот же результат.
Мой код в бобе:
public UIComponent findComponent(final String id) {
FacesContext context = FacesContext.getCurrentInstance();
UIViewRoot root = context.getViewRoot();
final UIComponent[] found = new UIComponent[1];
root.visitTree(new FullVisitContext(context), new VisitCallback() {
@Override
public VisitResult visit(VisitContext context, UIComponent component) {
if(component.getId().equals(id)){
found[0] = component;
return VisitResult.COMPLETE;
}
return VisitResult.ACCEPT;
}
});
return found[0];
}
public void queueSortIdEvent(){
SortCriterion sc = new SortCriterion("ClientId", true);
List<SortCriterion> listSC = new ArrayList<>();
listSC.add(sc);
SortEvent new = new SortEvent(findComponent("t1"), listSC); // the table id is "t1"
new.queue();
}
Есть ли способ в очередь событие перед визуализацией зрения?
Примечание: findComponent
функция отлично работает в других частях кода, он получил от here
Моя JDeveloper версия 12.1.3
Я редактировал вопрос с версией. Это 12.1.3. К сожалению, это не работает в моем случае. Когда я вернусь, вновь созданная строка вставлена туда, где я уже выбрал, а не отсортирован – vguzmanp