Jump to: navigation, search

Difference between revisions of "Eclipse4/RCP/Event Model"

< Eclipse4‎ | RCP
(New page: 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 ...)
 
(Notification of an Event)
Line 4: Line 4:
  
 
= Notification of an Event =
 
= Notification of an Event =
 
+
Can we use @UIEventTopic(UIEvents.buildTopic(UIEvents.UIElement.TOPIC, UIEvents.UIElement.WIDGET)) ??
 
<source lang="java">
 
<source lang="java">
@Inject @Optional
+
@Inject @Optional
public void setInput(@UIEventTopic(Part.EVENT_NAME) PojoObject input) {
+
public void setInput(@UIEventTopic(Part.EVENT_NAME) PojoObject input) {
...
+
...
}
+
}
 
</source>
 
</source>
  

Revision as of 09:40, 12 April 2011

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