0
在我的Eclipse RCP E4应用程序,我使用的注解得到通知时,部分被激活,使用这里提出的办法: http://www.vogella.com/tutorials/Eclipse4ModelEvents/article.html的Eclipse RCP E4部分激活事件多次发送
@Inject
@Optional
public void subscribeTopicPartActivation(@UIEventTopic(UIEvents.UILifeCycle.ACTIVATE) Event event) {
Object element = event.getProperty(EventTags.ELEMENT);
if (!(element instanceof MPart)) {
return;
}
MPart part = (MPart) element;
System.out.println("Part activated: " + part.getLabel());
}
它的工作原理很好,但我注意到,在我们期望单个激活事件(即例如简单切换到零件...)的情况下,对于同一部分,激活事件被不止一次地触发。发送的事件消息似乎完全相同(相同的目标,相同的主题)。我错过了什么吗?这是事件框架的正常行为吗?
谢谢Greg。有时候我们会有3个激活事件(一个没有标签,另外两个激活标签...)。无论如何,这是奇怪的。 – FH35
据我可以看到,这个事件生成的唯一地方是在'activate'方法的'org.eclipse.e4.ui.internal.workbench.PartServiceImpl'(实现'EPartService')。你将不得不跟踪代码,看看它是如何工作的。 –