Adds the listener to the collection of listeners who will
be notified when the user changes the receiver's selection, by sending
it one of the messages defined in the <code>SelectionListener</code>
interface.
<p>
When <code>widgetSelected</code> is called, the item field of the event object is valid.
If the receiver has <code>SWT.CHECK</code> style set and the check selection changes,
the event object detail field contains the value <code>SWT.CHECK</code>.
<code>widgetDefaultSelected</code> is typically called when an item is double-clicked.
The item field of the event object is valid for default selection, but the detail field is not used.
</p>
@param listener the listener which should be notified when the user changes the receiver's selection
@exception IllegalArgumentException <ul>
<li>ERROR_NULL_ARGUMENT - if the listener is null</li>
</ul>
@exception SWTException <ul>
<li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
<li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
</ul>
Adds the listener to the collection of listeners who will be notified when the user changes the receiver's selection, by sending it one of the messages defined in the <code>SelectionListener</code> interface. <p> When <code>widgetSelected</code> is called, the item field of the event object is valid. If the receiver has <code>SWT.CHECK</code> style set and the check selection changes, the event object detail field contains the value <code>SWT.CHECK</code>. <code>widgetDefaultSelected</code> is typically called when an item is double-clicked. The item field of the event object is valid for default selection, but the detail field is not used. </p>
@param listener the listener which should be notified when the user changes the receiver's selection
@exception IllegalArgumentException <ul> <li>ERROR_NULL_ARGUMENT - if the listener is null</li> </ul> @exception SWTException <ul> <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> </ul>
@see SelectionListener @see #removeSelectionListener @see SelectionEvent