com.holonplatform.vaadin.components

## Interface ComposableComponent

- All Superinterfaces:
    com.vaadin.server.ClientConnector, com.vaadin.ui.Component, com.vaadin.shared.Connector, Serializable, com.vaadin.server.Sizeable
  All Known Subinterfaces:
    PropertyInputForm, PropertyViewForm

      public interface ComposableComponent
      extends com.vaadin.ui.Component

  A `Component` which supports a `ComposableComponent.Composer` delegate to compose a set of components into its content component.
  Since:
    5.0.0

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Interface and Description
    --- | ---
    `static interface` | `ComposableComponent.Builder<S,C extends com.vaadin.ui.Component,B extends ComposableComponent.Builder<S,C,B>>` Base `ComposableComponent` builder.
    `static interface` | `ComposableComponent.Composer<C extends com.vaadin.ui.Component,S>` Delegate interface to compose a set of components from a component source into a `Component` type content.

    - ### Nested classes/interfaces inherited from interface com.vaadin.ui.Component

      `com.vaadin.ui.Component.ErrorEvent, com.vaadin.ui.Component.Event, com.vaadin.ui.Component.Focusable, com.vaadin.ui.Component.Listener`

    - ### Nested classes/interfaces inherited from interface com.vaadin.server.ClientConnector

      `com.vaadin.server.ClientConnector.AttachEvent, com.vaadin.server.ClientConnector.AttachListener, com.vaadin.server.ClientConnector.ConnectorErrorEvent, com.vaadin.server.ClientConnector.DetachEvent, com.vaadin.server.ClientConnector.DetachListener`

    - ### Nested classes/interfaces inherited from interface com.vaadin.server.Sizeable

      `com.vaadin.server.Sizeable.Unit`

  - ### Field Summary

    - ### Fields inherited from interface com.vaadin.server.Sizeable

      `SIZE_UNDEFINED, UNITS_CM, UNITS_EM, UNITS_EX, UNITS_INCH, UNITS_MM, UNITS_PERCENTAGE, UNITS_PICAS, UNITS_PIXELS, UNITS_POINTS`

  - ### Method Summary

    All Methods Static Methods Instance Methods Abstract Methods Default Methods
    Modifier and Type | Method and Description
    --- | ---
    `static ComposableComponent.Composer<com.vaadin.ui.ComponentContainer,PropertyValueComponentSource>` | `componentContainerComposer()` Create a `ComposableComponent.Composer` which uses a `ComponentContainer` as composition layout and adds the property components to layout in the order they are returned from the `PropertyValueComponentSource`.
    `static ComposableComponent.Composer<com.vaadin.ui.ComponentContainer,PropertyValueComponentSource>` | `componentContainerComposer(boolean fullWidthComponents)` Create a `ComposableComponent.Composer` which uses a `ComponentContainer` as composition layout and adds the property components to layout in the order they are returned from the `PropertyValueComponentSource`.
    `void` | `compose()` Compose the components into the content component using the previously configured `ComposableComponent.Composer`.
    `com.vaadin.ui.Component` | `getContent()` Get the form content component

    - ### Methods inherited from interface com.vaadin.ui.Component

      `addListener, addStyleName, attach, getCaption, getDescription, getIcon, getId, getLocale, getParent, getPrimaryStyleName, getStyleName, getUI, isEnabled, isReadOnly, isVisible, readDesign, removeListener, removeStyleName, setCaption, setEnabled, setIcon, setId, setParent, setPrimaryStyleName, setReadOnly, setStyleName, setVisible, writeDesign`

    - ### Methods inherited from interface com.vaadin.server.ClientConnector

      `addAttachListener, addDetachListener, beforeClientResponse, detach, encodeState, getErrorHandler, getExtensions, getRpcManager, getStateType, handleConnectorRequest, isAttached, isConnectorEnabled, markAsDirty, markAsDirtyRecursive, removeAttachListener, removeDetachListener, removeExtension, requestRepaint, requestRepaintAll, retrievePendingRpcCalls, setErrorHandler`

    - ### Methods inherited from interface com.vaadin.shared.Connector

      `getConnectorId`

    - ### Methods inherited from interface com.vaadin.server.Sizeable

      `getHeight, getHeightUnits, getWidth, getWidthUnits, setHeight, setHeight, setHeightUndefined, setSizeFull, setSizeUndefined, setWidth, setWidth, setWidthUndefined`

- - ### Method Detail

    - #### getContent

          com.vaadin.ui.Component getContent()

      Get the form content component
      Returns:
        Form content component

    - #### compose

          void compose()

      Compose the components into the content component using the previously configured `ComposableComponent.Composer`.
      Throws:
        `IllegalStateException` - If the content component or the `ComposableComponent.Composer` are not configured (null)

    - #### componentContainerComposer

          static ComposableComponent.Composer<com.vaadin.ui.ComponentContainer,PropertyValueComponentSource> componentContainerComposer()

      Create a `ComposableComponent.Composer` which uses a `ComponentContainer` as composition layout and adds the property components to layout in the order they are returned from the `PropertyValueComponentSource`.
      Returns:
        A new `ComponentContainer` composer

    - #### componentContainerComposer

          static ComposableComponent.Composer<com.vaadin.ui.ComponentContainer,PropertyValueComponentSource> componentContainerComposer(boolean fullWidthComponents)

      Create a `ComposableComponent.Composer` which uses a `ComponentContainer` as composition layout and adds the property components to layout in the order they are returned from the `PropertyValueComponentSource`.
      Parameters:
        `fullWidthComponents` - `true` to set the width of all composed components to `100%`
      Returns:
        A new `ComponentContainer` composer

Copyright © 2017 The Holon Platform. All rights reserved.