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
StoredObjects that are searchable using some keywords.
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 interfaceObjectGetField.GetProvider<O extends StoredObject>TheObjectGetFieldrequires a "get provider" to provide objects or list of objects based on a search text.static classObjectGetField.GetSupplier<O extends StoredObject>Implementation ofObjectGetField.GetProviderfor normalStoredObjectclasses.static classObjectGetField.GetTypedSupplier<O extends StoredObject>Implementation ofObjectGetField.GetProviderforStoredObjectclasses where additional type information is required (For example,InventoryItemrequires an instance of theInventoryItemTypewhile 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 theObjectGetFieldcan 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.Componentprotected voiddoSearch()Do a search using the searcher component.protected booleanLoad the searcher with all the available instances.voidfocus()Focus this field.protected TGet the search field for this.voidsetNotFoundHandler(Function<String, T> notFoundHandler) voidsetNotFoundTacker(Consumer<String> notFound) Set a "not found" consumer.voidsetPlaceholder(String placeholder) protected voidsetPresentationValue(T value) Methods inherited from class com.storedobject.ui.AbstractObjectField
applyFilter, clear, 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, setSearchColumnsMethods inherited from class com.storedobject.vaadin.CustomField
addField, addFieldMethods inherited from class com.vaadin.flow.component.customfield.CustomField
add, addThemeVariants, getLabel, remove, removeThemeVariants, setLabel, updateValueMethods inherited from class com.vaadin.flow.component.AbstractField
addValueChangeListener, getEmptyValue, getValue, isEmpty, setModelValue, setValue, valueEqualsMethods 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, setVisibleMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface com.storedobject.ui.util.AbstractObjectInput
applyFilterPredicate, convert, getObject, getObjectId, getObjectId, setObjectMethods inherited from interface com.vaadin.flow.component.AttachNotifier
addAttachListenerMethods inherited from interface com.vaadin.flow.component.BlurNotifier
addBlurListenerMethods inherited from interface com.vaadin.flow.component.DetachNotifier
addDetachListenerMethods inherited from interface com.storedobject.core.FilterMethods
getEffectiveCondition, getFilterCondition, setFilter, setFilter, setFilter, setFilter, setFilter, setFilter, setLoadFilter, setLoadFilter, setViewFilter, setViewFilterMethods inherited from interface com.vaadin.flow.component.Focusable
addFocusShortcut, blur, getTabIndex, setTabIndexMethods inherited from interface com.vaadin.flow.component.FocusNotifier
addFocusListenerMethods inherited from interface com.storedobject.vaadin.HasElement
getAttribute, getStyle, setAttribute, setStyleMethods inherited from interface com.vaadin.flow.component.HasElement
getElementMethods inherited from interface com.vaadin.flow.component.HasEnabled
isEnabledMethods inherited from interface com.vaadin.flow.component.HasHelper
getHelperComponent, getHelperText, setHelperComponent, setHelperTextMethods inherited from interface com.vaadin.flow.component.HasLabel
getLabel, setLabelMethods inherited from interface com.vaadin.flow.component.HasPlaceholder
getPlaceholderMethods 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, setWidthFullMethods inherited from interface com.vaadin.flow.component.HasStyle
addClassName, addClassNames, getClassName, getClassNames, getStyle, hasClassName, removeClassName, removeClassNames, setClassName, setClassNameMethods inherited from interface com.vaadin.flow.component.HasTheme
addThemeName, addThemeNames, getThemeName, getThemeNames, hasThemeName, removeThemeName, removeThemeNames, setThemeName, setThemeNameMethods inherited from interface com.storedobject.vaadin.HasThemeStyle
addTheme, asPrimary, asSmall, clearThemes, getInternalElement, removeTheme, setThemeMethods inherited from interface com.vaadin.flow.component.shared.HasTooltip
getTooltip, setTooltipTextMethods inherited from interface com.vaadin.flow.component.HasValidation
setManualValidationMethods inherited from interface com.vaadin.flow.component.shared.HasValidationProperties
getErrorMessage, setErrorMessage, setInvalidMethods inherited from interface com.vaadin.flow.component.HasValue
addValueChangeListener, getEmptyValue, getOptionalValue, getValue, isEmpty, setValueMethods inherited from interface com.vaadin.flow.component.HasValueAndElement
isReadOnly, isRequiredIndicatorVisible, setRequiredIndicatorVisibleMethods inherited from interface com.storedobject.ui.ObjectInput
getObject, getValue, setObject, setObjectClass, setValue, setValueMethods 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:
createPrefixComponentin classAbstractObjectField<T extends StoredObject>
-
focus
public void focus()Description copied from interface:AbstractObjectInputFocus this field.- Specified by:
focusin interfaceAbstractObjectInput<T extends StoredObject>- Specified by:
focusin interfacecom.vaadin.flow.component.Focusable<T extends StoredObject>- Overrides:
focusin 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:
generateModelValuein classcom.vaadin.flow.component.customfield.CustomField<T extends StoredObject>
-
setNotFoundTacker
-
doSearch
protected void doSearch()Description copied from class:AbstractObjectFieldDo a search using the searcher component.- Overrides:
doSearchin classAbstractObjectField<T extends StoredObject>
-
doSearchLoadAll
protected boolean doSearchLoadAll()Load the searcher with all the available instances. Iftrueis 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:
setPresentationValuein classAbstractObjectField<T extends StoredObject>
-
canCreate
Check whether an instance of theObjectGetFieldcan 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).
-