EditableValueHolder input = (EditableValueHolder) component; SavedState state = null; String clientId = component.getClientId(context); state.setValue(input.getLocalValue()); state.setValid(input.isValid()); state.setSubmittedValue(input.getSubmittedValue()); state.setLocalValueSet(input.isLocalValueSet()); for (UIComponent uiComponent : component.getChildren()) { saveDescendantState(uiComponent, context); if (component.getFacetCount() > 0) { for (UIComponent facet : component.getFacets().values()) { saveDescendantState(facet, context);
private void restoreDescendantState(UIComponent component, FacesContext context) { //force id reset String id = component.getId(); component.setId(id); Map<String, SavedState> saved = (Map<String, SavedState>) getStateHelper().get(PropertyKeys.saved); if (component instanceof EditableValueHolder) { EditableValueHolder input = (EditableValueHolder) component; String clientId = component.getClientId(context); SavedState state = saved.get(clientId); if (state == null) { state = new SavedState(); } input.setValue(state.getValue()); input.setValid(state.isValid()); input.setSubmittedValue(state.getSubmittedValue()); input.setLocalValueSet(state.isLocalValueSet()); } for (UIComponent kid : component.getChildren()) { restoreDescendantState(kid, context); } if (component.getFacetCount() > 0) { for (UIComponent facet : component.getFacets().values()) { restoreDescendantState(facet, context); } } }
ResponseWriter writer = context.getResponseWriter(); UIComponent comp = (UIComponent) component; String message = "Skip rendering of CSV metadata for component \"" + comp.getClientId(context) + "\" because" + " the ValueExpression of the \"value\" attribute" + " isn't resolvable completely (e.g. a sub-expression returns null)"; Map<String, Object> attrs = comp.getAttributes(); Object label = attrs.get("label"); Object requiredMessage = attrs.get("requiredMessage"); if (component.isRequired()) { writer.writeAttribute(HTML.VALIDATION_METADATA.REQUIRED, "true", null); Validator[] validators = component.getValidators(); if (validators != null) { for (Validator validator : validators) {
public void populate(EditableValueHolder evh) { value = evh.getLocalValue(); valid = evh.isValid(); submittedValue = evh.getSubmittedValue(); localValueSet = evh.isLocalValueSet(); }
public void restoreState(EditableValueHolder evh) { evh.setValue(value); evh.setValid(valid); evh.setSubmittedValue(submittedValue); evh.setLocalValueSet(localValueSet); }
public void decode(FacesContext facesContext, UIComponent uiComponent) { validateParameters(facesContext, uiComponent, null); if (isStatic(uiComponent)) { return; } Map requestParameterMap = facesContext.getExternalContext().getRequestParameterMap(); String componentClientId = uiComponent.getClientId(facesContext); String decodedValue = requestParameterMap.containsKey(componentClientId) ? "true" : "false"; ((EditableValueHolder) uiComponent).setSubmittedValue(decodedValue); }
Object submittedValue = ((EditableValueHolder)component).getSubmittedValue(); if (submittedValue != null) if(holder.isLocalValueSet()) { value = holder.getLocalValue(); } else { value = getValue(component); Converter converter = ((ValueHolder)component).getConverter(); if (converter == null && value != null) converter = facesContext.getApplication().createConverter(value.getClass()); if (log.isLoggable(Level.FINE)) log.fine("the created converter is " + converter); log.log(Level.SEVERE, "No converter for class " + value.getClass().getName() + " found (component id=" + component.getId() + ").", e);
@Override public void processEvent(ComponentSystemEvent event) throws AbortProcessingException { super.processEvent(event); if (event instanceof PostAddToViewEvent) { FacesContext facesContext = FacesContext.getCurrentInstance(); EditableValueHolder component = (EditableValueHolder) event.getComponent(); Validator validator = facesContext.getApplication().createValidator(SelectLabelValueValidator.ID); component.addValidator(validator); } }
Object submittedValue = ((EditableValueHolder) component).getSubmittedValue(); if (submittedValue != null) { return submittedValue.toString(); Object value = valueHolder.getValue(); if (value == null) return ""; if (valueHolder.getConverter() != null) { return valueHolder.getConverter().getAsString(facesContext, component, value); ValueExpression expr = component.getValueExpression("value"); if (expr != null) { Class<?> valueType = expr.getType(facesContext.getELContext()); if (valueType != null) { Converter converterForType = facesContext.getApplication().createConverter(valueType);
public void applyMetadata(FaceletContext ctx, Object instance) { ((EditableValueHolder) instance).addValidator(ctx.getFacesContext().getApplication() .createValidator(this.validatorId)); } }
Object submittedValue = ((EditableValueHolder) component).getSubmittedValue(); if (submittedValue != null) { return submittedValue.toString(); 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."); return (String) component.getAttributes().get("alt");
/** * X-CHECKED: tlddoc h:selectManyListbox * * @param facesContext * @param component */ public static void decodeUISelectMany(FacesContext facesContext, UIComponent component) { if (!(component instanceof EditableValueHolder)) { throw new IllegalArgumentException("Component " + component.getClientId(facesContext) + " is not an EditableValueHolder"); } Map paramValuesMap = facesContext.getExternalContext() .getRequestParameterValuesMap(); String clientId = component.getClientId(facesContext); if(isDisabledOrReadOnly(component)) return; if (paramValuesMap.containsKey(clientId)) { String[] reqValues = (String[]) paramValuesMap.get(clientId); ((EditableValueHolder) component).setSubmittedValue(reqValues); } else { /* request parameter not found, nothing to decode - set submitted value to an empty array as we should get here only if the component is on a submitted form, is rendered and if the component is not readonly or has not been disabled. So in fact, there must be component value at this location, but for listboxes, comboboxes etc. the submitted value is not posted if no item is selected. */ ((EditableValueHolder) component).setSubmittedValue( new String[]{}); } }
Object submittedValue = input.getSubmittedValue(); PrimeConfiguration config = PrimeApplicationContext.getCurrentInstance(context).getConfig(); && !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);
LogUtil.warning("JSFT0009", (Object) parent.getId()); if (id != null) { Application app = context.getApplication(); validator = app.createValidator(id); if ((validator != null) && (binding != null)) { ELContext elctx = context.getELContext(); ValueExpression ve = app.getExpressionFactory().createValueExpression(elctx, binding, Object.class); ve.setValue(elctx, validator); throw new IllegalArgumentException("You may only add " + "f:validator tags to components which are " + "EditableValueHolders. Component (" + parent.getId() + ") is not an EditableValueHolder."); ((EditableValueHolder) parent).addValidator(validator);
((EditableValueHolder) component).getSubmittedValue(); if (submittedValue != null) { if (submittedValue instanceof String) { 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);
public void retarget(FacesContext ctx, CompCompInterfaceMethodMetadata metadata, Object sourceValue, UIComponent target) { ValueExpression ve = (ValueExpression) sourceValue; ExpressionFactory f = ctx.getApplication().getExpressionFactory(); MethodExpression me = f.createMethodExpression(ctx.getELContext(), ve.getExpressionString(), Void.TYPE, VALIDATOR_ARGS); ((EditableValueHolder) target).addValidator( new MethodExpressionValidator( new ContextualCompositeMethodExpression(ve, me))); }
private void addDefaultValidators(final FacesContext context, final EditableValueHolder component) { final TobagoConfigImpl tobagoConfig = (TobagoConfigImpl) TobagoConfig.getInstance(context); final Map<String, String> validatorInfoMap = tobagoConfig.getDefaultValidatorInfo(); if (validatorInfoMap.isEmpty()) { return; } final Validator[] validators = component.getValidators(); if (validators.length > 0) { final Set<String> classNames = new HashSet<>(); // collect classNames of validators for (final Validator validator : validators) { classNames.add(validator.getClass().getName()); } validatorInfoMap.forEach((key, value) -> { if (!classNames.contains(value)) { component.addValidator(context.getApplication().createValidator(key)); } }); } else { for (final String next : validatorInfoMap.keySet()) { component.addValidator(context.getApplication().createValidator(next)); } } } }
public void decode(FacesContext context, UIComponent component) { if (isDisabledOrReadOnly(component)) { return; } Map params = context.getExternalContext().getRequestParameterMap(); String text = (String) params.get(getTextId(component, context)); String choice = (String) params.get(getChoiceId(component, context)); if (choice != null) { ( (EditableValueHolder) component).setSubmittedValue(choice); if (choice.equals(NEW_TEXT_KEY)) { Map choices = getChoices(component); choices.put(NEW_TEXT_KEY, text); } } }
@Override public void decode(final FacesContext facesContext, final UIComponent component) { if (ComponentUtils.isOutputOnly(component)) { return; } super.decode(facesContext, component); final String actionId = ComponentUtils.findPage(facesContext, component).getActionId(); if (actionId != null && actionId.equals(component.getClientId(facesContext) + CHANGE_BUTTON)) { final boolean state = ComponentUtils.getBooleanAttribute(component, Attributes.STATE_PREVIEW); component.getAttributes().put(Attributes.STATE_PREVIEW, !state); facesContext.renderResponse(); } ((EditableValueHolder) component).setValid(true); }
public static String currentValue(final UIComponent component) { String currentValue = null; if (component instanceof ValueHolder) { Object value; if (component instanceof EditableValueHolder) { value = ((EditableValueHolder) component).getSubmittedValue(); if (value != null) { return (String) value; } } value = ((ValueHolder) component).getValue(); if (value != null) { currentValue = ComponentUtils.getFormattedValue(FacesContext.getCurrentInstance(), component, value); } } return currentValue; }