gef 的command 是用于执行具体操作的,一般在类的属性中保有要操作的对象, 这些对象是在EditPolicy创建这个类时通过setter注入的,一般是在EditPolicy的相关方法中创建一个command类 ,通过注入相应的要操作的组件信息, 这些信息可能是从request中获得,也可能通过相应的EditPolicy的父类的方法获得,然后注入到command里, 最后通过execute方法执行操作,执行之前还重写canExecute方法判断一下是否可以执行,如果false就不允许execute
command里还有undo ,redo,redo就是默认执行execute,一般不用去管他, undo就是取消操作,一般要重写,而且在command中要保有之前的属性以便undo操作, 这里就涉及一个顺序问题,一般先是执行了某个操作之后再来回滚,所以是先执行execute方法之后才会去执行,undo 。 所以command中那些用来保留的属性应该是在execute方法中设置的,然后在undo方法中再拿来用
public class MoveBendpointCommand extends Command {
//操作的对象
private AbstractConnectionModel connection;
//保留的属性
private Point oldLocation;
//操作的相关属性
private Point newLocation;
//操作的相关属性
private int index;
public AbstractConnectionModel getConnection() {
return connection;
}
public Point getOldlLocation() {
return oldLocation;
}
public Point getNewLocation() {
return newLocation;
}
public int getIndex() {
return index;
}
public void setConnection(Object connection) {
this.connection = (AbstractConnectionModel) connection;
}
public void setOldlLocation(Object oldlLocation) {
this.oldLocation = (Point) oldlLocation;
}
public void setNewLocation(Object newLocation) {
this.newLocation = (Point) newLocation;
}
public void setIndex(int index) {
this.index = index;
}
@Override
public void execute() {
oldLocation=(Point)connection.getBendpoints().get(index);
connection.replaceBendpoint(index, newLocation);
}
@Override
public void undo() {
connection.replaceBendpoint(index, oldLocation);
}
}
分享到:
相关推荐
这是我自己在学习GEF的时候做的一些总结。 1、GEF中的概念比如Command,Tool,Request等等。 2、GEF中使用到的几种设计模式。 3、GEF中对鼠标键盘事件处理的机制、流程。
GEF入门必读 GEF入门系列 GEF-whole-upload 感谢八进制
NULL 博文链接:https://openstudy.iteye.com/blog/898791
我下的资源的打包,希望有帮助,包括:GEF_Tutorial,GEF实例,入门教程,GEF-whole-upload
GEF简易教程-学习GEF的入门教程,不错的gef入门教程
gef 绘图折线的实现方法。 gef API chm 格式
GEF: Graphical Editing Framework <br>GEF是一套MVC Framework,它能帮你比较容易的建立图形化的编辑器,V(View)的部分常常是基于SWT的Draw2D,因此Draw2D也看作是GEF的一部分。依赖:org.eclipse.gef***, org...
GEF eclipse 插件
GEF.rar GEF.rar GEF.rar
GEF-ALL-3.7 GEF-ALL-3.8 官方包。 GEF Draw2d 学习资料
Agenda Start things off What is GEF? GEF Demo Draw2d Overview Example GEF Overview Break Hands-on Activity: Shapes Example
GEF理解之第三部分,学习gef必备文档资料啊,值得下载
GEF理解之第一部分,学习gef必备文档资料啊,值得下载
Eclipse插件GEF的介绍,对于学习GEF有很大帮助
这是我参考了一些其他资料,自己写的一个GEF示例程序。 在这个demo中你可以看到以下的功能: 1. 往画布上添加多种节点 2. 节点之间的连线 3. 节点内容的编辑功能 4. 删除连线 5. 删除节点 6. 对节点的拖动以改变...
一本很好的GEF入门教程,通过实例详细的描述了GEF开发的全流程。
gef开发实例 gef开发的好例子,比较简单的实现了MVC的架构
GEF 入门系列 GEF
GEF Example Source Code,
Gef入门开发,详细解析。 Gef入门开发,详细解析 Gef入门开发,详细解析