Adds the listener to the collection of listeners who will
be notified when the control is selected by the user, by sending
it one of the messages defined in the <code>SelectionListener</code>
interface.
<p>
When <code>widgetSelected</code> is called, the x, y, width, and height fields of the event object are valid.
If the receiver is being dragged, the event object detail field contains the value <code>SWT.DRAG</code>.
<code>widgetDefaultSelected</code> is not called.
</p>
@param listener the listener which should be notified when the control is selected by the user
@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 control is selected by the user, by sending it one of the messages defined in the <code>SelectionListener</code> interface. <p> When <code>widgetSelected</code> is called, the x, y, width, and height fields of the event object are valid. If the receiver is being dragged, the event object detail field contains the value <code>SWT.DRAG</code>. <code>widgetDefaultSelected</code> is not called. </p>
@param listener the listener which should be notified when the control is selected by the user
@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