Class ObjectGetField<T extends StoredObject>
- Type Parameters:
T
- Type of object instance accepted.
- All Implemented Interfaces:
FilterMethods<T>
,ObjectGetter<T>
,ObjectSetter<T>
,ObjectInput<T>
,ObjectProvider<T>
,AbstractObjectInput<T>
,HasElement
,HasThemeStyle
,ValueRequired
,com.vaadin.flow.component.AttachNotifier
,com.vaadin.flow.component.BlurNotifier<com.vaadin.flow.component.customfield.CustomField<T>>
,com.vaadin.flow.component.DetachNotifier
,com.vaadin.flow.component.Focusable<com.vaadin.flow.component.customfield.CustomField<T>>
,com.vaadin.flow.component.FocusNotifier<com.vaadin.flow.component.customfield.CustomField<T>>
,com.vaadin.flow.component.HasElement
,com.vaadin.flow.component.HasEnabled
,com.vaadin.flow.component.HasHelper
,com.vaadin.flow.component.HasLabel
,com.vaadin.flow.component.HasPlaceholder
,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<T>,
,T>, T> com.vaadin.flow.component.HasValueAndElement<com.vaadin.flow.component.AbstractField.ComponentValueChangeEvent<com.vaadin.flow.component.customfield.CustomField<T>,
,T>, T> com.vaadin.flow.component.shared.HasTooltip
,com.vaadin.flow.component.shared.HasValidationProperties
,com.vaadin.flow.component.shared.InputField<com.vaadin.flow.component.AbstractField.ComponentValueChangeEvent<com.vaadin.flow.component.customfield.CustomField<T>,
,T>, T> Serializable
,Consumer<T>
- Direct Known Subclasses:
BinField
,ItemField
,ItemGetField
,ItemTypeGetField
,ObjectSearcherField
StoredObject
s that are searchable using some keywords.
In order to make a StoredObject
searchable using keywords, it should at least implement
a static get(String keywords) method that returns a matching instance.
Example: Person.get(String)
.
Also, it is recommended to implement a static list(String keywords) method that returns an
iterator of all matching instances. Example: Person.list(String)
.
Some classes are specific to a particular SystemEntity
instance and such classes should implement
static get and list methods that take a SystemEntity
as the first parameter and
keywords ad the second parameter. Example: InventoryStore.get(SystemEntity, String)
,
InventoryStore.list(SystemEntity, String)
Even if a StoredObject
class is not providing the required "get" and "list" methods for
supporting this field, it is still possible to create one by passing an implementation for the
ObjectGetField.GetProvider
interface as the parameter.
- Author:
- Syam
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic interface
ObjectGetField.GetProvider<O extends StoredObject>
TheObjectGetField
requires a "get provider" to provide objects or list of objects based on a search text.static class
ObjectGetField.GetSupplier<O extends StoredObject>
Implementation ofObjectGetField.GetProvider
for normalStoredObject
classes.static class
ObjectGetField.GetTypedSupplier<O extends StoredObject>
Implementation ofObjectGetField.GetProvider
forStoredObject
classes where additional type information is required (For example,InventoryItem
requires an instance of theInventoryItemType
while searching in order to narrow down the search).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> 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>, com.vaadin.flow.component.HasValue.ValueChangeListener<E extends com.vaadin.flow.component.HasValue.ValueChangeEvent<?>>
-
Constructor Summary
ConstructorsConstructorDescriptionObjectGetField
(Class<T> objectClass) Constructor.ObjectGetField
(Class<T> objectClass, boolean allowAny) Constructor.ObjectGetField
(String label, Class<T> objectClass) Constructor.ObjectGetField
(String label, Class<T> objectClass, boolean allowAny) Constructor.ObjectGetField
(String label, Class<T> objectClass, boolean allowAny, boolean allowAdd) Constructor.ObjectGetField
(String label, Class<T> objectClass, boolean allowAny, boolean allowAdd, ObjectGetField.GetProvider<T> getProvider) Constructor.ObjectGetField
(String label, Class<T> objectClass, boolean allowAny, ObjectGetField.GetProvider<T> getProvider) Constructor. -
Method Summary
Modifier and TypeMethodDescriptionstatic <O extends StoredObject>
booleanCheck whether an instance of theObjectGetField
can be created for a given object class or not.protected ObjectGetField.GetProvider
<T> Create the "get" provider for this field.protected com.vaadin.flow.component.Component
protected void
doSearch()
Do a search using the searcher component.protected boolean
Load the searcher with all the available instances.void
focus()
Focus this field.protected T
Get the search field for this.void
setNotFoundHandler
(Function<String, T> notFoundHandler) void
setNotFoundTacker
(Consumer<String> notFound) Set a "not found" consumer.void
setPlaceholder
(String placeholder) protected void
setPresentationValue
(T value) Methods inherited from class com.storedobject.ui.AbstractObjectField
applyFilter, createDefaultSearcher, createSearcher, editor, filter, filteredList, getBrowseColumns, getCached, getContent, getDetailComponent, getDisplayDetail, getInternalLabel, getLoadFilter, getObjectClass, getPrefixComponent, getSearchColumns, getSearcher, initComponent, isAllowAny, isInvalid, isRequired, load, onAttach, reget, reload, setBrowseColumns, setCached, setDetailComponent, setDisplayDetail, setEnabled, setInternalLabel, setItemLabelGenerator, setPrefixFieldControl, setReadOnly, setRequired, setSearchColumns
Methods inherited from class com.storedobject.vaadin.CustomField
addField, addField
Methods inherited from class com.vaadin.flow.component.customfield.CustomField
add, addThemeVariants, getLabel, remove, removeThemeVariants, setLabel, 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.storedobject.ui.util.AbstractObjectInput
applyFilterPredicate, convert, getObject, getObjectId, getObjectId, setObject
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.storedobject.core.FilterMethods
getEffectiveCondition, getFilterCondition, setFilter, setFilter, setFilter, setFilter, setFilter, setFilter, setLoadFilter, setLoadFilter, setViewFilter, setViewFilter
Methods inherited from interface com.vaadin.flow.component.Focusable
addFocusShortcut, blur, getTabIndex, setTabIndex
Methods inherited from interface com.vaadin.flow.component.FocusNotifier
addFocusListener
Methods inherited from interface com.storedobject.vaadin.HasElement
getAttribute, getStyle, setAttribute, setStyle
Methods inherited from interface com.vaadin.flow.component.HasElement
getElement
Methods inherited from interface com.vaadin.flow.component.HasEnabled
isEnabled
Methods inherited from interface com.vaadin.flow.component.HasHelper
getHelperComponent, getHelperText, setHelperComponent, setHelperText
Methods inherited from interface com.vaadin.flow.component.HasLabel
getLabel, setLabel
Methods inherited from interface com.vaadin.flow.component.HasPlaceholder
getPlaceholder
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, 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.storedobject.vaadin.HasThemeStyle
addTheme, asPrimary, asSmall, clearThemes, getInternalElement, removeTheme, setTheme
Methods inherited from interface com.vaadin.flow.component.shared.HasTooltip
getTooltip, setTooltipText
Methods inherited from interface com.vaadin.flow.component.HasValidation
setManualValidation
Methods inherited from interface com.vaadin.flow.component.shared.HasValidationProperties
getErrorMessage, setErrorMessage, setInvalid
Methods inherited from interface com.vaadin.flow.component.HasValue
addValueChangeListener, clear, getEmptyValue, getOptionalValue, getValue, isEmpty, setValue
Methods inherited from interface com.vaadin.flow.component.HasValueAndElement
isReadOnly, isRequiredIndicatorVisible, setRequiredIndicatorVisible
Methods inherited from interface com.storedobject.ui.ObjectInput
getObject, getValue, setObject, setObjectClass, setValue, setValue
Methods inherited from interface com.storedobject.core.ObjectSetter
accept
-
Constructor Details
-
ObjectGetField
-
ObjectGetField
-
ObjectGetField
-
ObjectGetField
-
ObjectGetField
Constructor.- Parameters:
label
- Label for the field.objectClass
- Class of the objects that are valid.allowAny
- Whether subclasses should be allowed or not.allowAdd
- Whether new object instances can be added via this field or not.
-
ObjectGetField
public ObjectGetField(String label, Class<T> objectClass, boolean allowAny, ObjectGetField.GetProvider<T> getProvider) Constructor.- Parameters:
label
- Label for the field.objectClass
- Class of the objects that are valid.allowAny
- Whether subclasses should be allowed or not.getProvider
- "Get" provider for searching the object instances.
-
ObjectGetField
public ObjectGetField(String label, Class<T> objectClass, boolean allowAny, boolean allowAdd, ObjectGetField.GetProvider<T> getProvider) Constructor.- Parameters:
label
- Label for the field.objectClass
- Class of the objects that are valid.allowAny
- Whether subclasses should be allowed or not.allowAdd
- Whether new object instances can be added via this field or not.getProvider
- "Get" provider for searching the object instances.
-
-
Method Details
-
createGetProvider
Create the "get" provider for this field.- Returns:
- By default, it will create an instance of
ObjectGetField.GetSupplier
.
-
createPrefixComponent
protected com.vaadin.flow.component.Component createPrefixComponent()- Specified by:
createPrefixComponent
in classAbstractObjectField<T extends StoredObject>
-
focus
public void focus()Description copied from interface:AbstractObjectInput
Focus this field.- Specified by:
focus
in interfaceAbstractObjectInput<T extends StoredObject>
- Specified by:
focus
in interfacecom.vaadin.flow.component.Focusable<T extends StoredObject>
- Overrides:
focus
in classCustomField<T extends StoredObject>
-
setPlaceholder
-
getSearchField
Get the search field for this.- Returns:
- The search field. (The default implementation invokes
createPrefixComponent()
to create a text field decorated with search and clear buttons).
-
setNotFoundHandler
-
generateModelValue
- Specified by:
generateModelValue
in classcom.vaadin.flow.component.customfield.CustomField<T extends StoredObject>
-
setNotFoundTacker
-
doSearch
protected void doSearch()Description copied from class:AbstractObjectField
Do a search using the searcher component.- Overrides:
doSearch
in classAbstractObjectField<T extends StoredObject>
-
doSearchLoadAll
protected boolean doSearchLoadAll()Load the searcher with all the available instances. Iftrue
is returned from this method, it will be assumed that appropriate search action is already carried out.- Returns:
- True if loaded. Default implementation reapplies the filter if the load filter is dynamic and
returns
false
.
-
setPresentationValue
- Overrides:
setPresentationValue
in classAbstractObjectField<T extends StoredObject>
-
canCreate
Check whether an instance of theObjectGetField
can be created for a given object class or not.- Type Parameters:
O
- Class type.- Parameters:
objectClass
- Class of the object.- Returns:
- True if appropriate "get" method exists. (Please see the read the documentation of this class).
-