2014-10-28 2 views
0

У меня есть поток задач с двумя видами: listOfClients и newClient. Показанный здесь:Очередь события перед визуализацией представления в потоке задач

TaskFlow

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

ответ

0

Что JDeveloper версии вы используете?

Функция findComponent не будет работать, поскольку пока ничего не сделано. Таким образом, ваш компонент в данный момент недоступен (= еще не существует).

Я думаю, что есть более простой способ сортировки. На вашей странице/фрагмента, перейдите в раздел «креплениями», выберите итератор (средний столбец), нажмите на Edit (значок карандаша) и установить сортировку вы хотите на вкладке «критерии сортировки».

+0

Я редактировал вопрос с версией. Это 12.1.3. К сожалению, это не работает в моем случае. Когда я вернусь, вновь созданная строка вставлена ​​туда, где я уже выбрал, а не отсортирован – vguzmanp

Смежные вопросы