在rcp中事件通信有三种常用的方法:
1:选择提供、选择监听的方式。
2:osgi EventAdmin
3:属性更改事件。
jface封装的事件 IPropertyChangeListener
for (Iterator<IPropertyChangeListener> iter = myListeners.iterator(); iter.hasNext();) {
4 IPropertyChangeListener element = (IPropertyChangeListener) iter.next();
5 element.propertyChange(new PropertyChangeEvent(this, "HelloRcpEvent" , null , obj));
6
7 }
你需要自己建立一个List<IPropertyChangeListener>,来存放所有的监听。
java bean封装的PropertyChangeSupport
PropertyChangeSupport 这种方式比上面更简单一些。
你可以直接
//@XStreamOmitField
public PropertyChangeSupport listeners = new PropertyChangeSupport(this);
public void addPropertyChangeListener(PropertyChangeListener l) {
listeners.addPropertyChangeListener(l);
}
protected void firePropertyChange(String prop) {
listeners.firePropertyChange(prop, null, null);
}
rcp
常用的事件也就这几种。第一中是基于ui的。后边的是可以在任何地方使用。