我们最常使用的XYLayout, 控件是可以随意的在四个边框调整大小, 拖拽控件, 有时我们有需要禁止拖拽或调整大小, 具体实现看下面代码.
解决方法1:
在createChangeConstraintCommand中,根据具体情况返回UnexecutableCommand.INSTANCE即可.
具体代码:
@Override
protected Command createChangeConstraintCommand(EditPart child, Object constraint) {
if (!this.couldChangeConstraint(child)) {
return UnexecutableCommand.INSTANCE;
}
}
解决方法2:
覆盖XYLayoutEditPolicy的createChildEditPolicy()方法即可, 根据具体情况返回ChildEditPolicy.
具体代码:
/**
* @see org.eclipse.gef.editpolicies.ConstrainedLayoutEditPolicy#createChildEditPolicy(org.eclipse.gef.EditPart)
*/
@Override
protected EditPolicy createChildEditPolicy(EditPart child) {
if (child instanceof PageEditPart) {
NonResizableEditPolicy childEditPolicy = new NonResizableEditPolicy(); // 不允许调整大小
childEditPolicy.setDragAllowed(false); // 不允许拖拽
return childEditPolicy;
} else if (child instanceof PageHeaderEditPart) {
ResizableEditPolicy childEditPolicy = new ResizableEditPolicy();
childEditPolicy.setDragAllowed(false); // 不允许拖拽
childEditPolicy.setResizeDirections(PositionConstants.SOUTH); // 允许下调整大小
return childEditPolicy;
}
return super.createChildEditPolicy(child); // 默认可调整大小,可拖拽
}
注意:
这个方法是在某个父控件创建控件的时候就设置好了, 再也不会改变的, 就是对某个EditPart的设置只会有一次, 设置好了即不可再改变.
具体说明:
- NonResizableEditPolicy 不允许调整大小
- setDragAllowed 是否允许鼠标拖拽
- ResizableEditPolicy 可调整大小
- setResizeDirections 设置可调整大小的方向
举例:
PositionConstants.SOUTH '南' 也就是 '下' 可以调整
PositionConstants.SOUTH | PositionConstants.EAST 就是 '下', '右', '下右' 允许调整
分享到:
相关推荐
我下的资源的打包,希望有帮助,包括:GEF_Tutorial,GEF实例,入门教程,GEF-whole-upload
gef all 3.5.2 源码
GEF: Graphical Editing Framework <br>GEF是一套MVC Framework,它能帮你比较容易的...依赖:org.eclipse.draw2d*** 本软件GEF-ALL-3.2.2完整版包含(Draw2D, GEF and Zest) 大小:6.6M 请用于Eclipse3.2.2环境下.
GEF入门必读 GEF入门系列 GEF-whole-upload 感谢八进制
这是我参考了一些其他资料,自己写的一个GEF示例程序。 在这个demo中你可以看到以下的功能: 1. 往画布上添加多种节点 2. 节点之间的连线 3. 节点内容的编辑功能 4. 删除连线 5. 删除节点 6. 对节点的拖动以改变...
GEF简易教程-学习GEF的入门教程,不错的gef入门教程
gef 绘图折线的实现方法。 gef API chm 格式
GEF eclipse 插件
GEF.rar GEF.rar GEF.rar
Eclipse的GEF插件,支持J2SE手动添加控件!
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 入门系列 GEF
这是我自己在学习GEF的时候做的一些总结。 1、GEF中的概念比如Command,Tool,Request等等。 2、GEF中使用到的几种设计模式。 3、GEF中对鼠标键盘事件处理的机制、流程。
GEF Example Source Code,
gef开发实例 gef开发的好例子,比较简单的实现了MVC的架构
Gef入门开发,详细解析。 Gef入门开发,详细解析 Gef入门开发,详细解析
一本很好的GEF入门教程,通过实例详细的描述了GEF开发的全流程。