Изменение поведения фильтра

Здравствуйте, переводим старый проект с cuba на jmix.
В этом проекте мы изменяли стандартное поведение фильтра. К примеру

Cuba:

class FilterParam (
    builder: Param.Builder
) : Param(builder) {

    override fun createEntityLookup(filterDataContext: FilterDataContext, valueProperty: ValueProperty): Component {
        if (property?.javaType == SomeEntity::class.java) {
            return createSuggestionPickerFieldForSomeEntity(valueProperty)
        }

        return super.createEntityLookup(filterDataContext, valueProperty)
    }
    ...
}

И

class OpManager : OpManagerImpl() {

    override fun availableOps(javaClass: Class<*>?): EnumSet<Op> {
        if (timeClasses.contains(javaClass))
            return EnumSet.of(Op.EQUAL, Op.NOT_EQUAL, Op.GREATER, Op.GREATER_OR_EQUAL, Op.LESSER, Op.LESSER_OR_EQUAL, Op.NOT_EMPTY)
        else if (javaClass == SomeEntity::class.java) {
            return EnumSet.of(Op.EQUAL, Op.NOT_EQUAL, Op.NOT_EMPTY)
        }

        return super.availableOps(javaClass)
    }
}

Не подскажите как перевести данное поведение на jmix?

Для Param#createEntityLookup из кубы экстендим PropertyFilterComponentGenerationStrategy#createEntityField
Для OpManagerImpl#availableOps из кубы экстендим PropertyFilterSupport#getAvailableOperations

1 симпатия