Class MessageList

java.lang.Object
com.vaadin.flow.component.Component
com.vaadin.flow.component.messages.MessageList
All Implemented Interfaces:
AttachNotifier, DetachNotifier, HasElement, HasSize, HasStyle, HasTheme, HasThemeVariant<MessageListVariant>, LocaleChangeObserver, Serializable

@Tag("vaadin-message-list") @JsModule("./messageListConnector.js") @JsModule("@vaadin/message-list/src/vaadin-message-list.js") @NpmPackage(value="@vaadin/message-list", version="25.3.2") public class MessageList extends Component implements HasStyle, HasSize, LocaleChangeObserver, HasThemeVariant<MessageListVariant>
Message List allows you to show a list of messages, for example, a chat log. You can configure the text content, information about the sender and the time of sending for each message. The component displays a list of messages that can be configured with setItems(Collection).
Since:
14.7
Author:
Vaadin Ltd.
See Also:
  • Constructor Details

    • MessageList

      public MessageList()
      Creates a new message list component. To populate the content of the list, use setItems(Collection).
    • MessageList

      public MessageList(Collection<MessageListItem> items)
      Creates a new message list component, with the provided items rendered as messages.
      Parameters:
      items - the items to render as messages
      See Also:
    • MessageList

      public MessageList(MessageListItem... items)
      Creates a new message list component, with the provided items rendered as messages.
      Parameters:
      items - the items to render as messages
      See Also:
    • MessageList

      public MessageList(Signal<List<S>> itemsSignal)
      Creates a new message list component with the provided signal bound to the items.

      The rendered messages are updated when the signal's value or any individual item signal changes. Any signal change results in a full update.

      Type Parameters:
      S - the type of signal holding individual items
      Parameters:
      itemsSignal - the signal to bind the items to, not null
      Since:
      25.2
      See Also:
  • Method Details

    • setItems

      public void setItems(Collection<MessageListItem> items)
      Sets the items that will be rendered as messages in this message list.
      Parameters:
      items - the items to set, not null and not containing any null items
    • setItems

      public void setItems(MessageListItem... items)
      Sets the items that will be rendered as messages in this message list.
      Parameters:
      items - the items to set, none of which can be null
    • addItem

      public void addItem(MessageListItem item)
      Adds a single item to be rendered as a message at the end of this message list.
      Parameters:
      item - the item to add, not null
      Since:
      24.8
    • getItems

      public List<MessageListItem> getItems()
      Gets the items that are rendered as message components in this message list.
      Returns:
      an unmodifiable view of the list of items
    • bindItems

      public <S extends Signal<MessageListItem>> SignalBinding<List<S>> bindItems(Signal<List<S>> itemsSignal)
      Binds the given signal to the items of the message list as a one-way binding so that the rendered messages are updated when the signal's value or any individual item signal changes. Any signal change results in a full update.

      When a signal is bound, the items are kept synchronized with the signal value while the component is attached. When the component is detached, signal value changes have no effect.

      While a signal is bound, any attempt to modify items manually through setItems(Collection) or addItem(MessageListItem) throws a BindingActiveException.

      Type Parameters:
      S - the type of signal holding individual items
      Parameters:
      itemsSignal - the signal to bind the items to, not null
      Since:
      25.2
    • localeChange

      public void localeChange(LocaleChangeEvent event)
      Description copied from interface: LocaleChangeObserver
      Notifies when the UI locale is changed.
      Specified by:
      localeChange in interface LocaleChangeObserver
      Parameters:
      event - locale change event with event details
    • setMarkdown

      public void setMarkdown(boolean markdown)
      Sets whether the messages should be parsed as markdown. By default, this is set to false.
      Parameters:
      markdown - true if the message text is parsed as Markdown.
      Since:
      24.8
    • isMarkdown

      public boolean isMarkdown()
      Returns whether the messages are parsed as markdown.
      Returns:
      true if the message text is parsed as Markdown.
      Since:
      24.8
    • setAnnounceMessages

      public void setAnnounceMessages(boolean announceMessages)
      When set to true, new messages are announced to assistive technologies using ARIA live regions. By default, this is set to false.
      Parameters:
      announceMessages - true if new messages should be announced to assistive technologies.
      Since:
      24.8
    • isAnnounceMessages

      public boolean isAnnounceMessages()
      Returns whether new messages are announced to assistive technologies.
      Returns:
      true if new messages are announced to assistive technologies.
      Since:
      24.8
    • getTypingUsers

      public List<MessageListUser> getTypingUsers()
      Gets the users that are currently typing.

      This API is experimental and needs to be enabled with the com.vaadin.experimental.messageListTypingIndicator or com.vaadin.experimental.aiComponents feature flag.

      Returns:
      an unmodifiable view of the users that are currently typing, empty by default
      Since:
      25.3
    • setTypingUsers

      public void setTypingUsers(List<MessageListUser> typingUsers)
      Sets the users that are currently typing. A typing indicator with the names and avatars of these users is rendered at the end of the message list. Pass an empty list to hide the typing indicator.

      The message list does not remove the users on its own. It is up to the application to clear them once the users have stopped typing.

      This API is experimental and needs to be enabled with the com.vaadin.experimental.messageListTypingIndicator or com.vaadin.experimental.aiComponents feature flag.

      Parameters:
      typingUsers - the users that are currently typing, not null and not containing any null users
      Since:
      25.3
    • setTypingUsers

      public void setTypingUsers(MessageListUser... typingUsers)
      Sets the users that are currently typing. A typing indicator with the names and avatars of these users is rendered at the end of the message list. Pass no users to hide the typing indicator.

      The message list does not remove the users on its own. It is up to the application to clear them once the users have stopped typing.

      This API is experimental and needs to be enabled with the com.vaadin.experimental.messageListTypingIndicator or com.vaadin.experimental.aiComponents feature flag.

      Parameters:
      typingUsers - the users that are currently typing, none of which can be null
      Since:
      25.3
    • bindTypingUsers

      public <S extends Signal<MessageListUser>> SignalBinding<List<MessageListUser>> bindTypingUsers(Signal<List<S>> typingUsersSignal)
      Binds the given signal to the users that are currently typing as a one-way binding so that the typing indicator is updated when the signal's value or any individual user signal changes.

      When a signal is bound, the typing users are kept synchronized with the signal value while the component is attached. When the component is detached, signal value changes have no effect.

      While a signal is bound, any attempt to modify the typing users manually through setTypingUsers(List) throws a BindingActiveException.

      This API is experimental and needs to be enabled with the com.vaadin.experimental.messageListTypingIndicator or com.vaadin.experimental.aiComponents feature flag.

      Type Parameters:
      S - the type of signal holding individual users
      Parameters:
      typingUsersSignal - the signal to bind the typing users to, not null
      Returns:
      a SignalBinding that can be used to register onChange callbacks
      Since:
      25.3
    • getTypingIndicatorType

      public MessageListTypingIndicatorType getTypingIndicatorType()
      Gets the style in which the typing indicator is rendered.

      This API is experimental and needs to be enabled with the com.vaadin.experimental.messageListTypingIndicator or com.vaadin.experimental.aiComponents feature flag.

      Returns:
      the typing indicator type, MessageListTypingIndicatorType.DEFAULT by default
      Since:
      25.3
    • setTypingIndicatorType

      public void setTypingIndicatorType(MessageListTypingIndicatorType typingIndicatorType)
      Sets the style in which the typing indicator is rendered. The style is applied right away, also when the typing indicator is currently displayed. By default, the typing indicator is rendered in the MessageListTypingIndicatorType.DEFAULT style.

      This API is experimental and needs to be enabled with the com.vaadin.experimental.messageListTypingIndicator or com.vaadin.experimental.aiComponents feature flag.

      Parameters:
      typingIndicatorType - the typing indicator type, not null
      Since:
      25.3
    • getI18n

      public MessageListI18n getI18n()
      Gets the internationalization object previously set for this component.

      Note: updating the object properties after getting the i18n object does not update the component. Set the object again with setI18n(MessageListI18n) to apply the changes.

      This API is experimental and needs to be enabled with the com.vaadin.experimental.messageListTypingIndicator or com.vaadin.experimental.aiComponents feature flag.

      Returns:
      the i18n object, or null if no i18n object has been set
      Since:
      25.3
    • setI18n

      public void setI18n(MessageListI18n i18n)
      Sets the internationalization object for this component. The texts are applied right away, also when the typing indicator is currently displayed.

      Note: updating the object properties after setting the i18n object does not update the component. Set the object again to apply the changes.

      This API is experimental and needs to be enabled with the com.vaadin.experimental.messageListTypingIndicator or com.vaadin.experimental.aiComponents feature flag.

      Parameters:
      i18n - the i18n object, not null
      Since:
      25.3
    • onAttach

      protected void onAttach(AttachEvent attachEvent)
      Description copied from class: Component
      Called when the component is attached to a UI.

      This method is invoked before the AttachEvent is fired for the component. Make sure to call super.onAttach when overriding this method.

      Overrides:
      onAttach in class Component
      Parameters:
      attachEvent - the attach event
    • addAttachmentClickListener

      public Registration addAttachmentClickListener(ComponentEventListener<MessageList.AttachmentClickEvent> listener)
      Adds a listener that is called when an attachment is clicked.
      Parameters:
      listener - the listener to add
      Returns:
      a registration that can be used to remove the listener
      Since:
      25.1