`

gef中默认提供的RootEditPart

    博客分类:
  • GEF
 
阅读更多

在我们实现一个gef编辑器的时候,会重新configureGraphicalViewer()方法,在这个方法里面我们会为GraphicalViewer设置一个RootEditPart,一般是ScalableFreeformRootEditPart。

 

RootEditPart接口:这个接口定义了几个方法,主要是用于获取当前的EditPartViewer,在gef中EditPartViewer才是我们在界面看到的一个个有效单元,而EditPart只是它的一个控制器。

 

1.FreeformGraphicalRootEditPart:一个gef默认提供的类,它是一个RootEditPart,它默认的建立了N个Layer,用分层展示的方式,展示编辑器中的界面元素,所有的layer都放在FreeformViewport里面。

 

关于创建layer的代码:

 

protected void createLayers(LayeredPane layeredPane) {
		layeredPane.add(createGridLayer(), GRID_LAYER);
		layeredPane.add(getPrintableLayers(), PRINTABLE_LAYERS);
		layeredPane.add(new FreeformLayer(), HANDLE_LAYER);
		layeredPane.add(new FeedbackLayer(), FEEDBACK_LAYER);
		layeredPane.add(new GuideLayer(), GUIDE_LAYER);
	}

 

protected LayeredPane createPrintableLayers() {
		FreeformLayeredPane layeredPane = new FreeformLayeredPane();
		layeredPane.add(new FreeformLayer(), PRIMARY_LAYER);
		layeredPane.add(new ConnectionLayer(), CONNECTION_LAYER);
		return layeredPane;
	}

 除了添加layer,FreeformGraphicalRootEditPart还对GridLayer做了一些处理:

 

if (property.equals(SnapToGrid.PROPERTY_GRID_ORIGIN)
					|| property.equals(SnapToGrid.PROPERTY_GRID_SPACING)
					|| property.equals(SnapToGrid.PROPERTY_GRID_VISIBLE))
				refreshGridLayer();

 我们可以在Editor中设置这三个属性的值,来改变GridLayer现实的状态:

 

getGraphicalViewer().setProperty(SnapToGrid.PROPERTY_GRID_VISIBLE,
                false);
        getGraphicalViewer().setProperty(SnapToGrid.PROPERTY_GRID_ENABLED,
                false);
        getGraphicalViewer().setProperty(SnapToGeometry.PROPERTY_SNAP_ENABLED,
                true);

 

ScalableFreeformRootEditPart:是FreeformGraphicalRootEditPart的子类,它里面增加了一个ZoomManager的功能。

 

RulerRootEditPart:为编辑提供游标功能的EditPart,主要被gef默认提供的封装组件RulerComposite使用。RulerComposite大家肯定熟悉,是用于实现游标的那个功能的。

 

ScalableRootEditPart:能够缩放,但是不自由伸展。

 

分享到:
评论

相关推荐

    GEF中文教程+代码

    在本教程中,我们将深入探讨GEF的基本概念、设计原则以及如何使用它来开发自己的图形编辑器。 **1. GEF简介** GEF的设计目标是将图形编辑器的实现细节抽象化,让开发者能够专注于业务逻辑和模型设计,而不是底层的...

    GEF 入门版中文教程 源码

    RCP是Eclipse组织提供的一种用于构建桌面应用的框架,而GEF则是用于创建图形化编辑器的工具包。本教程由法语版翻译而来,经过精心整理,以中文形式呈现,确保了国内开发者能够更方便地理解和学习。 GEF的核心概念...

    eclipse gef插件

    安装完成后,开发者就可以在Eclipse的工作空间中创建新的GEF项目,利用提供的模板和类库开始设计图形编辑器。 GEF的核心概念包括: 1. **Model**:这是编辑器所表示的数据结构,通常是一个Java对象模型,用于存储...

    自己下的GEF资源打包

    标题中的“GEF资源打包”指的是一个集合了关于GEF(Graph Edit Framework)的各种学习资料的压缩文件。这个资源包可能包含了对理解、学习和使用GEF非常有帮助的材料。描述进一步说明了这个包中包含的具体内容,如...

    gef 转折线的相关方法实现和 GEF的API chm 格式

    在本篇文章中,我们将深入探讨gef转折线的相关方法实现以及GEF的API。 首先,让我们理解一下什么是转折线。在图形编辑中,转折线通常指的是具有多个折点的线条,这些折点可以由用户交互式地调整,以改变线条的形状...

    GEF入门学习例子

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

    GEF入门实例代码2《Eclipse插件开发》中实例

    在Eclipse插件开发中,GEF提供了一套强大的框架,使得开发者可以方便地构建出功能丰富的图形用户界面(GUI),特别是用于绘制图表、流程图等可视化编辑场景。 1. **GEF基本概念** GEF包含了一系列的类和接口,如...

    Eclipse开发使用GEF和EMF(IBM 红皮书)中英文对照版

    在Eclipse中,GEF(图形编辑框架)提供了一套用于构建图形编辑器的框架,使得开发者可以轻松地创建出复杂的图形用户界面,如流程图、网络拓扑图等。GEF提供了丰富的图形操作和交互机制,包括拖放、选择、连接线绘制...

    GEF-Update-3.7.1.zip

    在这个"GEF-Update-3.7.1.zip"压缩包中,包含了以下关键文件: 1. **content.jar**:这是一个包含GEF库核心内容的Java档案文件,里面封装了GEF框架的核心类和接口,以及相关的资源和配置。开发者可以通过导入这个...

    GEF入门必读 GEF入门系列 GEF-whole-upload

    本资料集旨在为初学者提供一个全面的入门指南,帮助理解GEF的基础概念和实现方法。 GEF的核心功能是提供了一套强大的组件和API,用于创建可交互的、图形式的用户界面。通过使用GEF,开发者可以轻松地创建出具有拖放...

    GEF锚点鼠标定位

    在图形编辑框架(GEF,Graphical Editing Framework)中,锚点(Anchor)是一个关键概念,它是连接模型元素之间的连接线在元素上的固定点。在GEF中,锚点的定位直接影响到连接线的形状和行为,特别是当用户通过鼠标...

    Eclipse的GEF学习

    在实际项目中,GEF被广泛应用于各种图形化编辑工具的开发中。无论是创建复杂的数据流图、UML图还是其他类型的图形编辑器,GEF都能提供坚实的基础框架。其丰富的API和高度可定制性,使开发者能够快速构建出既美观又...

    GEF-ALL-3.7+GEF-ALL-3.8+GEF_Draw2d学习资料

    3. "如何在Eclipse3.3.1.1中安装VE,emf,GEF插件.doc" 提供了在特定版本的Eclipse中安装相关插件的步骤,这对于搭建开发环境至关重要。 4. "GEF_Tutorial.pdf" 和 "GEF_zh(1).pdf"、"GEF_zh.pdf" 是GEF的教程,可能...

    GEF中属性页面的实现

    在实际应用中,可以根据需求扩展属性视图,添加更多的属性描述符,支持不同的数据类型和交互方式,以提供更丰富的用户界面和编辑功能。通过理解并掌握GEF中的属性视图机制,开发者可以构建出强大的图形编辑工具,...

    GEF_Tutorial.rar(GEF开发指南)

    它提供了一套全面的API和工具,使得开发者可以方便地创建出复杂的图形用户界面,特别是针对模型驱动工程(MDE)中的图形化建模工具。本教程是针对想要学习和掌握GEF技术的开发者,通过实例教学,深入浅出地介绍GEF的...

    GEF教程及demo源码GEF_RCP_DEMO.zip

    在Java环境中,GEF常与SWT(Standard Widget Toolkit)结合使用,提供强大的图形渲染和交互功能。 本教程主要涉及以下几点关键知识点: 1. **GEF基础概念** GEF的核心是其五层架构,包括Model(模型)、View...

    GEF.rarGEF.rar

    标题中的"GEF.rar"可能是指“Graph Editor Framework”的压缩包文件,这通常与软件开发,尤其是图形用户界面(GUI)的设计和实现有关。GEF(Graph Editor Framework)是Eclipse项目的一部分,它提供了一个用于构建...

    GEF-SDK-3.6.2 jar

    GEF(Graphical Editing Framework)是Eclipse项目中的一个重要组成部分,它为开发图形化编辑器提供了强大的支持。在标题“GEF-SDK-3.6.2 jar”中,"GEF"即指代这一框架,"SDK"表示软件开发工具包,"3.6.2"则是该...

Global site tag (gtag.js) - Google Analytics