eu.webtoolkit.jwt
Class JSignal6<A1,A2,A3,A4,A5,A6>

java.lang.Object
  extended by eu.webtoolkit.jwt.AbstractSignal
      extended by eu.webtoolkit.jwt.AbstractEventSignal
          extended by eu.webtoolkit.jwt.AbstractJSignal
              extended by eu.webtoolkit.jwt.JSignal6<A1,A2,A3,A4,A5,A6>

public abstract class JSignal6<A1,A2,A3,A4,A5,A6>
extends AbstractJSignal

A signal that may be triggered from the browser with a JavaScript call, passing 6 arguments.

The argument types A1 to A6 must be a String, WString or a wrapper class of one of the Java primitive types. Values of the corresponding JavaScript types can be passed to the JavaScript call.

Note that this is an abstract class. To create a JSignal, you should specialize this class, but you do not need to reimplement any method. The reason for this is to circumvent limitations in Java to obtain introspection in the types of the arguments, and provide suitable marshaling of data from JavaScript to Java. The easiest way to instantiate an object of this class is: JSignal6 pingSignal = new JSignal6(this, "pingSignal") { }; For a usage example take a look the documentation of JSignal2.


Nested Class Summary
 
Nested classes/interfaces inherited from class eu.webtoolkit.jwt.AbstractEventSignal
AbstractEventSignal.AutoLearnListener, AbstractEventSignal.JavaScriptListener, AbstractEventSignal.LearningListener, AbstractEventSignal.PreLearnListener
 
Nested classes/interfaces inherited from class eu.webtoolkit.jwt.AbstractSignal
AbstractSignal.Connection
 
Constructor Summary
JSignal6(WObject sender, java.lang.String name)
          Creates a signal.
 
Method Summary
 AbstractSignal.Connection addListener(WObject listenerOwner, Signal.Listener listener)
          Adds a listener for this signal.
 AbstractSignal.Connection addListener(WObject listenerOwner, Signal6.Listener<A1,A2,A3,A4,A5,A6> listener)
          Adds a listener for this signal.
 java.lang.String createCall(java.lang.String arg1, java.lang.String arg2, java.lang.String arg3, java.lang.String arg4, java.lang.String arg5)
           
 java.lang.String createCall(java.lang.String arg1, java.lang.String arg2, java.lang.String arg3, java.lang.String arg4, java.lang.String arg5, java.lang.String arg6)
          Returns a JavaScript statement that triggers this signal.
 java.lang.String createEventCall(java.lang.String jsObject, java.lang.String jsEvent, java.lang.String arg1, java.lang.String arg2, java.lang.String arg3, java.lang.String arg4, java.lang.String arg5)
           
protected  int getListenerCount()
          Returns the number of connected listeners.
 void removeListener(Signal.Listener listener)
          Removes a listener.
 void removeListener(Signal6.Listener<A1,A2,A3,A4,A5,A6> listener)
          Removes a listener.
 void trigger(A1 arg1, A2 arg2, A3 arg3, A4 arg4, A5 arg5, A6 arg6)
          Triggers the signal.
 
Methods inherited from class eu.webtoolkit.jwt.AbstractJSignal
createUserEventCall, getName
 
Methods inherited from class eu.webtoolkit.jwt.AbstractEventSignal
addListener, addListener, addListener, addListener, addListener, addListener, createUserEventCall, disconnect, isConnected, isDefaultActionPrevented, isPropagationPrevented, preventDefaultAction, preventDefaultAction, preventPropagation, preventPropagation, removeListener, trigger
 
Methods inherited from class eu.webtoolkit.jwt.AbstractSignal
getListeners, isBlocked, setBlocked
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

JSignal6

public JSignal6(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 listenerOwner,
                                             Signal6.Listener<A1,A2,A3,A4,A5,A6> listener)
Adds a listener for this signal.

Each listener will be triggered whenever the signal is triggered.

Parameters:
listenerOwner - the enclosing object for a listener implemented using an (anonymous) inner class
listener - the listener
Returns:
a connection object that may be used to control the connection
See Also:
AbstractSignal.addListener(WObject, eu.webtoolkit.jwt.Signal.Listener)

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.

removeListener

public void removeListener(Signal6.Listener<A1,A2,A3,A4,A5,A6> listener)
Removes a listener.

Parameters:
listener - a listener that was previously added

trigger

public void trigger(A1 arg1,
                    A2 arg2,
                    A3 arg3,
                    A4 arg4,
                    A5 arg5,
                    A6 arg6)
Triggers the signal.

The arguments are passed to the listeners.

Parameters:
arg1 - Argument 1
arg2 - Argument 2
arg3 - Argument 3
arg4 - Argument 4
arg5 - Argument 5

createEventCall

public java.lang.String createEventCall(java.lang.String jsObject,
                                        java.lang.String jsEvent,
                                        java.lang.String arg1,
                                        java.lang.String arg2,
                                        java.lang.String arg3,
                                        java.lang.String arg4,
                                        java.lang.String arg5)

createCall

public java.lang.String createCall(java.lang.String arg1,
                                   java.lang.String arg2,
                                   java.lang.String arg3,
                                   java.lang.String arg4,
                                   java.lang.String arg5,
                                   java.lang.String arg6)
Returns a JavaScript statement that triggers this signal.

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

Parameters:
arg1 - JavaScript argument 1.
arg2 - JavaScript argument 2.
arg3 - JavaScript argument 3.
arg4 - JavaScript argument 4.
arg5 - JavaScript argument 5.
arg6 - JavaScript argument 6.

createCall

public java.lang.String createCall(java.lang.String arg1,
                                   java.lang.String arg2,
                                   java.lang.String arg3,
                                   java.lang.String arg4,
                                   java.lang.String arg5)

addListener

public AbstractSignal.Connection addListener(WObject listenerOwner,
                                             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:
listenerOwner - 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

removeListener

public void removeListener(Signal.Listener listener)
Description copied from class: AbstractSignal
Removes a listener.

Specified by:
removeListener in class AbstractSignal
Parameters:
listener - a listener that was previously added.