Jump to: navigation, search

Eclipse4/RCP/Event Model

E4AP uses a pub/sub approach to events.

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);
			}
		});
		....
	}