Class JpqlFilter<V>
java.lang.Object
com.vaadin.flow.component.Component
com.vaadin.flow.component.AbstractField<com.vaadin.flow.component.customfield.CustomField<T>,T>
com.vaadin.flow.component.customfield.CustomField<V>
io.jmix.flowui.component.filter.SingleFilterComponentBase<V>
io.jmix.flowui.component.jpqlfilter.JpqlFilter<V>
- Type Parameters:
V
- value type
- All Implemented Interfaces:
com.vaadin.flow.component.AttachNotifier
,com.vaadin.flow.component.BlurNotifier<com.vaadin.flow.component.customfield.CustomField<V>>
,com.vaadin.flow.component.DetachNotifier
,com.vaadin.flow.component.Focusable<com.vaadin.flow.component.customfield.CustomField<V>>
,com.vaadin.flow.component.FocusNotifier<com.vaadin.flow.component.customfield.CustomField<V>>
,com.vaadin.flow.component.HasElement
,com.vaadin.flow.component.HasEnabled
,com.vaadin.flow.component.HasHelper
,com.vaadin.flow.component.HasLabel
,com.vaadin.flow.component.HasSize
,com.vaadin.flow.component.HasStyle
,com.vaadin.flow.component.HasTheme
,com.vaadin.flow.component.HasValidation
,com.vaadin.flow.component.HasValue<com.vaadin.flow.component.AbstractField.ComponentValueChangeEvent<com.vaadin.flow.component.customfield.CustomField<V>,
,V>, V> com.vaadin.flow.component.HasValueAndElement<com.vaadin.flow.component.AbstractField.ComponentValueChangeEvent<com.vaadin.flow.component.customfield.CustomField<V>,
,V>, V> com.vaadin.flow.component.shared.HasTooltip
,com.vaadin.flow.component.shared.HasValidationProperties
,FilterComponent
,SingleFilterComponent<V>
,HasRequired
,SupportsLabelPosition
,SupportsValidation<V>
,Serializable
,org.springframework.beans.factory.Aware
,org.springframework.beans.factory.InitializingBean
,org.springframework.context.ApplicationContextAware
JpqlFilter is a UI component used for filtering entities returned by the
DataLoader
.
The component contains JPQL expressions that will be added to the 'from' and 'where' data
loader query sections. The component can automatically render proper layout for setting a
condition value. In general case a JpqlFilter layout contains a label and a field for
editing a condition value.- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class com.vaadin.flow.component.AbstractField
com.vaadin.flow.component.AbstractField.ComponentValueChangeEvent<C extends com.vaadin.flow.component.Component,
V extends Object> Nested classes/interfaces inherited from interface com.vaadin.flow.component.BlurNotifier
com.vaadin.flow.component.BlurNotifier.BlurEvent<C extends com.vaadin.flow.component.Component>
Nested classes/interfaces inherited from interface com.vaadin.flow.component.FocusNotifier
com.vaadin.flow.component.FocusNotifier.FocusEvent<C extends com.vaadin.flow.component.Component>
Nested classes/interfaces inherited from interface com.vaadin.flow.component.HasValue
com.vaadin.flow.component.HasValue.ValueChangeEvent<V extends Object>, com.vaadin.flow.component.HasValue.ValueChangeListener<E extends com.vaadin.flow.component.HasValue.ValueChangeEvent<?>>
Nested classes/interfaces inherited from interface io.jmix.flowui.component.SupportsLabelPosition
SupportsLabelPosition.LabelPosition
-
Field Summary
Modifier and TypeFieldDescriptionprotected boolean
protected String
protected static final String
protected JpqlFilterSupport
protected Class<?>
protected String
protected String
Fields inherited from class io.jmix.flowui.component.filter.SingleFilterComponentBase
applicationContext, autoApply, conditionModificationDelegated, dataLoader, FILTER_LABEL_CLASS_NAME, label, labelDelegate, labelPosition, labelText, labelVisible, labelWidth, queryCondition, root, uiComponents, valueComponent
Fields inherited from interface io.jmix.flowui.component.HasRequired
PROPERTY_REQUIRED
Fields inherited from interface io.jmix.flowui.component.SupportsValidation
PROPERTY_ERROR_MESSAGE
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionprotected void
protected JpqlCondition
getJoin()
Returns a JPQL expression which will be added to the 'from' data loader query section.Class<?>
getWhere()
Returns a JPQL expression which will be added to the 'where' data loader query section.boolean
protected void
initRootComponent
(com.vaadin.flow.component.orderedlayout.HorizontalLayout root) protected void
void
setCondition
(String where, String join) Sets JPQL expressions which will be added to the data loader query 'from' and 'where' sections.void
setHasInExpression
(boolean hasInExpression) Sets whether the query condition has an IN expression and the value is a collection.void
setParameterClass
(Class<?> parameterClass) Sets a Java class of the associated query parameter.void
setParameterName
(String parameterName) Sets the name of the associated query parameter name.protected void
updateQueryCondition
(V newValue) Methods inherited from class io.jmix.flowui.component.filter.SingleFilterComponentBase
addValidator, afterPropertiesSet, apply, blur, checkValueComponentState, createLabel, createRootComponent, executeValidators, focus, generateModelValue, getDataLoader, getLabel, getLabelPosition, getLabelWidth, getRequiredMessage, getRoot, getValueComponent, initComponent, initValueComponent, isAutoApply, isConditionModificationDelegated, isInvalid, isLabelVisible, onFieldInvalidChanged, onFieldStatusChanged, onFieldValueChanged, onFilterValueChanged, setApplicationContext, setAutoApply, setConditionModificationDelegated, setDataLoader, setInvalid, setLabel, setLabelDelegate, setLabelInternal, setLabelPosition, setLabelVisible, setLabelWidth, setPresentationValue, setReadOnly, setRequired, setRequiredMessage, setTabIndex, setupLoaderFirstResult, setValueComponent, setWidth, updateChildAlignment, updateDataLoaderCondition, updateLabelLayout
Methods inherited from class com.vaadin.flow.component.customfield.CustomField
add, addThemeVariants, onAttach, remove, removeThemeVariants, updateValue
Methods inherited from class com.vaadin.flow.component.AbstractField
addValueChangeListener, getEmptyValue, getValue, isEmpty, setModelValue, setValue, valueEquals
Methods inherited from class com.vaadin.flow.component.Component
addListener, findAncestor, fireEvent, from, get, getChildren, getElement, getEventBus, getId, getListeners, getLocale, getParent, getTranslation, getTranslation, getTranslation, getTranslation, getTranslation, getTranslation, getUI, hasListener, isAttached, isTemplateMapped, isVisible, onDetach, onEnabledStateChanged, removeFromParent, scrollIntoView, scrollIntoView, set, setElement, setId, setVisible
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface com.vaadin.flow.component.AttachNotifier
addAttachListener
Methods inherited from interface com.vaadin.flow.component.BlurNotifier
addBlurListener
Methods inherited from interface com.vaadin.flow.component.DetachNotifier
addDetachListener
Methods inherited from interface com.vaadin.flow.component.Focusable
addFocusShortcut, getTabIndex
Methods inherited from interface com.vaadin.flow.component.FocusNotifier
addFocusListener
Methods inherited from interface com.vaadin.flow.component.HasElement
getElement
Methods inherited from interface com.vaadin.flow.component.HasEnabled
isEnabled, setEnabled
Methods inherited from interface com.vaadin.flow.component.HasHelper
getHelperComponent, getHelperText, setHelperComponent, setHelperText
Methods inherited from interface io.jmix.flowui.component.HasRequired
isRequired
Methods inherited from interface com.vaadin.flow.component.HasSize
getHeight, getHeightUnit, getMaxHeight, getMaxWidth, getMinHeight, getMinWidth, getWidth, getWidthUnit, setHeight, setHeight, setHeightFull, setMaxHeight, setMaxHeight, setMaxWidth, setMaxWidth, setMinHeight, setMinHeight, setMinWidth, setMinWidth, setSizeFull, setSizeUndefined, setWidth, setWidthFull
Methods inherited from interface com.vaadin.flow.component.HasStyle
addClassName, addClassNames, getClassName, getClassNames, getStyle, hasClassName, removeClassName, removeClassNames, setClassName, setClassName
Methods inherited from interface com.vaadin.flow.component.HasTheme
addThemeName, addThemeNames, getThemeName, getThemeNames, hasThemeName, removeThemeName, removeThemeNames, setThemeName, setThemeName
Methods inherited from interface com.vaadin.flow.component.shared.HasTooltip
getTooltip, setTooltipText
Methods inherited from interface com.vaadin.flow.component.HasValue
clear, getOptionalValue
Methods inherited from interface com.vaadin.flow.component.HasValueAndElement
isReadOnly, isRequiredIndicatorVisible, setRequiredIndicatorVisible
Methods inherited from interface io.jmix.flowui.component.SupportsValidation
getErrorMessage, setErrorMessage
-
Field Details
-
JPQL_FILTER_CLASS_NAME
- See Also:
-
jpqlFilterSupport
-
parameterName
-
parameterClass
-
where
-
join
-
hasInExpression
protected boolean hasInExpression
-
-
Constructor Details
-
JpqlFilter
public JpqlFilter()
-
-
Method Details
-
autowireDependencies
protected void autowireDependencies()- Overrides:
autowireDependencies
in classSingleFilterComponentBase<V>
-
initRootComponent
protected void initRootComponent(com.vaadin.flow.component.orderedlayout.HorizontalLayout root) - Overrides:
initRootComponent
in classSingleFilterComponentBase<V>
-
createQueryCondition
- Specified by:
createQueryCondition
in classSingleFilterComponentBase<V>
-
getInnerComponentPrefix
- Specified by:
getInnerComponentPrefix
in classSingleFilterComponentBase<V>
-
getQueryCondition
- Specified by:
getQueryCondition
in interfaceFilterComponent
- Overrides:
getQueryCondition
in classSingleFilterComponentBase<V>
- Returns:
- a
JpqlCondition
related to the current JpqlFilter
-
updateQueryCondition
- Specified by:
updateQueryCondition
in classSingleFilterComponentBase<V>
-
getParameterName
- Returns:
- the name of the associated query parameter name
-
setParameterName
Description copied from interface:SingleFilterComponent
Sets the name of the associated query parameter name.- Parameters:
parameterName
- a name of the associated query parameter name
-
getParameterClass
- Returns:
- a Java class of the associated query parameter
-
setParameterClass
Sets a Java class of the associated query parameter.- Parameters:
parameterClass
- a Java class of the associated query parameter
-
getWhere
Returns a JPQL expression which will be added to the 'where' data loader query section.The
{E}
placeholder should be used in the expression instead of the alias of the entity being selected. The condition can only have one parameter denoted by?
if used.Example of selecting Car entities by an attribute of the joined Repair collection:
r.description like ?
- Returns:
- a JPQL expression which will be added to the 'where' data loader query section
- See Also:
-
getJoin
Returns a JPQL expression which will be added to the 'from' data loader query section.This can be required to create a complex condition based on an attribute of a related collection. The expression should be started with
join
orleft join
statements.The
{E}
placeholder should be used in the expression instead of the alias of the entity being selected.Example of joining the Repair collection when selecting Car entities:
join {E}.repairs r
- Returns:
- a JPQL expression which will be added to the 'from' data loader query section
- See Also:
-
setCondition
Sets JPQL expressions which will be added to the data loader query 'from' and 'where' sections.- Parameters:
where
- a JPQL expression which will be added to the 'where' data loader query sectionjoin
- a JPQL expression which will be added to the 'from' data loader query section- See Also:
-
hasInExpression
public boolean hasInExpression()- Returns:
- whether the query condition has an IN expression and the value is a collection
-
setHasInExpression
public void setHasInExpression(boolean hasInExpression) Sets whether the query condition has an IN expression and the value is a collection.- Parameters:
hasInExpression
- whether the query condition has an IN expression
-
resetQueryCondition
protected void resetQueryCondition()
-