ExtendedDataModel ajax call fail
tehackio Apr 3, 2013 9:52 PMIf one ajax call inside column of org.ajax4jsf.model.ExtendedDataModel to render outside, method walk is called many times;
<h:form id="frmmm"> <rich:dataTable id="dtSearch" value="#{productView.productQuery}" var="reg" rows="20" style="width: 100%" > <rich:column> <h:graphicImage library="padrao" name="img/find00.png"> <f:ajax event="click" execute="@this" render=":frmmm:tesssst" action="#{productView.becomeManaged(reg)}" /> </h:graphicImage> <a4j:commandLink execute="@this" limitRender="true" action="#{productView.becomeManaged(reg)}" render="tesssst" > <h:graphicImage library="patterrr" name="img/find01.png" /> </a4j:commandLink> </rich:column> </rich:dataTable> <h:panelGroup id="tesssst">#{currentDate}</h:panelGroup> </h:form>
@Override public void walk(FacesContext context, DataVisitor visitor, Range range, Object argument) { List<T> resultado = null; SequenceRange sequenceRange = (SequenceRange) range; try { CriteriaQuery<T> query = getQuery(); // CriteriaQuery<T> tmpCriteria = query; // CriteriaQuery<Long> countCriteria = JpaUtils.countCriteria(getEm(), tmpCriteria); // setRowCount(((Long) getEm().createQuery(countCriteria).getSingleResult()).intValue()); resultado = getEm().createQuery(query).setFirstResult(sequenceRange.getFirstRow()).setMaxResults(sequenceRange.getRows()).getResultList(); for (T t : resultado) { visitor.process(context, t.getId(), argument); } // List<Order> orderList = query.getOrderList(); } catch (Exception e) { e.printStackTrace(); } } @Override public T getRowData() { return getEm().find(getClasse(), getRowKey()); } @Override public boolean isRowAvailable() { return getRowKey() != null; } @Override public int getRowIndex() { return 0; } @Override public void setRowIndex(int rowIndex) { } @Override public Object getWrappedData() { return new UnsupportedOperationException(); } @Override public void setWrappedData(Object data) { throw new UnsupportedOperationException(); } @Override public void arrange(FacesContext context, ArrangeableState state) { setArrangeableState(state); } @Override public int getRowCount() { CriteriaQuery<Long> countCriteria = JpaUtils.countCriteria(getEm(), getQuery()); return ((Long) getEm().createQuery(countCriteria).getSingleResult()).intValue(); }
UIDataTable(UIDataAdaptor).walk(FacesContext, DataVisitor, Object) line: 809 UIDataTable(UIDataAdaptor).visitDataChildren(VisitContext, VisitCallback, boolean) line: 1282 UIDataTable(UIDataTableBase).visitDataChildren(VisitContext, VisitCallback, boolean) line: 416 UIDataTable(UIDataAdaptor).visitTree(VisitContext, VisitCallback) line: 1360 HtmlForm(UIComponent).visitTree(VisitContext, VisitCallback) line: 1518 HtmlForm(UIForm).visitTree(VisitContext, VisitCallback) line: 335 UIOutput(UIComponent).visitTree(VisitContext, VisitCallback) line: 1518 UIViewRoot(UIComponent).visitTree(VisitContext, VisitCallback) line: 1518 ExtendedPartialViewContextImpl.visitActivatorComponent(String, VisitCallback, Set<VisitHint>) line: 474 ExtendedPartialViewContextImpl.visitActivatorAtExecute() line: 335 ExtendedPartialViewContextImpl.getExecuteIds() line: 98 ExtendedPartialViewContextImpl.isExecuteAll() line: 148 UIViewRoot.processDecodes(FacesContext) line: 922 ApplyRequestValuesPhase.execute(FacesContext) line: 78 ApplyRequestValuesPhase(Phase).doPhase(FacesContext, Lifecycle, ListIterator<PhaseListener>) line: 101 LifecycleImpl.execute(FacesContext) line: 118 FacesServlet.service(ServletRequest, ServletResponse) line: 508