Class TwinColumn<V>

java.lang.Object
com.vaadin.flow.component.Component
com.vaadin.flow.component.AbstractField<JmixTwinColumn<V>,Collection<V>>
io.jmix.flowui.kit.component.twincolumn.JmixTwinColumn<V>
io.jmix.flowui.component.twincolumn.TwinColumn<V>
All Implemented Interfaces:
com.vaadin.flow.component.AttachNotifier, com.vaadin.flow.component.DetachNotifier, com.vaadin.flow.component.HasAriaLabel, 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<JmixTwinColumn<V>,Collection<V>>,Collection<V>>, com.vaadin.flow.component.HasValueAndElement<com.vaadin.flow.component.AbstractField.ComponentValueChangeEvent<JmixTwinColumn<V>,Collection<V>>,Collection<V>>, com.vaadin.flow.component.shared.HasThemeVariant<TwinColumnVariant>, com.vaadin.flow.component.shared.HasValidationProperties, com.vaadin.flow.data.provider.HasDataView<V,Void,TwinColumnDataView<V>>, com.vaadin.flow.data.provider.HasListDataView<V,TwinColumnListDataView<V>>, HasRequired, SupportsValidation<Collection<V>>, SupportsDataProvider<V>, SupportsItemsContainer<V>, SupportsItemsEnum<V>, SupportsValueSource<Collection<V>>, Serializable, org.springframework.beans.factory.Aware, org.springframework.beans.factory.InitializingBean, org.springframework.context.ApplicationContextAware

public class TwinColumn<V> extends JmixTwinColumn<V> implements SupportsItemsContainer<V>, SupportsValueSource<Collection<V>>, SupportsItemsEnum<V>, SupportsDataProvider<V>, SupportsValidation<Collection<V>>, HasRequired, org.springframework.context.ApplicationContextAware, org.springframework.beans.factory.InitializingBean
See Also:
  • Field Details

  • Constructor Details

    • TwinColumn

      public TwinColumn()
  • Method Details

    • setApplicationContext

      public void setApplicationContext(org.springframework.context.ApplicationContext applicationContext) throws org.springframework.beans.BeansException
      Specified by:
      setApplicationContext in interface org.springframework.context.ApplicationContextAware
      Throws:
      org.springframework.beans.BeansException
    • afterPropertiesSet

      public void afterPropertiesSet()
      Specified by:
      afterPropertiesSet in interface org.springframework.beans.factory.InitializingBean
    • setValueSource

      public void setValueSource(@Nullable ValueSource<Collection<V>> valueSource)
      Description copied from interface: SupportsValueSource
      Sets a ValueSource for this component, allowing it to bind its value to a specified data source.
      Specified by:
      setValueSource in interface SupportsValueSource<V>
      Parameters:
      valueSource - the ValueSource to be associated with this component, or null to remove the current association
    • getValueSource

      public ValueSource<Collection<V>> getValueSource()
      Description copied from interface: SupportsValueSource
      Returns the current ValueSource associated with this component.
      Specified by:
      getValueSource in interface SupportsValueSource<V>
      Returns:
      the associated ValueSource, or null if no value source is set
    • setItems

      public void setItems(CollectionContainer<V> container)
      Description copied from interface: SupportsItemsContainer
      Sets items from the passed CollectionContainer.
      Specified by:
      setItems in interface SupportsItemsContainer<V>
      Parameters:
      container - a CollectionContainer to be used as items source
      See Also:
    • setItems

      public void setItems(Class<V> itemsEnum)
      Description copied from interface: SupportsItemsEnum
      Sets items from the passed EnumClass.
      Specified by:
      setItems in interface SupportsItemsEnum<V>
      Parameters:
      itemsEnum - a EnumClass to be used as items source
      See Also:
    • setItems

      public TwinColumnDataView<V> setItems(com.vaadin.flow.data.provider.DataProvider<V,Void> dataProvider)
      Specified by:
      setItems in interface com.vaadin.flow.data.provider.HasDataView<V,Void,TwinColumnDataView<V>>
      Overrides:
      setItems in class JmixTwinColumn<V>
    • setItems

      public TwinColumnDataView<V> setItems(com.vaadin.flow.data.provider.InMemoryDataProvider<V> dataProvider)
      Specified by:
      setItems in interface com.vaadin.flow.data.provider.HasDataView<V,Void,TwinColumnDataView<V>>
      Overrides:
      setItems in class JmixTwinColumn<V>
    • setItems

      public TwinColumnListDataView<V> setItems(com.vaadin.flow.data.provider.ListDataProvider<V> dataProvider)
      Specified by:
      setItems in interface com.vaadin.flow.data.provider.HasListDataView<V,TwinColumnListDataView<V>>
      Overrides:
      setItems in class JmixTwinColumn<V>
    • getDataProvider

      @Nullable public com.vaadin.flow.data.provider.DataProvider<V,?> getDataProvider()
      Description copied from interface: SupportsDataProvider
      Returns the DataProvider associated with this component.
      Specified by:
      getDataProvider in interface SupportsDataProvider<V>
      Overrides:
      getDataProvider in class JmixTwinColumn<V>
      Returns:
      the DataProvider instance used for managing and providing data, or null if no data provider is set
    • addValidator

      public com.vaadin.flow.shared.Registration addValidator(Validator<? super Collection<V>> validator)
      Description copied from interface: SupportsValidation
      Adds a validator to the list of validators for the component. The provided validator will be used to validate the value of the component during validation execution.
      Specified by:
      addValidator in interface SupportsValidation<V>
      Parameters:
      validator - the validator to be added; should not be null
      Returns:
      a Registration object that allows removing the added validator
    • executeValidators

      public void executeValidators() throws ValidationException
      Description copied from interface: SupportsValidation
      Executes all registered validators against the current value of the component. If any of the validators fail, a ValidationException is thrown to indicate the failure. The exact behavior and order of validation depend on the validators added.
      Specified by:
      executeValidators in interface SupportsValidation<V>
      Throws:
      ValidationException - if validation fails for one or more validators
    • setInvalid

      public void setInvalid(boolean invalid)
      Description copied from interface: SupportsValidation
      Sets invalid state to the field considering result of field validation.
      • Invalid - false and validation passed - false = field is invalid
      • Invalid - false and validation passed - true = field is valid
      • Invalid - true and validation passed - false = field is invalid
      • Invalid - true and validation passed - true = field is invalid
      Specified by:
      setInvalid in interface com.vaadin.flow.component.HasValidation
      Specified by:
      setInvalid in interface com.vaadin.flow.component.shared.HasValidationProperties
      Specified by:
      setInvalid in interface SupportsValidation<V>
      Parameters:
      invalid - whether field should be invalid
    • isInvalid

      public boolean isInvalid()
      Specified by:
      isInvalid in interface com.vaadin.flow.component.HasValidation
      Specified by:
      isInvalid in interface com.vaadin.flow.component.shared.HasValidationProperties
    • getRequiredMessage

      @Nullable public String getRequiredMessage()
      Description copied from interface: HasRequired
      Returns the custom validation message to be displayed if the component is marked as required and the validation fails due to a missing value.
      Specified by:
      getRequiredMessage in interface HasRequired
      Returns:
      the required message set for the component, or null if no message is defined
    • setRequiredMessage

      public void setRequiredMessage(@Nullable String requiredMessage)
      Description copied from interface: HasRequired
      Sets a message that will be displayed or logged when a required field or input is not provided.
      Specified by:
      setRequiredMessage in interface HasRequired
      Parameters:
      requiredMessage - the message to be set for required fields. If null, the default message or no message will be used.
    • setRequired

      public void setRequired(boolean required)
      Description copied from interface: HasRequired
      Sets the required property for the component. When a component is marked as required, it indicates that a value must be provided for the component in order to pass validation.
      Specified by:
      setRequired in interface HasRequired
      Parameters:
      required - a boolean value indicating whether the component is marked as required. true to mark the component as required, false otherwise.
    • setRequiredIndicatorVisible

      public void setRequiredIndicatorVisible(boolean requiredIndicatorVisible)
      Specified by:
      setRequiredIndicatorVisible in interface com.vaadin.flow.component.HasValue<com.vaadin.flow.component.AbstractField.ComponentValueChangeEvent<JmixTwinColumn<V>,Collection<V>>,Collection<V>>
      Specified by:
      setRequiredIndicatorVisible in interface com.vaadin.flow.component.HasValueAndElement<com.vaadin.flow.component.AbstractField.ComponentValueChangeEvent<JmixTwinColumn<V>,Collection<V>>,Collection<V>>
    • isEmpty

      public boolean isEmpty()
      Specified by:
      isEmpty in interface com.vaadin.flow.component.HasValue<com.vaadin.flow.component.AbstractField.ComponentValueChangeEvent<JmixTwinColumn<V>,Collection<V>>,Collection<V>>
      Overrides:
      isEmpty in class com.vaadin.flow.component.AbstractField<JmixTwinColumn<V>,Collection<V>>
    • isRequiredIndicatorVisible

      public boolean isRequiredIndicatorVisible()
      Specified by:
      isRequiredIndicatorVisible in interface com.vaadin.flow.component.HasValue<com.vaadin.flow.component.AbstractField.ComponentValueChangeEvent<JmixTwinColumn<V>,Collection<V>>,Collection<V>>
      Specified by:
      isRequiredIndicatorVisible in interface com.vaadin.flow.component.HasValueAndElement<com.vaadin.flow.component.AbstractField.ComponentValueChangeEvent<JmixTwinColumn<V>,Collection<V>>,Collection<V>>
    • setErrorMessage

      public void setErrorMessage(@Nullable String errorMessage)
      Specified by:
      setErrorMessage in interface com.vaadin.flow.component.HasValidation
      Specified by:
      setErrorMessage in interface com.vaadin.flow.component.shared.HasValidationProperties
      Specified by:
      setErrorMessage in interface SupportsValidation<V>
    • getErrorMessage

      public String getErrorMessage()
      Specified by:
      getErrorMessage in interface com.vaadin.flow.component.HasValidation
      Specified by:
      getErrorMessage in interface com.vaadin.flow.component.shared.HasValidationProperties
      Specified by:
      getErrorMessage in interface SupportsValidation<V>
    • setValue

      public void setValue(Collection<V> value)
      Specified by:
      setValue in interface com.vaadin.flow.component.HasValue<com.vaadin.flow.component.AbstractField.ComponentValueChangeEvent<JmixTwinColumn<V>,Collection<V>>,Collection<V>>
      Overrides:
      setValue in class com.vaadin.flow.component.AbstractField<JmixTwinColumn<V>,Collection<V>>
    • setReadOnly

      public void setReadOnly(boolean readOnly)
      Specified by:
      setReadOnly in interface com.vaadin.flow.component.HasValue<com.vaadin.flow.component.AbstractField.ComponentValueChangeEvent<JmixTwinColumn<V>,Collection<V>>,Collection<V>>
      Specified by:
      setReadOnly in interface com.vaadin.flow.component.HasValueAndElement<com.vaadin.flow.component.AbstractField.ComponentValueChangeEvent<JmixTwinColumn<V>,Collection<V>>,Collection<V>>
      Overrides:
      setReadOnly in class JmixTwinColumn<V>
    • setEnabled

      public void setEnabled(boolean enabled)
      Specified by:
      setEnabled in interface com.vaadin.flow.component.HasEnabled
    • setSelectAllButtonsVisible

      public void setSelectAllButtonsVisible(Boolean selectAllButtonsVisible)
      Description copied from class: JmixTwinColumn
      Component provides the ability to select or deselect all items. This feature is disabled by default. Setting true shows two buttons to select or deselect all items.
      Overrides:
      setSelectAllButtonsVisible in class JmixTwinColumn<V>
    • autowireDependencies

      protected void autowireDependencies()
    • initComponentMessages

      protected void initComponentMessages()
    • createValueChangeListener

      protected void createValueChangeListener()
    • onDataChange

      protected void onDataChange(com.vaadin.flow.data.provider.DataChangeEvent<V> event)
      Overrides:
      onDataChange in class JmixTwinColumn<V>
    • bindDataProvider

      protected void bindDataProvider(com.vaadin.flow.data.provider.DataProvider<V,?> dataProvider)
    • createFieldDelegate

      protected TwinColumnDelegate<TwinColumn<V>,Collection<V>,Collection<V>> createFieldDelegate()
    • createDataViewDelegate

      protected DataViewDelegate<TwinColumn<V>,V> createDataViewDelegate()
    • applyColumnItemLabelFormat

      protected String applyColumnItemLabelFormat(V value)
      Overrides:
      applyColumnItemLabelFormat in class JmixTwinColumn<V>