com.vaadin.flow.dom.impl.

Class ShadowRootStateProvider

  • All Implemented Interfaces:

    ElementStateProvider, Serializable


    public class ShadowRootStateProvider
    extends AbstractNodeStateProvider

    Implementation which handles shadow root nodes.

    Only the methods implemented in the AbstractNodeStateProvider are supported (related to the composition).

    The data is stored directly in the state node but this should be considered an implementation detail which can change.

    For internal use only. May be renamed or removed in a future release.

    Since:

    1.0

    Author:

    Vaadin Ltd

    See Also:

    Serialized Form

    • Constructor Detail

      • ShadowRootStateProvider

        public ShadowRootStateProvider()
    • Method Detail

      • get

        public static ShadowRootStateProvider get()

        Gets the one and only instance.

        Returns:

        the instance to use for shadow root nodes

      • createShadowRootNode

        public StateNode createShadowRootNode(StateNode node)

        Create a new shadow root node for the given element node.

        Parameters:

        node - the node to create the shadow root for

        Returns:

        the shadow root node

      • getTag

        public String getTag(StateNode node)

        Description copied from interface: ElementStateProvider

        Gets the tag name for the given node.

        Parameters:

        node - the node containing the data

        Returns:

        the tag name

      • setAttribute

        public void setAttribute(StateNode node,
                                 String attribute,
                                 String value)

        Description copied from interface: ElementStateProvider

        Sets the given attribute to the given value.

        Parameters:

        node - the node containing the data

        attribute - the attribute name, not null

        value - the attribute value

      • setAttribute

        public void setAttribute(StateNode node,
                                 String attribute,
                                 AbstractStreamResource resource)

        Description copied from interface: ElementStateProvider

        Sets the given attribute to the given StreamResource value.

        Parameters:

        node - the node containing the data

        attribute - the attribute name, not null

        resource - the attribute value, not null

      • getAttribute

        public String getAttribute(StateNode node,
                                   String attribute)

        Description copied from interface: ElementStateProvider

        Gets the value of the given attribute.

        Parameters:

        node - the node containing the data

        attribute - the attribute name, not null

        Returns:

        the attribute value or null if the attribute has not been set

      • hasAttribute

        public boolean hasAttribute(StateNode node,
                                    String attribute)

        Description copied from interface: ElementStateProvider

        Checks if the given attribute has been set.

        Parameters:

        node - the node containing the data

        attribute - the attribute name, not null

        Returns:

        true if the attribute has been set, false otherwise

      • removeAttribute

        public void removeAttribute(StateNode node,
                                    String attribute)

        Description copied from interface: ElementStateProvider

        Removes the given attribute if it has been set.

        Parameters:

        node - the node containing the data

        attribute - the attribute name, not null

      • getAttributeNames

        public Stream<String> getAttributeNames(StateNode node)

        Description copied from interface: ElementStateProvider

        Gets the defined attribute names.

        Parameters:

        node - the node containing the data

        Returns:

        the defined attribute names

      • addEventListener

        public DomListenerRegistration addEventListener(StateNode node,
                                                        String eventType,
                                                        DomEventListener listener)

        Description copied from interface: ElementStateProvider

        Adds a DOM event listener.

        Parameters:

        node - the node containing the data

        eventType - the event type

        listener - the listener

        Returns:

        a handle for configuring or removing the listener

      • getProperty

        public Serializable getProperty(StateNode node,
                                        String name)

        Description copied from interface: ElementStateProvider

        Gets the value of the given property.

        Parameters:

        node - the node containing the data

        name - the property name, not null

        Returns:

        the property value, or null if the property has not been set

      • setProperty

        public void setProperty(StateNode node,
                                String name,
                                Serializable value,
                                boolean emitChange)

        Description copied from interface: ElementStateProvider

        Sets the given property to the given value.

        Parameters:

        node - the node containing the data

        name - the property name, not null

        value - the property value

        emitChange - true to create a change event for the client side

      • removeProperty

        public void removeProperty(StateNode node,
                                   String name)

        Description copied from interface: ElementStateProvider

        Removes the given property if it has been set.

        Parameters:

        node - the node containing the data

        name - the property name, not null

      • hasProperty

        public boolean hasProperty(StateNode node,
                                   String name)

        Description copied from interface: ElementStateProvider

        Checks if the given property has been set.

        Parameters:

        node - the node containing the data

        name - the property name, not null

        Returns:

        true if the property has been set, false otherwise

      • getPropertyNames

        public Stream<String> getPropertyNames(StateNode node)

        Description copied from interface: ElementStateProvider

        Gets the defined property names.

        Parameters:

        node - the node containing the data

        Returns:

        the defined property names

      • isTextNode

        public boolean isTextNode(StateNode node)

        Description copied from interface: ElementStateProvider

        Checks if the state node represents a text node.

        Parameters:

        node - the node to check

        Returns:

        true if the state node represents a text node; otherwise false

      • getClassList

        public ClassList getClassList(StateNode node)

        Description copied from interface: ElementStateProvider

        Gets a list representation of all CSS class names set for an element.

        Parameters:

        node - the node containing the data

        Returns:

        the class list, never null

      • getStyle

        public Style getStyle(StateNode node)

        Description copied from interface: ElementStateProvider

        Returns a style instance for managing element inline styles.

        Parameters:

        node - the node containing the data

        Returns:

        the element styles

      • getSynchronizedPropertyEvents

        public Set<String> getSynchronizedPropertyEvents(StateNode node)

        Description copied from interface: ElementStateProvider

        Gets the event types which should trigger synchronization of properties from the client side to the server.

        Parameters:

        node - the node containing the data

        Returns:

        the event types which should trigger synchronization

      • addPropertyChangeListener

        public Registration addPropertyChangeListener(StateNode node,
                                                      String name,
                                                      PropertyChangeListener listener)

        Description copied from interface: ElementStateProvider

        Adds a property change listener.

        Parameters:

        node - the node containing the property

        name - the property name to add the listener for

        listener - listener to get notifications about property value changes

        Returns:

        an event registration handle for removing the listener

      • getShadowRoot

        public StateNode getShadowRoot(StateNode node)

        Description copied from interface: ElementStateProvider

        Gets shadow root for the node if it has been attached.

        Parameters:

        node - the node having a shadow root, not null

        Returns:

        the shadow root of the node, may be null

      • attachShadow

        public StateNode attachShadow(StateNode node)

        Description copied from interface: ElementStateProvider

        Attaches the shadow root for the node.

        Parameters:

        node - the node to attach the shadow root

        Returns:

        the shadow root of the node

      • visit

        public void visit(StateNode node,
                          NodeVisitor visitor)

        Description copied from interface: ElementStateProvider

        Visit the node applying visitor to it and its descendants based on the return value from the visitor.

        Parameters:

        node - the node to visit

        visitor - the visitor to apply to the node

      • setVisible

        public void setVisible(StateNode node,
                               boolean visible)

        Description copied from interface: ElementStateProvider

        Sets the node visibility.

        Parameters:

        node - the node containing the data

        visible - the node visibility value

      • isVisible

        public boolean isVisible(StateNode node)

        Description copied from interface: ElementStateProvider

        Gets the node visibility.

        Parameters:

        node - the node containing the data

        Returns:

        the node visibility