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" 涉及的知识点主要集中在图形化编辑框架(Graphical Editing Framework,简称GEF)上,这是一款由Eclipse基金会开发的开源工具,用于构建图形用户界面(GUI),特别是用于创建复杂的图形...
GEF主要由三部分组成:MVC(Model-View-Controller)、Command和Zest。MVC模式用于分离数据模型、视图和控制器,使得代码结构清晰,易于维护。Command模块则实现了撤销/重做功能,使得用户操作可逆。Zest是GEF的图表...
通过将复杂的编辑操作抽象为请求(Request)、角色(Role)、策略(EditPolicy)和命令(Command),GEF提供了一套灵活且强大的机制,让开发者可以专注于业务逻辑,而不必担心图形界面的具体实现细节。 #### 五、GEF在实际...
1. **基本概念**:介绍GEF的关键概念,如Figure、EditPart、Command、Model等,以及它们在图形编辑中的角色。 2. **图形组件**:讲解如何创建和操作图形元素,如矩形、圆形、文本等,以及如何添加连接线和组合图形。...
标题中的“GEF资源打包”指的是一个集合了关于GEF(Graph Edit Framework)的各种学习资料的压缩文件。这个资源包可能包含了对理解、学习和使用GEF非常有帮助的材料。描述进一步说明了这个包中包含的具体内容,如...
GEF的核心是其五层架构,包括Model(模型)、View(视图)、EditPart(编辑部件)、Figure(图形)和Command(命令)。模型负责存储数据,视图负责显示数据,EditPart作为模型和视图之间的桥梁,Figure处理图形绘制...
- `org.eclipse.gef.commands.Command`:命令模式在GEF中用于执行可撤销/重做的操作,如添加、删除或修改图形元素。 - `org.eclipse.gef.requests.Request`:表示用户或系统对编辑域的某种请求,如创建新对象或选择...
1. **定义CopyCommand和PasteCommand**:你需要创建自定义的CopyCommand和PasteCommand类,继承自GEF提供的基础命令类,如DirectEditCommand或EditCommand。这些命令类应该封装复制和粘贴的具体操作。 2. **实现...
5. "eclipse插件开发快速入门图文教程.pdf" 和 "Eclipse插件开发学习笔记.pdf" 可能是针对Eclipse插件开发的一般性教程,对于理解GEF和Draw2D的上下文非常有帮助。 6. "jgraphx-1_10_0_6.zip.rar" 是JGraphX的压缩包...
GEF的命令框架(Command Framework)使得操作可撤销/重做。 5. **连接器(Connectors)**: 连接器用于创建和管理图形元素之间的连接。在GEF中,`ConnectionEditPart`负责绘制和编辑连接线。 6. **适配器(Adapter)**:...
GEF提供了丰富的API和设计模式,如MVC(模型-视图-控制器)、Command模式和AdapterManager,以支持图形元素的创建、编辑和交互。 在3.7.1版本中,GEF可能包含了对性能的优化、API的改进、新特性的添加以及已知问题...
GEF包含了一系列的类和接口,如Command、Model、View、EditPart、Figure等,它们共同构成了图形编辑的基础架构。Command代表可撤销/重做的操作,Model表示数据模型,View负责显示图形,EditPart作为模型和视图之间...
总之,GEF通过将图形操作分解为请求、Policy和Command,实现了灵活且可扩展的图形编辑环境。理解这一机制有助于开发者更高效地构建自己的图形编辑应用,包括实现图形的移动、缩放以及更多复杂的交互功能。通过不断...
Java GEF(Graphical Editing Framework)开发实例是一个深入理解并应用GEF框架的优秀实践案例。GEF是Eclipse平台上用于构建图形编辑器的库,它提供了构建图形用户界面(GUI)所需的基础结构,尤其适合创建复杂的...
它内置了丰富的工具和机制,如Command模式支持的Undo/Redo功能,使得开发图形编辑器变得更加高效和便捷。此外,GEF框架还充分利用了诸如MVC(Model-View-Controller)架构等经典设计模式,确保了代码的清晰性和可...
这是我自己在学习GEF的时候做的一些总结。 1、GEF中的概念比如Command,Tool,Request等等。 2、GEF中使用到的几种设计模式。 3、GEF中对鼠标键盘事件处理的机制、流程。
**GEF(Graphical Editing Framework)开发整合资料大全** **GEF是什么?** GEF(Graphical Editing Framework)是Eclipse平台下的一款用于构建图形化编辑器的框架,它为开发者提供了一套全面的工具和API,使得创建...
8. **学习和理解GEF架构**:GEF的核心组件包括Model(模型)、View(视图)、EditPart(编辑部件)和Command(命令)。理解这些组件之间的关系和交互方式是成功开发的关键。 9. **实践与调试**:使用GEF开发图形...