@Component(value="ui_FilterComponents")
public class FilterComponents
extends java.lang.Object
implements 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) .withEditScreenId("ui_ExtPropertyFilterCondition.edit") .build(); }The second filter component with edit screen 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 edit screen id (optional).
Modifier and Type | Field and Description |
---|---|
protected org.springframework.context.ApplicationContext |
applicationContext |
protected java.util.List<FilterComponentRegistration> |
filterComponentRegistrations |
protected io.jmix.core.Metadata |
metadata |
protected java.util.Set<FilterComponentRegistration> |
registrations |
protected ScreenBuilders |
screenBuilders |
protected WindowConfig |
windowConfig |
Constructor and Description |
---|
FilterComponents() |
Modifier and Type | Method and Description |
---|---|
void |
afterPropertiesSet() |
java.lang.Class<? extends FilterComponent> |
getComponentClass(java.lang.Class<? extends FilterCondition> modelClass)
Returns UI filter component class by model class.
|
FilterConverter<? extends FilterComponent,? extends FilterCondition> |
getConverterByComponentClass(java.lang.Class<? extends FilterComponent> componentClass,
Filter filter)
Returns a converter class by filter component class.
|
FilterConverter<? extends FilterComponent,? extends FilterCondition> |
getConverterByModelClass(java.lang.Class<? extends FilterCondition> modelClass,
Filter filter)
Returns a converter class by model class.
|
java.lang.String |
getEditScreenId(java.lang.Class<? extends FilterCondition> modelClass)
Returns a model edit screen id by model class.
|
java.lang.Class<? extends FilterCondition> |
getModelClass(java.lang.Class<? extends FilterComponent> componentClass)
Returns a model class by UI filter component class.
|
java.util.Set<java.lang.Class<? extends FilterComponent>> |
getRegisteredFilterComponentClasses() |
java.util.Set<java.lang.Class<? extends FilterCondition>> |
getRegisteredModelClasses() |
protected void |
register(FilterComponentRegistration registration) |
protected void |
registerComponents() |
protected FilterComponentRegistration |
resolveRegistrationByComponentClass(java.lang.Class<? extends FilterComponent> componentClass) |
protected FilterComponentRegistration |
resolveRegistrationByModelClass(java.lang.Class<? extends FilterCondition> modelClass) |
@Autowired(required=false) protected java.util.List<FilterComponentRegistration> filterComponentRegistrations
@Autowired protected org.springframework.context.ApplicationContext applicationContext
@Autowired protected ScreenBuilders screenBuilders
@Autowired protected WindowConfig windowConfig
@Autowired protected io.jmix.core.Metadata metadata
protected java.util.Set<FilterComponentRegistration> registrations
public void afterPropertiesSet()
afterPropertiesSet
in interface org.springframework.beans.factory.InitializingBean
public FilterConverter<? extends FilterComponent,? extends FilterCondition> getConverterByComponentClass(java.lang.Class<? extends FilterComponent> componentClass, Filter filter)
componentClass
- UI filter component classfilter
- a filter with which the converter will be usedpublic FilterConverter<? extends FilterComponent,? extends FilterCondition> getConverterByModelClass(java.lang.Class<? extends FilterCondition> modelClass, Filter filter)
modelClass
- a model classfilter
- a filter with which the converter will be usedpublic java.lang.String getEditScreenId(java.lang.Class<? extends FilterCondition> modelClass)
modelClass
- a model classpublic java.util.Set<java.lang.Class<? extends FilterComponent>> getRegisteredFilterComponentClasses()
public java.util.Set<java.lang.Class<? extends FilterCondition>> getRegisteredModelClasses()
public java.lang.Class<? extends FilterCondition> getModelClass(java.lang.Class<? extends FilterComponent> componentClass)
componentClass
- a filter component classpublic java.lang.Class<? extends FilterComponent> getComponentClass(java.lang.Class<? extends FilterCondition> modelClass)
modelClass
- a model classprotected void registerComponents()
protected void register(FilterComponentRegistration registration)
protected FilterComponentRegistration resolveRegistrationByComponentClass(java.lang.Class<? extends FilterComponent> componentClass)
protected FilterComponentRegistration resolveRegistrationByModelClass(java.lang.Class<? extends FilterCondition> modelClass)