Hi,
Today In my conversion Cuba <> Jmix, i will need access filter compoments to apply interract between them.
exemple :
if one change custom prompt of other …
Change combox mode to show all entities with scroll bar … etc
In Cuba I can access compoment by ParamEditor.class who keep link components.
In your exemple How jpqlFilter can interact with propertyFilter? could your provide us an exemple?
In waiting this part of code permit me to find real component
<propertyFilter
caption="pays"
operation="EQUAL"
parameterName="pays"
property="masterData.identite.pays">
<entityComboBox metaClass="mdm_Pays" optionsContainer="paysDc"/>
</propertyFilter>
final EntityComboBox<Pays> paysSearchField = FilterUtils.getFilterComponent(this.filter,
"pays", EntityComboBox.class);
paysSearchField.setPageLength(0);
public static <T> T getFilterComponent(final Filter filter, final String filterComponentName, final Class<T> compomentClass) {
final GroupFilter groupFilter = (GroupFilter) (((FilterImpl) filter).getComposition()).getComponents().stream()
.filter(elem -> GroupFilter.class.isAssignableFrom(elem.getClass()))
.findFirst().orElse(null);
if (null == groupFilter) {
// Filter not set
return null;
}
final SingleFilterComponent singleFilterComponent = (SingleFilterComponent) groupFilter.getFilterComponents()
.stream()
.filter(filterComponent -> SingleFilterComponent.class.isAssignableFrom(filterComponent.getClass()) &&
((SingleFilterComponent) filterComponent).getParameterName().equals(filterComponentName))
.findFirst().orElse(null);
if (null == groupFilter) {
// Filter element not found
return null;
}
return (T) singleFilterComponent.getValueComponent();
}
result
I think JMIX will be provide us a better solution,
regards
gabriel