umlshapeeditpart.java
来自「mywork是rcp开发的很好的例子」· Java 代码 · 共 70 行
JAVA
70 行
package net.sf.freenote.uml;
import net.sf.freenote.directedit.DirectEditable;
import net.sf.freenote.directedit.LabelCellEditorLocator;
import net.sf.freenote.directedit.ShapeDirectEditManager;
import net.sf.freenote.directedit.ShapeCellEditorLocator;
import net.sf.freenote.parts.ShapeEditPart;
import net.sf.freenote.uml.figure.ClassFigure;
import net.sf.freenote.uml.figure.UseCaseFigure;
import net.sf.freenote.uml.figure.UserRoleFigure;
import net.sf.freenote.uml.model.ClassShape;
import net.sf.freenote.uml.model.UseCaseShape;
import net.sf.freenote.uml.model.UserRoleShape;
import org.eclipse.draw2d.ChopboxAnchor;
import org.eclipse.draw2d.ConnectionAnchor;
import org.eclipse.draw2d.EllipseAnchor;
import org.eclipse.draw2d.IFigure;
import org.eclipse.gef.Request;
import org.eclipse.gef.RequestConstants;
/**
* umlshape的控制器
* @author levin
* @since 2008-1-29 下午02:49:45
*/
public class UmlShapeEditPart extends ShapeEditPart {
@Override
protected IFigure createFigureForModel() {
IFigure figure=null;
if(getModel() instanceof UseCaseShape){
figure=new UseCaseFigure();
}else if(getModel() instanceof UserRoleShape){
figure=new UserRoleFigure();
}else if(getModel() instanceof ClassShape){
figure=new ClassFigure();
}
if(figure instanceof DirectEditable && getModel() instanceof DirectEditable)
((DirectEditable)figure).setDesc(((DirectEditable)getModel()).getDesc());
return figure;
}
@Override
protected ConnectionAnchor getConnectionAnchor() {
if (anchor == null){
if(getModel() instanceof UseCaseShape)
anchor = new EllipseAnchor(getFigure());
if(getModel() instanceof UserRoleShape)
anchor = new ChopboxAnchor(getFigure());
if(getModel() instanceof ClassShape)
anchor = new ChopboxAnchor(getFigure());
}
return anchor;
}
@Override
public void performRequest(Request req) {
if (req.getType() == RequestConstants.REQ_DIRECT_EDIT){
if(getModel() instanceof UseCaseShape){
new ShapeDirectEditManager(this,new ShapeCellEditorLocator(getFigure(),true)).show();
}
if(getModel() instanceof UserRoleShape){
new ShapeDirectEditManager(this,new LabelCellEditorLocator(((UserRoleFigure)getFigure()).getDescLabel())).show();
}
if(getModel() instanceof ClassShape){
new ShapeDirectEditManager(this,new ShapeCellEditorLocator(getFigure())).show();
}
}
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?