Composition with CustomComponent

    As described earlier in “Compositing Components”, you have two basic ways to create a composite - either by extending a layout component or the CustomComponent, which typically wraps around a layout component. The benefit of wrapping a layout composite in CustomComponent is mainly encapsulation - hiding the implementation details of the composition. Otherwise, a user of the composite could rely on implementation details, which would create an unwanted dependency.

    To create a composite, you need to inherit the CustomComponent and set the composition root component in the constructor. The composition root is typically a layout component that contains other components.

    For example:

    Take note of the sizing when trying to make a customcomponent that shrinks to fit the contained components. You have to set the size as undefined at all levels; the sizing of the composite component and the composition root are separate.

    You can use the component as follows:

    Java

    A custom composite component

    You can also inherit any other components, such as layouts, to attain similar composition. Even further, you can create entirely new low-level components, by integrating pure client-side components or by extending the client-side functionality of built-in components. Development of new components is covered in .