WEB开发网
开发学院软件开发Java GEF实践总结(二)常见基础性问题 阅读

GEF实践总结(二)常见基础性问题

 2009-09-06 00:00:00 来源:WEB开发网   
核心提示: 比如:上面的代码,当属性x发生变化的时候就对外通知”X”发生了变化,GEF实践总结(二)常见基础性问题(2),值从oldX变成了x,四. EditPart是何时将自己注册到model的呢? EditPart都是实现了PropertyChangeListener接口,见下面

比如:上面的代码,当属性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(); 
} 
}

Tags:GEF 实践 总结

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接