[jbosstools-dev] Quick SWT Question

Alexey Kazakov alkazako at redhat.com
Wed Jul 15 13:12:44 EDT 2015


Agree with Max. But if you really need something general to listen to 
everything you can use the early start up mechanism (see 
org.eclipse.ui.IStartup). Your code will be invoked when the workbench 
is initialized.
For example we use it in our usage to register a wizard listener to be 
able to track all wizards in Eclipse.

On 07/15/2015 12:07 PM, Max Rydahl Andersen wrote:
> I think you need to look *when* you actually need the selection listener
> registered.
>
> Normally it is not something to do at startup, but more when your gfx
> part (editor/view etc.) gets created you need to start to listen.
>
> /max
>
>> CC-ing to jbosstools-dev for more exposure
>>
>>> Début du message réexpédié :
>>>
>>> De: Ian Stewart-Binks <istewart at redhat.com>
>>> Objet: Quick SWT Question
>>> Date: 15 juillet 2015 09:05:06 UTC−4
>>> À: Denis Golovin <degolovi at redhat.com>
>>> Cc: Fred Bricon <fbricon at 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 at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/jbosstools-dev
>
> /max
> http://about.me/maxandersen
>
> _______________________________________________
> jbosstools-dev mailing list
> jbosstools-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/jbosstools-dev



More information about the jbosstools-dev mailing list