Approach for Attaching/Detaching Listeners [message #1229179] |
Wed, 08 January 2014 16:57  |
Eclipse User |
|
|
|
I have a model containing an Element 'Captions', that I want to reuse on several other Elements in the model (using interface inheritance).
The captions element contains a ListPropery 'FooListProperty' that needs to be modified upon value change of a ValueProperty 'RootElement/BarValueProperty', which exists on the root of the model.
I therefore want to create a FilteredListener for each instance of the 'Captions' element or 'FooListProperty' property, that is in charge for making the changes. That listener should be attached on 'RootElement/BarValueProperty'. But I'm stuck on from which place I could create and attach/detach this listener.
I've tried the Service approach but could not get it running:
1. Service, that registers Listener within init(). Created a CustomService extends Service, added it to META-INF sapphire-extension.xml, annotated it on FooListProperty with @Service > but init() method is never invoked!
2. like 1. + including a Condition Class, that was also added to sapphire-extension.xml > applicable() method is never invoked!
What's required to get the init() method invoked of a CustomService that extends org.eclipse.sapphire.services.Service ?
Or could you please advice whats the easiest approach for attaching/detaching a simple listener on a field. I also did not find a suitable example in the samples project.
Thanks for your answer.
Andreas
[Updated on: Wed, 08 January 2014 16:59] by Moderator
|
|
|
|
|
Re: Approach for Attaching/Detaching Listeners [message #1229492 is a reply to message #1229338] |
Thu, 09 January 2014 09:59  |
Eclipse User |
|
|
|
Quote:One remaining questions regarding the custom service approach is where I would typically request such a custom service from?
You would request the service from its context, in this case your property instance (for instance element.getSomeProp().service(CustomService.class)). The service is initialized on first access. As to where you would make this call, that depends on what you need the service for. You can do it from another service, or from a ui aspect, such as an action, or from anywhere else for that matter.
|
|
|
Powered by
FUDForum. Page generated in 0.04922 seconds