Class JSignal


  • public class JSignal
    extends AbstractJSignal
    A signal that may be triggered from the browser with a JavaScript call. For a usage example take a look the documentation of JSignal2.
    • Constructor Detail

      • JSignal

        public JSignal​(WObject sender,
                       java.lang.String name)
        Creates a signal.
        Parameters:
        sender - the object that will be identified as the sender for this signal.
        name - the signal name (must be unique for each sender)
    • Method Detail

      • addListener

        public AbstractSignal.Connection addListener​(WObject receiver,
                                                     Signal.Listener listener)
        Description copied from class: AbstractSignal
        Adds a listener for this signal.

        Each listener will be notified when the signal is triggered.

        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. To avoid the owner object from not being garbage collected when it is no longer used, only the owner object will add a reference to the listener, while the signal will use a weak reference.

        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.

        Specified by:
        addListener in class AbstractSignal
        Parameters:
        receiver - if not null, the enclosing object for a listener implemented using an inner class
        listener - the listener
        Returns:
        a connection object that may be used to control the connection
      • getListenerCount

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

        public void trigger()
        Triggers the signal.
      • createCall

        public java.lang.String createCall()
        Returns a JavaScript statement that triggers this signal.

        You can use this to trigger the signal from within generated JavaScript code.