Package io.jmix.ui.component.impl
Class CurrencyFieldImpl<V extends Number>
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<JmixCurrencyField,String,V>
io.jmix.ui.component.impl.CurrencyFieldImpl<V>
- All Implemented Interfaces:
AttachNotifier
,Buffered
,Component
,Component.BelongToFrame
,Component.Editable
,Component.Focusable
,Component.HasCaption
,Component.HasDescription
,Component.HasIcon
,Component.HasXmlDescriptor
,Component.Wrapper
,CurrencyField<V>
,HasValueSource<V>
,Field<V>
,HasContextHelp
,HasConversionErrorMessage
,HasDatatype<V>
,HasDebugId
,HasHtmlCaption
,HasHtmlDescription
,HasHtmlSanitizer
,HasValidator<V>
,HasValue<V>
,Requirable
,Validatable
public class CurrencyFieldImpl<V extends Number>
extends AbstractField<JmixCurrencyField,String,V>
implements CurrencyField<V>
-
Nested Class Summary
Nested 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.Wrapper
Nested classes/interfaces inherited from interface io.jmix.ui.component.CurrencyField
CurrencyField.CurrencyLabelPosition
Nested classes/interfaces inherited from interface io.jmix.ui.component.HasContextHelp
HasContextHelp.ContextHelpIconClickEvent
Nested classes/interfaces inherited from interface io.jmix.ui.component.HasValue
HasValue.ValueChangeEvent<V>
-
Field Summary
Modifier and TypeFieldDescriptionprotected String
protected DataAwareComponentsTools
protected Locale
Fields inherited from class io.jmix.ui.component.impl.AbstractField
editable, parentEditableChangeListener, validators, VALIDATORS_LIST_INITIAL_CAPACITY
Fields inherited from class io.jmix.ui.component.impl.AbstractValueComponent
internalValue, uiTestIdsSupport, valueBinding
Fields inherited from class io.jmix.ui.component.impl.AbstractComponent
alignment, applicationContext, component, contextHelpIconClickHandler, contextHelpIconClickListener, descriptionAsHtml, element, frame, htmlSanitizerEnabled, icon, ICON_STYLE, id, parent
Fields inherited from interface io.jmix.ui.component.Component
AUTO_SIZE, AUTO_SIZE_PX, FULL_SIZE
Fields inherited from interface io.jmix.ui.component.CurrencyField
NAME, TYPE_BIGDECIMAL, TYPE_DEFAULT, TYPE_DOUBLE, TYPE_INTEGER, TYPE_LONG
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionprotected void
attachValueChangeListener
(JmixCurrencyField component) void
commit()
Updates all changes since the previous commit to the data source.protected V
convertToModel
(String componentRawValue) protected String
convertToPresentation
(V modelValue) protected JmixCurrencyField
void
discard()
Discards all changes since last commit.void
focus()
Sets focus to this componentprotected CurrencyField.CurrencyLabelPosition
fromWidgetLabelPosition
(CurrencyLabelPosition wLabelPosition) protected String
boolean
int
Gets the tabulator index of theHasTabIndex
component.protected void
initComponent
(JmixCurrencyField component) boolean
boolean
Tests if the value stored in the object has been modified since it was last updated from the data source.void
setBuffered
(boolean buffered) Sets the buffered mode.void
setConversionErrorMessage
(String conversionErrorMessage) Sets custom conversion error message that is used when value doesn't correspond to datatype.void
setCurrency
(String currency) Sets the givencurrency
to the field.void
setCurrencyLabelPosition
(CurrencyField.CurrencyLabelPosition currencyLabelPosition) Sets where the currency label will be located: to the left or to the right from the text input component.void
setCurrentAuthentication
(CurrentAuthentication currentAuthentication) void
setDataAwareComponentsTools
(DataAwareComponentsTools dataAwareComponentsTools) void
setDatatype
(Datatype<V> datatype) Sets the givendatatype
to the component.void
setDatatypeRegistry
(DatatypeRegistry datatypeRegistry) void
setShowCurrencyLabel
(boolean showCurrencyLabel) Enables or disables currency label displaying.void
setTabIndex
(int tabIndex) Sets the tabulator index of theFocusable
component.protected CurrencyLabelPosition
toWidgetLabelPosition
(CurrencyField.CurrencyLabelPosition labelPosition) protected void
valueBindingConnected
(ValueSource<V> valueSource) Methods inherited from class io.jmix.ui.component.impl.AbstractField
addValidator, getDatatypeConversionErrorMsg, getDefaultRequiredMessage, getErrorMessage, getRequiredMessage, getValidators, isEditable, isRequired, isValid, removeValidator, setEditable, setEditableToComponent, setParent, setRequired, setRequiredMessage, setupComponentErrorProvider, triggerValidators, validate
Methods inherited from class io.jmix.ui.component.impl.AbstractValueComponent
addValueChangeListener, componentValueChanged, fieldValueEquals, getValue, getValueSource, setUiTestId, setUiTestIdsSupport, setValue, setValueSource, setValueToPresentation, valueBindingActivated
Methods 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, setDebugId, setDescription, setDescriptionAsHtml, setEnabled, setFrame, setHeight, setHtmlSanitizerEnabled, setIcon, setIconFromSet, setId, setResponsive, setStyleName, setValidationError, setVisible, setWidth, setXmlDescriptor, unsubscribe, unwrap, unwrapComposition, unwrapCompositionOrNull, unwrapOrNull, withUnwrapped, withUnwrappedComposition
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods 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, withUnwrappedComposition
Methods inherited from interface io.jmix.ui.component.Component.BelongToFrame
getFrame, setFrame
Methods inherited from interface io.jmix.ui.component.Component.Editable
isEditable, isEditableWithParent, setEditable
Methods inherited from interface io.jmix.ui.component.Component.Focusable
isFocusable, setFocusable
Methods inherited from interface io.jmix.ui.component.Component.HasCaption
getCaption, setCaption
Methods inherited from interface io.jmix.ui.component.Component.HasDescription
getDescription, setDescription
Methods inherited from interface io.jmix.ui.component.Component.HasIcon
getIcon, setIcon, setIconFromSet
Methods inherited from interface io.jmix.ui.component.HasContextHelp
getContextHelpIconClickHandler, getContextHelpText, isContextHelpTextHtmlEnabled, setContextHelpIconClickHandler, setContextHelpText, setContextHelpTextHtmlEnabled
Methods inherited from interface io.jmix.ui.component.HasHtmlCaption
isCaptionAsHtml, setCaptionAsHtml
Methods inherited from interface io.jmix.ui.component.HasHtmlDescription
isDescriptionAsHtml, setDescriptionAsHtml
Methods inherited from interface io.jmix.ui.component.HasHtmlSanitizer
isHtmlSanitizerEnabled, setHtmlSanitizerEnabled
Methods inherited from interface io.jmix.ui.component.HasValidator
addValidator, addValidators, getValidators, removeValidator
Methods inherited from interface io.jmix.ui.component.HasValue
addValueChangeListener, clear, getEmptyValue, getValue, isEmpty, setValue
Methods inherited from interface io.jmix.ui.component.data.HasValueSource
getValueSource, setValueSource
Methods inherited from interface io.jmix.ui.component.Requirable
getRequiredMessage, isRequired, setRequired, setRequiredMessage
Methods inherited from interface io.jmix.ui.component.Validatable
isValid, isValidateOnCommit, validate
-
Field Details
-
locale
-
datatype
-
defaultDatatype
-
conversionErrorMessage
-
dataAwareComponentsTools
-
-
Constructor Details
-
CurrencyFieldImpl
public CurrencyFieldImpl()
-
-
Method Details
-
createComponent
-
initComponent
-
setDataAwareComponentsTools
@Autowired public void setDataAwareComponentsTools(DataAwareComponentsTools dataAwareComponentsTools) -
setDatatypeRegistry
-
attachValueChangeListener
- Overrides:
attachValueChangeListener
in classAbstractField<JmixCurrencyField,
String, V extends Number>
-
setCurrentAuthentication
-
convertToPresentation
- Overrides:
convertToPresentation
in classAbstractValueComponent<JmixCurrencyField,
String, V extends Number> - Throws:
ConversionException
-
convertToModel
- Overrides:
convertToModel
in classAbstractValueComponent<JmixCurrencyField,
String, V extends Number> - Throws:
ConversionException
-
setConversionErrorMessage
Description copied from interface:HasConversionErrorMessage
Sets custom conversion error message that is used when value doesn't correspond to datatype.- Specified by:
setConversionErrorMessage
in interfaceHasConversionErrorMessage
- Parameters:
conversionErrorMessage
- custom conversion error message
-
getConversionErrorMessage
- Specified by:
getConversionErrorMessage
in interfaceHasConversionErrorMessage
- Returns:
- custom conversion error message
-
getConversionErrorMessageInternal
-
setCurrency
Description copied from interface:CurrencyField
Sets the givencurrency
to the field. Currency label will be displayed next to the text input component if theshowCurrency
option is enabled. Recommended max currency length - 3 character.- Specified by:
setCurrency
in interfaceCurrencyField<V extends Number>
- Parameters:
currency
- currency ($, EUR, etc)
-
getCurrency
- Specified by:
getCurrency
in interfaceCurrencyField<V extends Number>
- Returns:
- current currency
-
setShowCurrencyLabel
public void setShowCurrencyLabel(boolean showCurrencyLabel) Description copied from interface:CurrencyField
Enables or disables currency label displaying.- Specified by:
setShowCurrencyLabel
in interfaceCurrencyField<V extends Number>
-
getShowCurrencyLabel
public boolean getShowCurrencyLabel()- Specified by:
getShowCurrencyLabel
in interfaceCurrencyField<V extends Number>
- Returns:
- true if currency label is displayed or false otherwise
-
setCurrencyLabelPosition
Description copied from interface:CurrencyField
Sets where the currency label will be located: to the left or to the right from the text input component.- Specified by:
setCurrencyLabelPosition
in interfaceCurrencyField<V extends Number>
- Parameters:
currencyLabelPosition
- not-nullCurrencyField.CurrencyLabelPosition
value
-
getCurrencyLabelPosition
- Specified by:
getCurrencyLabelPosition
in interfaceCurrencyField<V extends Number>
- Returns:
- where the currency label is located
-
valueBindingConnected
- Overrides:
valueBindingConnected
in classAbstractValueComponent<JmixCurrencyField,
String, V extends Number>
-
setDatatype
Description copied from interface:HasDatatype
Sets the givendatatype
to the component. Its value will be formatted according to this datatype.- Specified by:
setDatatype
in interfaceHasDatatype<V extends Number>
- Parameters:
datatype
-Datatype
instance
-
getDatatype
- Specified by:
getDatatype
in interfaceHasDatatype<V extends Number>
- Returns:
- a datatype that is used by this component
-
getDatatypeInternal
-
commit
public void commit()Description copied from interface:Buffered
Updates all changes since the previous commit to the data source.- Specified by:
commit
in interfaceBuffered
- Overrides:
commit
in classAbstractValueComponent<JmixCurrencyField,
String, V extends Number>
-
discard
public void discard()Description copied from interface:Buffered
Discards all changes since last commit. The object updates its value from the data source.- Specified by:
discard
in interfaceBuffered
- Overrides:
discard
in classAbstractValueComponent<JmixCurrencyField,
String, V extends Number>
-
isBuffered
public boolean isBuffered()- Specified by:
isBuffered
in interfaceBuffered
- Overrides:
isBuffered
in classAbstractValueComponent<JmixCurrencyField,
String, V extends Number> - Returns:
true
if buffered mode is on,false
otherwise
-
setBuffered
public void setBuffered(boolean buffered) Description copied from interface:Buffered
Sets 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:
setBuffered
in interfaceBuffered
- Overrides:
setBuffered
in classAbstractValueComponent<JmixCurrencyField,
String, V extends Number> - Parameters:
buffered
-true
if buffered mode should be turned on,false
otherwise
-
isModified
public boolean isModified()Description copied from interface:Buffered
Tests if the value stored in the object has been modified since it was last updated from the data source.- Specified by:
isModified
in interfaceBuffered
- Overrides:
isModified
in classAbstractValueComponent<JmixCurrencyField,
String, V extends Number> - Returns:
true
if the value in the object has been modified since the last data source update,false
if not.
-
focus
public void focus()Description copied from interface:Component.Focusable
Sets focus to this component- Specified by:
focus
in interfaceComponent.Focusable
-
getTabIndex
public int getTabIndex()Description copied from interface:Component.Focusable
Gets the tabulator index of theHasTabIndex
component.- Specified by:
getTabIndex
in interfaceComponent.Focusable
- Returns:
- tab index set for the
HasTabIndex
component
-
setTabIndex
public void setTabIndex(int tabIndex) Description copied from interface:Component.Focusable
Sets the tabulator index of theFocusable
component. 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:
setTabIndex
in interfaceComponent.Focusable
- Parameters:
tabIndex
- tab index
-
toWidgetLabelPosition
protected CurrencyLabelPosition toWidgetLabelPosition(CurrencyField.CurrencyLabelPosition labelPosition) -
fromWidgetLabelPosition
protected CurrencyField.CurrencyLabelPosition fromWidgetLabelPosition(CurrencyLabelPosition wLabelPosition)
-