Jump to: navigation, search

Eclipse4/RCP/Event Model

Stop.png
This page is a stub
This page is unfortunately incomplete


E4AP uses a pub/sub approach to events. The material on | Event Processing in E4 should be integrated here.

Topics:

 * UIEvents, the @UIEventTopic annotation
 * IEventBroker

FIXME: Pulled the following from the e4 image viewer demo, but it uses an OSGi EventAdmin directly rather than IEventBroker.

Notification of an Event

Can we use @UIEventTopic(UIEvents.buildTopic(UIEvents.UIElement.TOPIC, UIEvents.UIElement.WIDGET)) ??

@Inject @Optional
public void setInput(@UIEventTopic(Part.EVENT_NAME) PojoObject input) {
	...
}

Posting an Event

public class Part {
	final static public String EVENT_NAME = "org/eclipse/e4/demo/app/value"; 
 
	@Inject
	private EventAdmin eventAdmin;
 
	@PostConstruct
	void init() {
		...
		viewer.addSelectionChangedListener(new ISelectionChangedListener() {
			public void selectionChanged(SelectionChangedEvent event) {
				Object selected = ((StructuredSelection) event.getSelection()).getFirstElement();
				if (eventAdmin != null)
					EventUtils.post(eventAdmin, EVENT_NAME, selected);
			}
		});
		....
	}