You're viewing an older version of Vaadin JavaDoc. Please see version 24.7.0 for the latest.
com.vaadin.flow.component.webcomponent.

Class WebComponent<C extends Component>

  • Type Parameters:

    C - type of the component exported as web component

    All Implemented Interfaces:

    Serializable

    public final class WebComponent<C extends Component>
    extends Object
    implements Serializable

    Acts as a proxy to the web component root onto which the exporter Component is added. Allows updating web component properties and firing custom events on the client-side.

    Since:

    2.0

    Author:

    Vaadin Ltd.

    See Also:

    Serialized Form

    • Constructor Detail

      • WebComponent

        public WebComponent​(WebComponentBinding binding,
                            Element componentHost)

        Constructs a WebComponent. WebComponentBinding provides the instance of the Component exported as a web component. Binding also defines the properties the web component has. Element is the host element which contains the exported component instance (provided by the binding).

        Parameters:

        binding - binds web component configuration to component X

        componentHost - host component X on the embedding page

        See Also:

        for the web component host

    • Method Detail

      • fireEvent

        public void fireEvent​(String eventName)

        Fires a custom event on the client-side originating from the web component. This event does not bubble in the DOM hierarchy.

        Parameters:

        eventName - name of the event, not null

        See Also:

        for full set of options

      • fireEvent

        public void fireEvent​(String eventName,
                              elemental.json.JsonValue objectData)

        Fires a custom event on the client-side originating from the web component with custom event data. This event does not bubble in the DOM hierarchy.

        Parameters:

        eventName - name of the event, not null

        objectData - data the event should carry. This data is placed as the detail property of the event, nullable

        See Also:

        for full set of options

      • fireEvent

        public void fireEvent​(String eventName,
                              elemental.json.JsonValue objectData,
                              EventOptions options)

        Fires a custom event on the client-side originating from the web component with custom event data. Allows modifying the default event behavior with EventOptions.

        Parameters:

        eventName - name of the event, not null

        objectData - data the event should carry. This data is placed as the detail property of the event, nullable

        options - event options for bubbles, cancelable, and composed flags, not null

        Throws:

        NullPointerException - if either eventName or options is null

      • setProperty

        public <P extends Serializable> void setProperty​(PropertyConfiguration<C,​P> propertyConfiguration,
                                                         P value)

        Sets property value on the client-side to the given value. The required PropertyConfigurationImpl is received from WebComponentExporter when a new property is added for the web component.

        Type Parameters:

        P - type of the property value being set. If the type does not match the original property type, throws an exception

        Parameters:

        propertyConfiguration - identifies the property for which the value is being set, not null

        value - new value for the property, can be null

        Throws:

        NullPointerException - if propertyConfiguration is null

        IllegalArgumentException - if PropertyConfiguration is not a correct implementation

        IllegalArgumentException - if the web component does not have a property identified by propertyConfiguration

        IllegalArgumentException - the provided value is not of the type expected by the property