📄 diagrampart.java
字号:
package com.jixy.study.gef.control;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.util.List;
import org.eclipse.draw2d.IFigure;
import org.eclipse.gef.EditPolicy;
import org.eclipse.gef.editparts.AbstractGraphicalEditPart;
import com.jixy.study.gef.model.Diagram;
import com.jixy.study.gef.util.DiagramLayoutEditPolicy;
import com.jixy.study.gef.view.DiagramFigure;
//在GEF里,模型的监听器就是EditPart,所以都要实现PropertyChangeListener接口。
public class DiagramPart extends AbstractGraphicalEditPart implements
PropertyChangeListener {
protected IFigure createFigure() {
return new DiagramFigure();
}
// 对于含有子元素的EditPart,必须覆盖getModelChildren()方法返回子对象列表,
// 例如DiagramPart里这个方法返回的是Diagram对象包含的Ellipse对象列表。
protected List getModelChildren() {
List children = ((Diagram) getModel()).getChildren();
return children;
}
public void activate() {
if (isActive()) {
return;
}
super.activate();
((Diagram) getModel()).addPropertyChangeListener(this);
}
public void deactivate() {
if (!isActive()) {
return;
}
super.deactivate();
((Diagram) getModel()).removePropertyChangeListener(this);
}
public void propertyChange(PropertyChangeEvent event) {
String propertyName = event.getPropertyName();
if ("children".equals(propertyName)) {
refreshChildren();
}
}
protected void createEditPolicies() {
installEditPolicy(EditPolicy.LAYOUT_ROLE, new DiagramLayoutEditPolicy());
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -