Class FilterComponents
- All Implemented Interfaces:
org.springframework.beans.factory.InitializingBean
For instance, in the spring Configuration
class create
FilterComponentRegistration
bean.
@Configuration public class FilterComponentConfiguration { @Bean public FilterComponentRegistration registerPropertyFilterComponent() { return FilterComponentRegistrationBuilder.create(PropertyFilter.class, PropertyFilterCondition.class, PropertyFilterConverter.class) .build(); } }
Note, the order of providing FilterComponentRegistration
beans is very important
because filter components with the same filter component class or the same model class
will be filtered if they have lower priority. For instance, the configuration provides
two FilterComponentRegistration
with the same UI filter component class:
@Bean @Order(100) public FilterComponentRegistration extPropertyFilter() { return FilterComponentRegistrationBuilder.create(ExtPropertyFilter.class, ExtPropertyFilterCondition.class, ExtPropertyFilterConverter.class) .build(); } @Bean @Order(200) public FilterComponentRegistration extPropertyFilter1() { return FilterComponentRegistrationBuilder.create(ExtPropertyFilter.class, ExtPropertyFilterCondition.class, ExtPropertyFilterConverter.class) .withDetailViewId("extPropertyFilterCondition.detail") .build(); }The second filter component with detail view id will be filtered as it has a lower priority.
Another example, the configuration provides FilterComponentRegistration
that
overrides registration from some add-on. In this case, if the component from the
add-on has lower priority it will not be registered at all. It means that our filter
component registration must provide full information: UI filter component class,
model class, converter class and detail view id (optional).
-
Field Summary
Modifier and TypeFieldDescriptionprotected org.springframework.context.ApplicationContext
protected List<FilterComponentRegistration>
protected Metadata
protected Set<FilterComponentRegistration>
protected ViewRegistry
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
Class<? extends FilterComponent>
getComponentClass
(Class<? extends FilterCondition> modelClass) Returns UI filter component class by model class.FilterConverter<? extends FilterComponent,
? extends FilterCondition> getConverterByComponentClass
(Class<? extends FilterComponent> componentClass, GenericFilter filter) Returns a converter class by filter component class.FilterConverter<? extends FilterComponent,
? extends FilterCondition> getConverterByModelClass
(Class<? extends FilterCondition> modelClass, GenericFilter filter) Returns a converter class by model class.getDetailViewId
(Class<? extends FilterCondition> modelClass) Returns a model detail view id by model class.Class<? extends FilterCondition>
getModelClass
(Class<? extends FilterComponent> componentClass) Returns a model class by UI filter component class.Set<Class<? extends FilterComponent>>
Set<Class<? extends FilterCondition>>
protected void
register
(FilterComponentRegistration registration) protected void
protected FilterComponentRegistration
resolveRegistrationByComponentClass
(Class<? extends FilterComponent> componentClass) protected FilterComponentRegistration
resolveRegistrationByModelClass
(Class<? extends FilterCondition> modelClass)
-
Field Details
-
filterComponentRegistrations
-
applicationContext
@Autowired protected org.springframework.context.ApplicationContext applicationContext -
viewRegistry
-
metadata
-
registrations
-
-
Constructor Details
-
FilterComponents
public FilterComponents()
-
-
Method Details
-
afterPropertiesSet
public void afterPropertiesSet()- Specified by:
afterPropertiesSet
in interfaceorg.springframework.beans.factory.InitializingBean
-
getConverterByComponentClass
public FilterConverter<? extends FilterComponent,? extends FilterCondition> getConverterByComponentClass(Class<? extends FilterComponent> componentClass, GenericFilter filter) Returns a converter class by filter component class.- Parameters:
componentClass
- UI filter component classfilter
- a filter with which the converter will be used- Returns:
- a converter class
-
getConverterByModelClass
public FilterConverter<? extends FilterComponent,? extends FilterCondition> getConverterByModelClass(Class<? extends FilterCondition> modelClass, GenericFilter filter) Returns a converter class by model class.- Parameters:
modelClass
- a model classfilter
- a filter with which the converter will be used- Returns:
- a converter class
-
getDetailViewId
Returns a model detail view id by model class.- Parameters:
modelClass
- a model class- Returns:
- a model detail view id by model class
-
getRegisteredFilterComponentClasses
- Returns:
- a set of registered filter component classes
-
getRegisteredModelClasses
- Returns:
- a set of registered model classes
-
getModelClass
public Class<? extends FilterCondition> getModelClass(Class<? extends FilterComponent> componentClass) Returns a model class by UI filter component class.- Parameters:
componentClass
- a filter component class- Returns:
- a model class
-
getComponentClass
public Class<? extends FilterComponent> getComponentClass(Class<? extends FilterCondition> modelClass) Returns UI filter component class by model class.- Parameters:
modelClass
- a model class- Returns:
- a filter component class
-
registerComponents
protected void registerComponents() -
register
-
resolveRegistrationByComponentClass
protected FilterComponentRegistration resolveRegistrationByComponentClass(Class<? extends FilterComponent> componentClass) -
resolveRegistrationByModelClass
protected FilterComponentRegistration resolveRegistrationByModelClass(Class<? extends FilterCondition> modelClass)
-