GEF实践总结(二)常见基础性问题
2009-09-06 00:00:00 来源:WEB开发网比如:上面的代码,当属性x发生变化的时候就对外通知”X”发生了变化,值从oldX变成了x。
四. EditPart是何时将自己注册到model的呢?
EditPart都是实现了PropertyChangeListener接口,表示:自身就是一个属性变化的监听器,可以对被监听者(比如model)的属性改变进行监听。见下面的代码:
Java代码
/**
* @see org.eclipse.gef.editparts.AbstractGraphicalEditPart#activate()
*/
public void activate() {
if (!isActive()) {
super.activate();
((BaseModel) getModel()).addPropertyChangeListener(this);
}
}
/**
* @see org.eclipse.gef.editparts.AbstractGraphicalEditPart#deactivate()
*/
public void deactivate() {
if (isActive()) {
super.deactivate();
((BaseModel) getModel()).removePropertyChangeListener(this);
}
}
在EditPart被激活的时候(activate),就已经将自己作为监听器放入了model中了,在EditPart被销毁的时候(deactivate)的时候去掉的model的监听。
五. EditPart得知属性改变后做了什么事情?
Java代码
/**
* @see java.beans.PropertyChangeListener#propertyChange(java.beans.PropertyChangeEvent)
*/
@Override
public void propertyChange(PropertyChangeEvent evt) {
String property = evt.getPropertyName();
if (IPropertyConst.CHILDREN.equals(property)) {
refreshChildren();
} else {
refreshVisuals();
}
}
更多精彩
赞助商链接