12.02.2016

ADF: кастомный selection-listener и обновление данных в popup

Столкнулся с проблемой: не обновляется отображение переменной биндинга в popup-окне. Решается оборачиванием стандартного листенера в кастомный метод и программным добавлением partial trigger на элемент, инициирующий обновление переменной.
    public void customListener(SelectionEvent selectionEvent) {
        UIComponent component = selectionEvent.getComponent();
        component.processUpdates(FacesContext.getCurrentInstance());
        JSFUtils.resolveMethodExpression("#{bindings.AllUsersVO1.collectionModel.makeCurrent}", null,
                                          new Class[]{SelectionEvent.class}, new Object[]{selectionEvent});
        setExpressionValueCustom();
    }
   
    private void setExpressionValueCustom(){
        ViewRowImpl row = (ViewRowImpl)JSFUtils.resolveExpression("#{bindings.AllUsersVO1.currentRow}");
        JSFUtils.setExpressionValue("#{bindings.userLogin.inputValue}", row.getAttribute("Username"));
        AdfFacesContext.getCurrentInstance().addPartialTarget(getP_delete());
    }
getP_delete() - геттер объекта RichPopup.