⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 diagrampart.java

📁 GEF基础源码
💻 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 + -