@Override protected Class<?> getPropertyType(Property<?> property) { return property.getType(); }
/** * Get the property/column type of given property id. * @param property Property id * @return property/column type which corresponds to given property id */ protected Class<?> getPropertyColumnType(P property) { if (property != null) { if (Property.class.isAssignableFrom(property.getClass())) { return ((Property<?>) property).getType(); } } return Object.class; }
@Override public E fromModel(Integer value, Property<E> property) throws PropertyConversionException { if (value != null) { E[] values = (enumType != null) ? enumType.getEnumConstants() : property.getType().getEnumConstants(); if (value.intValue() < 0 || value.intValue() >= values.length) { throw new IllegalArgumentException("Unable to convert value to required Enum type " + ((enumType != null) ? enumType : property.getType()) + ": ordinal value " + value + " is out of range"); } return values[value.intValue()]; } return null; }
@SuppressWarnings("unchecked") @Override public Class<T> getModelType() { return (Class<T>) getProperty().getType(); }
@SuppressWarnings("unchecked") @Override public Class<V> getType() { return (Class<V>) ReflectTools.convertPrimitiveType(property.getType()); }
@Override default Optional<TemporalType> getTemporalType() { return Optional.ofNullable( getConfiguration().getTemporalType().orElse(TemporalType.getTemporalType(getType()).orElse(null))); }
/** * Checks if the type of given {@link Property} is admitted as document identifier value type. Admitted types are: * {@link String}, {@link BigInteger} and {@link ObjectId}. * @param property Property to check * @return <code>true</code> if given type is admitted as document identifier type, <code>false</code> otherwise */ @SuppressWarnings("rawtypes") private static boolean isValidDocumentIdPropertyType(Property<?> property) { final Class<?> type = property.getConverter().map(c -> (Class) c.getModelType()).orElse(property.getType()); return isAdmittedDocumentIdType(type); }
/** * Constructor * @param selectProperty Selection (and identifier) property * @param renderingMode Rendering mode */ @SuppressWarnings("unchecked") public PropertyBuilder(Property<T> selectProperty, RenderingMode renderingMode) { super(selectProperty.getType(), renderingMode); dataSourceBuilder.withProperty(selectProperty, selectProperty.getType()); dataSourceBuilder.itemIdentifier(new PropertyItemIdentifier<>(selectProperty)); itemAdapter(new PropertyBoxItemAdapter()); }
public void presenterRegistration() { // tag::presenterreg[] PropertyValuePresenter<LocalTime> myPresenter = (p, v) -> v.getHour() + "." + v.getMinute(); // <1> PropertyValuePresenterRegistry.get().register(p -> LocalTime.class.isAssignableFrom(p.getType()), myPresenter); // <2> // end::presenterreg[] }
/** * Constructor * @param selectProperty Selection (and identifier) property * @param renderingMode Rendering mode */ @SuppressWarnings("unchecked") public PropertyBuilder(Property<T> selectProperty, RenderingMode renderingMode) { super(new MultiSelectField<>(selectProperty.getType(), renderingMode)); dataSourceBuilder.withProperty(selectProperty, selectProperty.getType()); dataSourceBuilder.itemIdentifier(new PropertyItemIdentifier<>(selectProperty)); itemAdapter(new PropertyBoxItemAdapter()); }
/** * Renders a Enum value type Field * @param property Property to render * @return Field instance */ @SuppressWarnings("unchecked") protected Field<T> renderEnum(Property<? extends T> property) { Class<Enum> enumType = (Class<Enum>) property.getType(); return postProcessField(input.singleSelect(enumType).items(enumType.getEnumConstants()).asField(), property); }
/** * Renders a Enum value type Field * @param property Property to render * @return Field instance */ @SuppressWarnings("unchecked") protected Field<T> renderEnum(Property<? extends T> property) { Class<Enum> enumType = (Class<Enum>) property.getType(); return postProcessField(input.singleSelect(enumType).items(enumType.getEnumConstants()).asField(), property); }
@SuppressWarnings("unchecked") @Override public <P extends Property<?>> MultiPropertySelectInputBuilder<T> dataSource( ItemDataProvider<PropertyBox> dataProvider, Iterable<P> properties) { ObjectUtils.argumentNotNull(dataProvider, "ItemDataProvider must be not null"); ObjectUtils.argumentNotNull(properties, "Item property set must be not null"); properties.forEach(p -> dataSourceBuilder.withProperty(p, p.getType())); dataSourceBuilder.dataSource(dataProvider); dataProviderConfigured = true; return builder(); }
/** * Constructor * @param selectProperty Selection (and identifier) property * @param renderingMode Rendering mode */ @SuppressWarnings({ "unchecked", "rawtypes" }) public PropertyBuilder(Property<T> selectProperty, RenderingMode renderingMode) { super(new MultiSelectField<>(selectProperty.getType(), renderingMode)); this.selectProperty = selectProperty; itemIdentifier = new PropertyItemIdentifier(selectProperty); // use the selection property as item caption by default getInstance().setItemCaptionGenerator(value -> String.valueOf(value.getValue(selectProperty))); }
@SuppressWarnings("unchecked") @Override public <P extends Property<?>> SinglePropertySelectInputBuilder<T> dataSource( ItemDataProvider<PropertyBox> dataProvider, Iterable<P> properties) { ObjectUtils.argumentNotNull(dataProvider, "ItemDataProvider must be not null"); ObjectUtils.argumentNotNull(properties, "Item property set must be not null"); properties.forEach(p -> dataSourceBuilder.withProperty(p, p.getType())); dataSourceBuilder.dataSource(dataProvider); dataProviderConfigured = true; return builder(); }
@SuppressWarnings("unchecked") @Override protected SerializableFunction<String, ?> getCaptionFilterProvider(boolean useDefaultIfNotConfigured) { if (filterProvider == null && useDefaultIfNotConfigured) { if (getSelectProperty() != null && TypeUtils.isString(getSelectProperty().getType())) { return text -> QueryFilter.contains((TypedExpression<String>) getSelectProperty(), text, true); } } return filterProvider; }
@Override public ViewComponent render(final Property<? extends T> property) { ObjectUtils.argumentNotNull(property, "Property must be not null"); // builder @SuppressWarnings("unchecked") ViewComponentBuilder<T> builder = ViewComponent.builder(property.getType()).caption(property) .forProperty((Property) property); return builder.build(); }
@Override public ViewComponent render(final Property<? extends T> property) { ObjectUtils.argumentNotNull(property, "Property must be not null"); // builder @SuppressWarnings("unchecked") ViewComponentBuilder<T> builder = ViewComponent.builder(property.getType()).caption(property) .forProperty((Property) property); return builder.build(); }
/** * Render the property as a {@link Enum} type {@link Input}. * @param property Property to render * @return The {@link Input} instance */ @SuppressWarnings("unchecked") protected Input<T> renderEnum(Property<? extends T> property) { final Class<Enum> enumType = (Class<Enum>) property.getType(); return (Input<T>) Input.singleSelect(enumType).items(enumType.getEnumConstants()).label(property) .readOnly(property.isReadOnly()).itemCaptionGenerator(new EnumItemCaptionGenerator<>()).build(); }
public void render() { PropertyRenderer<MyRenderingType, Object> myRenderer = PropertyRenderer.create(MyRenderingType.class, p -> new MyRenderingType(p.getType())); // <2> PropertyRendererRegistry.get().register(p -> true, myRenderer); // <3> final PathProperty<Long> ID = PathProperty.create("id", Long.class); MyRenderingType rendered = ID.render(MyRenderingType.class); // <4> } // end::renderer[]