com.vaadin.flow.component.

Class Composite<T extends Component>

  • Type Parameters:

    T - the type of the content

    All Implemented Interfaces:

    AttachNotifier, DetachNotifier, HasElement, Serializable

    Direct Known Subclasses:

    AbstractCompositeField


    public abstract class Composite<T extends Component>
    extends Component

    A composite encapsulates a Component tree to allow creation of new components by composing existing components. By encapsulating the component, its API can be hidden or presented in a different way for the user of the composite.

    The encapsulated component tree is available through getContent(). Composite will by default look at the generic type declaration of its subclass to find the content type and create an instance if the type has a no-args constructor. You can also override initContent() to manually create the component tree. The encapsulated component itself can contain more components.

    Composite is a way to hide API on the server side. It does not contribute any element to the Element tree.

    Since:

    1.0

    Author:

    Vaadin Ltd

    See Also:

    Serialized Form

    • Constructor Detail

      • Composite

        protected Composite()

        Creates a new composite.

        To define your own composite, extend this class and implement initContent().

    • Method Detail

      • initContent

        protected T initContent()

        Called when the content of this composite is requested for the first time.

        This method should initialize the component structure for the composite and return the root component.

        By default, this method uses reflection to instantiate the component based on the generic type of the sub class.

        Returns:

        the root component which this composite wraps, never null

      • getContent

        public T getContent()

        Gets the content of the composite, i.e. the component the composite is wrapping.

        Returns:

        the content for the composite, never null

      • getElement

        public Element getElement()

        Gets the root element of this composite.

        For a composite, the root element is the same as the root element of the content of the composite.

        Specified by:

        getElement in interface HasElement

        Overrides:

        getElement in class Component

        Returns:

        the root element of this component

      • getChildren

        public Stream<Component> getChildren()

        Gets the child components of this composite.

        A composite always has one child component, returned by initContent().

        Overrides:

        getChildren in class Component

        Returns:

        the child component of this composite

        See Also:

        Id