Class MessageManager


  • public class MessageManager
    extends AbstractCollaborationManager
    Manager to handle messages sent to a topic. It allows submitting messages to a topic and set a handler to react when a new message has been submitted.
    Author:
    Vaadin Ltd
    • Constructor Detail

      • MessageManager

        public MessageManager​(Component component,
                              UserInfo localUser,
                              String topicId)
        Creates a new manager for the given component.
        Parameters:
        component - the component which holds UI access, not null
        localUser - the information of the local user, not null
        topicId - the id of the topic to connect to, not null
      • MessageManager

        public MessageManager​(Component component,
                              UserInfo localUser,
                              String topicId,
                              CollaborationMessagePersister persister)
        Creates a new persisting manager for the given component.
        Parameters:
        component - the component which holds UI access, not null
        localUser - the information of the local user, not null
        topicId - the id of the topic to connect to, not null
        persister - the persister to read/write messages to an external source
      • MessageManager

        public MessageManager​(ConnectionContext context,
                              UserInfo localUser,
                              String topicId,
                              CollaborationEngine collaborationEngine)
        Creates a new manager for the given connection context.
        Parameters:
        context - the context that manages connection status, not null
        localUser - the information of the local user, not null
        topicId - the id of the topic to connect to, not null
        collaborationEngine - the collaboration engine instance to use, not null
      • MessageManager

        public MessageManager​(ConnectionContext context,
                              UserInfo localUser,
                              String topicId,
                              CollaborationMessagePersister persister,
                              CollaborationEngine collaborationEngine)
        Creates a new persisting manager for the given connection context.
        Parameters:
        context - the context that manages connection status, not null
        localUser - the information of the local user, not null
        topicId - the id of the topic to connect to, not null
        persister - the persister to read/write messages to an external source
        collaborationEngine - the collaboration engine instance to use, not null
    • Method Detail

      • setMessageHandler

        public void setMessageHandler​(MessageHandler handler)
        Sets a handler which will be invoked for all messages already in the topic and when a new message is submitted.

        The handler accepts a MessageHandler.MessageContext as a parameter which contains a reference to the sent message.

        Parameters:
        handler - the message handler, or null to remove an existing handler
      • submit

        public CompletableFuture<Void> submit​(String text)
        Submits a message to the topic as the current local user.
        Parameters:
        text - the text of the message, not null
        Returns:
        a future which will complete when the message has been added to the topic, not null
      • submit

        public CompletableFuture<Void> submit​(CollaborationMessage message)
        Submits a message to the topic.
        Parameters:
        message - the message, not null
        Returns:
        a future which will complete when the message has been added to the topic, not null