GEF的ContentOutlinePage就是TreeViewer使用的例子.
下面直接贴代码, 有空再进行整理:
第一段代码, 在SWT的Composite的界面上添加一个GEF的TreeViewer.
treeViewer = new org.eclipse.gef.ui.parts.TreeViewer();
treeViewer.createControl(composite);
第二段代码: 设置TreeViewer
treeViewer.setEditDomain(new EditDomain());
RootTreeEditPart rootTreeEditPart = new RootTreeEditPart();
rootTreeEditPart.setWidget((Tree) treeViewer.getControl()); // 注意这里
treeViewer.setRootEditPart(rootTreeEditPart);
treeViewer.setEditPartFactory(new TreeEditPartFactory());
treeViewer.setContents(templateModel); // 模型
getSynchronizer().addViewer(treeViewer); // getSynchronizer()是一个SelectionSynchronizer.
第三段代码: TreeViewer的EditPartFactory. [很简单告诉TreeViewer怎么从Model得到TreeEditPart]
public class TreeEditPartFactory implements EditPartFactory {
/**
* @see org.eclipse.gef.EditPartFactory#createEditPart(org.eclipse.gef.EditPart, java.lang.Object)
*/
public EditPart createEditPart(EditPart context, Object model) {
EditPart part = null;
if (model instanceof TemplateModel) {
part = new TemplateTreeEditPart();
}
if (part != null) {
part.setModel(model);
}
return part;
}
}
第四部分: 一个基本的TreeEditPart的定义.
直接继承于AbstractTreeEditPart. 也可以按照需要去覆盖里面的getText, getImage等方法.
如果Model是父子结构的, 一定要覆盖getModelChildren方法.
public class TemplateTreeEditPart extends AbstractTreeEditPart {
@Override
protected List getModelChildren() { // 得到当前模型下的子模型.
TemplateModel model = (TemplateModel) this.getModel();
return model.getChildren();
// return super.getModelChildren();
}
}
分享到:
相关推荐
《Eclipse开发使用GEF和EMF》是IBM红皮书系列中的一部经典著作,主要探讨了如何在Eclipse环境中利用GEF(图形编辑框架)和EMF( Eclipse模型框架)进行图形化应用程序的开发。这两项技术是Eclipse平台上的核心组件,...
这个资源包可能包含了对理解、学习和使用GEF非常有帮助的材料。描述进一步说明了这个包中包含的具体内容,如“GEF_Tutorial”、“GEF实例”、“入门教程”以及“GEF-whole-upload”,这些都暗示了这是一个全面的学习...
**GEF(Graphical Editing Framework)** 是一个用于构建图形化编辑器的开源框架,它在Eclipse平台上广泛使用,特别是在开发复杂的图形用户界面和工具时。本资料集旨在为初学者提供一个全面的入门指南,帮助理解GEF...
使用GEF进行Eclipse插件开发,开发者可以构建出具有交互式图形界面的应用程序,如流程图编辑器、UML建模工具等。GEF提供了丰富的API和设计模式,如MVC(模型-视图-控制器)、Command模式和AdapterManager,以支持...
GEF提供的视图包括图形视图(GraphicalViewer)和树状视图(TreeViewer),前者用于主编辑区域,后者常用于实现大纲视图。 #### 三、GEF的工作流程 GEF的应用程序工作流程紧密围绕MVC架构展开: 1. 用户对编辑区域的...
GEF-II地电场仪是一种专门用于测量地球表面地电场的设备,主要观测地球内部自然电场以及外部非人工电流体系与地球介质相互作用产生的电场。本手册详细介绍了该仪器的使用方法、技术指标、组成部分以及故障排除等,为...
总的来说,gef转折线的实现涉及PathFigure和Segment的组合使用,而GEF的API为开发者提供了丰富的工具和接口,使得构建交互式图形编辑器变得简单。通过熟练掌握这些知识,开发者可以轻松创建出具有复杂图形交互功能的...
标题“GEF典型实现例子”指的是使用Graphical Editing Framework (GEF)的示例应用。GEF是Eclipse平台下的一个开源项目,主要用于构建图形化编辑工具,它提供了丰富的图形用户界面(GUI)组件和框架,帮助开发者创建...
6. "jgraphx-1_10_0_6.zip.rar" 是JGraphX的压缩包,这是一个基于Java的图形库,有时会与GEF和Draw2D结合使用,用于创建更复杂的图形表示。 通过这些资源,学习者可以深入理解GEF和Draw2D的工作原理,掌握如何在...
本教程是针对想要学习和掌握GEF技术的开发者,通过实例教学,深入浅出地介绍GEF的使用方法和开发流程。 **1. GEF基础知识** GEF的核心概念包括模型(Model)、视图(View)和控制器(Controller)。模型是数据结构...
总之,通过本教程的学习,你将掌握GEF的基本使用方法,学会如何在RCP项目中构建图形编辑器,并理解Editor与View的差异。继续探索GEF的高级特性,将有助于你开发出更加复杂且功能丰富的图形化应用程序。
在Java环境中,GEF常与SWT(Standard Widget Toolkit)结合使用,提供强大的图形渲染和交互功能。 本教程主要涉及以下几点关键知识点: 1. **GEF基础概念** GEF的核心是其五层架构,包括Model(模型)、View...
**GEF(Graphical Editing Framework)** 是一个用于构建图形化编辑器的开源框架,它在Eclipse平台中被广泛使用。**GEF-SDK-3.7.0** 是这个框架的一个特定版本,提供了开发人员构建图形用户界面(GUI)和可视化编辑...
本文将详细介绍如何使用Graphical Editing Framework (GEF)实现一个简单的“Hello World”示例,并结合Eclipse Modeling Framework (EMF)进行扩展。通过此教程,读者能够理解GEF的基本架构以及如何在Eclipse RCP应用...
标题"GEF Example Source Code"表明这是一个关于GEF框架的示例源代码集合,它可能包含各种演示如何使用GEF构建图形编辑功能的代码实例。这些示例可以帮助开发者理解和学习如何有效地利用GEF库来创建自定义的图形编辑...
此外,还会提供动手实践的机会,通过“Shapes Example”来让参与者亲身体验GEF的使用,以避免常见错误。 为了参与这个教程,你需要准备: 1. **Eclipse 3.1M5a**:这是开发环境,确保你有这个版本或更高版本的...
这个项目旨在演示如何利用GEF进行图形界面开发,并且特别关注了通过适配器(Adapter)扩展点来实现属性页配置以及在非Editor的ViewPart中使用GEF。 GEF是Eclipse平台下的一个开源库,专门用于构建可自定义的、图形...