`
lggege
  • 浏览: 375477 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

GEF 禁止控件的拖拽, 调整大小

    博客分类:
  • GEF
阅读更多
我们最常使用的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-SDK-3.6.2 jar

    在Android ADT中,GEF的作用主要体现在可视化布局编辑器上,它允许开发者通过拖放的方式设计XML布局文件,实时预览UI效果,以及方便地调整控件的属性和布局关系。此外,GEF还支持图元工厂(MetaFactory),可以生成...

    GEF入门学习例子

    **GEF入门学习例子** **概述** `GEF`(Graphical Editing Framework)是Eclipse开源组织提供的一款强大的图形编辑框架,用于构建图形用户界面(GUI)应用,特别是那些需要进行图形绘制、编辑和操作的软件。这个入门...

    Eclipse的GEF插件

    6. **ZOrderManager**:层次管理器用于处理图形元素的堆叠顺序,确保用户可以通过拖动调整元素的前后关系。 7. **Layouts**:布局管理器负责图形元素的自动布局,比如网格布局、树状布局等,使得图形界面看起来更加...

    GEF中文帮助实例

    GEF提供了`PropertySheet`来展示属性,并且可以自定义属性页,以便根据模型类的不同属性显示不同的编辑控件。 **十二、拖放(Drag and Drop)** GEF支持拖放操作,用户可以将图形元素从一个位置拖动到另一个位置,...

    GUI设计插件——visual Editor

    "Visual Editor"是一款专用于GUI设计的插件,它提供了可视化的编辑环境,让用户可以直接拖拽和配置UI元素,而无需编写复杂的代码。Visual Editor支持多种平台和技术,能够帮助开发者快速搭建应用程序的用户界面。它...

    eclipse3.2 可用可视化界面编程 VE (3合一打包下载)!!!

    通过VE,开发者可以如同操作桌面应用一般,拖拽控件、设置属性,而无需直接编写XML或Java代码。这显著提升了开发效率和降低了学习曲线。 GEF(Graphical Editing Framework)是VE的基础,它为构建图形编辑器提供了...

    Eclipse安装VE插件

    8. **使用VE**:一旦安装成功,你就可以利用VE进行图形化界面设计,拖拽控件,调整布局,大大提高了GUI开发的效率。 总的来说,安装Eclipse的VE插件是一个相对简单但需要细心的过程。理解插件之间的依赖关系,正确...

    SWT桌面程序开发实例图解教程

    - **添加菜单**:在Palette面板中找到“Menubar”控件,将其拖拽到Shell中,然后继续添加子菜单(SubMenu)以及菜单项(MenuItem)。可以通过属性面板调整菜单的文本、图标等属性。 - **菜单热键设置**:例如,要在...

    基于ve和eclipse实现可视化编程

    VE是Eclipse中的一个可视化编辑器,它允许开发者通过拖拽和配置控件的方式来创建GUI(图形用户界面)。VE提供了图形化的视图,使得开发者能直观地构建和编辑模型,极大地提高了开发效率,特别是对于那些不熟悉代码的...

    Eclipse VE可视化插件

    这个插件显著提升了Java桌面应用开发的效率,使得开发者能够通过拖拽和配置控件,而不是手动编写代码来构建用户界面。以下是关于Eclipse VE、EMF、GEF及其相关组件的详细知识点: 1. **Eclipse VE(Visual Editor)**...

    eclipse 的ve安装步骤与使用方法

    - 从调色板中拖拽一个 Button 控件到界面上,并设置其文本为“ClickMe”。 - 选中按钮,右击选择“事件” -> “添加事件” -> 选择 widgetSelected 事件。 - 在打开的代码编辑器中编写相应的事件处理函数: ```...

    ArcEgine10.2+eclipse_developing环境配置

    安装完成后,可以在Eclipse的Palette视图中看到ArcGIS的控件,通过拖放的方式将它们加入到Java Swing或JavaFX的用户界面设计中。 在开发过程中,可能遇到的问题包括JDK版本与Eclipse版本不匹配导致的JNI库加载失败...

Global site tag (gtag.js) - Google Analytics