public T getModel() { return binder.getModel(); } }
@Override public void setValue(final WorkItemParameterSummary model) { this.workItemParameter.setModel(model); } }
/** * Binds the provided component to the specified property of the model instance * associated with this {@link DataBinder}. If the provided component already * participates in another binding managed by this {@link DataBinder}, a * {@link ComponentAlreadyBoundException} will be thrown. * * @param component * The UI component the model instance should be bound to, must not be * null. * @param property * The name of the model property that should be used for the * binding, following Java bean conventions. Chained (nested) * properties are supported and must be dot (.) delimited (e.g. * customer.address.street). Must not be null. * @return the same {@link DataBinder} instance to support call chaining. * @throws NonExistingPropertyException * If the {@code model} does not have a property with the given * name. * @throws InvalidPropertyExpressionException * If the provided property chain expression is invalid. * @throws ComponentAlreadyBoundException * If the provided {@code component} is already bound to a property of * the model. */ public DataBinder<T> bind(final Object component, final String property) { return bind(component, property, null); }
public T bind(T target, Map<String, String> newValues) { DataBinder binder = new DataBinder(target); binder.setAllowedFields(getAllowedFields()); binder.bind(new MutablePropertyValues(newValues)); return target; }
binder = DataBinder.forType(propertyTypes.get(bindableProperty).getType()); binder = DataBinder.forModel(proxy.get(bindableProperty)); binder.addPropertyChangeHandler("**", handler); binder.setModel(proxy.get(bindableProperty), initialState, true); proxy.set(bindableProperty, binder.getModel()); knownValues.put(bindableProperty, binder.getModel()); ((BindableProxy<?>) binder.getModel()).getBindableProxyAgent().createNestedBinder(property.substring(property.indexOf('.')+1), initialState);
if (nestedBinder == null) { if (propertyType instanceof MapPropertyType) { nestedBinder = DataBinder.forMap(((MapPropertyType) propertyType).getPropertyTypes()); nestedBinder = DataBinder.forModel(value); final MapBindableProxy mapProxy = new MapBindableProxy(((MapPropertyType) propertyType).getPropertyTypes()); mapProxy.agent.target = (Map<String, Object>) value; nestedBinder.setModel(mapProxy, StateSync.FROM_MODEL, true); nestedBinder.setModel(value, StateSync.FROM_MODEL, true); value = nestedBinder.getModel();
@PostConstruct public void init() { searchRequest.setModel(new CaseMilestoneSearchRequest(), StateSync.FROM_MODEL); searchRequest.addPropertyChangeHandler( e -> presenter.searchCaseMilestones() ); onSortAlphaDesc(null); }
BindableProxy proxy = (BindableProxy) binder.getModel(); binder.bind(widget, formField.getFieldBinding(), valueConverter, newValue)); } else { PropertyChangeUnsubscribeHandle unsubscribeHandle = binder.addPropertyChangeHandler(formField.getFieldBinding(), event -> fieldChangeManager.processFieldChange(fieldName, event.getNewValue(), binder.getModel())); unsubscribeHandlers.add(unsubscribeHandle);
@Override public MapBindableProxy getProxyForModel(Map<String, Object> model) { Map<String, Object> content = DataBinder.forMap(dynamicDefinition.getPropertyTypes()).getModel(); helper.prepareMapContent(content, context.getAvailableForms().get(field.getCreationForm()), model, context); return (MapBindableProxy) content; }
private Binding bindNestedProperty(final Object component, final String property, final Converter<?, ?> converter, final Function<BindableProxyAgent<?>, Supplier<Map<Class<? extends GwtEvent>, HandlerRegistration>>> registrar, final Optional<Supplier<Object>> uiGetter, final StateSync initialState) { final DataBinder nestedBinder = createNestedBinder(property, initialState); final String subProperty = property.substring(property.indexOf('.') + 1); final BindableProxyAgent<?> nestedAgent = ((BindableProxy<?>) nestedBinder.getModel()).getBindableProxyAgent(); nestedBinder.addBinding(subProperty, nestedAgent.bindHelper(component, subProperty, converter, registrar, uiGetter, initialState)); final Binding binding = new Binding(property, component, converter, null); bindings.put(property, binding); return binding; }
/** * Creates a {@link DataBinder} for a new model instance of the provided type. * * @param modelType * The bindable type, must not be null. */ public static <T> DataBinder<T> forType(final Class<T> modelType) { return new DataBinder<>(modelType); }
if (dotPos > 0) { final DataBinder nested = createNestedBinder(property, StateSync.FROM_MODEL); unsubHandles.add(nested.addPropertyChangeHandler(property.substring(dotPos + 1), handler)); unsubHandles.add(nested.addPropertyChangeHandler(property, handler));
private void bindJSONToObject(Object obj, String json) throws IOException, JsonProcessingException { MutablePropertyValues mpv = new MutablePropertyValues(); JsonNode rootNode = new ObjectMapper().readTree(json); for (Iterator<Entry<String, JsonNode>> iter = rootNode.getFields(); iter.hasNext(); ) { Entry<String, JsonNode> entry = iter.next(); String name = entry.getKey(); JsonNode node = entry.getValue(); if (node.isArray()) { List<String> values = new ArrayList<String>(); for (JsonNode elem : node) { values.add(elem.getTextValue()); } mpv.addPropertyValue(name, values); if (logger.isDebugEnabled()) { logger.debug(name + "=" + ArrayUtils.toString(values)); } } else { mpv.addPropertyValue(name, node.getTextValue()); if (logger.isDebugEnabled()) { logger.debug(name + "=" + node.getTextValue()); } } } DataBinder dataBinder = new DataBinder(obj); dataBinder.bind(mpv); }
/** * Unbinds all widgets bound by previous calls to * {@link #bind(HasValue, Object, String)} and all * {@link PropertyChangeHandler handlers} bound by previous calls to * {@link #addPropertyChangeHandler(PropertyChangeHandler)}. * * @return the same {@link DataBinder} instance to support call chaining. */ public DataBinder<T> unbind() { return unbind(true); }
protected DataBinder<T> getBinderForModel(T model) { return DataBinder.forModel(model); }
binder = DataBinder.forType(propertyTypes.get(bindableProperty).getType()); binder = DataBinder.forModel(proxy.get(bindableProperty)); binder.addPropertyChangeHandler("**", handler); binder.setModel(proxy.get(bindableProperty), initialState, true); proxy.set(bindableProperty, binder.getModel()); knownValues.put(bindableProperty, binder.getModel()); ((BindableProxy<?>) binder.getModel()).getBindableProxyAgent().createNestedBinder(property.substring(property.indexOf('.')+1), initialState);