@Override public Object getId(T item) { Object itemId = idGetter.apply(item); assert itemId != null : "CallbackDataProvider got null as an id for item: " + item; return itemId; } }
@Override protected String getItemKey(T item) { if (keyMapper == null) { return null; } return keyMapper.apply(item); }
@Override public boolean has(V o) { return objectIdKeyMap.containsKey(identifierGetter.apply(o)); }
/** * Removes object from the mapper. * * @param removeobj * the object to be removed. */ @Override public void remove(V removeobj) { final String key = objectIdKeyMap .remove(identifierGetter.apply(removeobj)); if (key != null) { keyObjectMap.remove(key); } }
@Override public void refresh(V dataObject) { Object id = identifierGetter.apply(dataObject); String key = objectIdKeyMap.get(id); if (key != null) { keyObjectMap.put(key, dataObject); } }
@Override public void setIdentifierGetter(ValueProvider<V, Object> identifierGetter) { if (this.identifierGetter != identifierGetter) { this.identifierGetter = identifierGetter; objectIdKeyMap.clear(); for (Map.Entry<String, V> entry : keyObjectMap.entrySet()) { objectIdKeyMap.put(identifierGetter.apply(entry.getValue()), entry.getKey()); } } } }
@Override protected String createKey() { return Optional.ofNullable(uniqueKeyProviderSupplier.get()) .map(provider -> provider.apply(object)) .orElse(super.createKey()); } };
private void addItemsRecursively(Collection<T> items, ValueProvider<T, Collection<T>> childItemProvider) { items.forEach(item -> { Collection<T> childItems = childItemProvider.apply(item); addItems(item, childItems); addItemsRecursively(childItems, childItemProvider); }); } }
@Override public ValueProvider<T, V> getGetter() { return bean -> { Method readMethod = getDescriptor().getReadMethod(); Object value = invokeWrapExceptions(readMethod, parent.getGetter().apply(bean)); return getType().cast(value); }; }
@Override public void read(BEAN bean) { field.setValue(convertToFieldType(getter.apply(bean))); }
private void generateTreeData(T item, JsonObject jsonObject) { Optional.ofNullable(getParentItem(item)) .ifPresent(parent -> jsonObject.put("parentUniqueKey", uniqueKeyProviderSupplier.get().apply(parent))); }
@Override public Component createComponent(SOURCE item) { return new Span(getFormattedValue(valueProvider.apply(item))); }
@Override public String apply(T source) { return StringValuePresenter.getDefault().present(provider.apply(source)); }
@Override public ItemListingColumnBuilder<PropertyBox, Property<?>, PropertyListing, DatastorePropertyListingBuilder> withComponentColumn( ValueProvider<PropertyBox, Component> valueProvider) { ObjectUtils.argumentNotNull(valueProvider, "ValueProvider must be not null"); return withComponentColumn(VirtualProperty.create(Component.class, item -> valueProvider.apply(item))); }
@Override public ItemListingColumnBuilder<PropertyBox, Property<?>, PropertyListing, PropertyListingBuilder> withComponentColumn( ValueProvider<PropertyBox, Component> valueProvider) { ObjectUtils.argumentNotNull(valueProvider, "ValueProvider must be not null"); return withComponentColumn(VirtualProperty.create(Component.class, item -> valueProvider.apply(item))); }
@Override public <X> ItemListingColumnBuilder<PropertyBox, Property<?>, PropertyListing, DatastorePropertyListingBuilder> withColumn( ValueProvider<PropertyBox, X> valueProvider) { ObjectUtils.argumentNotNull(valueProvider, "ValueProvider must be not null"); return withColumn(VirtualProperty.create(Object.class, item -> valueProvider.apply(item))); }
@Override public <X> ItemListingColumnBuilder<PropertyBox, Property<?>, PropertyListing, PropertyListingBuilder> withColumn( ValueProvider<PropertyBox, X> valueProvider) { ObjectUtils.argumentNotNull(valueProvider, "ValueProvider must be not null"); return withColumn(VirtualProperty.create(Object.class, item -> valueProvider.apply(item))); }
@Override public Component createComponent(SOURCE item) { NativeButton button = new NativeButton(getValueProvider().apply(item)); button.addClickListener(event -> getItemClickListeners() .forEach(listener -> listener.onItemClicked(item))); return button; }
/** * Creates an empty list. */ public IronList() { dataGenerator.addDataGenerator( (item, jsonObject) -> renderer.getValueProviders() .forEach((property, provider) -> jsonObject.put( property, JsonSerializer.toJson(provider.apply(item))))); template = new Element("template"); getElement().appendChild(template); setRenderer(String::valueOf); }
public void setParentRequestedRange(int start, int length, T parentItem) { String parentKey = uniqueKeyProviderSupplier.get().apply(parentItem); HierarchicalCommunicationController<T> controller = dataControllers .computeIfAbsent(parentKey, key -> new HierarchicalCommunicationController<>( parentKey, getKeyMapper(), mapper, dataGenerator, size -> arrayUpdater .startUpdate(getDataProviderSize()), (pkey, range) -> mapper.fetchChildItems( getKeyMapper().get(pkey), range))); controller.setRequestRange(start, length); requestFlush(controller); }