Ian,

Bundle.start() is always none UI thread. If the tool is targeting Eclipse 4 and up, you can try to use injection see details here https://wiki.eclipse.org/Eclipse4/RCP/EAS/Workbench_Services. I can be more specific if you could share your source code.

Denis




On Wed, Jul 15, 2015 at 7:26 AM, Fred Bricon <fbricon@redhat.com> wrote:
CC-ing to jbosstools-dev for more exposure

Début du message réexpédié :

De: Ian Stewart-Binks <istewart@redhat.com>
Objet: Quick SWT Question
Date: 15 juillet 2015 09:05:06 UTC−4
À: Denis Golovin <degolovi@redhat.com>
Cc: Fred Bricon <fbricon@redhat.com>

Hi Denis,

I'm the JBoss Tools intern here at Red Hat, working on an Eclipse plugin called Buildship[1].

I have an SWT related question, and my mentor, Fred Bricon, has suggested that I ask it to you.

The plugin I'm working with makes a call to getWorkbench().getActiveWorkbenchWindow() in the plugin's Activator's .start() method.
This call returns null when it is not run on the UI thread, so the code is assuming that the .start() method will always
be run on the UI thread. The AbstractUIPlugin[2] states that the deprecated method startup(), which start() is meant to replace cannot assume that it is run on the UI thread. This may be a bit pedantic: the specification for start() doesn't mention anything about the UI thread- is it still the case that we can't assume the start() method is run on the UI thread?

If it is the case that the start method can't assume that it's run on the UI thread, I will need to change some of the code to ensure that this assumption is not made.

The offending line attempts to register a selection listener. Here it is:
((ISelectionService) getWorkbench().getActiveWorkbenchWindow().getService(ISelectionService.class)).addSelectionListener(this.contextActivatingSelectionListener);

Do you know of any other ways to register this listener?

Your help is greatly appreciated.

Thank you,
Ian

[1] - https://github.com/eclipse/buildship/
[2] - http://help.eclipse.org/mars/index.jsp?topic=%2Forg.eclipse.platform.doc.isv%2Freference%2Fapi%2Forg%2Feclipse%2Fui%2Fplugin%2FAbstractUIPlugin.html


_______________________________________________
jbosstools-dev mailing list
jbosstools-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/jbosstools-dev