Class GeneratedVaadinSelect<R extends GeneratedVaadinSelect<R,​T>,​T>

  • All Implemented Interfaces:
    AttachNotifier, BlurNotifier<R>, DetachNotifier, Focusable<R>, FocusNotifier<R>, HasElement, HasEnabled, HasStyle, HasValue<AbstractField.ComponentValueChangeEvent<R,​T>,​T>, HasValueAndElement<AbstractField.ComponentValueChangeEvent<R,​T>,​T>, Serializable
    Direct Known Subclasses:
    Select

    @Tag("vaadin-select")
    @NpmPackage(value="@vaadin/polymer-legacy-adapter",version="23.2.8") @NpmPackage(value="@vaadin/select",version="23.2.8") @NpmPackage(value="@vaadin/vaadin-select",version="23.2.8")
    @JsModule("@vaadin/polymer-legacy-adapter/style-modules.js") @JsModule("@vaadin/select/src/vaadin-select.js") @JsModule("@vaadin/polymer-legacy-adapter/template-renderer.js")
    public abstract class GeneratedVaadinSelect<R extends GeneratedVaadinSelect<R,​T>,​T>
    extends AbstractSinglePropertyField<R,​T>
    implements HasStyle, Focusable<R>

    Description copied from corresponding location in WebComponent:

    <vaadin-select> is a Web Component for selecting values from a list of items. The content of the the select can be populated in two ways: imperatively by using renderer callback function and declaratively by using Polymer's Templates.

    Rendering

    By default, the select uses the content provided by using the renderer callback function.

    The renderer function provides root, select arguments. Generate DOM content, append it to the root element and control the state of the host element by accessing select.

    <vaadin-select id="select"></vaadin-select> const select = document.querySelector('#select');select.renderer = function(root, select) const listBox = document.createElement('vaadin-list-box'); // append 3 <vaadin-item> elements ['Jose', 'Manolo', 'Pedro'].forEach(function(name) { const item = document.createElement('vaadin-item'); item.textContent = name; listBox.appendChild(item); }); </p> <p> // update the content root.appendChild(listBox); ;}

    Renderer is called on initialization of new select and on its opening. DOM generated during the renderer call can be reused in the next renderer call and will be provided with the root argument. On first call it will be empty.

    Polymer Templates

    Alternatively, the content can be provided with Polymer's Template. Select finds the first child template and uses that in case renderer callback function is not provided. You can also set a custom template using the template property.

    <vaadin-select> <template> <vaadin-list-box> <vaadin-item label="foo">Foo</vaadin-item> <vaadin-item>Bar</vaadin-item> <vaadin-item>Baz</vaadin-item> </vaadin-list-box> </template> </vaadin-select>

    Hint: By setting the label property of inner vaadin-items you will be able to change the visual representation of the selected value in the input part.

    Styling

    The following shadow DOM parts are available for styling:

    Part name Description
    toggle-button The toggle button

    The following state attributes are available for styling:

    Attribute Description Part name
    opened Set when the select is open :host
    invalid Set when the element is invalid :host
    focused Set when the element is focused :host
    focus-ring Set when the element is keyboard focused :host
    readonly Set when the select is read only :host

    <vaadin-select> element sets these custom CSS properties:

    Property name Description Theme for element
    --vaadin-select-text-field-width Width of the select text field vaadin-select-overlay

    See ThemableMixin – how to apply styles for shadow parts

    In addition to <vaadin-select> itself, the following internal components are themable:

    • <vaadin-select-text-field>
    • <vaadin-select-overlay>

    Note: the theme attribute value set on <vaadin-select> is propagated to the internal themable components listed above.

    See Also:
    Serialized Form
    • Constructor Detail

      • GeneratedVaadinSelect

        public GeneratedVaadinSelect​(T initialValue,
                                     T defaultValue,
                                     Class<P> elementPropertyType,
                                     SerializableFunction<P,​T> presentationToModel,
                                     SerializableFunction<T,​P> modelToPresentation)
        Constructs a new GeneratedVaadinSelect component with the given arguments.
        Type Parameters:
        P - the property type
        Parameters:
        initialValue - the initial value to set to the value
        defaultValue - the default value to use if the value isn't defined
        elementPropertyType - the type of the element property
        presentationToModel - a function that converts a string value to a model value
        modelToPresentation - a function that converts a model value to a string value
      • GeneratedVaadinSelect

        public GeneratedVaadinSelect​(T initialValue,
                                     T defaultValue,
                                     boolean acceptNullValues)
        Constructs a new GeneratedVaadinSelect component with the given arguments.
        Parameters:
        initialValue - the initial value to set to the value
        defaultValue - the default value to use if the value isn't defined
        acceptNullValues - whether null is accepted as a model value
      • GeneratedVaadinSelect

        public GeneratedVaadinSelect​(T initialValue,
                                     T defaultValue,
                                     Class<P> elementPropertyType,
                                     SerializableBiFunction<R,​P,​T> presentationToModel,
                                     SerializableBiFunction<R,​T,​P> modelToPresentation)
        Constructs a new GeneratedVaadinSelect component with the given arguments.
        Type Parameters:
        P - the property type
        Parameters:
        initialValue - the initial value to set to the value
        defaultValue - the default value to use if the value isn't defined
        elementPropertyType - the type of the element property
        presentationToModel - a function that accepts this component and a property value and returns a model value
        modelToPresentation - a function that accepts this component and a model value and returns a property value
      • GeneratedVaadinSelect

        public GeneratedVaadinSelect​(T initialValue,
                                     T defaultValue,
                                     Class<P> elementPropertyType,
                                     SerializableBiFunction<R,​P,​T> presentationToModel,
                                     SerializableBiFunction<R,​T,​P> modelToPresentation,
                                     boolean isInitialValueOptional)
        Constructs a new GeneratedVaadinSelect component with the given arguments.

        If isInitialValueOptional is true then the initial value is used only if element has no "value" property value, otherwise element "value" property is ignored and the initial value is set.

        Type Parameters:
        P - the property type
        Parameters:
        initialValue - the initial value to set to the value
        defaultValue - the default value to use if the value isn't defined
        elementPropertyType - the type of the element property
        presentationToModel - a function that accepts this component and a property value and returns a model value
        modelToPresentation - a function that accepts this component and a model value and returns a property value
        isInitialValueOptional - if isInitialValueOptional is true then the initial value is used only if element has no "value" property value, otherwise element "value" property is ignored and the initial value is set
      • GeneratedVaadinSelect

        public GeneratedVaadinSelect()
        Default constructor.
    • Method Detail

      • isAutofocusBoolean

        protected boolean isAutofocusBoolean()

        Description copied from corresponding location in WebComponent:

        Specify that this control should have input focus when the page loads.

        This property is not synchronized automatically from the client side, so the returned value may not be the same as in client side.

        Returns:
        the autofocus property from the webcomponent
      • setAutofocus

        protected void setAutofocus​(boolean autofocus)

        Description copied from corresponding location in WebComponent:

        Specify that this control should have input focus when the page loads.

        Parameters:
        autofocus - the boolean value to set
      • isDisabledBoolean

        protected boolean isDisabledBoolean()

        Description copied from corresponding location in WebComponent:

        If true, the user cannot interact with this element.

        This property is not synchronized automatically from the client side, so the returned value may not be the same as in client side.

        Returns:
        the disabled property from the webcomponent
      • setDisabled

        protected void setDisabled​(boolean disabled)

        Description copied from corresponding location in WebComponent:

        If true, the user cannot interact with this element.

        Parameters:
        disabled - the boolean value to set
      • isOpenedBoolean

        @Synchronize(property="opened",
                     value="opened-changed")
        protected boolean isOpenedBoolean()

        Description copied from corresponding location in WebComponent:

        Set when the select is open

        This property is synchronized automatically from client side when a 'opened-changed' event happens.

        Returns:
        the opened property from the webcomponent
      • setOpened

        protected void setOpened​(boolean opened)

        Description copied from corresponding location in WebComponent:

        Set when the select is open

        Parameters:
        opened - the boolean value to set
      • getErrorMessageString

        protected String getErrorMessageString()

        Description copied from corresponding location in WebComponent:

        The error message to display when the select value is invalid

        This property is not synchronized automatically from the client side, so the returned value may not be the same as in client side.

        Returns:
        the errorMessage property from the webcomponent
      • setErrorMessage

        protected void setErrorMessage​(String errorMessage)

        Description copied from corresponding location in WebComponent:

        The error message to display when the select value is invalid

        Parameters:
        errorMessage - the String value to set
      • getLabelString

        protected String getLabelString()

        Description copied from corresponding location in WebComponent:

        String used for the label element.

        This property is not synchronized automatically from the client side, so the returned value may not be the same as in client side.

        Returns:
        the label property from the webcomponent
      • setLabel

        protected void setLabel​(String label)

        Description copied from corresponding location in WebComponent:

        String used for the label element.

        Parameters:
        label - the String value to set
      • isRequiredBoolean

        protected boolean isRequiredBoolean()

        Description copied from corresponding location in WebComponent:

        The current required state of the select. True if required.

        This property is not synchronized automatically from the client side, so the returned value may not be the same as in client side.

        Returns:
        the required property from the webcomponent
      • setRequired

        protected void setRequired​(boolean required)

        Description copied from corresponding location in WebComponent:

        The current required state of the select. True if required.

        Parameters:
        required - the boolean value to set
      • isInvalidBoolean

        protected boolean isInvalidBoolean()

        Description copied from corresponding location in WebComponent:

        Set to true if the value is invalid.

        This property is not synchronized automatically from the client side, so the returned value may not be the same as in client side.

        Returns:
        the invalid property from the webcomponent
      • setInvalid

        protected void setInvalid​(boolean invalid)

        Description copied from corresponding location in WebComponent:

        Set to true if the value is invalid.

        Parameters:
        invalid - the boolean value to set
      • getNameString

        protected String getNameString()

        Description copied from corresponding location in WebComponent:

        The name of this element.

        This property is not synchronized automatically from the client side, so the returned value may not be the same as in client side.

        Returns:
        the name property from the webcomponent
      • setName

        protected void setName​(String name)

        Description copied from corresponding location in WebComponent:

        The name of this element.

        Parameters:
        name - the String value to set
      • getPlaceholderString

        protected String getPlaceholderString()

        Description copied from corresponding location in WebComponent:

        A hint to the user of what can be entered in the control. The placeholder will be displayed in the case that there is no item selected, or the selected item has an empty string label, or the selected item has no label and it's DOM content is empty.

        This property is not synchronized automatically from the client side, so the returned value may not be the same as in client side.

        Returns:
        the placeholder property from the webcomponent
      • setPlaceholder

        protected void setPlaceholder​(String placeholder)

        Description copied from corresponding location in WebComponent:

        A hint to the user of what can be entered in the control. The placeholder will be displayed in the case that there is no item selected, or the selected item has an empty string label, or the selected item has no label and it's DOM content is empty.

        Parameters:
        placeholder - the String value to set
      • isReadonlyBoolean

        protected boolean isReadonlyBoolean()

        Description copied from corresponding location in WebComponent:

        When present, it specifies that the element is read-only.

        This property is not synchronized automatically from the client side, so the returned value may not be the same as in client side.

        Returns:
        the readonly property from the webcomponent
      • setReadonly

        protected void setReadonly​(boolean readonly)

        Description copied from corresponding location in WebComponent:

        When present, it specifies that the element is read-only.

        Parameters:
        readonly - the boolean value to set
      • validate

        @NotSupported
        protected void validate()

        Description copied from corresponding location in WebComponent:

        Returns true if value is valid, and sets the invalid flag appropriately.

        This function is not supported by Flow because it returns a boolean. Functions with return types different than void are not supported at this moment.

      • remove

        protected void remove​(Component... components)
        Removes the given child components from this component.
        Parameters:
        components - The components to remove.
        Throws:
        IllegalArgumentException - if any of the components is not a child of this component.
      • removeAll

        protected void removeAll()
        Removes all contents from this component, this includes child components, text content as well as child elements that have been added directly to this component using the Element API.