Hi,
I knew the hookControl() method for attaching selectionChangeListener to
ComboBox selectionListener. But the problem was not due to this. It is
because of the code in org.eclipse.swt.widgets.Combo.java see the
snippet:
public void select (int index) {
checkWidget ();
int count = OS.SendMessage (handle, OS.CB_GETCOUNT, 0, 0);
if (0 <= index && index < count) {
int selection = OS.SendMessage (handle, OS.CB_GETCURSEL, 0,
0);
int code = OS.SendMessage (handle, OS.CB_SETCURSEL, index,
0);
if (code != OS.CB_ERR && code != selection) {
sendEvent (SWT.Modify); -- it is for
Combo.addModifyListener not for Combo.addSelectionListener
// widget could be disposed at this point
}
}
Due to which It was not calling the selectionListener for this event.
I did following changes in net.sf.swtbot.widgets.SWTBotCombo.java,
please let me know will it cause some damage or is it fine:
public void setSelection(final int index) {
checkEnabled();
int itemCount = itemCount();
if (index > itemCount)
throw new RuntimeException("The index (" + index + ")
is more than the number of items (" + itemCount + ") in the combo.");
asyncExec(new VoidResult() {
public void run() {
getCombo().select(index);
}
});
Notify(SWT.Selection); // changes I did
}
_________________________________________________________
Ankit Jain / Capgemini "India" / Bangalore
Consultant/ Sogeti
Com1: 080-6656700- extn: 8473 Com2: +919986017572 / www.capgemini.com
Together. Free your energies
_________________________________________________________
-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Ketan
Padegaonkar
Sent: Wednesday, August 27, 2008 7:39 PM
To: swtbot-users@lists.sourceforge.net
Subject: Re: [SWTBot-users] Selection Listener not working
On 27-Aug-08, at 7:04 PM, Jain, Ankit wrote:
> Hi All,
>
> I found the reason why the code below is not working.
>
> It is because The listener added to Comboviewer object not to Combo.
> Therefore it is not working.
AFAIK ComboViewer (or any other viewer) does a hookControl(Control)
which adapts the SWT's SelectionListener to JFace's
SelectionChangedEvent. So listeners hooked into Combo or ComboViewer
should continue to work. JFace merely translates SWT events into JFace
events.
I may be wrong so I'd recommend going through the hookControl that's
invoked in the ComboViewer's constructor.
You could add a breakpoint into the anonymous SelectionListener inside
hookControl()
-- Ketan
------------------------------------------------------------------------
-
This SF.Net email is sponsored by the Moblin Your Move Developer's
challenge
Build the coolest Linux based applications with Moblin SDK & win great
prizes
Grand prize is a trip for two to an Open Source event anywhere in the
world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
SWTBot-users mailing list
SWTBot-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/swtbot-users
http://swtbot.org/ - a functional testing tool for SWT/Eclipse
-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
SWTBot-users mailing list
SWTBot-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/swtbot-users
http://swtbot.org/ - a functional testing tool for SWT/Eclipse