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

📄 diagramlayouteditpolicy.java

📁 GEF初学者可以用来对照的小例子
💻 JAVA
字号:
package com.dss.moon.gef.editpolicies;

import org.eclipse.draw2d.geometry.Dimension;
import org.eclipse.draw2d.geometry.Rectangle;
import org.eclipse.gef.EditPart;
import org.eclipse.gef.EditPolicy;
import org.eclipse.gef.Request;
import org.eclipse.gef.commands.Command;
import org.eclipse.gef.editpolicies.XYLayoutEditPolicy;
import org.eclipse.gef.requests.CreateRequest;

import com.dss.moon.gef.commands.CreateEllipseCommand;
import com.dss.moon.gef.commands.MoveCommand;
import com.dss.moon.gef.model.Diagram;
import com.dss.moon.gef.model.Ellipse;

public class DiagramLayoutEditPolicy extends XYLayoutEditPolicy  {

	@Override
	protected Command createChangeConstraintCommand(EditPart child, Object constraint) {
		// TODO Auto-generated method stub
		MoveCommand move = new MoveCommand();
		move.setNode((Ellipse)child.getModel());
		move.setConstraint((Rectangle) constraint);
		return move;
	}

	@Override
	protected Command getCreateCommand(CreateRequest request) {
		// TODO Auto-generated method stub
		if(request.getNewObject() instanceof Ellipse){
			CreateEllipseCommand cec = new CreateEllipseCommand();
			cec.setDiagram((Diagram)getHost().getModel());
			cec.setEllipse((Ellipse) request.getNewObject());
			//((Ellipse)request.getNewObject()).setSize(new Dimension(50,50));
			//request.setSize(new Dimension(50,50));
			Rectangle constaint = (Rectangle) getConstraintFor(request);
			cec.setContraint(constaint);
			return cec;
		}
		return null;
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -