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();
}
}
分享到:
相关推荐
GEF-II电场仪使用手册
学习GEF的入门资料,简单地介绍了GEF使用过程中用到的基本类和函数的用法。
GEF入门必读 GEF入门系列 GEF-whole-upload 感谢八进制
这是我自己在学习GEF的时候做的一些总结。 1、GEF中的概念比如Command,Tool,Request等等。 2、GEF中使用到的几种设计模式。 3、GEF中对鼠标键盘事件处理的机制、流程。
我下的资源的打包,希望有帮助,包括:GEF_Tutorial,GEF实例,入门教程,GEF-whole-upload
对gef中相关内容的描述,这里面我只是个人的理解,描述gef的最基本的功能,若需深入研究,可以从网上查询更多资料,我个人也在继续研究中。
GEF: Graphical Editing Framework <br>GEF是一套MVC Framework,它能帮你比较容易的建立图形化的编辑器,V(View)的部分常常是基于SWT的Draw2D,因此Draw2D也看作是GEF的一部分。依赖:org.eclipse.gef***, org...
GEF简易教程-学习GEF的入门教程,不错的gef入门教程
gef 绘图折线的实现方法。 gef API chm 格式
目前的最新的GEF,用于eclipse是实现可视化。
GEF-ALL-3.7 GEF-ALL-3.8 官方包。 GEF Draw2d 学习资料
GEF eclipse 插件
一本很好的GEF入门教程,通过实例详细的描述了GEF开发的全流程。
这是我参考了一些其他资料,自己写的一个GEF示例程序。 在这个demo中你可以看到以下的功能: 1. 往画布上添加多种节点 2. 节点之间的连线 3. 节点内容的编辑功能 4. 删除连线 5. 删除节点 6. 对节点的拖动以改变...
GEF.rar GEF.rar GEF.rar
Agenda Start things off What is GEF? GEF Demo Draw2d Overview Example GEF Overview Break Hands-on Activity: Shapes Example
GEF入门实例代码2《Eclipse插件开发》中实例
著名的IBM红皮书系列,包含原版和中文版 适合不同人群
安装m2eclipse插件时会依赖gef插件和svn插件,压缩包内包含m2eclipse + gef + svn的全部插件安装包,可以直接离线安装,本人亲测,在Eclipse3.7下安装成功,可以新建Maven项目。 需要注意的是,在离线安装时,切记...
Gef入门开发,详细解析。 Gef入门开发,详细解析 Gef入门开发,详细解析