/** * Finds appropriate converter for a given value holder * * @param context FacesContext instance * @param component ValueHolder instance to look converter for * @return Converter */ public static Converter getConverter(FacesContext context, UIComponent component) { if (!(component instanceof ValueHolder)) { return null; } Converter converter = ((ValueHolder) component).getConverter(); if (converter != null) { return converter; } ValueExpression valueExpression = component.getValueExpression("value"); if (valueExpression == null) { return null; } Class<?> converterType = valueExpression.getType(context.getELContext()); if (converterType == null || converterType == Object.class) { // no conversion is needed return null; } if (converterType == String.class && !PrimeApplicationContext.getCurrentInstance(context).getConfig().isStringConverterAvailable()) { return null; } return context.getApplication().createConverter(converterType); }
Object value = valueHolder.getValue(); if (value == null) { return ""; Converter converter = valueHolder.getConverter(); if (converter == null) { Class valueType = value.getClass(); converter = context.getApplication().createConverter(valueType); throw new FacesException("Value of " + component.getClientId(context) + " must be a List or an Array."); for (int i = 0; i < collectionSize; i++) { Object object = collection.get(i); builder.append(converter.getAsString(context, component, object)); return converter.getAsString(context, component, value); return (String) component.getAttributes().get("alt");
protected void encodeFilter(FacesContext context, DataTable table, UIColumn column) throws IOException { Map<String, String> params = context.getExternalContext().getRequestParameterMap(); ResponseWriter writer = context.getResponseWriter(); UIComponent filterFacet = column.getFacet("filter"); Object filterValue = findFilterValue(table, column); if (filterValue != null) { ((ValueHolder) filterFacet).setValue(filterValue); filterFacet.encodeAll(context); writer.endElement("div");
&& submittedValue == null && !input.isLocalValueSet() && context.isValidationFailed() && !input.isValid()) { return null; value = valueHolder.getValue(); Converter converter = valueHolder.getConverter(); if (converter == null) { Class valueType = value.getClass(); converter = context.getApplication().createConverter(valueType); return converter.getAsString(context, component, value);
public static void setConverter(ValueHolder valueHolder, Object converterExpression) { if (converterExpression instanceof ValueExpression) { ValueExpression expression = (ValueExpression) converterExpression; if (!expression.isLiteralText()) { ((UIComponent) valueHolder).setValueExpression("converter", expression); } else { valueHolder.setConverter(FacesContext.getCurrentInstance() .getApplication().createConverter(expression.getExpressionString())); } } }
public void applyAttachedObject(FacesContext context, UIComponent parent) { FaceletContext ctx = (FaceletContext) context.getAttributes().get(FaceletContext.FACELET_CONTEXT_KEY); // cast to a ValueHolder ValueHolder vh = (ValueHolder) parent; ValueExpression ve = null; Converter c = null; if (owner.getBinding() != null) { ve = owner.getBinding().getValueExpression(ctx, Converter.class); c = (Converter) ve.getValue(ctx); } if (c == null) { c = this.createConverter(ctx); if (ve != null) { ve.setValue(ctx, c); } } if (c == null) { throw new TagException(owner.getTag(), "No Converter was created"); } owner.setAttributes(ctx, c); vh.setConverter(c); Object lv = vh.getLocalValue(); FacesContext faces = ctx.getFacesContext(); if (lv instanceof String) { vh.setValue(c.getAsObject(faces, parent, (String) lv)); } }
if (parent.getParent() == null) c = (Converter) ve.getValue(ctx); if (ve != null) ve.setValue(ctx, c); vh.setConverter(c); Object lv = vh.getLocalValue(); FacesContext faces = ctx.getFacesContext(); if (lv instanceof String) vh.setValue(c.getAsObject(faces, parent, (String) lv));
StringBuffer str = new StringBuffer(); if (uic instanceof CommandSortHeader) { if (uic.getChildCount() > 0) { Iterator iter = uic.getChildren().iterator(); while (iter.hasNext()) { UIComponent child = (UIComponent) iter.next(); Object value = uic.getAttributes().get("value"); if (value == null) { ValueBinding vb = uic.getValueBinding("value"); converter = ((ValueHolder)uic).getConverter(); converter = FacesContext.getCurrentInstance().getApplication().createConverter(value.getClass()); str.append(converter.getAsString(FacesContext.getCurrentInstance(), uic, value)); } else { str.append(value);
/** * @deprecated since 2.0.0 */ @Deprecated public static void setConverterProperty(final UIComponent component, final String name, final String value) { if (value != null && component instanceof ValueHolder) { final FacesContext facesContext = FacesContext.getCurrentInstance(); final Application application = facesContext.getApplication(); if (UIComponentTag.isValueReference(value)) { final ValueBinding valueBinding = application.createValueBinding(value); component.setValueBinding(name, valueBinding); } else { final Converter converter = application.createConverter(value); ((ValueHolder) component).setConverter(converter); } } }
protected String exportValue(FacesContext context, UIComponent component) { if (shouldExcludeFromExport(component) || !component.isRendered()) return ""; if (component instanceof HtmlCommandLink) { HtmlCommandLink link = (HtmlCommandLink) component; return editableValueHolder.getConverter().getAsString(context, component, value); ValueExpression expr = component.getValueExpression("value"); if (expr != null) if ((valueType = expr.getType(context.getELContext())) != null) { Converter converterForType = context.getApplication().createConverter(valueType); if (converterForType != null) return converterForType.getAsString(context, component, value); Object value = valueHolder.getValue(); else if (valueHolder.getConverter() != null) return valueHolder.getConverter().getAsString(context, component, value); ValueExpression expr = component.getValueExpression("value"); if (expr != null) if ((valueType = expr.getType(context.getELContext())) != null) { Converter converterForType = context.getApplication().createConverter(valueType); if (converterForType != null) return converterForType.getAsString(context, component, value); ret = (context.getApplication().evaluateExpressionGet(context, ret, Object.class)).toString(); if (component.getChildren().size() > 0) {
public void applyMetadata(FaceletContext ctx, Object instance) { ((ValueHolder) instance).setConverter(ctx.getFacesContext() .getApplication().createConverter(this.converterId)); } }
public Object getConvertedValue(FacesContext facesContext, UIComponent uiComponent, Object submittedValue) throws ConverterException { // get the converter (if any) registered with this component Converter converter = null; if (uiComponent instanceof ValueHolder) { converter = ((ValueHolder) uiComponent).getConverter(); } // if we didn't find a converter specifically registered with the component // then get the default converter for the type of the value binding, // if it exists ValueBinding valueBinding = uiComponent.getValueBinding("value"); if (converter == null && valueBinding != null) { Class valueBindingClass = valueBinding.getType(facesContext); if (valueBindingClass != null) { converter = facesContext.getApplication() .createConverter(valueBindingClass); } } if (converter != null) { return converter.getAsObject(facesContext, uiComponent, (String) submittedValue); } else if (submittedValue != null) { return (String) submittedValue; } else { return null; } }
FacesContext context = FacesContext.getCurrentInstance(); vh.setConverter(converter); Object localValue = vh.getLocalValue(); if (localValue instanceof String) { try { localValue = converter.getAsObject(context, (UIComponent)vh, (String) localValue); vh.setValue(localValue);
Object value = ((ValueHolder) component).getValue(); Converter converter = ((ValueHolder) component).getConverter(); if (converter == null && value != null) { if (value instanceof String) { converter = facesContext.getApplication() .createConverter(value.getClass()); " found (component id=" + component.getId() + ").", e); return converter.getAsString(facesContext, component, value);
private Object getValue(UIComponent uiComponent) { if (uiComponent instanceof ValueHolder) { return ((ValueHolder) uiComponent).getValue(); } return uiComponent.getAttributes().get(JSFAttr.VALUE_ATTR); } }
public List<FilterMeta> populateFilterMetaData(FacesContext context, TreeTable tt) { List<FilterMeta> filterMetadata = new ArrayList<>(); String separator = String.valueOf(UINamingContainer.getSeparatorChar(context)); Map<String, String> params = context.getExternalContext().getRequestParameterMap(); for (UIColumn column : tt.getColumns()) { ValueExpression columnFilterByVE = column.getValueExpression("filterBy"); if (columnFilterByVE != null) { UIComponent filterFacet = column.getFacet("filter"); ValueExpression filterByVE = columnFilterByVE; Object filterValue = null; String filterId = null; if (column instanceof Column) { filterId = column.getClientId(context) + separator + "filter"; filterValue = (filterFacet == null) ? params.get(filterId) : ((ValueHolder) filterFacet).getLocalValue(); } else if (column instanceof DynamicColumn) { DynamicColumn dynamicColumn = (DynamicColumn) column; dynamicColumn.applyModel(); filterId = dynamicColumn.getContainerClientId(context) + separator + "filter"; filterValue = (filterFacet == null) ? params.get(filterId) : ((ValueHolder) filterFacet).getLocalValue(); dynamicColumn.cleanModel(); } filterMetadata.add(new FilterMeta(column, filterByVE, filterValue)); } } return filterMetadata; }
public void proxyChange(AjaxBehaviorEvent event) { UIComponent select = event.getComponent(); if (select instanceof ValueHolder) { proxyType = (String) ((ValueHolder) select).getValue(); } else { log.error("Bad component returned " + select); throw new AbortProcessingException("Bad component returned " + select); } Contexts.getEventContext().remove("setupParams"); FacesContext context = FacesContext.getCurrentInstance(); context.renderResponse(); }
protected void setValueProperty(UIComponent component, ValueExpression expression) { if (expression != null) { String value = expression.getExpressionString(); if (!expression.isLiteralText()) { component.setValueExpression("value", expression); } else if (component instanceof UICommand) { ((UICommand) component).setValue(value); } else if (component instanceof UIParameter) { ((UIParameter) component).setValue(value); } else if (component instanceof UISelectBoolean) { ((UISelectBoolean) component).setValue(Boolean.valueOf(value)); } else if (component instanceof UIGraphic) { ((UIGraphic) component).setValue(value); } // Since many input components are ValueHolders the special // components // must come first, ValueHolder is the last resort. else if (component instanceof ValueHolder) { ((ValueHolder) component).setValue(value); } else { component.getAttributes().put("value", value); } } }
ValueBinding vb = context.getApplication().createValueBinding(value); component.setValueBinding(org.apache.myfaces.shared_impl.renderkit.JSFAttr.VALUE_ATTR, vb); ((ValueHolder)component).setValue(value);
protected String getCurrentValue(FacesContext context, final UIComponent component) { if (component instanceof UIInput) { Object submittedValue = ((UIInput) component).getSubmittedValue(); if (submittedValue != null) { // value may not be a String... return submittedValue.toString(); } } if (component instanceof ValueHolder) { final ValueHolder valueHolder = (ValueHolder) component; final Object value = valueHolder.getValue(); final Converter converter = valueHolder.getConverter(); if (converter != null && value != null) { return converter.getAsString(context, component, value); } if (value != null) { return value.toString(); } } return null; }