Class AbstractEventSignal

  • Direct Known Subclasses:
    AbstractJSignal, EventSignal, EventSignal1

    public abstract class AbstractEventSignal
    extends AbstractSignal
    Abstract base class for event signals.

    Event signals are signals that may be triggered from the browser. Listeners that are added to this signal may be implemented in Java only or in JavaScript only or have both Java and JavaScript implementations.

    • Method Detail

      • addListener

        public void addListener​(WObject listenerOwner,
                                AbstractEventSignal.LearningListener listener)
        Adds a learning listener to this signal.

        An owner object may be passed when the listener is implemented using an anonymous inner class. In that case the owner object should be the enclosing object of the listener object, and this is used to bind the lifetime of the listener: when the owner object is garbage collected, the listener will be freed as well. This avoids the most common reason for memory leaks in Java implementations of the Observer pattern: the owner object will not get garbage collected because of the (anonymous) listener object having a reference to it, even if the receiver object is no longer referenced from anywhere. When the owner object is not null, the listener is stored using a strong reference in the owner object, and using a weak reference in the signal. Note: The receiver is currently not yet used.

        Parameters:
        listenerOwner - if not null, the enclosing object for an anonymous listener
        listener - the listener
      • removeListener

        public void removeListener​(AbstractEventSignal.LearningListener listener)
        Remove a learning listener from this signal.
        Parameters:
        listener - a learning listener that was previously added
      • removeListener

        public void removeListener​(JSlot listener)
        Remove a JavaScript listener from this signal.
        Parameters:
        listener - a learning listener that was previously added
      • getListenerCount

        protected int getListenerCount()
        Description copied from class: AbstractSignal
        Returns the number of connected listeners.
        Overrides:
        getListenerCount in class AbstractSignal
        Returns:
        the number of connected listeners.
      • isCanAutoLearn

        public boolean isCanAutoLearn()
      • isConnected

        public boolean isConnected()
        Description copied from class: AbstractSignal
        Returns whether at least one event listener has been connected to this signal.
        Overrides:
        isConnected in class AbstractSignal
        Returns:
        whether at least one event listener has been connected to this signal.
      • isPropagationPrevented

        public boolean isPropagationPrevented()
        Returns whether the default action is prevented.
        Returns:
        whether the default action is prevented.
        See Also:
        preventPropagation(boolean)
      • isDefaultActionPrevented

        public boolean isDefaultActionPrevented()
        Returns whether propagation of the event is prevented.
        Returns:
        whether the default action is prevented.
        See Also:
        preventDefaultAction(boolean)
      • addListener

        public void addListener​(JSlot slot)
        Adds a JavaScript event listener.
        Parameters:
        slot - the JavaScript event listener
      • addListener

        public void addListener​(java.lang.String javascript)
        Adds a JavaScript event listener. This adds a listener that is implemented solely as a client-side JavaScript function. The argument is a JavaScript function which optionally accepts a DOM element and the event:
           function(element, event)
           {
              ...
           }
         
        Parameters:
        javascript - the JavaScript function.
      • preventDefaultAction

        public void preventDefaultAction​(boolean prevent)
        Prevents the default action associated with this event.

        This prevents the default browser action associated with this event.

        Parameters:
        prevent - whether the default action should be prevented.
      • preventDefaultAction

        public void preventDefaultAction()
        Prevents the default action associated with this event.

        This prevents the default browser action associated with this event.

      • preventPropagation

        public void preventPropagation​(boolean prevent)
        Prevents the default action associated with this event.

        This prevents the event propagation to ancestors.

        Parameters:
        prevent - whether the default action should be prevented.
      • preventPropagation

        public final void preventPropagation()
        Prevents the default action associated with this event.

        This prevents both the default browser action associated with this event as well as the event bubbling up or cascading its hierarchy.

      • createUserEventCall

        protected java.lang.String createUserEventCall​(java.lang.String jsObject,
                                                       java.lang.String jsEvent,
                                                       java.lang.String name,
                                                       java.lang.String arg1,
                                                       java.lang.String arg2,
                                                       java.lang.String arg3,
                                                       java.lang.String arg4,
                                                       java.lang.String arg5,
                                                       java.lang.String arg6)