Package io.jmix.ui.component.impl
Class ValuePickerImpl<V>
java.lang.Object
io.jmix.ui.component.impl.AbstractComponent<T>
io.jmix.ui.component.impl.AbstractValueComponent<T,P,V>
io.jmix.ui.component.impl.AbstractField<JmixPickerField<V>,V,V>
io.jmix.ui.component.impl.ValuePickerImpl<V>
- All Implemented Interfaces:
ActionsHolder,AttachNotifier,Buffered,Component,Component.BelongToFrame,Component.Editable,Component.Focusable,Component.HasCaption,Component.HasDescription,Component.HasIcon,Component.HasXmlDescriptor,Component.Wrapper,HasValueSource<V>,Field<V>,HasContextHelp,HasDebugId,HasFormatter<V>,HasHtmlCaption,HasHtmlDescription,HasHtmlSanitizer,HasInputPrompt,HasSubParts,HasValidator<V>,HasValue<V>,Requirable,SecuredActionsHolder,SupportsUserAction<V>,Validatable,ValuePicker<V>,org.springframework.beans.factory.InitializingBean
- Direct Known Subclasses:
EntityPickerImpl,SearchFieldImpl,ValuesPickerImpl
public class ValuePickerImpl<V>
extends AbstractField<JmixPickerField<V>,V,V>
implements ValuePicker<V>, SecuredActionsHolder, org.springframework.beans.factory.InitializingBean
-
Nested Class Summary
Nested ClassesNested classes/interfaces inherited from interface io.jmix.ui.component.Component
Component.Alignment, Component.BelongToFrame, Component.Disposable, Component.Editable, Component.Focusable, Component.HasCaption, Component.HasDescription, Component.HasIcon, Component.HasXmlDescriptor, Component.WrapperNested classes/interfaces inherited from interface io.jmix.ui.component.HasContextHelp
HasContextHelp.ContextHelpIconClickEventNested classes/interfaces inherited from interface io.jmix.ui.component.HasValue
HasValue.ValueChangeEvent<V>Nested classes/interfaces inherited from interface io.jmix.ui.component.ValuePicker
ValuePicker.FieldValueChangeEvent<V>, ValuePicker.ValuePickerAction -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected Map<Action,JmixButton> protected ValuePickerImpl<V>.WebValuePickerActionHandlerprotected Consumer<PropertyChangeEvent>protected ActionsPermissionsprotected com.vaadin.shared.Registrationprotected MetadataToolsFields inherited from class io.jmix.ui.component.impl.AbstractField
editable, parentEditableChangeListener, validators, VALIDATORS_LIST_INITIAL_CAPACITYFields inherited from class io.jmix.ui.component.impl.AbstractValueComponent
internalValue, uiTestIdsSupport, valueBindingFields inherited from class io.jmix.ui.component.impl.AbstractComponent
alignment, applicationContext, component, contextHelpIconClickHandler, contextHelpIconClickListener, descriptionAsHtml, element, frame, htmlSanitizerEnabled, icon, ICON_STYLE, id, parentFields inherited from interface io.jmix.ui.component.Component
AUTO_SIZE, AUTO_SIZE_PX, FULL_SIZEFields inherited from interface io.jmix.ui.component.ValuePicker
NAME, TYPE_STRING -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected voidvoidAdd an action to the componentvoidAdd an action to the component with index.Adds a listener that will be fired in case field is editable.voidprotected StringapplyDefaultValueFormat(V value) voidcommit()Updates all changes since the previous commit to the data source.protected JmixPickerField<V>voiddiscard()Discards all changes since last commit.voidfocus()Sets focus to this componentprotected StringformatValue(V value) protected com.vaadin.server.ResourcegenerateOptionIcon(V item) intGets the tabulator index of theHasTabIndexcomponent.protected voidinitComponent(JmixPickerField<V> component) booleanbooleanbooleanTests if the value stored in the object has been modified since it was last updated from the data source.protected voidprotected voidvoidremoveAction(Action action) Remove the action from the componentvoidremoveAction(String id) Remove the action by its ID.voidRemove all actions from the componentvoidsetBuffered(boolean buffered) Sets the buffered mode.protected voidsetButtonIcon(JmixButton button, String icon) voidsetDebugId(String id) INTERNAL.protected voidsetEditableToComponent(boolean editable) voidsetFieldEditable(boolean editable) Sets whether a user can input the value manually.voidsetFieldIconProvider(Function<? super V, String> iconProvider) Sets a function that provides an icon for the field.voidsetFormatter(Formatter<? super V> formatter) voidvoidsetInputPrompt(String inputPrompt) Sets the input prompt - a textual prompt that is displayed when the field would otherwise be empty, to prompt the user for input.voidsetMetadataTools(MetadataTools metadataTools) voidsetTabIndex(int tabIndex) Sets the tabulator index of theFocusablecomponent.protected voidsetUiComponentProperties(UiComponentProperties componentProperties) protected voidsetupButtonAction(JmixButton button, Action action) voidvoidsetValueFromUser(V value) Sets the value of this component as if the user had set it.Methods inherited from class io.jmix.ui.component.impl.AbstractField
addValidator, attachValueChangeListener, getDatatypeConversionErrorMsg, getDefaultRequiredMessage, getErrorMessage, getRequiredMessage, getValidators, isEditable, isRequired, isValid, removeValidator, setEditable, setParent, setRequired, setRequiredMessage, setupComponentErrorProvider, triggerValidators, validateMethods inherited from class io.jmix.ui.component.impl.AbstractValueComponent
addValueChangeListener, componentValueChanged, convertToModel, convertToPresentation, fieldValueEquals, getValue, getValueSource, setUiTestId, setUiTestIdsSupport, setValueSource, setValueToPresentation, valueBindingActivated, valueBindingConnectedMethods inherited from class io.jmix.ui.component.impl.AbstractComponent
addAttachListener, addDetachListener, addStyleName, assignDebugId, attached, detached, getAlignment, getCaption, getComponent, getComposition, getContextHelpIconClickHandler, getContextHelpText, getDebugId, getDescription, getEventHub, getFrame, getHeight, getHeightSizeUnit, getHtmlSanitizer, getIcon, getIconName, getIconResource, getId, getParent, getStyleName, getUiComponentProperties, getUiProperties, getWidth, getWidthSizeUnit, getXmlDescriptor, hasSubscriptions, hasValidationError, isAttached, isCaptionAsHtml, isContextHelpTextHtmlEnabled, isDescriptionAsHtml, isEnabled, isEnabledRecursive, isHtmlSanitizerEnabled, isResponsive, isVisible, isVisibleRecursive, onContextHelpIconClick, publish, removeStyleName, sanitize, setAlignment, setApplicationContext, setCaption, setCaptionAsHtml, setContextHelpIconClickHandler, setContextHelpText, setContextHelpTextHtmlEnabled, setDescription, setDescriptionAsHtml, setEnabled, setHeight, setHtmlSanitizerEnabled, setIcon, setIconFromSet, setId, setResponsive, setStyleName, setValidationError, setVisible, setWidth, setXmlDescriptor, unsubscribe, unwrap, unwrapComposition, unwrapCompositionOrNull, unwrapOrNull, withUnwrapped, withUnwrappedCompositionMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface io.jmix.ui.component.ActionsHolder
getActionNN, getSubPartMethods inherited from interface io.jmix.ui.component.Component
addStyleName, getAlignment, getHeight, getHeightSizeUnit, getId, getParent, getStyleName, getWidth, getWidthSizeUnit, isEnabled, isEnabledRecursive, isResponsive, isVisible, isVisibleRecursive, removeStyleName, setAlignment, setEnabled, setHeight, setHeightAuto, setHeightFull, setId, setParent, setResponsive, setSizeAuto, setSizeFull, setStyleName, setVisible, setWidth, setWidthAuto, setWidthFull, unwrap, unwrapComposition, unwrapCompositionOrNull, unwrapOrNull, withUnwrapped, withUnwrappedCompositionMethods inherited from interface io.jmix.ui.component.Component.BelongToFrame
getFrameMethods inherited from interface io.jmix.ui.component.Component.Editable
isEditable, isEditableWithParent, setEditableMethods inherited from interface io.jmix.ui.component.Component.Focusable
isFocusable, setFocusableMethods inherited from interface io.jmix.ui.component.Component.HasCaption
getCaption, setCaptionMethods inherited from interface io.jmix.ui.component.Component.HasDescription
getDescription, setDescriptionMethods inherited from interface io.jmix.ui.component.Component.HasIcon
getIcon, setIcon, setIconFromSetMethods inherited from interface io.jmix.ui.component.HasContextHelp
getContextHelpIconClickHandler, getContextHelpText, isContextHelpTextHtmlEnabled, setContextHelpIconClickHandler, setContextHelpText, setContextHelpTextHtmlEnabledMethods inherited from interface io.jmix.ui.component.HasHtmlCaption
isCaptionAsHtml, setCaptionAsHtmlMethods inherited from interface io.jmix.ui.component.HasHtmlDescription
isDescriptionAsHtml, setDescriptionAsHtmlMethods inherited from interface io.jmix.ui.component.HasHtmlSanitizer
isHtmlSanitizerEnabled, setHtmlSanitizerEnabledMethods inherited from interface io.jmix.ui.component.HasValidator
addValidator, addValidators, getValidators, removeValidatorMethods inherited from interface io.jmix.ui.component.HasValue
addValueChangeListener, clear, getEmptyValue, getValue, isEmptyMethods inherited from interface io.jmix.ui.component.data.HasValueSource
getValueSource, setValueSourceMethods inherited from interface io.jmix.ui.component.Requirable
getRequiredMessage, isRequired, setRequired, setRequiredMessageMethods inherited from interface io.jmix.ui.component.Validatable
isValid, isValidateOnCommit, validate
-
Field Details
-
metadataTools
-
formatter
-
actions
-
actionButtons
-
actionsPermissions
-
actionHandler
-
actionPropertyChangeListener
-
fieldIconProvider
-
fieldListenerRegistration
protected com.vaadin.shared.Registration fieldListenerRegistration
-
-
Constructor Details
-
ValuePickerImpl
public ValuePickerImpl()
-
-
Method Details
-
createComponent
-
setMetadataTools
-
setUiComponentProperties
-
afterPropertiesSet
public void afterPropertiesSet()- Specified by:
afterPropertiesSetin interfaceorg.springframework.beans.factory.InitializingBean
-
initComponent
-
formatValue
-
applyDefaultValueFormat
-
getFormatter
- Specified by:
getFormatterin interfaceHasFormatter<V>
-
setFormatter
- Specified by:
setFormatterin interfaceHasFormatter<V>
-
setValue
- Specified by:
setValuein interfaceHasValue<V>- Overrides:
setValuein classAbstractValueComponent<JmixPickerField<V>,V, V>
-
setValueFromUser
Description copied from interface:SupportsUserActionSets the value of this component as if the user had set it. The user originated attribute is only used for theHasValue.ValueChangeEvent.- Specified by:
setValueFromUserin interfaceSupportsUserAction<V>- Parameters:
value- the new value
-
addAction
Description copied from interface:ActionsHolderAdd an action to the component- Specified by:
addActionin interfaceActionsHolder
-
addAction
Description copied from interface:ActionsHolderAdd an action to the component with index.- Specified by:
addActionin interfaceActionsHolder
-
setupButtonAction
-
setButtonIcon
-
actionPropertyChanged
-
removeAction
Description copied from interface:ActionsHolderRemove the action from the component- Specified by:
removeActionin interfaceActionsHolder
-
removeAction
Description copied from interface:ActionsHolderRemove the action by its ID. If there is no action with that ID, nothing happens.- Specified by:
removeActionin interfaceActionsHolder
-
removeAllActions
public void removeAllActions()Description copied from interface:ActionsHolderRemove all actions from the component- Specified by:
removeAllActionsin interfaceActionsHolder
-
getActions
- Specified by:
getActionsin interfaceActionsHolder- Returns:
- unmodifiable collection of actions
-
getAction
- Specified by:
getActionin interfaceActionsHolder- Returns:
- an action by its ID, or null if not found
-
refreshActionsState
protected void refreshActionsState() -
focus
public void focus()Description copied from interface:Component.FocusableSets focus to this component- Specified by:
focusin interfaceComponent.Focusable
-
getTabIndex
public int getTabIndex()Description copied from interface:Component.FocusableGets the tabulator index of theHasTabIndexcomponent.- Specified by:
getTabIndexin interfaceComponent.Focusable- Returns:
- tab index set for the
HasTabIndexcomponent
-
setTabIndex
public void setTabIndex(int tabIndex) Description copied from interface:Component.FocusableSets the tabulator index of theFocusablecomponent. The tab index property is used to specify the order in which the fields are focused when the user presses the Tab key. Components with a defined tab index are focused sequentially first, and then the components with no tab index.- Specified by:
setTabIndexin interfaceComponent.Focusable- Parameters:
tabIndex- tab index
-
getActionsPermissions
- Specified by:
getActionsPermissionsin interfaceSecuredActionsHolder- Returns:
- permissions container
-
getFieldIconProvider
- Specified by:
getFieldIconProviderin interfaceValuePicker<V>- Returns:
- an icon provider or {code null} if not set
-
setFieldIconProvider
Description copied from interface:ValuePickerSets a function that provides an icon for the field.- Specified by:
setFieldIconProviderin interfaceValuePicker<V>- Parameters:
iconProvider- icon provider to set
-
generateOptionIcon
-
isFieldEditable
public boolean isFieldEditable()- Specified by:
isFieldEditablein interfaceValuePicker<V>- Returns:
- whether a user can input the value manually
-
setFieldEditable
public void setFieldEditable(boolean editable) Description copied from interface:ValuePickerSets whether a user can input the value manually.falseby default. Doesn't set entered value to the model. To handle user input, theValuePicker.FieldValueChangeEventlistener must be used.- Specified by:
setFieldEditablein interfaceValuePicker<V>- Parameters:
editable-trueto enable manual input,falseotherwise- See Also:
-
addFieldValueChangeListener
public Subscription addFieldValueChangeListener(Consumer<ValuePicker.FieldValueChangeEvent<V>> listener) Description copied from interface:ValuePickerAdds a listener that will be fired in case field is editable.- Specified by:
addFieldValueChangeListenerin interfaceValuePicker<V>- Parameters:
listener- a listener to add- Returns:
- a
Subscriptionobject - See Also:
-
onFieldValueChange
-
commit
public void commit()Description copied from interface:BufferedUpdates all changes since the previous commit to the data source.- Specified by:
commitin interfaceBuffered- Overrides:
commitin classAbstractValueComponent<JmixPickerField<V>,V, V>
-
discard
public void discard()Description copied from interface:BufferedDiscards all changes since last commit. The object updates its value from the data source.- Specified by:
discardin interfaceBuffered- Overrides:
discardin classAbstractValueComponent<JmixPickerField<V>,V, V>
-
isBuffered
public boolean isBuffered()- Specified by:
isBufferedin interfaceBuffered- Overrides:
isBufferedin classAbstractValueComponent<JmixPickerField<V>,V, V> - Returns:
trueif buffered mode is on,falseotherwise
-
setBuffered
public void setBuffered(boolean buffered) Description copied from interface:BufferedSets the buffered mode.When in buffered mode, an internal buffer will be used to store changes until
Buffered.commit()is called. CallingBuffered.discard()will revert the internal buffer to the value of the data source.When in non-buffered mode both read and write operations will be done directly on the data source. In this mode the
Buffered.commit()andBuffered.discard()methods serve no purpose.- Specified by:
setBufferedin interfaceBuffered- Overrides:
setBufferedin classAbstractValueComponent<JmixPickerField<V>,V, V> - Parameters:
buffered-trueif buffered mode should be turned on,falseotherwise
-
isModified
public boolean isModified()Description copied from interface:BufferedTests if the value stored in the object has been modified since it was last updated from the data source.- Specified by:
isModifiedin interfaceBuffered- Overrides:
isModifiedin classAbstractValueComponent<JmixPickerField<V>,V, V> - Returns:
trueif the value in the object has been modified since the last data source update,falseif not.
-
setFrame
- Specified by:
setFramein interfaceComponent.BelongToFrame- Overrides:
setFramein classAbstractComponent<JmixPickerField<V>>
-
setEditableToComponent
protected void setEditableToComponent(boolean editable) - Overrides:
setEditableToComponentin classAbstractField<JmixPickerField<V>,V, V>
-
setDebugId
Description copied from interface:HasDebugIdINTERNAL. Managed by debug Id system.- Specified by:
setDebugIdin interfaceHasDebugId- Overrides:
setDebugIdin classAbstractComponent<JmixPickerField<V>>
-
getInputPrompt
- Specified by:
getInputPromptin interfaceHasInputPrompt- Returns:
- current input prompt.
-
setInputPrompt
Description copied from interface:HasInputPromptSets the input prompt - a textual prompt that is displayed when the field would otherwise be empty, to prompt the user for input.- Specified by:
setInputPromptin interfaceHasInputPrompt- Parameters:
inputPrompt- input prompt
-