E4/Modeled UI 监听模型修改[译]

    当模型发生变化(比如只是更改标签组件的Text属性)时,会将事件给通知注册的事件处理器。在E4中使用了全局的事件模式,处理订阅的事件。

   订阅模型修改事件

    通过UIEvents类生成订阅事件的主题,

// subscribe to all events generated from MUILabels
eventBroker.subscribe(UIEvents.buildTopic(UIEvents.UILabel.TOPIC),labelEventHandler);

// subscribe only to events generated from MItems's selected attribute being switched
eventBroker.subscribe(UIEvents.buildTopic(UIEvents.Item.TOPIC, UIEvents,Item.SELECTED),itemSelectionEventHandler);

      处理事件信息

// subscribe to events generated from MUILabels having their labels changed
eventBroker.subscribe(UIEvents.buildTopic(UIEvents.UILabel.TOPIC, UIEvents.UILabel.LABEL),
new EventHandler() {
public void handleEvent(Event event) {
Object element = event.getProperty(UIEvents.EventTags.ELEMENT);
if (element instanceof MToolItem) {
ToolItem item = (ToolItem) ((MToolItem) element).getWidget();
String value = (String) event.getProperty(UIEvents.EventTags.NEW_VALUE);
if (value == null) {
item.setText(""); //$NON-NLS-1$
} else {
item.setText(value);
}
}
}
}
);

原文:http://wiki.eclipse.org/Eclipse4/RCP/Modeled_UI/Listening_to_Model_Changes

posted @ 2011-07-15 13:33  vwpolo  阅读(420)  评论(0编辑  收藏  举报