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