Class WebComponent<C extends Component>

java.lang.Object
com.vaadin.flow.component.webcomponent.WebComponent<C>
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:
  • Constructor Details

    • 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:
  • Method Details

    • 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:
    • 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:
    • 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