public void serializationConfig() { // tag::sconfig[] StringProperty NAME = StringProperty.create("name"); // <1> VirtualProperty<String> VRT = VirtualProperty.create(String.class, pb -> "(" + pb.getValue(NAME) + ")") .name("vrt"); // <2> final PropertySet<?> PROPERTY_SET = PropertySet.builderOf(NAME, VRT).withConfiguration( JsonConfigProperties.PROPERTYBOX_SERIALIZATION_MODE, PropertyBoxSerializationMode.ALL).build(); // <3> PropertyBox propertyBox = PropertyBox.builder(PROPERTY_SET).set(NAME, "test").build(); // <4> // end::sconfig[] }
public void listingVirtual() { // tag::virtualproperty1[] final VirtualProperty<Component> EDIT = VirtualProperty.create(Component.class).message("Edit") // <1> .valueProvider( // <2> row -> Components.button().styleName(ValoTheme.BUTTON_ICON_ONLY).icon(VaadinIcons.EDIT) .onClick(e -> { Long rowId = row.getValue(ID); // <3> // perform edit action ... }).build()); PropertyListing listing = Components.listing.properties(PROPERTIES) // <4> .build(EDIT, ID, DESCRIPTION); // <5> listing = Components.listing.properties(PROPERTIES) // .build(PropertySet.builder().add(PROPERTIES).add(EDIT).build()); // <6> // end::virtualproperty1[] }
@Override public <T> VirtualPropertyColumnBuilder<T, PropertyBox, Property, C, B> withVirtualProperty(Class<T> type, String name, PropertyValueProvider<T> valueProvider) { return withVirtualProperty(VirtualProperty.create(type, valueProvider).name(name)); }