Class Details

java.lang.Object
com.vaadin.flow.component.Component
com.vaadin.flow.component.details.Details
All Implemented Interfaces:
AttachNotifier, DetachNotifier, HasComponents, HasElement, HasEnabled, HasSize, HasStyle, HasTheme, HasThemeVariant<DetailsVariant>, HasTooltip, Serializable
Direct Known Subclasses:
AccordionPanel

@Tag("vaadin-details") @NpmPackage(value="@vaadin/polymer-legacy-adapter",version="24.3.22") @NpmPackage(value="@vaadin/details",version="24.3.22") @JsModule("@vaadin/polymer-legacy-adapter/style-modules.js") @JsModule("@vaadin/details/src/vaadin-details.js") public class Details extends Component implements HasComponents, HasSize, HasThemeVariant<DetailsVariant>, HasTooltip
Details is an expandable panel for showing and hiding content from the user to make the UI less crowded. Details consists of a summary and a content area.

The Summary is the part that is always visible, and typically describes the contents, for example, with a title. Clicking on the summary toggles the content area’s visibility. The summary supports rich content and can contain any component. This can be utilized for example to indicate the status of the corresponding content.

The content area is the collapsible part of Details. It can contain any component. When the content area is collapsed, the content is invisible and inaccessible by keyboard or screen reader.

Author:
Vaadin Ltd
See Also:
  • Constructor Details

  • Method Details

    • createSummaryContainer

      protected Component createSummaryContainer()
      Creates the summary container component.
      Returns:
      the summary container
    • setSummary

      public void setSummary(Component summary)
      Sets the component summary
      Parameters:
      summary - the summary component to set, or null to remove any previously set summary
      See Also:
    • getSummary

      public Component getSummary()
      Returns summary component which was set via setSummary(Component) or setSummaryText(String)
      Returns:
      the summary component, null if nothing was set
    • setSummaryText

      public void setSummaryText(String summary)
      Creates a text wrapper and sets a summary via setSummary(Component)
    • getSummaryText

      public String getSummaryText()
      Returns:
      summary section content as string (empty string if nothing was set)
    • setContent

      @Deprecated public void setContent(Component content)
      Deprecated.
      since v24.2, use removeAll() and HasComponents.add(Component...) instead.
      Sets the component content
      Parameters:
      content - the content of the component to set, or null to remove any previously set content
      See Also:
    • addContent

      @Deprecated public void addContent(Component... components)
      Deprecated.
      since v24.2, use HasComponents.add(Component...) instead.
      Adds components to the content section
      Parameters:
      components - the components to add
      See Also:
    • add

      public void add(Collection<Component> components)
      Adds components to the content section
      Specified by:
      add in interface HasComponents
      Parameters:
      components - the components to add
      See Also:
    • add

      public void add(String text)
      Adds the given text to the content section
      Specified by:
      add in interface HasComponents
      Parameters:
      text - the text to add, not null
      See Also:
    • remove

      public void remove(Collection<Component> components)
      Removes specified components from the content section
      Specified by:
      remove in interface HasComponents
      Parameters:
      components - the components to remove
    • removeAll

      public void removeAll()
      Removes all components from the content section
      Specified by:
      removeAll in interface HasComponents
    • addComponentAtIndex

      public void addComponentAtIndex(int index, Component component)
      Adds the given component to the content section at the specific index.

      In case the specified component has already been added to another parent, it will be removed from there and added to the content section of this one.

      Specified by:
      addComponentAtIndex in interface HasComponents
      Parameters:
      index - the index, where the component will be added. The index must be non-negative and may not exceed the children count
      component - the component to add, value should not be null
    • getContent

      public Stream<Component> getContent()
      Returns the content components which were added via HasComponents.add(Component...)
      Returns:
      the child components of the content section
    • isOpened

      @Synchronize(property="opened", value="opened-changed") public boolean isOpened()
      Returns:
      whether details are expanded or collapsed
    • setOpened

      public void setOpened(boolean opened)

      True if the details are opened and the content is displayed

      Parameters:
      opened - the boolean value to set
    • addOpenedChangeListener

      public Registration addOpenedChangeListener(ComponentEventListener<Details.OpenedChangeEvent> listener)
      Adds a listener to get notified when the opened state of the component changes.
      Parameters:
      listener - the listener
      Returns:
      a Registration for removing the event listener