protected void encodeItems( FacesContext facesContext, UIComponent component, List<Object> fetchValues) throws IOException { AbstractAutocomplete comboBox = (AbstractAutocomplete) component; AutocompleteEncodeStrategy strategy = getStrategy(component); strategy.encodeItemsContainerBegin(facesContext, component); Object savedVar = saveVar(facesContext, comboBox.getVar()); Map<String, String> requestParameters = facesContext.getExternalContext().getRequestParameterMap(); String value = requestParameters.get(component.getClientId(facesContext) + "Value"); Iterator<Object> itemsIterator = comboBox.getItems(facesContext, value).iterator(); if (!itemsIterator.hasNext()) { strategy.encodeFakeItem(facesContext, component); } else { while (itemsIterator.hasNext()) { Object item = itemsIterator.next(); setVar(facesContext, comboBox.getVar(), item); this.encodeItem(facesContext, comboBox, item, strategy); if (comboBox.getFetchValue() != null) { fetchValues.add(comboBox.getFetchValue().toString()); } else if (item != null) { fetchValues.add(item.toString()); } } } setVar(facesContext, comboBox.getVar(), savedVar); strategy.encodeItemsContainerEnd(facesContext, component); }
protected void encodeItemsContainer(FacesContext facesContext, UIComponent component) throws IOException { AutocompleteEncodeStrategy strategy = getStrategy(component); AutocompleteMode mode = (AutocompleteMode) component.getAttributes().get("mode"); if (mode != null && mode == AutocompleteMode.client) { List<Object> fetchValues = new ArrayList<Object>(); this.encodeItems(facesContext, component, fetchValues); this.encodeFetchValues(facesContext, component, fetchValues); } else { strategy.encodeItemsContainerBegin(facesContext, component); // TODO: is it needed // strategy.encodeFakeItem(facesContext, component); strategy.encodeItemsContainerEnd(facesContext, component); } }
public void encodeItem( FacesContext facesContext, AbstractAutocomplete comboBox, Object item, AutocompleteEncodeStrategy strategy) throws IOException { ResponseWriter writer = facesContext.getResponseWriter(); if (getLayoutChildCount(comboBox) > 0) { strategy.encodeItem(facesContext, comboBox); } else { if (item != null) { strategy.encodeItemBegin(facesContext, comboBox); writer.writeAttribute( HtmlConstants.CLASS_ATTRIBUTE, "rf-au-itm rf-au-opt rf-au-fnt rf-au-inp", null); writer.writeText(item, null); strategy.encodeItemEnd(facesContext, comboBox); } } }